自2023年5月23日Ubuntu 22.04 Mesa更新以来,Chrome将不再显示网站图形

Sam*_*Sam 18 google-chrome chromium mesa brave

这些更新是今天早上安装的:

[UPGRADE] apport:amd64 2.20.11-0ubuntu82.4 -> 2.20.11-0ubuntu82.5
[UPGRADE] apport-gtk:amd64 2.20.11-0ubuntu82.4 -> 2.20.11-0ubuntu82.5
[UPGRADE] dpkg:amd64 1.21.1ubuntu2.1 -> 1.21.1ubuntu2.2
[UPGRADE] dpkg-dev:amd64 1.21.1ubuntu2.1 -> 1.21.1ubuntu2.2
[UPGRADE] libdpkg-perl:amd64 1.21.1ubuntu2.1 -> 1.21.1ubuntu2.2
[UPGRADE] libegl-mesa0:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libegl1-mesa:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libgbm1:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libgl1-mesa-dri:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libgl1-mesa-glx:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libglapi-mesa:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libglx-mesa0:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libncurses5:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] libncurses6:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] libncursesw5:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] libncursesw6:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] libtinfo5:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] libtinfo6:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] libwayland-egl1-mesa:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] libxatracker2:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] mesa-va-drivers:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] mesa-vdpau-drivers:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] mesa-vulkan-drivers:amd64 22.2.5-0ubuntu0.1~22.04.1 -> 22.2.5-0ubuntu0.1~22.04.2
[UPGRADE] ncurses-base:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] ncurses-bin:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] ncurses-term:amd64 6.3-2 -> 6.3-2ubuntu0.1
[UPGRADE] python3-apport:amd64 2.20.11-0ubuntu82.4 -> 2.20.11-0ubuntu82.5
[UPGRADE] python3-problem-report:amd64 2.20.11-0ubuntu82.4 -> 2.20.11-0ubuntu82.5
Run Code Online (Sandbox Code Playgroud)

从那时起,尽管网站上的文本可见,但 Google Chrome 浏览器将不再显示网站图形。

这些消息和类似消息位于系统日志中(每当加载站点时都会不断重复):

May 23 10:20:35 ZT google-chrome.desktop[31240]: // Fragment GLSL
May 23 10:20:35 ZT google-chrome.desktop[31240]: #version 300 es
May 23 10:20:35 ZT google-chrome.desktop[31240]: #extension GL_NV_shader_noperspective_interpolation : require
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump float;
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump sampler2D;
May 23 10:20:35 ZT google-chrome.desktop[31240]: out mediump vec4 sk_FragColor;
May 23 10:20:35 ZT google-chrome.desktop[31240]: noperspective in mediump vec2 v_texCoord;
May 23 10:20:35 ZT google-chrome.desktop[31240]: #version 300 es
May 23 10:20:35 ZT google-chrome.desktop[31240]: #extension GL_NV_shader_noperspective_interpolation : require
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump float;
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump sampler2D;
May 23 10:20:35 ZT google-chrome.desktop[31240]: out mediump vec4 sk_FragColor;
May 23 10:20:35 ZT google-chrome.desktop[31240]: noperspective in mediump vec2 v_texCoord;
May 23 10:20:35 ZT google-chrome.desktop[31240]: uniform sampler2D u_texture;
May 23 10:20:35 ZT google-chrome.desktop[31240]: void main() {
May 23 10:20:35 ZT google-chrome.desktop[31240]:     sk_FragColor = texture(u_texture, v_texCoord);
May 23 10:20:35 ZT google-chrome.desktop[31240]: }
May 23 10:20:35 ZT google-chrome.desktop[31240]: Errors:
May 23 10:20:35 ZT google-chrome.desktop[31240]: link failed but did not provide an info log
May 23 10:20:35 ZT google-chrome.desktop[31240]: [31288:31288:0523/102035.809996:ERROR:shared_context_state.cc(77)] Skia shader compilation error
May 23 10:20:35 ZT google-chrome.desktop[31240]: ------------------------
May 23 10:20:35 ZT google-chrome.desktop[31240]: // Vertex SKSL
May 23 10:20:35 ZT google-chrome.desktop[31240]: #extension GL_NV_shader_noperspective_interpolation : require
May 23 10:20:35 ZT google-chrome.desktop[31240]: in half2 a_vertex;uniform half4 u_texCoordXform;uniform half4 u_posXform;noperspective out half2 v_texCoord;void main() {v_texCoord = half2(a_vertex.xy * u_texCoordXform.xy + u_texCoordXform.zw);sk_Position.xy = a_vertex * u_posXform.xy + u_posXform.zw;sk_Position.zw = half2(0, 1);}
May 23 10:20:35 ZT google-chrome.desktop[31240]: // Fragment SKSL
May 23 10:20:35 ZT google-chrome.desktop[31240]: #extension GL_NV_shader_noperspective_interpolation : require
May 23 10:20:35 ZT google-chrome.desktop[31240]: noperspective in half2 v_texCoord;uniform sampler2D u_texture;void main() {sk_FragColor = sample(u_texture, v_texCoord);}
May 23 10:20:35 ZT google-chrome.desktop[31240]: // Vertex GLSL
May 23 10:20:35 ZT google-chrome.desktop[31240]: #version 300 es
May 23 10:20:35 ZT google-chrome.desktop[31240]: #extension GL_NV_shader_noperspective_interpolation : require
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump float;
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump sampler2D;
May 23 10:20:35 ZT google-chrome.desktop[31240]: in mediump vec2 a_vertex;
May 23 10:20:35 ZT google-chrome.desktop[31240]: uniform mediump vec4 u_texCoordXform;
May 23 10:20:35 ZT google-chrome.desktop[31240]: uniform mediump vec4 u_posXform;
May 23 10:20:35 ZT google-chrome.desktop[31240]: noperspective out mediump vec2 v_texCoord;
May 23 10:20:35 ZT google-chrome.desktop[31240]: void main() {
May 23 10:20:35 ZT google-chrome.desktop[31240]:     v_texCoord = a_vertex * u_texCoordXform.xy + u_texCoordXform.zw;
May 23 10:20:35 ZT google-chrome.desktop[31240]:     gl_Position.xy = a_vertex * u_posXform.xy + u_posXform.zw;
May 23 10:20:35 ZT google-chrome.desktop[31240]:     gl_Position.zw = vec2(0.0, 1.0);
May 23 10:20:35 ZT google-chrome.desktop[31240]: }
May 23 10:20:35 ZT google-chrome.desktop[31240]: // Fragment GLSL
May 23 10:20:35 ZT google-chrome.desktop[31240]: #version 300 es
May 23 10:20:35 ZT google-chrome.desktop[31240]: #extension GL_NV_shader_noperspective_interpolation : require
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump float;
May 23 10:20:35 ZT google-chrome.desktop[31240]: precision mediump sampler2D;
May 23 10:20:35 ZT google-chrome.desktop[31240]: out mediump vec4 sk_FragColor;
May 23 10:20:35 ZT google-chrome.desktop[31240]: noperspective in mediump vec2 v_texCoord;
May 23 10:20:35 ZT google-chrome.desktop[31240]: uniform sampler2D u_texture;
May 23 10:20:35 ZT google-chrome.desktop[31240]: void main() {
May 23 10:20:35 ZT google-chrome.desktop[31240]:     sk_FragColor = texture(u_texture, v_texCoord);
May 23 10:20:35 ZT google-chrome.desktop[31240]: }
May 23 10:20:35 ZT google-chrome.desktop[31240]: Errors:
May 23 10:20:35 ZT google-chrome.desktop[31240]: link failed but did not provide an info log
May 23 10:20:35 ZT google-chrome.desktop[31240]: [31288:31288:0523/102035.810938:ERROR:shared_context_state.cc(77)] Skia shader compilation error
Run Code Online (Sandbox Code Playgroud)

尽管使用专有 Nvidia 驱动程序的系统不会出现此问题,但多台机器上都会发生这种情况。

火狐浏览器似乎没有受到影响。

我们假设 Mesa 更新之一与 Chrome 113.0.5672.126(稳定版)不兼容。

2023 年 5 月 23 日编辑:

Aptitude 卸载(但不是清除)然后重新安装 Chrome 并没有什么区别。

新安装的 Chromium 113.0.5672.126(snap 软件包)不会出现该问题,来自 beta 或不稳定渠道的新安装的 Chrome 版本也不会出现该问题。

这表明它可能是某种定制或扩展交互,或者可能是与过去的使用相关的东西,因为我们测试的 Chromium 版本和 beta/不稳定的 Chrome 版本没有。

2023 年 5 月 23 日编辑#2:

请参阅我们在下面的答案中发布的绕过方法。它们可能只是暂时的;不确定它们是一个解决方案。请参阅包含的链接以获取其他建议的解决方法。

Sam*_*Sam 34

至少在我们测试的几台机器上,可以通过删除每个受影响用户的 GPUCache 来绕过该问题:

~/.config/google-chrome/Default/GPUCache
Run Code Online (Sandbox Code Playgroud)

IE:

~/.config/google-chrome/Default$ rm -rf GPUCache/
Run Code Online (Sandbox Code Playgroud)

(这就是测试 Chromium 和 Chrome 的 Beta/Unstable 版本有效的原因——它们从新的缓存开始。)

注意:这只是绕过,而不是修复。如果在修复之前升级 Mesa,该问题可能会再次出现。尽管最终用户报告大多数网站都可以正常工作,但我们仍然在系统日志中看到一些错误。

该问题似乎是由 Mesa 升级引发的,但也涉及 Chromium、Brave、Chrome 和硬件加速。我们提交了Mesa 错误报告

2023 年 5 月 25 日编辑:

请参阅 Lorenzo 在 Mesa 错误报告中的评论,了解对他来说成功的解决方法:

洛伦佐的解决方法

2023 年 5 月 26 日编辑:

Chromium 有一个权宜之计:

索引:~chromium-team/chromium-browser/+git/snap-from-source

2023 年 5 月 31 日编辑:

该错误已被分类并作为关键优先级分配给 Mesa,因此不需要 Chromium 权宜之计。

2023 年 6 月 2 日编辑:

Jammy 的修复程序已提交,并将很快准备好进行测试。有关详细信息,请参阅 Mesa 错误报告。

2023 年 6 月 8 日编辑:

Jammy 的修复现已在 jammy 提议中提供,并已通过初步测试。

2023 年 6 月 9 日编辑:

Jammy 的修复程序今天发布。标记此问题已解决。

感谢Arch论坛的记者:

AMD 笔记本电脑上的 Chromium 上的大多数显卡都会损坏;Skia,着色器错误

以及这个 Chromium bug 的报告者:

问题 1442633:Skia 着色器编译错误

谁帮助我们缩小了这个问题的范围。

Fedora 上也发生过这种情况:

Bug 2193335 - mesa-23.0.3-4.fc39 破坏了 google-chrome-stable(在 Intel Arc 上?)

  • 你是一个救命的伙伴,谢谢! (6认同)
  • 我做到了,但我更喜欢通过 ~/.config/google-chrome/Default$ mv GPUCache/ GPUCache_backup 重命名 它工作完美,tnx! (2认同)
  • 我今天在 Lubuntu 盒子上升级后刚刚遇到这个问题。我花了几个小时调试。谢谢萨姆!! (2认同)