Release of DXVK 2.0, Direct3D 9/10/11 implementations on top of the Vulkan API

The release of the DXVK 2.0 layer is available, providing an implementation of DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 and 11, working through call translation to the Vulkan API. DXVK requires drivers that support the Vulkan 1.3 API, such as Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0, and AMDVLK. DXVK can be used to run 3D applications and games on Linux using Wine, serving as a higher performance alternative to Wine's built-in Direct3D 9/10/11 implementations running on top of OpenGL.

Major changes:

  • The requirements for the version of the Vulkan graphics API have been increased to require a driver supporting Vulkan 1.3 (previously Vulkan 1.1 was required), which made it possible to implement support for new features related to shader compilation. In practice, DXVK 2.0 can be run on any system that supports the use of the Proton Experimental package to run games based on D3D11 and D3D12. Winevulkan requires at least Wine 7.1 to run.
  • The code of the dxvk-native project was adopted, which allows you to generate native DXVK builds for Linux (not tied to Wine), which can be used not to run Windows applications, but in ordinary Linux applications, which can be useful for creating ports of games for Linux without changing the D3D-based rendering code.
  • Support for Direct3D 9 has been extended, including improved memory management (memory-mapped files are used to store texture copies), support for correct reading from hotspots (solved problems with the appearance of artifacts when playing GTA IV), and redesigned implementation of the transparency check.
  • For Direct3D 10, the d3d10.dll and d3d10_1.dll libraries have been discontinued, which were not installed by default due to the presence of a more advanced implementation of D3D10 in wine. At the same time, support for the D3D10 API is continued in the d3d10core.dll library.
  • Support for Direct3D 11 has been upgraded to feature level 12_1 (D3D11 Feaure Level), to achieve which features such as Tiled Resources, Conservative Rasterization, and Rasterizer Ordered Views have been implemented.
  • The implementation of the ID3D11DeviceContext interface, which represents the device context that generates drawing commands, has been redesigned and is closer in its behavior to Windows. The redesign allowed to improve compatibility with third-party libraries and reduce the load on the CPU. In particular, CPU usage has been reduced in games that use deferred contexts heavily (such as Assassin's Creed: Origins) or that frequently call the ClearState operation (such as God of War).
  • Changes have been made related to the compilation of shaders. In the presence of Vulkan drivers with support for the VK_EXT_graphics_pipeline_library extension, Vulkan shaders were compiled when games loaded D3D shaders, and not during rendering, which solved problems with freezes due to shader compilation during the game. The required extension is currently only supported in proprietary NVIDIA drivers starting with version 520.56.06.
  • D3D11 shaders use the Vulkan memory model.
  • Removed the limit on the number of resources that can be bound at one time.
  • Fixed issues that appeared in games:
    • Alan Wake
    • Alice madness returns
    • Anomaly: Warzone Earth
    • Beyond Good and Evil
    • Dragon Age Origins
    • Empire: Total War
    • Final Fantasy XV
    • Grand Theft Auto IV
    • Heroes Of Annihilated Empires
    • Limit King Of Fighters XIII
    • Metal Gear Solid V: Ground Zero
    • SiN Episodes: Emergence
    • Sonic generations
    • Spider Man
    • The Ship
    • Warhammer Online
    • Y's Seven

Source: opennet.ru

Add a comment