ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.26k stars 175 forks source link

lag spikes after 25-40 minutes of playing on linux #11446

Open darix opened 1 week ago

darix commented 1 week ago

A lot of details are already collected in:

https://github.com/doitsujin/dxvk/issues/4436

it could be related for a LD_PRELOAD added for the "record your game" feature?

the workaround while we wait for the fix

please see this comment for all the details https://github.com/doitsujin/dxvk/issues/4436#issuecomment-2466646597

TerohsLab commented 1 week ago

Can confirm the findings of that thread on KDE Tumbleweed Wayland.

It started happening around the time "record your game" rolled out for me.

LethalManBoob commented 1 week ago

Valve should fix all the preload errors that spam the console when using it and playing games

HeinsKetchup commented 1 week ago

Pulling this from a reddit topic I saw where the user also had the issue, may be relevant:

"When I run 'top' in the terminal I see the game running 'engMain', when I have it focused, the %CPU will show somewhere between 300 - 400 when not moving my mouse - the game runs fine. When I touch my mouse the %CPU value plummets to about half of whatever was initially shown and the game stutters. This does not happen when the game is initially started"

SheMelody commented 1 week ago

I'm the one who started this recently in the other repo issues and I can confirm that it is still happening. You can get rid of this by using LD_PRELOAD="", but you can still use LD_PRELOAD to preload your own libraries.

Can confirm the findings of that thread on KDE Tumbleweed Wayland.

It started happening around the time "record your game" rolled out for me.

Exactly.

pkly commented 1 week ago

Also happens to me on gnome 47, Wayland, fedora 41, Nvidia 560 and 565, started happening when the game recording update came out. Additionally I'm not sure if it's part of the same problem but with the overlay enabled doing nothing (no game recording enabled, no windows, no chat, nothing) the overlay vram usage balloons to almost 2gb reported by nvidia-smi.

SheMelody commented 1 week ago

@kisak-valve I just want to add that this also happens when the overlay is turned off through the Steam UI.

(with also both game recording and steam input disabled as well, from the UI of course)

https://github.com/doitsujin/dxvk/issues/4436#issuecomment-2466438353

rafaberaldo commented 1 week ago

Having the same problem, started after the Steam Game Recording update as well, enabling the overlay fixed the problem.

MichaelDeets commented 1 week ago

I've had this issue for years https://github.com/ValveSoftware/csgo-osx-linux/issues/2901 but I only play 1-2 games, so after CS:GO moved to CS2, the issue went away.

But for years, CS:GO using DXVK native required LD_PRELOAD=""

d3nd3 commented 1 week ago

gameoverlayrenderer.so most likely culprit

SheMelody commented 1 week ago

gameoverlayrenderer.so most likely culprit

It definitely is.

TerohsLab commented 1 week ago

But many of us have the steam overlay and recording feature turned off in the options. So why would it even load that?

SheMelody commented 1 week ago

But many of us have the steam overlay and recording feature turned off in the options. So why would it even load that?

That's probably part of the bug. /environ shows that the library still loads even though those things are turned off. Hence why LD_PRELOAD="" fixes the issue (prevents said library from loading).

Tridale commented 1 week ago

While it does seem like people have helped corner the source of the issue, I figured a little more information couldn't hurt.

Note that using LD_PRELOAD as SheMelody suggests appears to have fixed my issues, will need to test further to confirm but initial tests has been very promising. A huge thank you to them as when I look further at this issue it's clear they put in a lot of legwork on trying to help pinpoint this issue.


After the steam update about a week ago, the one that apparently added in additional recording features as well as updated to runtime environments scout, soldier and sniper, both of my linux systems would have issues playing games through proton. I'd notice the odd tiny bit of jitter while playing, but after 20-50 minutes (depending on game and game settings) I'd start getting horrible framerate drops whenever I...

The stuttering would last for about a second after the input stopped, and if the input was just a single key press that was held for a few seconds it would stop. As I had a controller connected I switched to that and the game I was playing (subnautica) ran perfectly smooth, went back to mouse and keyboard? Stuttering. This stuttering also appeared to be framerate only, as on the main menu of one of the games (Again, Subnautica) the mouse cursor would move smoothly, but the background animations would stutter like mad while I was moving the cursor once I had hit this 'time to stutter' threshold.

So whatever issue is involved with this overlay issue is also tied with mouse and keyboard input. At least on my end after some testing. What I did not do is continue using the controller for another 50 minutes or so to see if there's some sort of 'input buffer' that fills up with a specific kind of input that would cause the controller input to start lagging.

This was also exclusive to steam, as I have games that run natively on linux or I use regular WINE for that do not suffer this stuttering issue.

I'll also give additional system information on both of my systems below, the only thing that unifies the two systems is that they are linux, are AMD CPU and graphics and the three games I tested had some sort of internet traffic, though both machines run on completely different internet connections (wired/wi-fi) and ISP's.

Desktop (Tested with Subnautica with Archipelago multi-world randomizer):

Laptop (Tested with Helldivers 2 and Mechwarrior Online):

Steam overlay has been entirely disabled through the Steam UI on both PC's as well.

netborg-afps commented 1 week ago

Yes, LD_PRELOAD="" fixes it for me as well, but do I need to put it in the launch options for every game or can I set it globally?

SheMelody commented 1 week ago

Yes, LD_PRELOAD="" fixes it for me as well, but do I need to put it in the launch options for every game or can I set it globally?

Do not set it globally, no.

ndrspcfd commented 1 week ago

I've been having the same symptoms using conty_lite.sh w/ Slackware current from the 8th Nov or so: Subnautica becomes unplayable slideshow after 1/2 hour to an hour (playing with kb/mouse).

After the LD_PRELOAD workaround this seems to have gone away. Thanks for that!

I still see "ERROR: ld.so: object '/home/pete/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored." with the workaround in place and overlay disabled for the game and then disabled globally.

Wonder if it's some byproduct of setenv changes ?

atimeofday commented 6 days ago

Disabling steam game recording on a per-game basis through its settings UI seems to solve this issue for me without losing other things. (Game tested: Warframe)

phpony commented 6 days ago

If you're using gamemode you can just use this hack to temporarily hide gameoverlayrenderer.so from the game without messing with other libs:

~/.config/gamemode.ini

[custom]
start=mv ~/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so ~/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so.bak; mv ~/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so ~/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so.bak
end=mv ~/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so.bak ~/.steam/debian-installation/ubuntu12_64/gameoverlayrenderer.so; mv ~/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so.bak ~/.steam/debian-installation/ubuntu12_32/gameoverlayrenderer.so

UPD. No, it isn't the best approach because gamemode doesn't wait for script to exit so it's possible it'll launch the game before the lib is hidden.

ShikharArvind commented 4 days ago

Had similar issue with The Witcher 3. After 30-50 min of smooth playing, the game stutters significantly with constant FPS drops. Launching the game with LD_PRELOAD="" seems to have fixed the issue.

darix commented 4 days ago

TBH: if all you want to add to the bug is "oh yeah i had that issue too and the solution helped me" please just click the thumbsup in the initial post in this thread. those comments do not add any more useful information to the issue.

Thank you in advance.

MissPotato commented 2 days ago

I want to add that doing LD_PRELOAD="" breaks the steam ingame overlay (obviously) but also doesn't completely solve the issue. Anytime steam pushes a notification, such as a friend going online, the system hangs will still happen. As well as having the full steam interface as the primary application will cause major slowdowns with a game running. Minimizing the steam window (or having it in the background) is fine.