Wine project released VKD3D 1.3 with DIRECT3D 12 implementation

After a year and a half Development Project Wine Posted Edition of the package VKD3D 1.3 With the implementation of Direct3D 12, running through the broadcast of calls to the Graphic Vulkan API. The package includes libvkd3d libraries from the implementations of Direct3D 12, LibVKD3D-Shader with a translator 4 and 5 shaders and libvkd3d-utils models with functions to simplify the Direct3D applications 12, as well as a set of demonstration examples, including the GLXGEARS port on Direct3D 12. Project code extends under license lgplv2.1.

libvkd3d library supports most of the features of Direct3D 12, including funds for Graphs and calculations, queues and command lists, Descriptors and heap descriptors, root signatures, disordered access, Sampler-s, command signatures, root constants, indirect (indirect) Refrigerated, Clear * () methods and Copy * ().

The LibVKD3D-Shader is implemented by the broadcast of the Baitcode 4 and 5 shaders models in the SPIR-V intermediate representation. Tunes are supported, pixel, tessellation, computing and simple geometric shaders, serialization and deserialization of root signature. From the shader instructions, arithmetic, atomic and bit operations, comparison operators and data transfer control, Sample, Gather and Load instructions, disordered access operations are implemented (UAV, Unordered Access View).

Among the most significant innovations in VKD3D 1.3 stand out:

  • Added initial support for compilation and preprocessing shaders in the language HLSL (High-Level Shader Language), provided from DirectX 9.0 .
  • Added support for arrays of descriptors defined in Shader Models 5.1 .
  • Support for operations with floating-semicolons of double accuracy in shaders, indirect addressing for tesselny shaders, stencil exports from shaders, shaders modifiers “Precise” and global barriers for resources in memory.
  • The ability to disassemble the DIRECT3D shaders from the Baitcode to the assembler’s representation is implemented.
  • Added support for the analysis of the old DIRECT3D Baitcode format used in the models of Shaders Direct3D 1, 2 and 3.
  • in libvkd3d Added features of Direct3D 12 as root signatures, viewing counters with disordered access, logical merge operators for output, addressing mode Mirror_ONCE texture. Added structure vkd3d_host_time_domain_info.
/Media reports.