Vkd3d 2.1 Expands HLSL Support and Adds Reflection for Direct3D 10 and 11
Vkd3d 2.1 was released on August 23, improving the HLSL compiler and adding shader reflection capabilities that were previously missing.
What vkd3d does
Vkd3d translates Direct3D 12 to Vulkan. It is one of the components that makes Windows games run on Linux at all, sitting alongside DXVK, which handles Direct3D 9 through 11.
If you play games through Proton or Wine, vkd3d is in your stack whether or not you have heard of it.
Shader reflection
The release adds many previously missing reflection capabilities and extends support beyond Direct3D 12 to Direct3D 10 and 11 interfaces.
Shader reflection is how an application inspects a compiled shader at runtime to discover its inputs, outputs, constant buffers, and resource bindings. Game engines use it routinely to wire shaders up to their material systems rather than hard-coding the bindings.
A game calling reflection APIs that vkd3d did not implement would fail, often in ways that looked like a rendering bug rather than a missing feature. Filling in these gaps removes a category of failure that was difficult to diagnose from the outside.
Extending it to D3D10 and D3D11 interfaces is notable because vkd3d’s remit has historically been D3D12. The HLSL compiler inside vkd3d is used more broadly than the D3D12 translation layer, including by DXVK, so improvements there benefit older APIs too.
SPIR-V improvements
The release also improves SPIR-V generation, the intermediate representation Vulkan consumes. Better SPIR-V output means shaders that compile more reliably and, in some cases, run faster on the driver side.
The week in the Wine stack
Vkd3d 2.1 landed alongside Wine 11.16 with VA-API hardware video decoding and Proton 11.0-2, which pulled in updated components including vkd3d.
None of these are user-facing features in the way a game release is. They are the reason the thing works at all, and they improve on a weekly cadence that most players never see.