There Is Experimental Patches Providing Support For DXIL Shaders With VKD3D
Written by Michael Larabel in WINE on 29 January 2020 at 10:49 AM EST. 8 Comments
The Wine project's VKD3D initiative for translating Direct3D 12 support to Vulkan took another step forward today with patches for handling DXIL (Shader Model 6.0+) shaders with VKD3D, but the work in the current form may need to be re-worked.

DXIL is the DirectX Intermediate Language that can be generated out of the conventional HLSL shaders. DXIL support as open-source has been apart of Microsoft's DirectXShaderCompiler in the path to ultimately an LLVM-based compiler. This works with Shader Model 6.0 and newer for DirectX 12.

The 41 patches posted today by Hans-Kristian Arntzen provide support for DXIL shaders on VKD3D by taking the DXIL shaders and converting them to Vulkan's SPIR-V representation for consumption by the system's Vulkan driver.

The patches amount to more than sixty-five hundred lines of code.

While DXIL shader support for VKD3D is important, some concerns over the patches have been raised. In particular, the dxil-spirv code for taking DXIL to SPIR-V IR relies upon LLVM. Pulling in LLVM as a dependency raises issues for some but we'll see ultimately if they decide to go for this route (especially with more and more tooling having an LLVM dependency) or instead write a new custom parser by hand which will be a large feat itself. In any case, hopefully by Wine 6.0 next year VKD3D will be in better standing for handling modern D3D12 Windows games.
Related News
About The Author
Author picture

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter or contacted via

Popular News This Week