16.04 LTS - Chrome中的烦人闪烁问题

我已经从4.4.0升级到4.4.8,然后再升级到4.5.2,在Ubuntu 16.04 LTS 64位系统上,问题仍然存在。
在4.5.2版本中,这个问题更加频繁,主要出现在Chrome浏览器中(还没有尝试过firefox或opera)。每次打开一个新的网页都会出现这个问题。有没有办法修复这个问题,或者这是一个bug?
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500 (rev 09)
04:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Venus XTX [Radeon HD 8890M / R9 M275X/M375X] (rev 81)

干杯。

1我在Ubuntu 14.04.4上也有同样的经历。 - Billal Begueradj
1我也遇到了同样的问题,尤其是在使用Facebook时。真是太烦人了。 - sgiri
只是为了防备起见:升级到16.10后,闪烁问题已经解决,所以您不再需要任何变通方法。只是提一下。 - user157697
1尝试使用--disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers进行操作。这里有一些额外的信息:https://productforums.google.com/forum/#!topic/chrome/CtKF2BiskT8;context-place=forum/chrome - Postadelmaga
1我是一名谷歌员工。这个问题正在Chromium问题跟踪器中进行追踪,具体链接为#606152 - 在Intel上出现闪烁问题 - Dan Dascalescu
11个回答

经过一些研究,我找到了解决这个问题的方法。现在对我来说已经有效了。
我在浏览器中禁用了硬件加速,具体操作如下:
设置 > 高级设置 > 系统 > 取消勾选硬件加速
希望这对你的电脑也有效。
我正在使用的是Ubuntu 16.04上的google-chrome-stable版本50.0.2661.94(64位)。
-----编辑----
如果你遇到滚动卡顿和屏幕撕裂的问题,请按照下面评论中Amos Folarin的建议操作:
前往:chrome://flags/#smooth-scrolling 并启用它。

23我试过了,虽然解决了问题,但是导致我的滚动卡顿和屏幕出现撕裂。 - Mookey
其实,仔细想想,最近几天闪烁的情况已经明显减少到了最低程度。这可能是什么原因呢? - Mookey
我发现硬件加速选项被禁用了,我启用它后闪烁问题消失了。 - Marware
在我的DELL XPS 15 9550上,我遇到了和@Mookey一样的问题。当禁用硬件加速后,我的Chrome开始变得像乌龟一样慢,滚动卡顿且屏幕出现撕裂现象。 - morhook
21这真的不应该被接受,因为它不是一个解决方案,而只是一个权宜之计。 - theV0ID
4对我来说,这对闪烁没有任何影响。 - DavidJ
1这个解决方案对我的XPS13 9343有效,闪烁问题明显停止或不可察觉。我也尝试了这里建议的另一个解决方案,将chrome://flags/#enable-gpu-rasterization设置为“强制启用所有图层”,但这并没有起作用,只有在Chrome中禁用硬件加速似乎有效。但同意@theV0ID的观点,这并不是理想的解决方法。 - Amos Folarin
4尝试启用chrome://flags/#smooth-scrolling以获得流畅的滚动体验。我正在使用XPS13 + Ubuntu16.04,取消勾选硬件加速选项后效果很好。 - Amos Folarin
谢谢@AmosFolarin,我编辑了答案并包含了你的提示。 - sgiri
编辑了Chrome的标志,现在可以正常使用了!谢谢! - Sethen
3禁用硬件加速对电池寿命有非常糟糕的影响! - Victor Lamoine
1这实际上是一个非常有用的设置,当在安装和启用了3D驱动程序的VirtualBox中运行Windows时。Chrome一直在闪烁,这个设置帮了大忙。谢谢! - Terrance
问题已经解决,但是在我取消选项后,在Chrome中出现的重新启动按钮上点击之后,我丢失了所有保存在Chrome中的密码。 - abdul qayyum
嗨,我使用的是4.4.0内核、58.0.3029.81(64位)的Chrome浏览器和英特尔集成显卡。在禁用硬件加速后,所有窗口的闪烁问题得到了解决,但页面的某些部分,尤其是在Facebook上,仍然存在闪烁问题。然而,真正的问题是现在在Chrome浏览器中使用Slack视频通话会导致崩溃。 - anber
对我来说,情况正好相反:我启用了硬件加速,然后YouTube上的视频就按预期开始播放了。 - Juampy NR
这真是让人烦恼。非常感谢!解决得很顺利。注意,我做了这两件事情,但直到在这条评论的第二部分启用滚动标志后才修复。 - Christopher Kuttruff

我遇到了同样的问题,将GPU光栅化设置为“强制对所有图层启用”似乎终于起作用了。

Chrome Flags: GPU rasterization


似乎只有这一个方法,或者结合之前尝试过的其他方法,才解决了我在华硕笔记本UX305C上遇到的问题。真是眼睛的救星! - Nick
28快速链接:chrome://flags/#enable-gpu-rasterization - JohannesNE
1对我也起作用。 - Sufiyan Ghori
2它停止工作了,闪烁问题又出现了,我觉得是在升级到Chrome版本53.0.2785.92(64位)之后。 - Nick
1@Omid 对我来说,它仍然正常工作。 - Gondy
这在某种程度上减少了闪烁,但在Chrome 53.0.2785.116 unknown (64-bit)上仍然会出现随机闪烁。 - SUB0DH
5这大大减少了闪烁,但在Google收件箱中仍然存在(目前是我唯一看到它的地方)。 - TiGR
2工作了,但现在只有一些图像的左上角被显示出来。对我有用的是chrome://flags/#ignore-gpu-blacklist。 - Arnold Daniels
解决了我在Chromium 58上的问题。 - Garrett
GPU光栅化和平滑滚动不起作用。 - Satya Prakash

我按照以下方式修复了它:
sudo apt-get purge xserver-xorg-video-intel

然后重新启动。这是因为Intel驱动程序已经转移到了modesetting模式。有关更多信息,请参阅Chromium错误线程中的此评论

我选择了Chrome的标志路线,然后又选择了这条路线,并将标志重置为默认值并清除了Intel相关内容。到目前为止,一切都很顺利。 - Sethen
谢谢。我有一台几年前购买的Intel NUC,经历了几次更新。它目前运行在16.04.2版本,但是你的建议确实找到了需要清除的软件包。现在它不再闪烁了(我的HDMI视频在最近的一些更新后以大约1或2赫兹的频率闪烁开关;我以为它在8年的使用后出现了硬件故障)。 - Tim Richardson
1适用于Linux Mint的完美选择 :) - Chris Nevill
1我可以确认这解决了我在我的Dell XPS 9350 + 17.10上遇到的整体性能问题 :) - helmesjo
1戴尔Precision 5520 + Ubuntu 16.04在这里,我现在很幸运,因为到目前为止,这似乎是解决方案(对于我遇到的Slack和Chrome闪烁问题都有效)! - cjauvin
1戴尔XPS 13 9360,Ubuntu 16.04。我卸载了驱动程序,但没有测试撕裂效果。重新启动后,Chrome开始运行缓慢。而且我无法启动《Road Redemption》游戏。所以我重新安装了驱动程序。 - YKY
1是的,这个解决了。其他标记只是一些很好的附加功能,但这一个对我运行 Linux Mint 18 的 MacBook 解决了主要问题。 - Walter Schreppers
1被接受的答案可以消除闪烁,但会导致奇怪的伪影。这个方法在我使用Linux Mint(Ubuntu 16.04)时解决了问题。 - Sanctor
1加入社区是为了感谢这个答案。我使用的是Debian 4.19.16-1~bpo9+1 (4.19.0-0.bpo.2-amd64)版本。 - Bertram Gilfoyle
不客气。 - ComBin

打开终端并输入以下命令:
sudo nano /usr/share/applications/chromium-browser.desktop

向下滚动,直到您看到这行文字:
Exec= chromium-browser

然后添加这两个参数
--disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers

按下Ctrl+O保存,按下Ctrl+X退出。
然后输入以下命令:
sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf

添加这些行
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "sna"
   Option      "TearFree"    "true"
   Option      "DRI"    "3"
EndSection

按下Ctrl+O然后按下Ctrl+X。
打开Chromium并在地址栏中输入:chrome://flags/,然后按Enter。
  • 启用零拷贝
  • 启用覆盖软件渲染列表
  • 启用显示2D列表画布
最后打开Chrome设置并点击:
  • 在可用时使用硬件加速

1在我的Dell XPS 15 95050上工作,配备了Intel® Core™ i7-6700HQ CPU @ 2.60GHz和Intel® HD Graphics 530 (Skylake GT2)。 - Prydie
将 #enable-display-list-2d-canvas、#enable-zero-copy 和 #ignore-gpu-blacklist 都设置为启用(ENABLED),似乎解决了使用HD Graphics 5500和intel-xorg 2.99.917时的闪烁问题。 - bk138
1在我的情况下(尝试了多种解决方案之后),我只是启用了你提到的那些标志(zero-copy, Override Software Rendering List, Display 2D List Canvas),似乎已经解决了问题(在Intel HD Graphics上)。 - Nahuel
我解决了我的Acer-574G笔记本电脑第六代英特尔图形卡的闪烁问题。 - Hassan Ahmed
1两个命令行开关(禁用解决方法/启用本机GPU内存缓冲区)似乎不再起作用,但是创建20-intel.conf文件对我有用!还启用了GPU光栅化(不确定是否重要)。 - Lea Rosema
2只需添加“20-intel.conf”就可以解决问题 - 不需要做任何其他操作。 - Vadim Peretokin
20-intel.conf 这个修复方法对我有效。不过性能下降是明显的。 - Carson Ip
也是唯一对我有效的解决方案(尝试了前两个答案)。我使用的是带有Radeon显卡的台式机,因此我必须编辑10-radeon.conf文件,并确保将“Identifier”更改为“Radeon”,将“driver”更改为“radeon”。另外,我正在使用稳定版的Chrome浏览器,因此我的配置文件实际上被命名为“google-chrome.desktop”。 - Jordan Speizer

这些答案似乎都没有帮到我。最终我做了以下的操作,看起来已经解决了问题(我的参考网站是http://www.bang-olufsen.com/,它之前闪烁得非常厉害,现在运行得很顺畅):

1. 打开 chrome://gpu/。显示如下:

enter image description here

2.- 我一个一个地尝试解决问题。在我的情况下,启用这些标志解决了其中一些问题:GPU光栅化覆盖软件渲染列表。然后它就显示成这样了:

enter image description here

3.- 我编辑了桌面启动器,并添加了参数--disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers
4.- 之后,没有发现更多问题,一切都显示为“硬件加速”,更重要的是,不再闪烁。

enter image description here

如果你首先向启动器添加参数,问题列表应该会更短,找出哪些标志能帮助你解决剩下的问题可能会更容易一些。

这是一个很好的参考。我用它来解决了我在Firefox上遇到的问题,只需在高级设置中取消勾选“使用硬件加速”选项即可解决。 - Bach
这对我来说减少了闪烁,但它仍然经常发生... - addison

使用Chrome版本51.0.2704.103(64位),旗标如下:
--disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers

不再工作了。
我们能做的最好的办法是回退到Chrome 50(版本50.0.2661.86(64位)),这里有一个指南告诉你如何回退:how do I downgrade google chrome? 重要的是我们向Google施加压力来解决这个问题,在Chromium和Google产品页面上投票支持这个bug。

https://bugs.chromium.org/p/chromium/issues/detail?id=606152

https://productforums.google.com/forum/#!topic/chrome/CtKF2BiskT8;context-place=forum/chrome


对我来说不起作用。 - ComBin
@ComBin:你试过回退到v50并使用标志吗?然而,点击链接到Chromium的错误报告中,有很多不同的解决方案提议来让当前版本的Chrome/-ium正常工作。 - user157697
我不想要V50,谢谢。我已经找到了最好的解决方法,请看下面我的回答。 - ComBin
啊哈,在Chromium的bug中,那些人意思是这会有严重的性能问题。不过,我会在有时间的时候尝试一些来自Chromium bug的建议,就我所理解的,Chromium只是症状,并非根本原因。如果我找到更好或其他的解决方法,我会及时告诉你。干杯! - user157697


我想我找到了解决方案:
flags --disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers,还有启用零拷贝ENABLE。
    sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf
    Section "Device"
       Identifier  "Intel Graphics"
       Driver      "intel"
       Option      "AccelMethod"  "sna"
       Option      "TearFree"    "true"
       Option      "DRI"    "3"
    EndSection

有一些旗帜丢失了,这是我的逐步操作:https://bugs.chromium.org/p/chromium/issues/detail?id=606152#c72 - dr0bz
我只需要在bionic beaver 18.04上的chrome中的20-intel.conf文件中修改一小节内容,就成功解决了我的问题,而无需添加任何额外的标志。 - Brandon Culley

尝试禁用一些 GPU 选项进行加载:

--disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers

在尝试之后,您还可以在 about://flags 中调整一些渲染设置,看看是否有帮助,但是我的大部分渲染闪烁问题都通过这两个命令行标志解决了。如果您有一个启动器 .desktop 文件,在“%U”之前的顶部 Exec 条目中添加这些标志。您还可以将它们添加到其他 Exec 条目中,以使标志应用于所有启动模式。


我发现目前的修复方法对于当前版本的Chrome不起作用,还需要进一步的更改(至少对于我的设置来说)。

我可以确认这个方法有效(可以消除闪烁和撕裂)-- 感谢https://bugs.chromium.org/p/chromium/issues/detail?id=606152#c72提供的帮助。

电脑:XPS13 9343 显卡:00:02.0 VGA兼容控制器:Intel Corporation Broadwell-U Integrated Graphics(版本09) Chrome版本:Version 54.0.2840.100(64位)

设置

1)在进行以下配置调整之前和之后检查错误信息

  • chrome://gpu
  • 拍张截图以便进行比较。

2)编辑(对于Chrome):/usr/share/applications/google-chrome.desktop 或者(对于Chromium):/usr/share/applications/chromium-browser.desktop

  • 添加标志 --disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers
  • 行应该像这样:Exec=/usr/bin/google-chrome-stable --disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers %U

3) sudo nano /usr/share/X11/xorg.conf.d/20-intel.conf 添加以下内容(您可能需要创建文件):

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "sna"
   Option      "TearFree"    "true"
   Option      "DRI"    "3"
EndSection

4) Chrome flags settings: chrome://flags:

  • 启用("零拷贝光栅化器"):chrome://flags/#enable-zero-copy
  • 启用(启用显示列表2D画布):chrome://flags/#enable-display-list-2d-canvas
  • 启用("覆盖软件渲染列表"):chrome://flags/#ignore-gpu-blacklist
  • 启用("显示列表2D画布"):chrome://flags/#enable-display-list-2d-canvas
  • 启用(Linux平台流畅滚动的Chrome标志):chrome://flags/#smooth-scrolling

5) 我保持了Chrome设置>高级>当可用时使用硬件加速[保持选中]。如果您取消选中此项,会真正影响性能(虽然可以减少闪烁但不能消除撕裂),上述选项对我来说效果更好。

6) 重新启动计算机。

7) 比较设置。chrome://gpu

这对我完全消除了闪烁和撕裂。


其实,这可能是答案。 - pylover