Skip to content

Releases: doitsujin/dxvk

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.

Version 1.0.2

01 Apr 16:37
v1.0.2
b7c4190
Compare
Choose a tag to compare

Bug fixes

  • Path of Exile: Fixed GPU hang when using 720p and 1440p resolutions (#813, #957)
  • Final Fantasy XIV: Fixed potential hang when changing display modes (PR #984)
  • Work around black screen in Nioh and Dissidia Final Fantasy NT Free Edition (PR #987)

Version 1.0.1

14 Mar 19:43
v1.0.1
7fa2fb5
Compare
Choose a tag to compare

Bug fixes and Improvements

  • Fixed memory allocation failures on Intel Bay Trail (#947)
  • Fixed regression that broke DXGI gamma control (#937)
  • Devil May Cry 5: Enabled d3d11.relaxedBarriers option by default to improve performance
  • Star Wars Battlefront (2015): Report Nvidia GPUs correctly to fix driver version error (#968)
  • Resident Evil 2 and Devil May Cry 5: Work around dark rendering issue on Nvidia GPUs (#956)
  • World of Warcraft: Fixed GPU hangs on Nvidia GPUs since game patch 8.1.5 (#964)

Version 1.0

25 Feb 21:27
v1.0
10140f4
Compare
Choose a tag to compare

Improvements

  • Added DXVK_HUD=api option to show the D3D feature level used by the application. Does not work correctly for D3D10 at the moment (#705)
  • The device filter now matches substrings rather than the full device name, which may help if the device name changes after driver updates on RADV (PR #921)
  • Minor performance improvement on RADV by generating better shader code.
  • Minor improvements to CPU overhead in some scenarios.
  • Potentially improved frame time consistency on Nvidia in some games
  • If available, the VK_EXT_memory_priority and VK_EXT_memory_budget extensions are now used to improve behaviour under memory pressure and to report available VRAM to applications more accurately, respectively.
  • The state cache directory will now be created if it does not exist yet (#907)
  • Resident Evil 2: Enabled new d3d11.relaxedBarriers option to improve performance by up to 10% in GPU-limited scenarios. Note that enabling this option for other games can cause issues.

Bug fixes

  • Fixed various minor issues where certain required Vulkan device features would not be enabled
  • Fixed rare issue where clearing multiple render targets does not work correctly if their size does not match
  • Fixed major performance regression on proprietary AMD driver introduced in previous releases.
  • Fixed invalid SPIR-V shaders causing Unreal Engine 4 games to appear yellow on the AMD proprietary driver.
  • Far Cry 3 / 4 / Blood Dragon: Fixed lighting artifacts around buildings on some GPUs.
  • Far Cry Primal: Fixed weird rendering issues that would occur on some systems
  • Final Fantasy XIV: Added workaround for division-by-zero issue causing artifacts (#904)
  • Heroes of the Storm: Fixed lighting issues on some objects (#777)
  • Monster Hunter World: Fixed invalid SPIR-V shader causing crashes on the Nvidia 418.43 driver (#930)
  • Overwatch: Implemented proper fix for shadow issues using the new VK_EXT_depth_clip_enable extension. The current workaround will remain active in case the extension is not supported.

New setup script

The winetricks verb that came with previous DXVK releases was replaced by a bash script to overcome some limitations. That way, users can now choose to use DXVK either with Wine's DXGI implementation or the one that comes with DXVK, see the Wiki for details on when this is useful.

Additionally, the new script also provides an option install the DXVK DLLs as symbolic links rather than copying the files, which may make updating DXVK for multiple wine prefixes easier provided that the location of the actual files isn't changed. Please refer to the Readme for usage instructions.