Somehow, I missed that DXVK 2.3 went out last week. So here's a run over what's new for this Vulkan-based translation layer that converts Direct3D 9/10/11 for Wine and Proton.
One of the headline improvements here is presentation improvements. If you have support for the
VK_KHR_present_wait extension, and have vertical synchronization is enabled, you might end up seeing reduced input latency in some games. However, on some platforms and compositors frame latency may be higher than expected.
On top of that if you have the extension
VK_EXT_swapchain_maintenance1 supported, turning VSync on / off may no longer need to recreate the Vulkan swap chain working around severe performance issues in some games. Currently that is only supported on Gamescope when
ENABLE_GAMESCOPE_WSI=1 is set.
There's also some configuration changes with
dxgi.nvapiHack deprecated in favour of
dxgi.hideNvidiaGpu, along with similar options for AMD and Intel GPUs that allows them to put in targeted application workarounds for issues. On top of that
d3d9.tearFree were merged into
Lots more improvements and fixes including:
- Configuration options can now be specified via an environment variable,
DXVK_CONFIG. See the README for details (PR #3581).
VK_EXT_depth_bias_controlis supported, depth bias scaling will now be correct in most situations. This fixes shadow rendering artifacts in various D3D9 games and is especially important on GPUs that do not support 24-bit depth formats. This affects games such as F.E.A.R. (#1461), Far Cry 2 (#2941) and Assassin's Creed Brotherhood (#2642).
VK_EXT_line_rasterizationand its relevant features are supported, smooth or rectangular lines will now be used if requested by the application. This functionality is generally not used by games, but may be useful for applications such as level editors.
DXGI_FORMAT_A8_UNORMimages will now use the corresponding Vulkan format.
- D3D9 command submission now works the same way as it does for D3D11, which will lead to more submissions but generally reduces resource readback latency. This may improve performance in games that frequently synchronize with the GPU.
- Fixed a minor issue with D3D9 feedback loop tracking.
- Fixed a minor issue with D3D11 stream output (#3634).
- Fixed a bug and performance issues with the implementation of D3D11 tiled resources.
- Fixed various issues with reporting HDR metadata.
- Fixed a crash when compiling D3D9 shaders generated by the vkd3d HLSL compiler. (PR #3616)
- Implemented keyed mutex synchronization on top of newly added winevulkan functionality (PR #3601, PR #3635).
Note: This will only work with recent Proton builds.
- Added stubs for various D3D9On12 interop interfaces. This is needed for Train Simulator Classic (#3445).
- Added an interface to allow external libraries, such as NVAPI, to enable HDR in various D3D11 games as well as Elden Ring (PR #3625).
Note: This will only work in combination with jp7677/dxvk-nvapi@c3a1c48 or newer. This will not work on Windows.
- A Total War Saga: TROY: Fixed trees not rendering when MSAA is enabled.
- Far Cry 2: Fixed crash when using D3D10.
- Halo Online: Fixed water rendering. (#3594, PR: #3627)
- Lara Croft and the Temple of Osiris: Fixed deadlock when using Exclusive Fullscreen (#3458).
- RaceRoom Racing Experience: Fixed a crash when starting a race. (#3386, PR: #3389)
- Spider Man: Shattered Dimensions: Fixed a regression that caused blocky shadows. (#3593, PR: #3624)
- Test Drive Unlimited 2: Fixed shadows on grass. (#3469, PR: #3471)
- The Sims 2: Fixed a regression in DXVK 2.2 that affected terrain rendering. (#3474, PR: #3476)
- Titanfall: Fixed a crash caused by a miscompiled shader.
- Tomb Raider Anniversary: Improved performance. (#3438, PR: #3439)