Chrome not rendering text after mesa driver update

Hello there. After dnf update and a reboot today, Chrome (google-chrome-stable) on my Fedora 38 is not rendering any text and has black rectangular element paddings. It’s probably due to mesa driver updates, since my cpu is 11th Gen Intel(R) Core™ i5-1135G7 and I configured the drivers for hardware acceleration.

Unfortunately either can’t I undo this dnf update using sudo dnf history redo 67 (which prints lots of “Cannot find rpm nerva …”). So I can only use google-chrome-stable --use-gl=desktop to force software rendering and use Chrome properly.

Are there any solutions? Thanks in advance.

The Chrome flags I enabled manually:

// Toggle hardware accelerated H.264 video encoding for Cast Streaming
// Toggle hardware accelerated VP8 video encoding for Cast Streaming
// Auto Dark Mode for Web Contents

The related part of ~/.bashrc, glxinfo and vainfo:

[pairman@fedora ~]$ cat ~/.bashrc | grep iHD
[pairman@fedora ~]$ glxinfo | grep OpenGL
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) Xe Graphics (TGL GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.0.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.0.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
[pairman@fedora ~]$ vainfo
Trying display: wayland
libva info: VA-API version 1.18.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /usr/lib64/dri/
libva info: Found init function __vaDriverInit_1_18
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.18 (libva 2.18.2)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.6 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain               :	VAEntrypointEncSliceLP
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointEncSliceLP
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointEncSliceLP
      VAProfileVP9Profile1            :	VAEntrypointVLD
      VAProfileVP9Profile1            :	VAEntrypointEncSliceLP
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointEncSliceLP
      VAProfileVP9Profile3            :	VAEntrypointVLD
      VAProfileVP9Profile3            :	VAEntrypointEncSliceLP
      VAProfileHEVCMain12             :	VAEntrypointVLD
      VAProfileHEVCMain12             :	VAEntrypointEncSlice
      VAProfileHEVCMain422_10         :	VAEntrypointVLD
      VAProfileHEVCMain422_10         :	VAEntrypointEncSlice
      VAProfileHEVCMain422_12         :	VAEntrypointVLD
      VAProfileHEVCMain422_12         :	VAEntrypointEncSlice
      VAProfileHEVCMain444            :	VAEntrypointVLD
      VAProfileHEVCMain444            :	VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         :	VAEntrypointVLD
      VAProfileHEVCMain444_10         :	VAEntrypointEncSliceLP
      VAProfileHEVCMain444_12         :	VAEntrypointVLD
      VAProfileHEVCSccMain            :	VAEntrypointVLD
      VAProfileHEVCSccMain            :	VAEntrypointEncSliceLP
      VAProfileHEVCSccMain10          :	VAEntrypointVLD
      VAProfileHEVCSccMain10          :	VAEntrypointEncSliceLP
      VAProfileHEVCSccMain444         :	VAEntrypointVLD
      VAProfileHEVCSccMain444         :	VAEntrypointEncSliceLP
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileHEVCSccMain444_10      :	VAEntrypointVLD
      VAProfileHEVCSccMain444_10      :	VAEntrypointEncSliceLP

The related part of dnf history info 67:

[pairman@fedora ~]$ dnf history info 67 | grep gst
    Upgrade  gst-editing-services-1.22.3-1.fc38.x86_64                   @updates
    Upgraded gst-editing-services-1.22.2-1.fc38.x86_64                   @@System
    Upgrade  gstreamer1-1.22.3-1.fc38.x86_64                             @updates
    Upgraded gstreamer1-1.22.2-1.fc38.x86_64                             @@System
    Upgrade  gstreamer1-plugin-libav-1.22.3-1.fc38.x86_64                @updates
    Upgraded gstreamer1-plugin-libav-1.22.2-1.fc38.x86_64                @@System
    Upgrade  gstreamer1-plugins-bad-free-1.22.3-1.fc38.x86_64            @updates
    Upgraded gstreamer1-plugins-bad-free-1.22.2-3.fc38.x86_64            @@System
    Upgrade  gstreamer1-plugins-bad-free-extras-1.22.3-1.fc38.x86_64     @updates
    Upgraded gstreamer1-plugins-bad-free-extras-1.22.2-3.fc38.x86_64     @@System
    Upgrade  gstreamer1-plugins-bad-free-fluidsynth-1.22.3-1.fc38.x86_64 @updates
    Upgraded gstreamer1-plugins-bad-free-fluidsynth-1.22.2-3.fc38.x86_64 @@System
    Upgrade  gstreamer1-plugins-bad-free-wildmidi-1.22.3-1.fc38.x86_64   @updates
    Upgraded gstreamer1-plugins-bad-free-wildmidi-1.22.2-3.fc38.x86_64   @@System
    Upgrade  gstreamer1-plugins-bad-free-zbar-1.22.3-1.fc38.x86_64       @updates
    Upgraded gstreamer1-plugins-bad-free-zbar-1.22.2-3.fc38.x86_64       @@System
    Upgrade  gstreamer1-plugins-base-1.22.3-1.fc38.x86_64                @updates
    Upgraded gstreamer1-plugins-base-1.22.2-1.fc38.x86_64                @@System
    Upgrade  gstreamer1-plugins-good-1.22.3-1.fc38.x86_64                @updates
    Upgraded gstreamer1-plugins-good-1.22.2-1.fc38.x86_64                @@System
    Upgrade  gstreamer1-plugins-good-extras-1.22.3-1.fc38.x86_64         @updates
    Upgraded gstreamer1-plugins-good-extras-1.22.2-1.fc38.x86_64         @@System
    Upgrade  gstreamer1-plugins-good-gtk-1.22.3-1.fc38.x86_64            @updates
    Upgraded gstreamer1-plugins-good-gtk-1.22.2-1.fc38.x86_64            @@System
    Upgrade  gstreamer1-plugins-good-qt-1.22.3-1.fc38.x86_64             @updates
    Upgraded gstreamer1-plugins-good-qt-1.22.2-1.fc38.x86_64             @@System
    Upgrade  gstreamer1-plugins-ugly-free-1.22.3-1.fc38.x86_64           @updates
    Upgraded gstreamer1-plugins-ugly-free-1.22.2-1.fc38.x86_64           @@System
    Upgrade  gstreamer1-vaapi-1.22.3-1.fc38.x86_64                       @updates
    Upgraded gstreamer1-vaapi-1.22.2-1.fc38.x86_64                       @@System
[pairman@fedora ~]$ dnf history info 67 | grep mesa
    Upgrade  mesa-dri-drivers-23.0.3-5.fc38.x86_64                       @updates
    Upgraded mesa-dri-drivers-23.0.3-3.fc38.x86_64                       @@System
    Upgrade  mesa-filesystem-23.0.3-5.fc38.x86_64                        @updates
    Upgraded mesa-filesystem-23.0.3-3.fc38.x86_64                        @@System
    Upgrade  mesa-libEGL-23.0.3-5.fc38.x86_64                            @updates
    Upgraded mesa-libEGL-23.0.3-3.fc38.x86_64                            @@System
    Upgrade  mesa-libGL-23.0.3-5.fc38.x86_64                             @updates
    Upgraded mesa-libGL-23.0.3-3.fc38.x86_64                             @@System
    Upgrade  mesa-libgbm-23.0.3-5.fc38.x86_64                            @updates
    Upgraded mesa-libgbm-23.0.3-3.fc38.x86_64                            @@System
    Upgrade  mesa-libglapi-23.0.3-5.fc38.x86_64                          @updates
    Upgraded mesa-libglapi-23.0.3-3.fc38.x86_64                          @@System
    Upgrade  mesa-libxatracker-23.0.3-5.fc38.x86_64                      @updates
    Upgraded mesa-libxatracker-23.0.3-3.fc38.x86_64                      @@System
    Upgrade  mesa-va-drivers-23.0.3-5.fc38.x86_64                        @updates
    Upgraded mesa-va-drivers-23.0.3-3.fc38.x86_64                        @@System
    Upgrade  mesa-vulkan-drivers-23.0.3-5.fc38.x86_64                    @updates
    Upgraded mesa-vulkan-drivers-23.0.3-3.fc38.x86_64                    @@System

The error output of google-chrome-stable when it’s using the gpu (it has lots of repeating errors like this, so I’m only showing one section here):

[8887:8887:0529/] Skia shader compilation error
// Vertex SKSL
#extension GL_NV_shader_noperspective_interpolation: require
uniform float4 sk_RTAdjust;uniform float3x3 umatrix_S1_c0;in float2 position;in half4 color;in float2 localCoord;flat out half4 vcolor_S0;noperspective out float2 vTransformedCoords_3_S0;void main() {// Primitive Processor QuadPerEdgeAAGeometryProcessor
vcolor_S0 = color;sk_Position = position.xy01;{
vTransformedCoords_3_S0 = float3x2(umatrix_S1_c0) * localCoord.xy1;
// Fragment SKSL
#extension GL_NV_shader_noperspective_interpolation: require
uniform float4 uclamp_S1_c0_c0;uniform float3x3 umatrix_S1_c0;uniform sampler2D uTextureSampler_0_S1;
flat in half4 vcolor_S0;noperspective in float2 vTransformedCoords_3_S0;half4 TextureEffect_S1_c0_c0(half4 _input) {
float2 inCoord = vTransformedCoords_3_S0;float2 subsetCoord;subsetCoord.x = inCoord.x;subsetCoord.y = inCoord.y;float2 clampedCoord;clampedCoord = clamp(subsetCoord, uclamp_S1_c0_c0.xy,;half4 textureColor = sample(uTextureSampler_0_S1, clampedCoord);return textureColor;}

half4 MatrixEffect_S1_c0(half4 _input) {
return TextureEffect_S1_c0_c0(_input);

half4 DisableCoverageAsAlpha_S1(half4 _input) {
_input = MatrixEffect_S1_c0(_input);
half4 _tmp_0_inColor = _input;
return half4(_input);

void main() {// Stage 0, QuadPerEdgeAAGeometryProcessor
half4 outputColor_S0;outputColor_S0 = vcolor_S0;const half4 outputCoverage_S0 = half4(1);half4 output_S1;output_S1 = DisableCoverageAsAlpha_S1(outputColor_S0);{ // Xfer Processor: Porter Duff
sk_FragColor = output_S1 * outputCoverage_S0;}}
// Vertex GLSL
#version 300 es

#extension GL_NV_shader_noperspective_interpolation : require
precision mediump float;
precision mediump sampler2D;
uniform highp vec4 sk_RTAdjust;
uniform highp mat3 umatrix_S1_c0;
in highp vec2 position;
in mediump vec4 color;
in highp vec2 localCoord;
flat out mediump vec4 vcolor_S0;
noperspective out highp vec2 vTransformedCoords_3_S0;
void main() {
    vcolor_S0 = color;
    gl_Position = vec4(position, 0.0, 1.0);
        vTransformedCoords_3_S0 = mat3x2(umatrix_S1_c0) * vec3(localCoord, 1.0);
    gl_Position = vec4(gl_Position.xy * sk_RTAdjust.xz + gl_Position.ww * sk_RTAdjust.yw, 0.0, gl_Position.w);

// Fragment GLSL
#version 300 es

#extension GL_NV_shader_noperspective_interpolation : require
precision mediump float;
precision mediump sampler2D;
out mediump vec4 sk_FragColor;
uniform highp vec4 uclamp_S1_c0_c0;
uniform highp mat3 umatrix_S1_c0;
uniform sampler2D uTextureSampler_0_S1;
flat in mediump vec4 vcolor_S0;
noperspective in highp vec2 vTransformedCoords_3_S0;
void main() {
    mediump vec4 outputColor_S0;
    outputColor_S0 = vcolor_S0;
    mediump vec4 output_S1;
    mediump vec4 _8_input = outputColor_S0;
    highp vec2 _9_inCoord = vTransformedCoords_3_S0;
    highp vec2 _10_subsetCoord;
    _10_subsetCoord.x = _9_inCoord.x;
    _10_subsetCoord.y = _9_inCoord.y;
    highp vec2 _11_clampedCoord;
    _11_clampedCoord = clamp(_10_subsetCoord, uclamp_S1_c0_c0.xy,;
    mediump vec4 _12_textureColor = texture(uTextureSampler_0_S1, _11_clampedCoord, -0.5);
    _8_input = _12_textureColor;
    output_S1 = _8_input;
        sk_FragColor = output_S1;

link failed but did not provide an info log
killall chrome; rm -f -R ~/.config/google-chrome/*/GPUCache

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

Thanks a lot! And I remember you’ve saved me many times, true hero.

1 Like