flathub / com.valvesoftware.Steam

https://flathub.org/apps/details/com.valvesoftware.Steam
337 stars 70 forks source link

Fossilize memory leak with latest runtime update #1156

Closed valeth closed 9 months ago

valeth commented 10 months ago

Steam's fossilize leaks memory with some games when updating to the latest stable branch using runtime 23.08.

I've noticed a severe leak with Deep Rock Galactic, where it filled up 32GB of available memory in seconds. Other games like Warframe don't seem to have this problem, other than the compilation step taking a very long time.

After downgrading to Flatpak commit 227a5e654498b890a13fc6612fdc3b12a4ebd943f1e764972a5ff0e65882b9a4 which uses the previous runtime 22.08, the issue went away.

System: CPU: AMD Ryzen 5 7600X GPU: AMD RX 6950XT MEM: 32GB DDR5 (+8GB of swap) Base OS: Arch Linux Flatpak Version: 1.15.4

doogie544 commented 10 months ago

this is a known issue with mesa 23.1.6

https://github.com/ValveSoftware/Fossilize/issues/231 https://github.com/ValveSoftware/Proton/issues/284 https://gitlab.freedesktop.org/mesa/mesa/-/issues/9717 https://github.com/ValveSoftware/Fossilize/issues/230

Flatpak need to add 23.1.7 top get this fixed, maybe the Steam flatpak can to be re-released to temporarily use mesa 23.1.5 until 23.1.7 is added to the available flatpak (non-beta) runtimes

Users affected can also workaround this issue by create a steam_dev.cfg file in ~/.var/app/com.valvesoftware.Steam/.local/share/Steam with the contents of

unShaderHighPriorityProcessingThreads 4

This will restrict the process to only 4 threads so will slow down all shader compilation for every game. (I tried more but only 4 would work with 32G of RAM, if you have less ram you may need to use less cores)

Of course you can also just skip the shader compiling at the start of the game, you do have enough time to do that if you are quick. Mesa now uses the GPL by default so you are not likely to notice any stuttering like you did before if you cancelled the process

Disabling the shader pre-caching also works but then the movies in the games may not work as the video.fox that Valve uses to store the transcoded videos is downloaded as part of the shader precache.

valeth commented 9 months ago

@doogie544 The version I rolled back to is using Mesa 23.1.6 and does not leak memory.

valeth commented 9 months ago

The runtime seems to now have updated their Mesa version to 23.1.7, and this seems to fix the issue.