Wine project released Vkd3d 1.4 with Direct3D 12 implementation

The Wine project has published a release of the vkd3d 1.4 package with a Direct3D 12 implementation that works via call translation to the Vulkan graphics API. The package includes libvkd3d libraries with Direct3D 12 implementations, libvkd3d-shader with shader model translator 4 and 5, and libvkd3d-utils with functions to simplify porting Direct3D 12 applications, as well as a set of demos, including a port of glxgears to Direct3D 12. The project code is distributed licensed under LGPLv2.1.

The libvkd3d library supports most of the Direct3D 12 features, including graphics and compute, command queues and lists, descriptors and heap descriptors, root signatures, unordered access, Samplers, command signatures, root constants, indirect rendering, Clear methods *() and Copy*().

libvkd3d-shader implements translation of bytecode 4 and 5 of shader models into an intermediate representation of SPIR-V. Supports vertex, pixel, tessellation, compute and simple geometry shaders, root signature serialization and deserialization. Arithmetic, atomic and bit operations, comparison and data flow control operators, sample, gather and load instructions, unordered access operations (UAV, Unordered Access View) are implemented from shader instructions.

In the new version:

  • Numerous improvements have been made to the HLSL (High-Level Shader Language) shader compiler provided since DirectX 9.0.
  • A new implementation of the Descriptor Heap is proposed, using the Vulkan extension VK_EXT_descriptor_indexing.
  • Added a new fence implementation based on the Vulkan extension K_KHR_timeline_semaphore.

Source: opennet.ru

Add a comment