Skip to content

Releases: doitsujin/dxvk

Version 1.4

21 Sep 15:08
v1.4
21b2a9a
Compare
Choose a tag to compare

Features

D3D11 runtime interface

D3D11 interfaces were updated to D3D11.4, which is the latest version available in Windows 10 (1903). This introduces a number of new API features, some which are supported by DXVK if the underlying Vulkan driver supports the corresponding features.

The following features are optional and are currently not supported:

  • D3D11.2: Tiled Resources
  • D3D11.3: Conservative Rasterization
  • D3D11.3: Rasterizer Ordered Views

These features may be implemented in the future in case any games make use of them.

This change fixes a crash in Plants vs Zombies - Battle for Neighborville, which requires at least a D3D11.3 runtime.

DXGI runtime interface

To match the D3D11.4 update, DXGI interfaces were updated to DXGI 1.5.
This allows application to query for HDR support. HDR itself is not supported.

Support for GDI interop with DXGI surfaces was added to fix an issue with the Rockstar Game Launcher. Note that the launcher itself also requires fixes to Wine's Direct2D implementation, see #1196.

Resource mapping improvements

The d3d11.allowMapFlagNoWait option is now enabled by default, which may improve performance in certain games. An issue that would prevent it from working correctly in The Witcher 3 and other games has been fixed, and synchronization now behaves more like it would on a native D3D11 driver.

Note: This change may introduce regressions. When reporting a bug, please check whether setting d3d11.allowMapFlagNoWait = False in the configuration file fixes your problem and include this information in your bug report.

Bug Fixes and Improvements

  • Fixed a potential performance issue in games making heavy use of Deferred Contexts, such as Dark Souls III and Sekiro: Shadows Die Twice.
  • More accurate resource tracking may in some cases lower CPU overhead slightly.

Version 1.3.4

08 Sep 19:34
v1.3.4
e280830
Compare
Choose a tag to compare

Bug fixes and Improvements

  • Added workaround for failing winelib builds with wine 4.15 (#1179)
  • Fixed a potential memory leak in games using Direct2D (issue found by @jp7677)
  • Control: Enabled d3d11.allowMapFlagNoWait option to improve GPU utilization.
  • Quantum Break: Fixed performance issue affecting Nvidia and older AMD drivers.

Version 1.3.3

29 Aug 19:22
v1.3.3
2776ef4
Compare
Choose a tag to compare

Bug fixes and Improvements

  • Improved Clang and libc++ compatibility (PR #1173)
  • Implemented proper hazard tracking for resource views, as mandated by the D3D11 runtime. This fixes visual artifacts in Shining Resonance: Refrain on AMD GPUs.
    Note: This may have a small performance impact in some games.
  • Far Cry Primal: Worked around a weird issue causing the game's graphics to turn red
  • SteamVR Performance Test: Fixed broken rendering caused by a bug in the deferred context implementation (#1160)

Version 1.3.2

05 Aug 20:21
v1.3.2
9fdd7bf
Compare
Choose a tag to compare

Update: Binaries have been re-built with bd40b05.

Bug fixes and Improvements

  • Fixed a regression that caused crashes and rendering issues Dishonored 2, The Division, Anno 1800 and potentially other games (#1148, #1149, #1151)
  • Fixed a bug that could lead to atomic append/consume operations in fragment shaders being executed incorrectly. This fixes possible hangs in Sunset Overdrive.
  • Fixed an issue where geometry shaders would emit more components than supported by the hardware (#1121).
  • Slightly reduced CPU overhead in some DirectX 11.1 games, such as World of Warcraft.
  • Per feature request, added the dxvk.hud configuration option to enable the HUD. This option will be used if the DXVK_HUD environment variable is not set.
  • On Nvidia GPUs, presentation will now be performed on the main thread again in an attempt to improve stability. Asynchronous presentation is still enabled on AMD and Intel GPUs.

Version 1.3.1

20 Jul 22:52
v1.3.1
f5cec97
Compare
Choose a tag to compare

Improvements

  • Various logging improvements. In addition to the supported Vulkan extensions, the device capabilities that are supported by the driver and used by the game will now also be logged.
  • Added GPU load monitor to the HUD, which can be enabled via DXVK_HUD=gpuload.
    The load percentage is estimated based on timing information that is available to DXVK rather than relying on driver-specific reporting mechanisms, and may be inaccurate if the CPU load is very high.

Bug fixes

  • Fixed a regression introduced in DXVK 1.3 which could potentially cause rendering glitches and illegal Vulkan API usage. Affected games include SpellForce 3 and Sekiro: Shadows Die Twice, and potentially others.
  • Tweaked memory allocation behaviour in an attempt to mitigate memory allocation issues on Nvidia (#1100), and to waste slightly less virtual address space for 32-bit applications.
  • If VK_EXT_shader_viewport_index_layer is supported, DXVK will no longer use geometry shaders for certain operations. This is mostly useful to improve MoltenVK compatibility.
  • Fixed incorrect clear behaviour for images with integer formats, as well as various minor issues that are not known to affect any game.
  • EVE Online: Fixed a performance regression introduced in DXVK 1.2 (#1131)
  • Final Fantasy XIV: Slightly improved performance on the RADV driver if VK_EXT_shader_stencil_export is supported.

Version 1.3

13 Jul 18:35
v1.3
7cb385f
Compare
Choose a tag to compare

Update: Binaries were re-built with 03c6df5 due to a potential bug in GCC 9.1.

Features

Discard optimization

The new VK_EXT_shader_demote_to_helper_invocation extension is now used to implement the discard instruction in shaders, which may improve performance in some games. This requires a winevulkan update, as well as the following driver versions:

  • AMD: Not supported
  • Intel: Mesa 19.2-git
  • Nvidia: 418.52.14 (Vulkan beta)

Additionally, the previous early-discard optimization which works without this extension has been enabled on RADV with the ACO compiler backend. It is not enabled with the default LLVM backend due to LLVM bugs.

Asynchronous presentation

In order to reduce stalls on the main rendering thread, presentation is now being performed on the command submission thread that was introduced in DXVK 1.2. This can improve performance especially in scenarios with high frame rates and when command submission is expensive.

One game that benefits is Quake Champions on AMD GPUs.

Resource upload chages

If available, DXVK will now use the copy engines of the Vulkan device for initial resource uploads. This may slightly improve frame time consistency if a game loads a large number of textures during gameplay. Currently, this is only supported on the AMDVLK and Nvidia drivers.

Bug fixes and Improvements

  • Removed busy-waiting during presentation. This change will most likely not affect performance, but can reduce CPU load considerably in GPU-limited scenarios.
  • Improved error logging in out-of-memory conditions (PR #1112)
  • Improved MSVC compatibility (PR #945, PR #1110)
  • Fixed incorrect behaviour when an already mapped image subresource gets mapped again. Encountered in Final Fantasy XIV.
  • Scrap Mechanic: Fixed crash caused by incorrect RSGetViewport behaviour (#1116, PR #1117)

Version 1.2.3

26 Jun 20:32
v1.2.3
7491c06
Compare
Choose a tag to compare

Bug fixes and Improvements

  • Fixed bug that would cause some Unreal Engine 4 games to show error messages upon exit (PR #1104)
  • Fixed regression which would break texture loading in World of Warships and potentially other games (#1096)
  • More minor CPU overhead optimizations
  • Implemented timestamp disjoint queries properly to make measuring time on the GPU more robust.
  • Improved memory allocation behaviour under memory pressure. This may in some situations improve performance on lower-end Nvidia GPUs.
  • Improved staging buffer allocation behaviour to limit the amount of memory that is permanently reserved for resource uploads.

Version 1.2.2

15 Jun 12:08
v1.2.2
dc3e5e5
Compare
Choose a tag to compare

Bug fixes and Improvements

  • Planet Coaster: Fixed crash on startup. Note that this game requires additional wine patches as of wine 4.10. (#1091)
  • Team Sonic Racing: Fixed startup issue on some setups (PR #1089)
  • Minor CPU overhead optimizations
  • Improved compute shader performance on Nvidia GPUs in some games, including Nier: Automata
  • Fixed various minor bugs that caused wine test failures

Version 1.2.1

19 May 16:02
v1.2.1
cdc5e93
Compare
Choose a tag to compare

Bug fixes and Improvements

  • Fixed issue that would lead to broken binaries on old versions of GCC
  • Improved performance of Append/Consume buffers on some drivers
  • Improved ReShade compatibility (#1057)
  • Lords of the Fallen and The Surge: Fixed performance issue causing low GPU utilization (PR #1049). Also affects Overwatch on some systems.
  • Yakuza Kiwami 2: Fixed frequent crashes and tone mapping issues (#1053)

Version 1.2

13 May 19:10
v1.2
26602b2
Compare
Choose a tag to compare

Features

Command buffer submission tweaks

A separate thread is now used for command buffer submission, which may increase performance in some CPU-bound scenarios. Furthermore, command buffers are submitted more frequently to avoid stalls and increase GPU utilization in those situations.

One game which benefits from these changes is Quake Champions.

D3D11 extensions

Some rendering features that are not officially supported by the D3D11 API, but are exposed by vendor-provided libraries on Windows, are now supported by DXVK and are required for the experimental dxvk-ags project to work.

Bug fixes and improvements

  • Minor reduction of CPU overhead in some games
  • Fixed an issue that would cause redundant state cache entries to be created and identical Vulkan pipelines to be compiled multiple times
  • Fixed an issue that could lead to incorrect Vulkan usage or crashes when using the D3D11.1 ClearView method
  • Mirror's Edge Catalyst: Disabled NVAPI hack to avoid issues on Nvidia GPUs (PR #1046)