Driver support

The Vulkan extension VK_KHR_maintenance5 is now required. DXVK has been relying on guarantees made by this extension since version 2.5, so in order to remove some maintenance burden, fallbacks that would allow older drivers to run were now removed.

Please check the driver support page on the Wiki for details.

Note: These changes will primarily affect Windows users on AMD Polaris and Vega GPUs, for which AMD has effectively discontinued driver support. On Linux, these older GPUs will keep working on RADV when using Mesa 25.0 or newer.

Due to a growing number of compatibility issues with the AMD Windows driver in general, supporting it is no longer a priority.

Binding model changes

Descriptor management was largely rewritten and modernized. On newer AMD and Nvidia cards, VK_EXT_descriptor_buffer is now used by default, which significantly reduces CPU overhead compared to the legacy binding model and may thus improve CPU-bound performance in games such as Final Fantasy XIV, God of War, Metaphor: ReFantazio, Watch Dogs 2 and others.

This feature remains disabled on older GPUs due to severe performance regressions in some cases, specifically on Nvidia Pascal or older, as well as AMD RDNA2 or older when using AMDVLK or the AMD Windows driver. RADV is unaffected by these issues.

Note: A small hit to GPU-bound performance is expected in some cases, in exchange for more consistent overall performance. Users can override the default behaviour with the dxvk.enableDescriptorBuffer option. Enabling Resizeable BAR on supported systems is strongly recommended.

Memory management

Memory defragmentation is now enabled by default on Intel Battlemage and Lunar Lake GPUs. On older Intel GPUs, this feature remains disabled as it may cause rendering issues for unknown reasons, see #4395.

On discrete GPUs, DXVK will now enforce the driver-reported VRAM budget as much as possible, and dynamically evict unused resources to system memory when under memory pressure. This should improve performance in many Unity Engine titles on VRAM-constrained systems, and may allow for higher texture quality settings to be used in some games. Temporary slowdowns and stutters are still expected when exceeding VRAM capacity.

Note: This feature currently does not work as intended on AMD GPUs due to kernel driver issues.

Legacy feature removal

The state cache was introduced in Version 0.80 to reduce shader compilation stutter, and has been largely unused since the introduction of VK_EXT_graphics_pipeline_library in DXVK 2.0. In order to reduce maintenance burden, particularly with pipeline-related changes in this release, this legacy feature was now removed.

Additionally, the d3d9.forceSwapchainMSAA option was removed. This feature was not really useful since most games either use additional render targets or provide a built-in MSAA option themselves anyway. For games that do not provide built-in MSAA, users are encouraged to use Gamescope to run these games with a higher render resolution instead.

Bug fixes and Improvements

  • Added support for planar video output views. (PR #4872). This is required for video playback in JR EAST Train Simulator.
  • D3D11 shaders will now zero-initialize all variables and groupshared memory by default in order to work around game bugs resulting in undefined behaviour. The d3d11.zeroWorkgroupMemory option was removed accordingly.
  • Optimized D3D9 StretchRect in certain multisample resolve cases encountered in Source Engine. (PR #5023)
  • Fixed an instance of invalid Vulkan usage in Modulus, and possibly other Unity Engine games that use the D3D11 video API.
  • Implemented support for the ID3DDestructionNotifier interface.
  • Vulkan devices that lack the required feature support to run DXVK will no longer be listed as DXGI / D3D9 adapters. This may fix crashes in case an outdated graphics driver or an unsupported integrated GPU are present on the system.
  • Trying to build DXVK in a MinGW environment with AVX enabled will now result in a compile-time error. We cannot support AVX builds due to toolchain issues, nor is it expected to be beneficial.
  • Astebreed: Fixed crash when changing graphics options. (PR #5034)
  • GTR - FIA GT Racing Game: Worked around a game issue that would cause it to not start. (PR #5072)
  • LEGO City Undercover: Worked around a game issue that would cause the intro video to be broken. (#4997, PR #5000)
  • Star Trek: Starfleet Command III: Worked around resource leak in GOG build. (PR #5056)
  • Test Drive Unlimited 2: Worked around alt-tab issue causing input loss. (PR #5057)
  • Wargame: European Escalation: Worked around gamma issue when the game detects an Nvidia GPU. (PR #5055)
  • Die4Ever@retrolemmy.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 hours ago

    Vulkan devices that lack the required feature support to run DXVK will no longer be listed as DXGI / D3D9 adapters. This may fix crashes in case an outdated graphics driver or an unsupported integrated GPU are present on the system.

    This sounds good, I think laptop users sometimes ran into this issue in Deus Ex Randomizer, since we pack in DXVK for Windows users (we check if they have Vulkan support first) to improve compatibility and performance. It’s also a good way to automatically set a frame rate limit for the game, because our installer automatically creates the dxvk.conf file.

    DXVK has been really amazing for Deus Ex on Windows (and obviously Linux too)

    • vividspecter@aussie.zone
      link
      fedilink
      English
      arrow-up
      2
      ·
      8 hours ago

      A bit of a downside is that the minimum driver requirements are pretty aggressive at the moment, so people could be stuck using WineD3D without realising it. But I suppose crashing isn’t really much better. And people who play games should use a distribution that moves pretty quickly in general.