The Wine project has released vkd3d 1.16 with Direct3D 12 implementation.

The Wine project has published the release of vkd3d 1.16 with Direct3D 12 implementation, operating through call translation to the Vulkan graphic API. The package includes libvkd3d libraries with Direct3D 12 implementations, libvkd3d-shader with shader model 4 and 5 translator, and libvkd3d-utils with functions to simplify porting 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 features of Direct3D 12, including graphics and compute tools, queues and command lists, descriptors and heap descriptors, root signatures, unordered access, Samplers, command signatures, root constants, indirect rendering, and Clear*() and Copy*() methods. In libvkd3d-shader, the translation of shader model bytecode into the intermediate SPIR-V representation is implemented. It supports vertex, pixel, tessellation, compute, and simple geometry shaders, as well as serialization and deserialization of root signature. Among the shader instructions, arithmetic, atomic and bitwise operations, comparison operators, data flow control statements, sample, gather and load instructions, and unordered access operations (UAV, Unordered Access View) are implemented.

In the new version:

  • DXIL (DirectX Intermediate Language) shader support is stabilized and enabled by default.
  • Initial support for geometry shaders has been added to the HLSL shader language compiler. For shader models 1, 2, and 3, indirect addressing, modules, and value restrictions have been supported.
  • The libvkd3d library has announced support for shader model 6.0. The ID3D12Device1 interface has implemented the SetEventOnMultipleFenceCompletion() method. Support has been added for the Vulkan extension VK_KHR_zero_initialize_workgroup_memory for zero-initializing memory for shaders. The Vulkan extension VK_KHR_maintenance2, proposed in the Vulkan 1.1 specification, has been included as mandatory.
  • Support for disassembling SPIR-V shaders and binary effects 'fx_2_0' has been added.
  • Experimental support for indirect addressing of constant buffers in GLSL (OpenGL Shading Language) has been added.
  • The implementation of the MSL (Metal Shading Language) used by Apple in the Metal graphics API has been enhanced with the ability to load textures.
  • Support for built-in HLSL functions: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier(), and GroupMemoryBarrierWithGroupSync() has been added.
  • Flags VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY, VKD3D_SHADER_COMPONENT_INT64, VKD3D_SHADER_COMPONENT_FLOAT16, VKD3D_SHADER_COMPONENT_UINT16, VKD3D_SHADER_COMPONENT_INT16, VKD3D_SHADER_RESOURCE_DATA_NONE, and VKD3D_SHADER_RESOURCE_DATA_UINT have been implemented.

Source: opennet.ru

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