VKD3D-Proton 2.9 arrives with performance improvements and more

Valve

VKD3D-Proton is a fork of VKD3D, which aims to implement the full Direct3D 12 API on top of Vulkan.

Valve recently unveiled the release of the new version of VKD3D-Proton 2.9, a fork of the vkd3d codebase, designed to improve Direct3D 12 compatibility in the Proton game launcher.

For those who are still unaware of VKD3D-Proton, you should know that this Supports Proton-specific changes, optimizations, and enhancements for better performance of Direct3D 12-based Windows games, which are not yet accepted in the main part of vkd3d. Among the differences, there is also a focus on using modern Vulkan extensions and the capabilities of recent versions of graphics drivers to achieve full Direct3D 12 compatibility.

As such Valve uses the fork specified in the Wine-based package to run Windows Proton games. DirectX 9/10/11 support in Proton is based on the DXVK package and the DirectX 12 implementation has so far been based on the vkd3d library (after the death of the vkd3d author, CodeWeavers continued development of this component and the wine community).

Main novelties of VKD3D-Proton 2.9

This new release of VKD3D-Proton 2.9 mentions that some games started to assume that DLLs were designed similarly to AgilitySDK, whereupon the library d3d12core.dll is divided into a loader (d3d12.dll) and a main implementation (d3d12core.dll). With this change, several scripts will now need to be updated to accommodate both DLLs. Once d3d12.dll is installed in a prefix, only d3d12core.dll needs to be updated.

Another of the changes that stands out in this new version are the implemented performance optimizations and is that in this version memory requirements were significantly reduced on the first time the application is launched.

It is also highlighted thate has improved performance in the code that uses the extension VK_EXT_descriptor_buffer, as well as added optimizations for systems with Intel, AMD and NVIDIA GPUs.

Besides that, added support for D3D11On12 portability interfaces, Removed code with the previous implementation of virtual framebuffers (SwapChain), added support for standard Linux interfaces for SwapChain, and fixed some issues that occurred when using the NVIDIA and RADV drivers.

Moreover, Vulkan 1.3 is now declared as the minimum required version, Also added support for sliced ​​out of order (3D UAV, Unordered View) operations, implemented using the VK_EXT_image_sliced_view_of_3d extension.

Of the other changes that stand out from this new version:

  • Improved VRAM behavior when VK_EXT_pageable_device_local_memory is supported, allowing the Evicty and MakeResident APIs to be implemented in a useful way.
    VK_EXT_memory_priority is also used to give static priorities as a fallback.
  • Improved support for DXR 1.1 by enabling the VK_EXT_pipeline_library_group_handles extension.
  • Added support for the VK_EXT_fragment_shader_interlock extension.
  • Improved compatibility with games that use specific features of the AgilitySDK.
  • Fixed issues in many games.
  • In Wine, winevulkan.dll is used instead of vulkan-1.dll if available.
  • Improvements in compatibility with games that depend on certain details of the AgilitySDK.
  • Improved build system compatibility with different widl versions
  • VKD3D_CONFIG=dxr now also enables DXR 1.1 and dxr11 is saved for compat.
  • Fixed HDR metadata minimum luminance value.
  • Added VKD3D_LIMIT_TESS_FACTORS to fix excessive tessellation. Enabled for Wo Long.
  • Fixed RADV bug that causes excess memory in shader caches. You can save several hundred MB of memory, which is important in certain memory-hungry titles to avoid instability.
  • Fixed NVIDIA bug with concurrent queue submissions using timeline semaphores
  • Fixed a bunch of Xid 109 CTX_SWITCH_TIMEOUT unexplained errors in many different games.

Finally If you are interested in learning more about this new release, you can check the details In the following link.And if you want try Proton on Steam now, you already know that you can install the Steam client from the official website, although you will also find it in the repos of most distros.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.