Another big release of the Direct3D 8/9/10/11 to Vulkan translation layer (used by Proton) has been released. With DXVK v2.5 bringing rewritten resource and memory management. This should make it a whole lot more efficient at allocating video memory.
Noted in the announcement:
- Reduced fragmentation may reduce peak memory usage in games such as God of War by up to 1 GiB in extreme cases.
- Memory defragmentation is now performed periodically to return some unused memory back to the system.
The goal is not to reduce VRAM usage at all costs; instead this is done conservatively if the system is under memory pressure, or if a significant amount of allocated memory is unused. Keeping some unused memory is useful to quickly service subsequent allocations.
This will work best if you have GPU drivers that support both VK_EXT_memory_budget and VK_KHR_maintenance5. They're now recommending you have at least Mesa 24.0 or NVIDIA 560.35.03.
Hopefully then, this will mean less potential lock-ups in certain games on systems like the Steam Deck, which has in the past been a bit notorious for VRAM spiking up and then the system just locking up. Something I and many others have seen in God of War and various other AAA games.
Various other enhancements like support for emulated cursors was implemented for the D3D9 cursor API, allowing games to properly set an image as the mouse cursor.
For D3D9, a fix was implemented for Unreal Engine 3 games that was causing some visual inaccuracies. They also noted some D3D9 games that had specific fixes including:
- Ascension to the Throne.
- Command & Conquer: Generals.
- King's Bounty: Warriors of the North.
- Tomb Raider: Legend.
- Rayman 3.
Onto D3D11 / DXGI there's also improvements to "reduce system memory pressure and improve stability in 32-bit games" resulting in fixes for Total War: Rome II, Total War: Warhammer III and Ryse: Son of Rome. But some CPU-bound games will see lower performance like Shadow Warrior 2.
Pictured - Sekiro: Shadows Die Twice
Some more games that had specific fixes include:
- Sekiro: Shadows Die Twice.
- Call of Duty: Modern Warfare 2 Campaign Remastered.
- Diablo 4.
- The Sims 4.
- Vindictus.
- Yakuza 0 and Yakuza Kiwami.
- Dishonored 2.
- Tales of Arise.
This release also brings an SDL3 backend for DXVK-Native, for using DXVK with Native Linux games.
See more in the release notes.
If you're curious on how to upgrade, you don't actually need to do anything. Proton and GE-Proton use DXVK directly, and so they both pull in updates in their new releases. However, for those who like to live on the wild side, you can upgrade the DXVK version in Proton yourself. Do it at your own risk.
To do so you can just overwrite the existing DXVK files with the release download of the latest DXVK. You can find your Proton install somewhere like this (depending on your Steam Library drives):
For Proton 9 and Proton Experimental:
path-to-your/SteamLibrary/steamapps/common/Proton x.x/files
Proton 8 and below:
path-to-your/SteamLibrary/steamapps/common/Proton x.x/dist
Where x.x is whatever Proton version installed you wish to give a new DXVK.
Inside there you will see "lib" and "lib64", for 32bit and 64bit. Inside each of those, there's a "wine" folder and inside there is a "dxvk" folder and that's where you replace the files with new versions. If you mess anything up, one way to ensure it gets reinstalled cleanly is just to remove the "/dist" folder.
Hopefully then, this will mean less potential lock-ups in certain games on systems like the Steam Deck, which has in the past been a bit notorious for VRAM spiking up and then the system just locking up. Something I and many others have seen in God of War and various other AAA games.FWIW, this was a big reason to do this kind of rework. God of War pretty much went from locking up the Deck after like 10 minutes of teleporting around to being pretty much stable in my testing, at least on default settings. Recent SteamOS updates help too.
But at some point end of last year or beginning of this year something changed either on nvidia drivers or DXVK/VKD3D that when i hit VRAM limit i just had frametime spikes but no huge FPS drop. Cyberpunk 2077 with loads of mods and Path tracing was hitting 10GB that my GPU has and Icarus and Sons of the Forest as well when playing long sessions. But the games played still mostly fine apart from few frametime spikes (when it was swaping the memory around i guess?).
Never seen game or system crash because of that though.
But, good to see even more improvements on that.
Last edited by Xpander on 12 November 2024 at 8:46 am UTC
adding other tests this time with some 32bit dx11/dx9 titles, appear some interesting results in my case:
f1 race stars have performance issues on singapore track when stay raining (fps fall to around 40fps) but stay at 60fps in same scenary and same situation
other case occur with farcry 3, in this game before dxvk 2.5 game run around 20fps and gpu dont pass around 15% of usage but now performance up to 60fps in my case and gpu usage up to around 50 to 55%
however in my case skyrim legendary stay in 30fps with 99% gpu usage
Last edited by mrdeathjr on 12 November 2024 at 12:51 pm UTC
Where doitsujin answered:
This is not a bug, DXVK does not free once allocated memory blocks by design since doing so would require defragmentation, and is generally not very useful if the game needs more VRAM once again.
Last edited by kokoko3k on 13 November 2024 at 5:26 am UTC
Hopefully then, this will mean less potential lock-ups in certain games on systems like the Steam Deck, which has in the past been a bit notorious for VRAM spiking up and then the system just locking up. Something I and many others have seen in God of War and various other AAA games.FWIW, this was a big reason to do this kind of rework. God of War pretty much went from locking up the Deck after like 10 minutes of teleporting around to being pretty much stable in my testing, at least on default settings. Recent SteamOS updates help too.
Amazing! Thanks for coming to confirm! Great stuff.Hopefully then, this will mean less potential lock-ups in certain games on systems like the Steam Deck, which has in the past been a bit notorious for VRAM spiking up and then the system just locking up. Something I and many others have seen in God of War and various other AAA games.FWIW, this was a big reason to do this kind of rework. God of War pretty much went from locking up the Deck after like 10 minutes of teleporting around to being pretty much stable in my testing, at least on default settings. Recent SteamOS updates help too.
See more from me