Wine project published Vkd3d 1.7 with Direct3D 12 implementation

The Wine project has published a release of the vkd3d 1.7 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:

  • Work continued on improving the HLSL (High-Level Shader Language) shader compiler:
    • Added the ability to call user-defined functions and use arrays as parameters of user-defined functions.
    • Added support for SV_DispatchThreadID, SV_GroupID and SV_GroupThreadID parameters.
    • Added built-in functions all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt() , step(), transpose().
    • Added initial support for low precision floating point types such as "min16float".
  • Significantly improved support for Direct3D 1/2/3 shader model profiles.
  • Added public API for parsing (vkd3d_shader_parse_dxbc) and serializing (vkd3d_shader_serialize_dxbc) DXBC binary data.

Source: opennet.ru

Add a comment