Ubuntu – Problems with Chrome browser after suspending the computer on Ubuntu 20.04

20.04google-chromenvidiaplasma-5suspend

  • Kubuntu 20.04, 64 bit
  • GPU: Geforce GT610
  • nvidia-driver-390
  • Chrome Version 85.0.4183.83
  • Intel i5-4430, core 4, 4 thread , 3GHz
  • RAM: 16GB

Each time I go into suspend mode and then resume, Chrome browser displays the current tab as full of sand of colors, something like dithering in image processing.

screenshot

Other tabs display glitches too.

The current solution is to close and reopen the browser.

I tested nvidia-driver-418 but got a black screen problem and reinstalled nvidia-driver-390.

The problem is more evident in Chrome, but it sometimes appears in vscode in small areas. There, hovering the mouse over the affected place or resizing the window fixes the problem. In Kubuntu the avatar of the user in the application launcher also shows dithered.

screenshot

I tested in the same machine with fedora 32 workstation(gnome), nvidia driver, and had the same problems with Chrome browser.

ubuntu-drivers output

Could it be a GPU problem?

Thanks in advance for any directions in how to fix the problem or information on what is causing it.

Best Answer

  • I'm having more or less the same issue, on:

    • Ubuntu 18.04, 64 bit
    • GPU: GeForce GTX 1070
    • Driver: 440.100
    • Chrome Version: 86.0.4240.75 (Official Build) (64-bit)

    I don't want to have to deactivate GPU usage for Chrome, and I don't want to have to restart the browser every time, losing all my tabs.

    But I found a workaround that is good enough for me (at least for now):

    You can kill just the browser's GPU process

    • Open the Task Manager:

      • Hit Shift+Esc (as pointed out by @NYCeyes in the comments).
      • Or alternatively, go to the Chrome main menu (3 dots on the top right corner) → More ToolsTask Manager.
    • Sort by process Task name.

    • Find the process called GPU Process.

    • Click on End process.

    Chrome Task Manager - GPU Process - End process

    That will "clean" all the glitchy image noise. And Chrome will immediately create a new GPU process automatically.

    Note: You can automatize the process, check Andrew Bruce's answer putting these steps in a script that runs automatically.

    I assume the problem is something like the GPU process using memory assuming it has the old state as before the sleep cycle, but it just has some default random noise from the default state. So I imagine Ubuntu doesn't save and restore GPU memory on a sleep cycle (I don't think it should) but the Chrome process doesn't detect that. And by killing the process it "frees" that GPU memory and then Chrome creates a new process that re-generates any needed GPU memory state (that's instant).