D8VK’s aim is for the aging Microsoft Direct3D 8 API atop Vulkan for enhancing the experience of older games on Linux.
D8VK 1.0 is considered this project’s first “production ready” release and has been said to have been tested against hundreds of games. By going from Direct3D 8 to Vulkan, the aim is to deliver better performance and compatibility than making use of WineD3D that goes to OpenGL or d3d8to9 that converts to D3D9 and can then be used with DXVK.
The dxgi.nvapiHack config option was deprecated, and a new option dxgi.hideNvidiaGpu with a slight change in behaviour was added instead, alongside similar options for AMD and Intel GPUs. This allows implementing more targeted application workarounds for issues with e.g. XESS libraries in the future if necessary. Refer to the example configuration for more details.
Note: The old dxgi.nvapiHack option still works if dxgi.hideNvidiaGpu is not set, but will be removed in a future release.
Additionally, the dxgi.tearFree and d3d9.tearFree options were consolidated into a new dxvk.tearFree option, due to changes in the presentation logic. The old options were removed.
If you’re like me, and you have a lot of prefixes created and used in let’s say era of wine 5.x, and now want to try and update them to Wine 9.x there’s very important things to note on that process.
Let’s say you’ve decided to update your existing wineprefix 5.x → 9.x and now have such errors when trying to launch something:
Errors
Started initial process 1035383 from /home/x133/.local/share/lutris/runners/wine/8.25-wine-ge/bin/wine /home/x133/.PlayOnLinux/wineprefix/Batman_Arkham_knight/drive_c/Games/Batman Arkham knight/Binaries/Win64/BatmanAK.exe -nologo
Start monitoring process.
esync: up and running.
wine: Using setpriority to control niceness in the [-10,10] range
002c:fixme:winediag:LdrInitializeThunk wine-staging 8.0 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
0074:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0074:err:plugplay:enumerate_new_device Unable to install a function driver for device L"WINEBUS\\VID_845E&PID_0001\\0&0000&0&0&0".
0074:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0074:err:plugplay:enumerate_new_device Unable to install a function driver for device L"WINEBUS\\VID_845E&PID_0002\\0&0000&0&0&0".
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\syswow64\\shell32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\syswow64\\shlwapi.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\syswow64\\shlwapi.dll") not found
0024:err:module:import_dll Library shlwapi.dll (which is needed by L"C:\\windows\\syswow64\\shell32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\syswow64\\shell32.dll") not found
0024:err:module:import_dll Library shell32.dll (which is needed by L"C:\\windows\\syswow64\\start.exe") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\gdi32.dll") not found
0024:err:module:import_dll Library gdi32.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library win32u.dll (which is needed by L"C:\\windows\\syswow64\\user32.dll") not found
0024:err:module:import_dll Library user32.dll (which is needed by L"C:\\windows\\syswow64\\start.exe") not found
0024:err:module:LdrInitializeThunk Importing dlls for L"C:\\windows\\syswow64\\start.exe" failed, status c0000135
Initial process has exited (return code: 13568)
00ec:err:ole:com_get_class_object class {ff48dba4-60ef-4201-aa87-54103eef594e} not registered
00ec:err:ole:com_get_class_object no class object {ff48dba4-60ef-4201-aa87-54103eef594e} could be created for context 0x1
00ec:err:tabtip:create_uia_event_handler Failed to create IUIAutomation interface, hr 0x80040154
Monitored process exited.
Exit with return code 13568
That is a grave mistake, which is not obvious for newbies.
It will cause you to not be able to use wine 8.x+ properly, as well as dxvk 2.0+.
What should you do then?
Wine fully supports wineprefix updates ONLY to directly next major version of wine, anything further is not guaranteed.
Which means if you need to update 5.x to 9.x, what you need to do is:
5.x → 6.x → 7.x → 8.x → 9.x
Then test it by launching winecfg
While creating / updating your wineprefix - ONLY use wine or wine-staging, do not use Proton builds as they’re heavily castrated and differ in terms of those operations. Once done, you can use Proton later with Lutris launcher.
All that being said - it is highly recommended to recreate your prefixes from scratch with at least wine 8.x version, coz they have some huge differences in terms of file organization after all the stuff was converted to PE, now it seems that all the configs are set in stone since 8.x and further updates should go much smoother, otherwise you might have some mess in future.