There Is Experimental Patches Providing Support For DXIL Shaders With VKD3D
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.
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.
8 Comments