On systems supporting HDR10 color spaces, HDR can now be enabled by setting the environment variable
DXVK_HDR=1, or by setting the option
dxgi.enableHDR = True in the configuration file. When using vkd3d-proton 2.8 or newer, this will allow D3D12 games to detect and use the HDR10 color space if they support it.
No major Linux desktop environment currently supports HDR. In order to use this on Linux, a Gamescope session with
--hdr-enabled is required. This is currently only supported under AMDGPU and requires kernel patches from the josh-hdr-colorimetry branch.
Note: D3D11 support is implemented, but not expected to work in most games as they typically require AMDAGS or NVAPI to set up HDR output, rather than using the corresponding DXGI APIs. Additionally, only Nvidia drivers are expected to work on Windows.
Shader compilation improvements
Use of pipeline libraries was extended to pipelines with tessellation
or geometry shaders in order to further reduce stutter. Additionally,
more features of the
VK_EXT_extended_dynamic_state3 extension are leveraged to reduce stutter in some situations when MSAA is used, provided that the Vulkan driver supports them.
Note: Current development builds of RADV will expose
VK_EXT_graphics_pipeline_library with the features that DXVK needs if the
environment variable is set. Note that the implementation is not yet
complete and does not support shader caching at this time, but it should
generally work with DXVK.
Sample rate shading
For older games that support MSAA, the
d3d11.forceSampleRateShading options were added to let users enable sample rate shading for all shaders. This will have a very
high impact on GPU-bound performance, but may increase overall image
quality in certain games that suffer from specular aliasing or
shimmering alpha-tested geometry.
Note: Games that resolve the rendered images inadequately (e.g. performing a linear resolve on HDR render targets) will likely not benefit from this option.
For native Linux builds of DXVK, a GLFW backend was added as a compile-time alternative to the existing SDL2 backend. See PR #3111 for details.
Bug fixes and Improvements
- Improved D3D11 command submission logic in order to make overall performance more consistent, and to bring DXVK's behaviour more in line with native D3D11 drivers.
- Fixed D3D11 reference counting issues around 2D textures. (#3169)
- Fixed Vulkan validation errors when creating
DXGI_FORMAT_A8_UNORMUAVs. Note that UAVs of this format may not work as expected.
- Fixed Vulkan validation errors that would occur when allocating dedicated image memory on Nvidia GPUs in some situations.
- Fixed Vulkan validation errors caused by broken timeline semaphores on 32-bit Proton.
- Worked around an issue with the Uplay overlay being stuck on screen. (#3146)
Note that this fix does not apply to Windows as it was achieved by loading
winevulkan.dlldirectly instead of the actual Vulkan loader.
Note that this change will break Red Dead Redemption 2 with dxvk-nvapi prior to this commit: jp7677/dxvk-nvapi@ac00a42
- Worked around a bug in AMD's Windows driver as well as AMDVLK that would cause numerous games to crash since DXVK 2.0. (#3172)
- Fewer threads will be used to perform background optimization of graphics pipeines. This may result in a smoother gameplay experience on some systems. Note that this change does not affect initial shader compiling, as finishing that quickly is crucial to avoid stutter.
- The state cache file will now only be created when the first pipeline is written to it, in order to avoid empty cache files.
This change mostly affects D3D9 games on systems with
- Ashes of the Singularity: Fixed performance regression caused by suboptimal descriptor set allocation.
- Battlefield: Bad Company 2: Fixed flickering (#3078, PR #3079)
- Cardfight!! Vanguard: Fixed rendering (PR #3068).
- Gujian 3: Fixed rendering issues on some GPUs. (#1784)
- Resident Evil 4 HD: Fixed invalid Vulkan usage causing a GPU hang on RADV. (PR #3089)
- Saints Row: The Third: Fixed a severe performance issue with rain when using the D3D9 renderer. (#2473, PR #3158)
- Sekiro: Shadows Die Twice: Fixed stuttering issues on Nvidia GPUs. (#3179)
- Sonic Frontiers: Worked around a game bug that would cause shadows to flicker when GPU-bound.
- Supreme Commander: Forged Alliance: Fixed a crash after loading (#3058, PR #3060)
Note: The setup script
was no longer deemed useful and got removed. This change will only
affect users who manually install DXVK into a wine prefix, rather than
using it through Proton or Lutris.
Note: Due to changes to our DXGI implementation, older versions of vkd3d-proton (prior to 2.8) will no longer work with this version of DXVK.
Link to source codeRun Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off CodeWeavers CrossOver+ today.