Releases: doitsujin/dxvk
Version 1.3.3
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
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 theDXVK_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
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
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
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
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
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
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
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
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.