
VKD3D-Proton is a fork of VKD3D, which aims to implement the full Direct3D 12 API on top of Vulkan.
Valve announced a few days ago, the release of the new version of VKD3D-Proton 2.10, a version that highlights the inclusion of DirectStorage MetaCommands, support improvements, as well as aseries of bug fixes and workarounds.
For those who are still unaware of VKD3D-Proton, you should know that this Supports Proton-specific changes, optimizations, and enhancements for better performance of Direct3D 12-based Windows games, which are not yet accepted in the main part of vkd3d. Among the differences, there is also a focus on using modern Vulkan extensions and the capabilities of recent versions of graphics drivers to achieve full Direct3D 12 compatibility.
As such Valve uses the fork specified in the Wine-based package to run Windows Proton games. DirectX 9/10/11 support in Proton is based on the DXVK package and the DirectX 12 implementation has so far been based on the vkd3d library (after the death of the vkd3d author, CodeWeavers continued development of this component and the wine community).
Main novelties of VKD3D-Proton 2.10
One of the aspects that stands out in the new version of VKD3D-Proton 2.10 is the DirectStorage API that now offers lThe implementation of the Deflate compression algorithm used by the extension NV_memory_decompression (allows the GPU to perform data decompression tasks installed on SSD drives without going through the processor). If NV_memory_decompression is not supported, it falls back to GDeflate's shader-based implementation.
Another change that stands out is that an improvement was added to Starfield, since in VKD3D-Proton 2.10 the NV_device_generated_commands_compute extension is added, which can be used to improve performance when using ExecuteIndirect mode which drives multi-dispatch COMPUTE + root parameter changes
In addition to this, it is also noted that added support for Root Signature 1.2 API, as well as support for Shader Model 6.7, which covers features like AdvancedTextureOps and WaveOpsIncludeHelperLanes.
On the part of the game improvements and fixes It is mentioned that the problems that occurred in Unreal Engine 5 and the games were resolved Star Wars Battlefront II, Ashes of Singularity, Xenia and Armored Core VI, while the compatibility improvements include games Age of Wonders 4, Starfield, Halo Infinite, Street Fighter 6, Armored Core VI, Resident Evil 4, Monster Hunter Rise.
Of the other changes that stand out from this new version:
- The CreateSampler2 function has been implemented.
- Added support for the A8_UNORM format.
- Fixed creating root signatures from DXIL library target (DXR) blobs
- Fixed some dual source merge PSO scenarios. Star Wars Battlefront II Fixes
- The batch acceleration structure is built.
- Greatly improves build performance at least on RADV.
- Implement wave operations in pixel shaders more strictly according to D3D12 rules
- Workaround for poor ReBAR performance in Age of Wonders 4
- Remove workaround for KHR_present_wait NV 535+ drivers
- Workaround for Starfield memory corruption issue where it doesn't properly query the 4 KiB alignment
- Disabled use of ReBAR in Halo Infinite to address very poor CPU performance
- Fixed false hangs in Ashes of Singularity when using shared fences and waiting before the signal.
- Fixed PSO caching bug in mesh shaders. Fix mesh shaders in Unreal Engine 5
- Fixed the rest of the udiv in DXBC, which fixed some Xenia bugs.
- Fixed query heap tracking bug exposed by NV Streamline
- Various DXIL -> SPIR-V fixes as usual
- Rewritten descriptor set designs to be more robust against application errors.
Finally If you are interested in learning more about this new release, you can check the details In the following link.
And if you want try Proton on Steam now, you already know that you can install the Steam client from the official website, although you will also find it in the repos of most distros.