While Valve continue pushing forward for gamers with VKD3D-Proton, the Wine team continue building up their own separate Direct3D 12 to Vulkan translation library with a new release out now.
vkd3d v1.11 brings these changes:
- Initial support for compiling legacy Direct3D bytecode to SPIR-V.
- Initial HLSL compiler support for compiling effect profiles.
- Miscellaneous bug fixes and performance improvements.
The full complete changelog with all additions can be found on the Wine GitLab.
So why the two projects? Well, they have quite different goals overall.
Valve want things ready a lot faster, and with dedicated support for all the latest games in Proton. Valve are a lot more aggressive on getting all the newest possible stuff inside VKD3D-Proton. Meanwhile Wine directly has a much wider software target, including various applications (not just games).
Some you may have missed, popular articles from the last month:
2 comments
They are separate projects, but technically VKD3D-Proton is a fork of VKD3D with massive changes, and is better in every way for almost everything, including general software. That last part I've heard from GloriousEggroll and other members of the Lutris team, by the way. But it's true that VKD3D is supposed to be better for general software as opposed to being focused on games. It's just that VKD3D has implemented so few of the Direct3D12 API compared to VKD3D-Proton that the fork ends up being better overall right now.
DXVK, on the other hand, is a completely separate project from Wine for D3D9-11 and duplicates parts of the Wine project. It can even be used directly on Windows or by itself without Wine. Wine has an OpenGL translation layer for all other D3D versions except 12, called "WineD3D". However, Wine has a very experimental Vulkan translation layer hidden behind a registry key for Direct3D versions before 12.
You can enable it by reading the instructions here: https://wiki.winehq.org/Useful_Registry_Keys
DXVK is better than WineD3D's OpenGL backend for most APIs, but the OpenGL backend can be better in some cases for D3D9. That might not be the case anymore, but it was a few months ago.
There's also a WIP Vulkan translation layer for D3D8 for some reason.
DXVK, on the other hand, is a completely separate project from Wine for D3D9-11 and duplicates parts of the Wine project. It can even be used directly on Windows or by itself without Wine. Wine has an OpenGL translation layer for all other D3D versions except 12, called "WineD3D". However, Wine has a very experimental Vulkan translation layer hidden behind a registry key for Direct3D versions before 12.
You can enable it by reading the instructions here: https://wiki.winehq.org/Useful_Registry_Keys
Quote| +->renderer...but you should just use DXVK.
| | [Select what backend to use for wined3d. Valid options are:
| | gdi
| | gl
| | vulkan
| | The "gdi" option (and its alias "no3d") mostly exists for legacy or test reasons.
| | As of Wine 5.1, gl is the default and vulkan is still work in progress,
| | so don't expect great results with it yet.]
DXVK is better than WineD3D's OpenGL backend for most APIs, but the OpenGL backend can be better in some cases for D3D9. That might not be the case anymore, but it was a few months ago.
There's also a WIP Vulkan translation layer for D3D8 for some reason.
1 Likes, Who?
I think the key difference is that vkd3d-proton uses Vulkan fully without any limitations which allows it to target good performance. vkd3d uses Vulkan that's crippled by being limited to features that work on macOS's Metal over MoltenVK. Unless I misunderstood the idea.
That means that vkd3d will never be as efficient as vkd3d-proton. So for Linux users it's not even a question what to use.
Last edited by Shmerl on 7 March 2024 at 12:00 am UTC
That means that vkd3d will never be as efficient as vkd3d-proton. So for Linux users it's not even a question what to use.
Last edited by Shmerl on 7 March 2024 at 12:00 am UTC
2 Likes, Who?
See more from me