自 2023 年 5 月 23 日起 Ubuntu 22.04 Mesa 更新后,Chrome 将不再显示网站图片

自 2023 年 5 月 23 日起 Ubuntu 22.04 Mesa 更新后,Chrome 将不再显示网站图片

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

[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

自此以后,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

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

Firefox 似乎没有受到影响。

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

2023年5月23日编辑:

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

新安装的 Chromium 113.0.5672.126(Snap 包)没有出现此问题,从测试版或不稳定频道新安装的 Chrome 版本也没有出现此问题。

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

2023 年 5 月 23 日 编辑 #2:

请参阅我们在下面的回答中发布的绕过方法。它们可能只是暂时的;不确定它们是否是解决方案。请参阅随附的链接以了解其他建议的解决方法。

答案1

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

~/.config/google-chrome/Default/GPUCache

IE:

~/.config/google-chrome/Default$ rm -rf GPUCache/

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

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

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

2023年5月25日编辑:

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

Lorenzo 的解决方法

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-proposed 中提供,并且已通过初步测试。

2023 年 6 月 9 日编辑:

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

感谢 Arch 论坛的记者:

AMD 笔记本电脑上的 Chromium 上的大多数图形都损坏;Skia、着色器错误

以及此 Chromium 漏洞的报告者:

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

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

Fedora 上也发生过这种情况:

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

相关内容