Score:18

Since 23 May 2023 Ubuntu 22.04 Mesa updates, Chrome won't display website graphics

ao flag
Sam

These updates were installed this morning:

[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

Since that time, the Google Chrome browser won't show website graphics though the text on websites is visible.

These messages and similar ones are in syslog (endlessly repeating whenever a site is loaded):

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

This is happening on multiple machines, though a system that is using proprietary Nvidia drivers does not exhibit the problem.

Firefox does not seem to be affected.

We're assuming one of the Mesa updates is incompatible with Chrome 113.0.5672.126 (Stable).

23 May 2023 EDIT:

Aptitude uninstalling (but not purging) and then reinstalling Chrome did not make a difference.

A newly installed Chromium 113.0.5672.126 (the snap package) does not exhibit the problem, nor do newly installed Chrome versions from the beta or unstable channels.

That points to the possibility of it being some customization or extension interaction, or possibly something related to past usage, since the version of Chromium we tested and the beta/unstable Chrome versions have none.

23 May 2023 EDIT #2:

Please see the bypasses we posted in our answer below. They may be only temporary; not sure they're a solution. See the included links for other suggested workarounds.

us flag
Did you check if rebooting fixes the issue?
Sam avatar
ao flag
Sam
Thanks Archisman. Yes, we rebooted when testing if alternate display managers made a difference. Just tried again (no diff). However please see the edit above re bypasses we found.
Score:34
ao flag
Sam

At least on several of the machines we tested, the problem can be bypassed by removing each affected user's GPUCache:

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

I.E.:

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

(That's why testing Chromium and the Beta/Unstable versions of Chrome worked--they started with new caches.)

Note: this is only a bypass, not a fix. The problem may recur if Mesa is upgraded before there's a fix. We still see some errors in syslog, though the end users are reporting that most websites work.

The problem appears to have been triggered by the Mesa upgrades but it also involves Chromium, Brave, Chrome, and hardware acceleration. We filed a Mesa bug report.

25 May 2023 EDIT:

Please see Lorenzo's comment in the Mesa bug report for a workaround that was successful for him:

Lorenzo's workaround

26 May 2023 EDIT:

There's a stopgap commit for Chromium:

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

31 May 2023 EDIT:

The bug has been triaged and assigned to Mesa as a critical priority, so the Chromium stopgap won't be needed.

2 June 2023 EDIT:

A fix for Jammy has been committed and will be ready for testing soon. Please see the Mesa bug report for details.

8 June 2023 EDIT:

The fix for Jammy is now available in jammy-proposed and has passed initial tests.

9 June 2023 EDIT:

The fix for Jammy was released today. Marking this problem solved.

Thanks go to the reporters on the Arch forums:

Most graphics broken on Chromium on AMD laptop; Skia, shader errors

and the reporters of this Chromium bug:

Issue 1442633: Skia shader compilation error

who helped us narrow down this issue.

It also happened on Fedora:

Bug 2193335 - mesa-23.0.3-4.fc39 broke google-chrome-stable (on Intel Arc?)

nelsonmau avatar
tj flag
I did it, but I preferred to rename through ~/.config/google-chrome/Default$ mv GPUCache/ GPUCache_backup It works perfectly, tnx!
Nir avatar
sj flag
Nir
you're a life save mate, thanks!
George avatar
je flag
I just experienced this problem today after an upgrade on my Lubuntu box. I spend a few hours debugging. Thank you Sam!!
Ahsan Horani avatar
cn flag
Super hero @Sam!
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.