linuxmint / muffin

The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)
GNU General Public License v2.0
197 stars 93 forks source link

Regression- Games that are running way above of 60 fps hard locks the system #607

Open Leopard1907 opened 3 years ago

Leopard1907 commented 3 years ago

Issue After latest Muffin update dropped at 2021-10-16 , games that are running way above of 60 fps locks up entire system. Moreover, disabling/enabling compositing setting at "General" settings of OS doesn't seem to have any effect.

Steps to reproduce

I can consistently reproduce the issue with Half Life 2 from Steam. Running Steam client with __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only to make sure everything runs on Nvidia dgpu. This is a prime system, at on-demand mode.

Expected behaviour

Not crashing,freezing,hanging

Other information

Game is set to fullscreen. Vsync is off in game, vsync is on on Cinnamon DE settings. Changing Vsync methods doesn't seem to have any effect.

Leopard1907 commented 3 years ago

I've tested with KDE Plasma on same system, using Kubuntu's KDE backports ppa. Everything runs fine there. So it is a Cinnamon/Muffin issue.

clefebvre commented 3 years ago

Can you confirm that going back to muffin 5.0.1 fixes the issue?

Leopard1907 commented 3 years ago

Yes. Muffin 5.0.1 behaviour is treating every window as non fullscreen on my end, so that is likely why it doesn't have this problem above. It basically forces compositing pipeline on his own i think, despite whatever is set about it on settings; which doesn't have any effect.

So going back 5.0.1 fixes this issue but regresses linked below on my end. A trade off.

https://github.com/linuxmint/muffin/issues/592#issuecomment-946783949

mtwebster commented 3 years ago

I'm suspecting this: https://github.com/linuxmint/muffin/commit/8cfef3cfd183255b2f8800597132214b60dd8fd7, though I'll try to confirm it. The enable/disable compositing may no longer work because some other condition is now being met before the preference is checked.

mtwebster commented 3 years ago

My system seems to lock up on HL2 no matter which version of muffin I'm using

image

It runs anywhere from not even getting past the initial new/load game dialog to a minute or so in game. The freezes are complete system locks, though the mouse still responds. I need to cycle power when it happens.

Is this the same behavior you get in 5.0.2?

Leopard1907 commented 3 years ago

Yes, 5.0.2 behaviour is exactly like you experienced. Non recoverable system lock.

Fwiw, HL2 is just an app that i gave an example there because it is native/doesn't involve Proton.

On Wine/Proton side it is reproducible too. Apps that i experienced same issue as HL2 ( probably every one of them repros the issue ):

I usually have Mangohud on so one thing i noticed after Muffin update was how frametiming gone bad ( many spikes on frametiming histogram graph) in at least Plague Tale.

mtwebster commented 3 years ago

Can you try out the packages here: https://www.dropbox.com/sh/zop2wm9321pw07j/AAB27Rds4JqC0tsejeeXSYNxa?dl=0

That's 5.0.2 with only a single specific commit reverted. I'm pretty certain it's the cause but I don't want assume, and I'm unable to observe any real difference between 5.0.1 and .2 on my current system (lenovo thinkpad) - locking up on both.

If we can confirm which commit is suspect, I'll have another look at the issue originally addressed by it.

'll also try this on a desktop system when I get a chance.

Leopard1907 commented 3 years ago

I have tested those packages, they solve the issue. Game didn't hang at two 10+ minutes gameplay sessions at 280+ fps.

Game doesn't hang, compositing is always forced despite what it is set. Not that i prefer tearings or anything but that is feature that doesn't work properly which i observed works just fine (enabling/disabling) on KDE/Kwin.

caitisgreat commented 3 years ago

Without having checked the packages myself, but basing my concern solely on the comment below, I'm concerned about restoring the composition issue from https://github.com/linuxmint/muffin/issues/544. Only this past month have I been able to appropriately use G-SYNC under Proton & Wine. It's been a great boon.

I'm suspecting this: 8cfef3c, though I'll try to confirm it. The enable/disable compositing may no longer work because some other condition is now being met before the preference is checked.

ghost commented 3 years ago

Can you try out the packages here: https://www.dropbox.com/sh/zop2wm9321pw07j/AAB27Rds4JqC0tsejeeXSYNxa?dl=0

That's 5.0.2 with only a single specific commit reverted. I'm pretty certain it's the cause but I don't want assume, and I'm unable to observe any real difference between 5.0.1 and .2 on my current system (lenovo thinkpad) - locking up on both.

If we can confirm which commit is suspect, I'll have another look at the issue originally addressed by it.

'll also try this on a desktop system when I get a chance.

The 5.0.2 Muffin update caused tearing in native Left 4 Dead 2 even if vsync is enabled on both the game and in Cinnamon Settings. Tried the packages with the commit reverted and there is no tearing in the game with vsync enabled.

Edit: The game lags occasionally with slightly slow mouse acceleration with the commit reverted and Vsync is enabled in both the game and the system.

Edit 2: Opened the issue #608 for more details about the Screen tearing issue.

Andre8900 commented 1 year ago

I am having the same issue since upgrading Mint from 20.3 to 21. If I run CS:GO on my Nvidia card using prime (in on-demand mode), my system hangs after a few minutes (usually max. 10) after playing. Clean installation didn't help. Not sure if it is related to muffin this time though. Can someone else test or confirm? @mtwebster you seem to have a suitable setup (laptop?) with two GPUs as well.

gmscs commented 1 year ago

I get the same issue and think it's related to muffin. Running games above 60fps on either the MATE or Cinnamon editions of Linux Mint hard locks the system but the games run fine on the XFCE edition. On the Cinnamon and MATE editions this only happens if the game is fullscreen and everything works fine if I run it windowed. It's an nvidia-prime laptop running the latest updates of LM 21.1 as of now and the issues have persisted for a couple of years now.

mhandze commented 11 months ago

I just tried CS:GO on dell xps nvidia on-demand mode and got the same freeze issue. Workaround for me is to run game in windowed mode (you can -sw param in game settings of Steam panel).

qwertychouskie commented 10 months ago

The latest patch to the Nvidia 535 series driver lists some potential freeze/crash fixes, including one specific to the use of __NV_PRIME_RENDER_OFFLOAD=1:

nvidia-graphics-drivers-535 (535.146.02-0ubuntu0.22.04.1) jammy; urgency=medium

  * New upstream release (LP: #2045913):
    - Fixed a bug that could cause some multi-GPU systems to crash on
      suspend.
    - Fixed a bug that could cause the system to crash when an
      application is run with __NV_PRIME_RENDER_OFFLOAD=1.
    - Fixed a bug which prevented application profiles from getting
      applied to PRIME Render Offloaded applications running via
      Wine.
    - Disabled PRIME Display Offload Sink support for virtual
      displays on datacenter GPUs. This prevents unusable desktop
      layouts from getting automatically configured on systems with a
      mix of physical and virtual displays.
    - Fixed a bug that caused high CPU usage during system suspend,
      which could lead to the system not entering s2idle in some
      cases.

It's probably worth re-testing to see if the issues are still present with the latest driver.

Leopard1907 commented 10 months ago

The latest patch to the Nvidia 535 series driver lists some potential freeze/crash fixes, including one specific to the use of __NV_PRIME_RENDER_OFFLOAD=1:

nvidia-graphics-drivers-535 (535.146.02-0ubuntu0.22.04.1) jammy; urgency=medium

  * New upstream release (LP: #2045913):
    - Fixed a bug that could cause some multi-GPU systems to crash on
      suspend.
    - Fixed a bug that could cause the system to crash when an
      application is run with __NV_PRIME_RENDER_OFFLOAD=1.
    - Fixed a bug which prevented application profiles from getting
      applied to PRIME Render Offloaded applications running via
      Wine.
    - Disabled PRIME Display Offload Sink support for virtual
      displays on datacenter GPUs. This prevents unusable desktop
      layouts from getting automatically configured on systems with a
      mix of physical and virtual displays.
    - Fixed a bug that caused high CPU usage during system suspend,
      which could lead to the system not entering s2idle in some
      cases.

It's probably worth re-testing to see if the issues are still present with the latest driver.

While i moved from Mint and Cinnamon entirely after opening this bug report, you're likely mixing things up. Issue was never about usage of that env var, issue was happening when exceeding native refresh rate of the display of one's. If you again, read the issue, regression was found already but they likely didn't want to touch the code further because of reasons.

Anyways, just wanted to say "is that randomly and magically fixed?" situation usually doesn't happen often, i recommend people who wants to do gaming more than a bit "eh, it runs if i compromise from this" to "i want a better experience with rather full feature set and a properly tested compositor/de" to use KDE/Kwin.

You can call it natural selection of Linux landscape or whatever but these small teams are usually not so keen to fix issues that exposes itself on gaming due to nature of it and so on. Cinnamon/Muffin combo isn't exactly a fast moving thing either so probably not a combo that should be used by people who wants to do gaming properly.

Danny3 commented 1 month ago

KDE with Plasma / Kwin really shows how many bug fixes and improvements can be done when more companies, organizations, developers and users focus on a single DE / compositor and try to work only on that to make it better! All this huge fragmentation between DEs / compositors gives a lot of problems and bad gaming compatibility / performance.

I recommend to everyone that wants the best compatibility and permance with games, to try Plasma / Kwin!