Release of DXVK 1.3 project with Direct3D 10/11 implementation on top of Vulkan API

Formed interlayer release DXVK 1.3, which provides an implementation of DXGI (DirectX Graphics Infrastructure), Direct3D 10 and Direct3D 11, working through call translation to the Vulkan API. To use DXVK required support for drivers Vulkan APISuch as
AMD RADV 18.3, NVIDIA 415.22, Intel ANV 19.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 11 implementation running on top of OpenGL. IN some games wine+DXVK performance is different from running on Windows by only 10-20%, while when using the Direct3D 11 implementation based on OpenGL, the performance drops more significantly.

Added improvements:

  • Implemented an optimization using the "discard" instruction in shaders based on the Vulkan extension VK_EXT_shader_demote_to_helper_invocation that can improve performance in some games. To use the optimization, you need to update the winevulkan component and drivers (Intel to Mesa 19.2-git and NVIDIA to the proprietary driver 418.52.14-beta, AMD drivers do not yet support the VK_EXT_shader_demote_to_helper_invocation extension);
  • Provided asynchronous processing of the output of the rendering result on the screen (stage presentation). To reduce latency on the main rendering thread, output processing is now done on the command submission thread. The performance gain from asynchronous processing is especially noticeable with high frame rate output and resource-intensive command transfers. Of the games that have seen performance gains, Quake Champions has been noted when running on systems with AMD GPUs;
  • It is now possible to bootstrap resources using copy engines provided by a Vulkan-enabled device (currently only supported by AMDVLK and NVIDIA drivers). This new feature allows for slightly better frame-time consistency in games that load a large number of textures during the game.
  • Improved logging of errors that occur in low memory conditions;
  • Improved compatibility with MSVC (Microsoft Visual C++);
  • Removed repetitive loop checks during inference, which can significantly reduce CPU load in GPU constrained scenarios.
  • Fixed an issue with image sub-resources being double-mapped in Final Fantasy XIV.
  • Fixed a crash due to incorrect behavior of the RSGetViewport method that occurred in the Scrap Mechanic game.

Source: opennet.ru

Add a comment