The Wine team has released VKD3D 2.0 — a major release of the library that implements application support for Direct3D 12 on top of Vulkan. VKD3D is used in the regular upstream Wine for D3D12 application support; it should not be confused with VKD3D-Proton, a separate gaming branch from Valve used in Proton/Steam Play.
The project is distributed under the GNU Lesser General Public License 2.1 or later. The release source code is published on the WineHQ server; the code is also available through Wine repositories.
VKD3D 2.0 marked the transition from the branch 1.19 directly to a new major version. The main focus is on the development of the shader subsystem and low-level compatibility with Direct3D 12.
Key changes:
HLSL shader processing has been improved. Support for the HLSL language has been expanded: more operations have been implemented, which are now correctly processed by the VKD3D compiler and translator. This is important for running applications that use their own HLSL shaders, rather than just pre-compiled bytecode.
Support for legacy Direct3D bytecode has been refined. Functionality has been enhanced to better handle the old type of Direct3D bytecode for compatibility with older shader formats and tools that are still encountered in applications and engines.
Support for DXIL has been improved. In VKD3D 2.0, improvements continue for DXIL processing — the modern intermediate representation of DirectX shaders. For D3D12, this is one of the key formats, so such changes directly affect the proper launch of newer applications.
Enhancements for effects have been added. The release includes changes related to effects — mechanisms for describing and applying graphical effects in the Direct3D stack. This is more of an infrastructural aspect, but it is important for compatibility with existing graphical code.
Experimental support for MSL has been introduced. VKD3D 2.0 has received experimental support for generating MSL — Metal Shading Language. This direction is related to the portability of the shader part to platforms where Vulkan is typically used through additional compatibility layers.
Interfaces and debugging capabilities have been expanded. Developers have added new interfaces and improved debugging tools in VKD3D, which should simplify development, error diagnosis, and further support for Direct3D 12 in Wine.
It is also worth noting: for most Steam users on Linux, the main D3D12 component remains VKD3D-Proton, rather than a regular VKD3D. Nevertheless, VKD3D remains an essential part of Wine itself and serves as the foundational implementation of Direct3D 12 on top of Vulkan in the upstream project.
Source: linux.org.ru
