The team behind vkd3d, an open-source library that translates Microsoft’s Direct3D graphics calls to Vulkan, developed and maintained by the Wine project, has announced the release of version 1.17.
One of the most notable additions is initial HLSL support for thread group shared memory, something developers have been waiting on for a while. On top of that, geometry shader handling sees a boost with better support for multiple output streams, bringing vkd3d’s behavior closer to Microsoft’s own compiler tools, which is key for compatibility.
Another big focus in this release is the experimental Metal Shading Language (MSL) target. While still under active development, it now supports texture sampling, gather operations, loops, switches, and a wide range of integer and fragment shader features.
Plus, there’s even support for converting DXIL shaders to MSL, which could help broaden cross-platform compatibility for certain applications.
Beyond that, vkd3d 1.17 also delivers improvements to FX shader handling, parser support for features like StructuredBuffer
resources, and expanded SPIR-V capabilities, including debug information output. The release also introduces a new tx
source type for working with legacy D3DX texture shaders.
To show off some of these capabilities, the developers have included a fresh demo: a tessellation-based rendering of Martin Newell’s classic teapot model. It’s a neat showcase, though they note that some limitations in MoltenVK mean it won’t run perfectly everywhere just yet.
As with every vkd3d release, there are also plenty of bug fixes and smaller tweaks that help smooth out rough edges. The source code is available from WineHQ’s download servers as well as the project’s GitLab repository.
For more information, visit the announcement. vkd3d 1.17’s source code can be downloaded from GitLab’s project page.