protonscr

Mem leak within Proton 10 (including GE)

protonclosed
ValveSoftware/Proton#9074 · opened 2025-09-28 by YupGamer1000 · updated 2025-09-29 · 3 comments · github
YYupGamer1000 2025-09-28 github

I've been using Arch Linux as my only OS for a while, and I've always had a mem leak. I finally figured it out, and there is a mem leak within Proton 10 (including the GE versions too). It doesn't matter what game. But when I run a game in Steam and on Proton 10, there is a leak; it shows up as a separate process called "steam.exe" or "Wine64" depending on what app you use to see the process name.

SSeercat3160 2025-09-29 github

I am experiencing this as well.

Proton's built-in c:\windows\system32\steam.exe (which is built from steam_helper/steam.c in this tree) appears to leak memory at up to 5 MiB/s on Proton 10, but not at all on Proton 9.

I have attempted to bisect Proton, compile with memory sanitizers, and run Proton instrumented with Valgrind and heapcheck, but I haven't yet managed to get any of that to work properly: I can't get Proton to build at every commit, ASan doesn't work on mingw-gcc, and I haven't managed to set up a functional sniper container environment with the debug symbols needed for Valgrind.

Steps to reproduce

  1. Set a game to launch with a version of Proton based on Proton 10
  2. Launch that game and let it run for a while
  3. Monitor the memory usage of the steam.exe process while the game is running, and observe that it is steadily increasing.
  4. Run the game again with a version of Proton based on Proton 9 and observe that the memory usage remains fairly stable rather than increasing.

If you cannot reproduce this, please mention if there's anything that can be done on my end to gather the necessary data to resolve this.

SSeercat3160 2025-09-29 github

@YupGamer1000: do you, by any chance, have xrizer installed through the xrizer or xrizer-git AUR packages? If so, does removing that package fix this memory leak? For me, it did.

  • I attached GDB to the steam.exe process and noticed that there were some threads referencing Tracy. I noted that Tracy is not used anywhere in the Proton source, so I examined where that could possibly be coming from.
  • When initializing VR, this steam_helper stub loads the vrclient library into its own address space, which in turn loads an actual VR client library. In my case, this is xrizer.
  • xrizer has a non-default cargo feature to profile with Tracy. However, the AUR packaging for xrizer compiles it with --all-features, which pulls in that feature.
  • Thus, when xrizer is loaded into steam.exe, tracy comes with it. It seems that something tracy is doing causes it to leak memory this way when in this process.

If the original reporter is in the same situation, I think it can be concluded that this is probably not an issue with Proton.

YYupGamer1000 2025-09-29 github

@Seercat3160 I did, in fact, have AUR XRizer, and I removed it and replaced it with one of the prebuilt releases from the github, and the "steam.exe" process is nowhere to be seen. Though weirdly, I don't know if it is a proton 10 thing or an XRizer thing, but the process that is my game doesn't have its name and is instead called "GameThread". I have no idea if that is a bad thing or not, but it's better than a mem leak. I thank you so much for your reply, as I believe it has finally put an end to my Steam-wide mem leak.

Proton versions