Wine Unveils VKD3D 1.14 with Direct3D 12 Support

Wine has recently published the package vkd3d 1.14 which implements Direct3D 12 functionality through Vulkan API calls. The package includes libraries like LIBVKD3D with Direct3D 12 support, LibVKD3D-SHADER for 4th and 5th shader models, and LIBVKD3D-UTILS with examples such as GLXGEARS port on Direct3D 12. The package is distributed under the LGPLv2.1 license.

The Libvkd3d library supports various Direct3D 12 capabilities including graphics and compute pipelines, command queues and command lists, descriptors and descriptor heaps, root signatures, unordered access, samplers, command signatures, root constants, indirect rendering, and Clear*() and Copy*() methods. In addition, LibVKD3D-SHADER supports shader model transformations into SPIR-V intermediates and various shader instructions like arithmetic, atomic operations, and data control operators.

In the new version, several updates have been introduced:

  • Initial support for Metal Shader Language (MSL) used by Apple’s Metal API.
  • Disassembler support for binary effects.
  • Implementation of the OMSETDEPTHBUNDS() method in the LibVKD3 library for dynamic depth value range changes in the z-buffer.
  • Added VKD3D_CAPS_override environment variable to limit information provided to applications about available capabilities.
  • Support for Tesselational shader in HLSL implementation and additional built-in functions like DST(), F32TOF16(), MAD(), MODF(), and sincos() for shader models 1, 2, and 3.
  • Implementation of new GLSL shader instructions.
/Reports, release notes, official announcements.