After resume from suspend graphics are broken (Linux, Nvidia)
This has been a problem for a while, currently on Firefox 126.0 and Nvidia 550.78. I can work around the problem by forcing webrender to use software mode.
When using HW accelerated webrender with my Nvidia graphics card everything works fine until the PC wakes from sleep, then graphics are broken and Firefox needs restarting. Most noticeable for me is when looking at Grafana graphs they will look like random lines, and my Frigate NVR snapshots only display some of the time.
Is there anywhere in Firefox that will show a log of any error messages to do with the graphics card? I would like to try and fix the problem rather than disabling HW acceleration, but with no logs to look at that is impossible. No other programs seem to have a problem with resuming from sleep, and no error messages are shown in any of the system logs.
Všetky odpovede (11)
What OS? What Desktop? X11 or Wayland?
I have the below on my laptop and not having this issue. Device-2: NVIDIA GK104GLM [Quadro K3100M] driver: nvidia v: 470.239.06
Operating System: openSUSE Tumbleweed 20240310
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.12
Kernel Version: 6.7.7-1-default (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-4810MQ CPU @ 2.80GHz
Memory: 31.0 GiB of RAM
Graphics Processor: Mesa Intel® HD Graphics 4600
Manufacturer: Hewlett-Packard
Product Name: HP ZBook 17 G2
I am on Slackware64-current, using X11 with Openbox window manager. I have just looked back in my logs and in September 2023 I was using Nvidia driver 535.x already, maybe something that changed in the drivers between 470.x and now is causing problems with Firefox. My graphics card is an RTX 3060 and is the only graphics card in the system.
It's possibly related to https://bugzilla.mozilla.org/show_bug.cgi?id=1743051 although I haven't noticed the exact effect shown in the videos. For me it is usually graphs that start flickering and then I know I have to restart Firefox :) I see that bug mentions EGL though, so I have just forced Firefox to use GLX instead by setting gfx.x11-egl.force-disabled to true. After a short sleep and resume test, Grafana still seems OK using GLX webrender but I will have to give it a bit longer to see what happens after some more sleep and hibernating.
Unfortunately using the GLX backend didn't fix it. After getting back home this evening and waking my PC, the graphs are broken again and a strava map I had left open is also broken even after reloading.
I should be able to test with KDE to see if that makes a difference, but it seems more like a problem with the nvidia drivers and GL libraries rather than the desktop environment. Maybe using Wayland instead of X11 would fix it, but I have no idea how to do that :)
Upravil(a) Adam dňa
I say good old nvidia. Can't wait to hear the results of the KDE test. Why not also try another distro via live usb stick. ;-)
I finally had a chance to close everything and reboot into a KDE Plasma (X11) session. I started up Firefox and put the PC to sleep for 1 minute using the KDE menu but I still had the same problem when waking it. I was running Firefox from a terminal this time since that was easier that trying to find it in the menus and noticed the error messages ``` [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. ```
As for testing with a live USB, that would be a good idea to rule out any Slackware issues - but I don't think any live USB would boot with the nvidia binary driver by default? So I would need to actually install the distro and install the nvidia driver.
edit: I have just noticed that I still get the device reset messages in the terminal even in times when Firefox still resumes correctly.
Upravil(a) Adam dňa
I have found that I don't need to put the PC to sleep to reproduce this problem. I can just switch to a text console with CTRL+ALT+F1 and then back to the X console again and Firefox will be broken.
Adam said
I finally had a chance to close everything and reboot into a KDE Plasma (X11) session. I started up Firefox and put the PC to sleep for 1 minute using the KDE menu but I still had the same problem when waking it. I was running Firefox from a terminal this time since that was easier that trying to find it in the menus and noticed the error messages ``` [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. [GFX1-]: GFX: RenderThread detected a device reset in PostUpdate [GFX1-]: Failed to make render context current during destroying. ``` As for testing with a live USB, that would be a good idea to rule out any Slackware issues - but I don't think any live USB would boot with the nvidia binary driver by default? So I would need to actually install the distro and install the nvidia driver. edit: I have just noticed that I still get the device reset messages in the terminal even in times when Firefox still resumes correctly.
Did you try another distro? Output from the terminal is common. Here is what I get, but I never need to run it from the term when I have icons in my favorites and on the taskbar. see screenshots
Upravil(a) jonzn4SUSE dňa
I did test with the opensuse live USB and there was no problems. But this used mesa/sotware rendering because the nvidia drivers can't be used without doing a full install of the distro (unless I created my own live USB :) )