The DXVK DirectX to Vulcan translation layer has been upgraded to version 2.4.1, which addresses a number of issues and enhancements.
Memory chunk sizes are now dynamically set based on the application's memory allocation, which improves out-of-the-box functionality in game launchers. The Vulkan swap chain issue was resolved, as were the descriptor pools. The default shader code generation for DXBC crazy instructions has been altered to address flickering issues in games with multiple vertex shaders. The D3D8 implementation was modified to handle errors and fix memory leaks. Optimizing vertex buffer uploads improved performance marginally. Some games utilizing software vertex processing were also improved.
dxvk Version 2.4.1
General improvements
- The size for memory chunks is now determined dynamically based on the amount of memory the application has already allocated.
This should improve the out-of-the-box behaviour in various game launchers; thedxvk.maxChunkSize
option was removed accordingly.- Fixed an issue where the Vulkan swap chain would not always be recreated appropriately in a native Wayland environment. (PR #4252)
- Fixed an issue with descriptor pools growing too large on Nvidia cards in some situations. (PR #4166)
- Changed default shader code generation for DXBC
mad
instructions to work around flickering issues in games that use different vertex shaders to render the same geometry in multiple render passes. Thed3d11.longMad
andd3d9.longMad
options were removed accordingly.D3D8 / D3D9
- Improved overall robustness of the D3D8 implementation with error handling and fixed various memory leaks.
- Slightly improved performance by optimizing vertex buffer uploads. (PR #4275)
- Significantly improved performance in some games using Software Vertex Processing. (PR #4274)
- Fixed full-screen presentation issues in some Game Maker games. (PR #4245)
- Removed
VK_IMAGE_USAGE_SAMPLED_BIT
from textures that don't need it. ( #4176)- Enabled strict float emulation by default on AMDVLK now that this driver optimizes the pattern emitted by DXVK. (PR #4203). Do note that this was already the case on RADV.
- Chrome: Gold Edition: Enabled 60 FPS limit to work around game issues at higher frame rates. (PR #4260)
- GTA: San Andreas: Fix regression that made it crash with DXVK 2.4 ( #4141, PR #4151)
- Operation Racoon City: Worked around a game crash. ( #4172, PR #4175)
- Prince of Persia (2008): Enabled 240 FPS limit to work around game issues at very high frame rates. (PR #4281)
- Rayman 3: Fixed missing geometry. (PR #4143)
- Serious Sam 2: Fix in-game videos ( #4158, PR #4161)
- Splinter Cell: Pandora Tomorrow: Enabled 60 FPS limit to fix broken input and physics. (PR #4254)
- The First Templar: Fixed lighting issues. ( #4291, PR #4292)
- The Sims 2: Fix regression that made it crash with earlier DXVK versions (PR #4277)
D3D11 / DXGI
- Worked around a general issue wherein some games default to an integrated GPU based on the amount of available video memory.
- Worked around an issue where various games would misbehave when the amount of available VRAM is reported as a power of two.
- Changed shader code generation for dot product instructions to be more in line with code generation on native drivers.
This fixes a water rendering issue in Trails through Daybreak on Nvidia. ( #4162)- Implemented a basic dead code elimination pass to avoid generating invalid SPIR-V shaders in rare situations.
Note: All these shader-related changes will invalidate fossilize databases.- Games will now leave fullscreen mode when the game window loses focus.
This is closer to Windows behaviour and fixes various issues with games hanging on some setups. (PR #2675)- Made sure the built-in options in DXVK for a game take precedence over the options enabled/disabled by DXVK-NVAPI.
This fixes a performance regression in God of War on Nvidia GPUs.- Batman Arkham Knight: Worked around an issue where the game does not start when it detects an Intel GPU. (PR #4152)
- Hunt Showdown: Fixed a crash caused by DXVK reporting a very high UMD driver version.
- Kena: Bridge of Spirits: Worked around a water rendering issue when the game detects an Intel GPU. (PR #4207)
- Microsoft Flight Simulator: Fixed garbled screen on start-up ( #4276)
- Senran Kagura Peach Ball: Fixed character models being rendered the wrong way around. ( #4216)
- The Sims 4: Work around a crash caused by a use-after-free bug in the game.