Ubuntu 20.04 上挂起计算机后 Chrome 浏览器出现问题

Ubuntu 20.04 上挂起计算机后 Chrome 浏览器出现问题
  • Kubuntu 20.04,64 位
  • 显卡:Geforce GT610
  • nvidia-驱动程序-390
  • Chrome 版本 85.0.4183.83
  • Intel i5-4430,4 核,4 线程,3GHz
  • 内存:16GB

每次我进入挂起模式然后恢复时,Chrome 浏览器都会将当前选项卡显示为充满彩色沙子,类似于图像处理中的抖动。

截屏

其他标签也显示故障。

目前的解决方案是关闭并重新打开浏览器。

我测试了nvidia-driver-418但出现了黑屏问题并重新安装nvidia-driver-390

该问题在 Chrome 中更为明显,但有时在 vscode 中也会出现在小区域。在那里,将鼠标悬停在受影响的地方或调整窗口大小即可解决问题。在 Kubuntu 中,应用程序启动器中的用户头像也显示抖动。

截屏

我在同一台机器上测试了 Fedora 32 工作站(gnome)和 nvidia 驱动程序,并且 Chrome 浏览器也遇到了同样的问题。

ubuntu-drivers 输出

可能是 GPU 问题吗?

答案1

我也有同样的问题。

启用enable-vulkan然后chrome://flags重新启动浏览器即可解决问题。如果此方法无效,您也可以尝试启用ignore-gpu-blacklist

答案基于这个旧的 askubuntu 回答

答案2

我或多或少遇到了同样的问题:

  • Ubuntu 18.04,64 位
  • 显卡:GeForce GTX 1070
  • 司机:440.100
  • Chrome 版本:86.0.4240.75(官方版本)(64 位)

我不想停用 Chrome 的 GPU 使用,也不想每次都重新启动浏览器,从而丢失所有标签。

但我找到了一个对我来说足够好的解决方法(至少目前如此):

你可以只终止浏览器的 GPU 进程

  • 打开任务管理器:

    • 点击Shift+ Esc(正如指出的那样@NYCeyes 在评论中)。
    • 或者,转到 Chrome 主菜单(右上角 3 个点)→更多工具任务管理器
  • 按工艺分类任务姓名。

  • 查找调用的进程GPU 进程

  • 点击End process

Chrome 任务管理器 - GPU 进程 - 结束进程

这将“清除”所有有问题的图像噪音。Chrome 将立即自动创建新的 GPU 进程。

笔记:您可以自动化该过程,检查Andrew Bruce 的回答将这些步骤放入自动运行的脚本中。

我认为问题类似于 GPU 进程使用内存,假设它具有睡眠周期之前的旧状态,但它只是有一些来自默认状态的默认随机噪声。所以我想 Ubuntu 不会在睡眠周期中保存和恢复 GPU 内存(我认为它不应该这样做),但 Chrome 进程没有检测到这一点。通过终止进程,它会“释放”该 GPU 内存,然后 Chrome 会创建一个新进程来重新生成任何所需的 GPU 内存状态(这是即时的)。

答案3

使用tiangolo 的回答,您可以在唤醒时自动重启 Chrome GPU 进程。作为 root,我将此脚本放入/lib/systemd/system-sleep/revive-chrome-gpu

#!/bin/sh

set -e

if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]
then
    case "$1" in
        pre)
            true 
            ;;
        post) 
            sleep 1
            pkill -f 'chrome \-\-type=gpu-process'
            ;;
    esac
fi

确保使用以下命令使脚本可执行:

chmod +x /lib/systemd/system-sleep/revive-chrome-gpu

答案4

一个解决方案(性能问题)

就我而言,Chrome 浏览器的解决方案disableSettingsUse hardware acceleration when available

chrome://settings/system

在此处输入图片描述

第二种解决方案

是的,上述解决方案存在性能问题。如果您不喜欢,可以测试其他选项,Chrome 将完美运行。

使用一些标志运行 Chrome,始终通过终端运行 Chrome。

google-chrome-stable --use-cmd-decoder=validating --use-gl=desktop &

避免&阻塞终端。

相关内容