The Wine project has released Vkd3d 1.3, implementing Direct3D 12.

After a year and a half of development, the Wine project has released version 1.3 of the vkd3d package, which implements Direct3D 12 through calls translated into the Vulkan graphics API. The package includes the libvkd3d libraries implementing Direct3D 12, libvkd3d-shader with a translator for shader models 4 and 5, and libvkd3d-utils with functions to simplify the porting of Direct3D 12 applications, as well as a set of demonstration examples, including the port of glxgears to Direct3D 12. The project's code is distributed under the LGPLv2.1 license.

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

The libvkd3d-shader implements the translation of bytecode for shader models 4 and 5 into the intermediate representation SPIR-V. It supports vertex, pixel, tessellation, compute, and simple geometry shaders, as well as serialization and deserialization of root signatures. Among the shader instructions, arithmetic, atomic, and bitwise operations, comparison operators, data flow control instructions, sample, gather, and load instructions, and unordered access operations (UAV) are implemented.

Among the most significant innovations in vkd3d 1.3 are:

  • Initial support for compiling and preprocessing shaders in HLSL (High-Level Shader Language), which has been available since DirectX 9.0, has been added.
  • Support for descriptor arrays defined in shader model 5.1 has been added.
  • Support for double-precision floating-point operations in shaders, indirect addressing for tessellation shaders, exporting stencils from shaders, the 'precise' shader modifier, and global barriers for resources in memory have been provided.
  • The capability to disassemble Direct3D shaders from bytecode into assembly representation has been implemented.
  • Support for parsing the old Direct3D bytecode format used in Direct3D shader models 1, 2, and 3 has been added.
  • New features of Direct3D 12 have been added to libvkd3d, such as root signatures, unordered access view counters, logical merging operators for output, and the texture addressing mode mirror_once. The structure vkd3d_host_time_domain_info has also been introduced.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster