Releases: doitsujin/dxvk
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.
Version 1.0.2
Version 1.0.1
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
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
andVK_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.
Version 0.96
Improvements
- Reduced CPU overhead by eliminating redundant Vulkan API calls. This mostly affects games with a large number of different shaders, such as Shadow of the Tomb Raider.
- Reduced GPU synchronization overhead in some situations for minor performance gains.
- Tessellation shaders may be more efficient on some drivers and no longer trigger Vulkan validation errors.
Bug fixes
- Fixed incorrect MultiDrawIndirect behaviour introduced in v0.95 (see PR #863)
- Fixed crash in Resident Evil 2 Demo when using Wine's DXGI implementation (see PR #878)
- Fixed potential issue with DXVK clearing the wrong render targets, which could lead to various types of rendering errors.
- Fixed regression introduced in v0.95 that caused rendering issues in Titanfall 2 and potentially other games.
- Mass Effect Andromeda: Actually report Nvidia GPUs as Nvidia GPUs to fix corrupted screen space reflections (#885)
State cache
As part of reducing the number of Vulkan API calls, the state cache format version changed in this release from v2 to v3.
- Existing v2 state caches created with older versions of DXVK will be converted to v3 and continue to work. However, it is possible that some pipelines will have to be recompiled regardless, which may lead to occational stutter.
- When reverting to an older DXVK version, any v3 state cache will be invalidated.
Configuration options
- The
d3d11.fakeStreamOutput
option got removed. On drivers which do not supportVK_EXT_transform_feedback
, DXVK now behaves as if that option was enabled, so that games such as Overwatch will continue to work as before on those drivers. - The
dxgi.maxFrameLatency
option, which was accidentally dropped in an earlier release, is now implemented again.
Version 0.95
UPDATE: This release will break some games. Please update to 0.96 if you experience issues.
Improvements
- Minor reduction of CPU overhead.
- If available, the
multiDrawIndirect
Vulkan feature will be used to batch indirect draw calls. Improves performance in Assassin's Creed Odyssey by up to 20% when CPU-bound. May improve other games with similar engine design. DXVK_HUD=full
can now be set to enable all HUD elements (#842)
Bug fixes
- Fixed various D3D10 stability issues (see PR #833, #843). May improve stability in Just Cause 2.
- Call of Duty: WWII and Need for Speed 2015: Fixed startup issues on Nvidia (#850, #832)
- Fifa 19: Work around game bug causing grass to be black (#642)
- Resident Evil 2 Demo: Fixed crash on start. Note that the game may render incorrectly due to a game bug (#855).
- Superhot VR: Fixed regression causing game to crash on start
Version 0.94
Improvements
- Optimized descriptor pool allocation for lower memory consumption.
- Enabled early-discard optimization (#753) on AMDVLK and proprietary AMD drivers, in addition to Intel. Still disabled on RADV and Nvidia.
- Minor potential performance improvements on AMD and Intel hardware.
Bug fixes
- Fix unhandled exception when Vulkan initialization fails (#810)
- Fix incorrect error return when using ReShade
- Anno 2205: Work around crash issue (#686)
- Farming Simulator 2019: Fixed black screen on older Nvidia GPUs (#775)
- GTA V: Fixed minor rendering issue in cutscenes (#712)
- Ni no Kuni II: Fixed fullscreen mode issue (#291)
Version 0.93
Improvements
- Support DXGI 1.4.
- Added
dxvk.numCompilerThreads
config option to set the number of threads used for pipeline compilation. Only has an effect when the state cache is being used. Allowing more threads to be used may be useful for games that compile all their shaders up-front, e.g. Overwatch and Quake Champions, especially on low-core-count CPUs.
Bug fixes
- Dark Souls III: Fixed performance regression on GPUs with small VRAM (see ValveSoftware/Proton#478)
- Overwatch: Fixed incorrect shadow rendering on Nvidia drivers.
- Quantum Break: Work around game bug causing artifacts on RADV 18.3.
- The Witness: Fixed incorrect use of Dual-Source blending (#724).
Compatibility
- MinGW 6.0 is now required for building.
Version 0.92
Bug fixes and improvements
- Fixed build issues some users were experiencing with Meson 0.44.
- Implemented
dmovc
instruction. Fixes a Mandelbrot demo mentioned in #216. - LA Noire: Fixed rendering issues caused by a game bug (#744).
- Lords of the Fallen and The Surge: Fixed visual issues caused by the lack of depth-stencil buffer mapping (#285). This may have a significant impact on performane in these two games.
- Shadow of the Tomb Raider: Support bit-accurate clears for
R11G11B10
UAVs. This silences an error message in this game, but should have no impact on visuals or performance.