Latest Brave Update fails to render any webpage correctly

Description of the issue:

Brave browser fails to render any web-page correctly (including pages such as about:brave) with Skia shader compilation errors.

How can this issue be reproduced?

  1. Install Brave on Fedora 38
  2. Run Brave and browse to any web-site
  3. Page fails to render correctly (example screenshot of failure in additional information section below).

Expected result:

Pages render correctly.

Brave Version( check About Brave):

1.51.110

Additional Information:

System in use if Fedora 38 x64 with all the latest updates applied.

All pages fail to render as shown by the example image below:

These errors are repeated in the terminal:

Errors:
link failed but did not provide an info log
[16556:16556:0505/094229.951917:ERROR:shared_context_state.cc(77)] Skia shader compilation error

// Vertex SKSL
#extension GL_NV_shader_noperspective_interpolation: require
uniform float4 sk_RTAdjust;in float2 position;in half4 color;in float2 localCoord;flat out half4 vcolor_S0;noperspective out float2 vlocalCoord_S0;void main() {// Primitive Processor QuadPerEdgeAAGeometryProcessor
vcolor_S0 = color;vlocalCoord_S0 = localCoord;sk_Position = position.xy01;}
// Fragment SKSL
#extension GL_NV_shader_noperspective_interpolation: require
uniform sampler2D uTextureSampler_0_S0;
flat in half4 vcolor_S0;noperspective in float2 vlocalCoord_S0;void main() {// Stage 0, QuadPerEdgeAAGeometryProcessor
half4 outputColor_S0;outputColor_S0 = vcolor_S0;float2 texCoord;texCoord = vlocalCoord_S0;outputColor_S0 = (blend_modulate(sample(uTextureSampler_0_S0, texCoord), outputColor_S0));const half4 outputCoverage_S0 = half4(1);{ // Xfer Processor: Porter Duff
sk_FragColor = outputColor_S0 * 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;
in highp vec2 position;
in mediump vec4 color;
in highp vec2 localCoord;
flat out mediump vec4 vcolor_S0;
noperspective out highp vec2 vlocalCoord_S0;
void main() {
vcolor_S0 = color;
vlocalCoord_S0 = localCoord;
gl_Position = vec4(position, 0.0, 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 sampler2D uTextureSampler_0_S0;
flat in mediump vec4 vcolor_S0;
noperspective in highp vec2 vlocalCoord_S0;
void main() {
mediump vec4 outputColor_S0;
outputColor_S0 = vcolor_S0;
highp vec2 texCoord;
texCoord = vlocalCoord_S0;
outputColor_S0 = texture(uTextureSampler_0_S0, texCoord, -0.5) * outputColor_S0;
{
sk_FragColor = outputColor_S0;
}
}

Errors:
link failed but did not provide an info log
[16556:16556:0505/094229.968781:ERROR:shared_context_state.cc(77)] Skia shader compilation error

// Vertex SKSL
#extension GL_NV_shader_noperspective_interpolation: require
uniform float4 sk_RTAdjust;in float2 position;in half4 color;in float2 localCoord;flat out half4 vcolor_S0;noperspective out float2 vlocalCoord_S0;void main() {// Primitive Processor QuadPerEdgeAAGeometryProcessor
vcolor_S0 = color;vlocalCoord_S0 = localCoord;sk_Position = position.xy01;}
// Fragment SKSL
#extension GL_NV_shader_noperspective_interpolation: require
uniform sampler2D uTextureSampler_0_S0;
flat in half4 vcolor_S0;noperspective in float2 vlocalCoord_S0;void main() {// Stage 0, QuadPerEdgeAAGeometryProcessor
half4 outputColor_S0;outputColor_S0 = vcolor_S0;float2 texCoord;texCoord = vlocalCoord_S0;outputColor_S0 = (blend_modulate(sample(uTextureSampler_0_S0, texCoord), outputColor_S0));const half4 outputCoverage_S0 = half4(1);{ // Xfer Processor: Porter Duff
sk_FragColor = outputColor_S0 * 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;
in highp vec2 position;
in mediump vec4 color;
in highp vec2 localCoord;
flat out mediump vec4 vcolor_S0;
noperspective out highp vec2 vlocalCoord_S0;
void main() {
vcolor_S0 = color;
vlocalCoord_S0 = localCoord;
gl_Position = vec4(position, 0.0, 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 sampler2D uTextureSampler_0_S0;
flat in mediump vec4 vcolor_S0;
noperspective in highp vec2 vlocalCoord_S0;
void main() {
mediump vec4 outputColor_S0;
outputColor_S0 = vcolor_S0;
highp vec2 texCoord;
texCoord = vlocalCoord_S0;
outputColor_S0 = texture(uTextureSampler_0_S0, texCoord, -0.5) * outputColor_S0;
{
sk_FragColor = outputColor_S0;
}
}

Errors:
link failed but did not provide an info log

This error is caused by the latest mesa packages upgrade:

mesa-libglapi-23.0.3-3.fc38.x86_64
mesa-filesystem-23.0.3-3.fc38.x86_64
mesa-va-drivers-23.0.3-3.fc38.x86_64
mesa-dri-drivers-23.0.3-3.fc38.x86_64
mesa-libgbm-23.0.3-3.fc38.x86_64
mesa-libEGL-23.0.3-3.fc38.x86_64
mesa-libGL-23.0.3-3.fc38.x86_64
mesa-libxatracker-23.0.3-3.fc38.x86_64
mesa-vulkan-drivers-23.0.3-3.fc38.x86_64

This bug also affect other chromium based browsers, as you can see here:

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

As a temporary workaround, you can start Brave appending the -use-gl=egl option:

brave-browser -use-gl=egl

Hope it helps while the Chromium and Brave team work on the fix.

2 Likes

Just added the brave beta repository to Fedora and gave the latest beta a try and that seems to be working fine, so I now have two routes forward until the stable version of Brave is updated.

1 Like

Based on this thread: https://bbs.archlinux.org/viewtopic.php?id=285507 I tried

rm -fr .config/BraveSoftware/Brave-Browser/Default/GPUCache/

So far that has worked for me, although the thread suggests some users see the problem re-appear.

10 Likes

Removing the contents of the GPUCache directory allowed Brave to work for me. Also explains why the Brave Beta worked - it maintains it’s own config directory and would have started with a empty GPUCache folder.

3 Likes

My experience is that removing the GPU cache did NOT fix the problem, but
initial test of
brave-browser -use-gl=egl
seems to work (Linux Mint 21.1 Vera)

JN

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.