Skip to content

Releases: doitsujin/dxvk

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)

Version 1.1.1

04 May 16:00
v1.1.1
37f9a7f
Compare
Choose a tag to compare

Note: This is largely a re-release of DXVK 1.1, with bug fixes for several issues introduced in that release.

Features

Frame time consistency

Improved overall frame time consistency and fixed a related issue which could lead to triple buffering not working as expected. Affected games include Assassin's Creed Unity.

Per-game configuration

Configuration options in dxvk.conf can now be limited to one single executable, which enables the use of one global DXVK configuration file rather than one file per game. Refer to the Wiki for details.

Query rework

In order to improve performance in Unreal Engine 4 titles and others, Queries were re-implemented to allow for better GPU utilization. Since this is a widely used API feature, this change may affect many games.

Note: For best performance, both your Wine version and graphics driver must support VK_EXT_host_query_reset. This extension is available since Wine 4.5 as well as Proton 4.2, and on the following drivers:

AMD / Intel: Mesa 19.1-git
Nvidia: 418.52.05

Without this extension, certain games, such as Quake Champions, may perform significantly worse than with DXVK 1.0!

Memory optimization

In games with a large number of shaders, memory utilization was reduced by using in-memory compression for shader code and avoiding unnecessary copies, which may slightly increase shader compile times.

Note: This does not solve the out-of-memory issues with many 32-bit games, and does not affect VRAM utilization.

Bug Fixes and Improvements

  • Improved compatibility to Wine's Direct2D implementation.
  • Minor optimizations for multisample resolve operations, presentation, and other things.
  • Fixed incorrect shader behaviour with unbound resources.
  • Fixed incorrect MSAA sample locations in shader code.
  • Fixed an issue causing flickering or artifacts on AMDVLK in some games.
  • Fixed various crashes when using the Windows version of RenderDoc inside wine (#877, PR #1037, PR #1038)
  • Fixed incorrect behaviour of DrawAuto with a non-zero vertex buffer offset. May affect Space Engineers.
  • NieR:Automata: Enable workaround for occational rendering issues on Nvidia GPUs (#1036)
  • Sekiro: Shadows Die Twice: Improved overall performance by 5-10% compared to DXVK 1.0.3.
  • SpellForce 3: Fix water rendering issue, as well as crash on startup when using DXVK's D3D10 implementation (#1031)

Version 1.0.3

15 Apr 15:32
v1.0.3
b1c4cba
Compare
Choose a tag to compare

Bug fixes and Improvements

  • DXVK DLLs now include version information, which some games may rely upon (#980, PR #993)
  • Fixed issue where hashing geometry shaders with stream output metadata would return undefined results. This could lead to state cache files growing indefinitely.
  • Fixed issue where undefined data would be passed to the driver for unused specialization constants while compiling pipelines (PR #997). This may have caused unexpected shader cache misses.
  • Surface loss is now handled gracefully (PR #991)
  • Anno 1800: Fixed severe performance issue by enabling the d3d11.allowMapFlagNoWait option
  • Dark Souls Remastered and Grim Dawn: Added workaround to fix rendering issues on Nvidia GPUs
  • Star Citizen: Fixed invalid geometry shader causing GPU hangs and driver crashes (#267 (comment))

What happened to Version 1.1?

The release was taken back because it was causing game crashes and GPU hangs for some users. If you have a build environment set up, please test the latest master branch with as many games as possible to help find and troubleshoot the regressions.