Screen corruption of webkit2gtk apps in X11 on Raspberry Pi, such as during install

Bug #2037015 reported by Dave Jones
56
This bug affects 9 people
Affects Status Importance Assigned to Milestone
Webkit
Confirmed
Medium
mesa (Ubuntu)
Confirmed
Undecided
Daniel van Vugt
webkit2gtk (Ubuntu)
In Progress
Medium
Daniel van Vugt

Bug Description

[ Impact ]

Screen corruption of webkit2gtk apps in X11 on Raspberry Pi, such as during install.

[ Test Plan ]

1. Log into a Xorg session on a Raspberry Pi 4/400.

2. Open the default Help app by clicking the question mark icon in the dock or by running 'yelp'.

3. Verify it didn't crash and the window contents are not corrupt.

[ Where problems could occur ]

The fix is limited to webkit2gtk so can only affect apps such as yelp or the Raspberry Pi installer.

[ Other Info ]

During the initial configuration of the Ubuntu Desktop for Raspberry Pi (the oem-config process, derived from ubiquity), on the Mantic beta images, after the various pages of information have been filled out and the process moves onto configuration, the "slide deck" that is usually displayed during the process appeared corrupted as if a horizontal stride were incorrectly set somewhere.

I'm attached a photo of the screen (as, while I could take a screenshot during the process, it evidently wasn't saved somewhere persistent).

I originally thought this might be a regression of LP: #1924251 as the corruption in the window looks very similar (incorrect horizontal stride causing "banding"), but I tested the embedded browser (via the help system) after completing setup and it worked perfectly so that's *probably* unrelated.

Revision history for this message
Dave Jones (waveform) wrote :
tags: added: raspi-image rls-mm-incoming
Dave Jones (waveform)
description: updated
Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
https://iso.qa.ubuntu.com/qatracker/reports/bugs/2037015

tags: added: iso-testing
tags: added: foundations-todo
removed: rls-mm-incoming
Changed in ubiquity (Ubuntu):
assignee: nobody → Julian Andres Klode (juliank)
importance: Undecided → High
status: New → Triaged
assignee: Julian Andres Klode (juliank) → Dave Jones (waveform)
Revision history for this message
Dave Jones (waveform) wrote :

Not occurring on the latest daily on either Pi 4 or 5; I'm guessing the recent updates of mutter or mesa are responsible.

Changed in ubiquity (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Dave Jones (waveform) wrote :

Bah, spoke too early. This is *not* occurring on the Pi 5, but *is* occurring on the Pi 4 (tested both with the final image). Setting to low priority because it's a purely cosmetic issue; the installation prompts still work happily, and so does the installation afterwards.

Changed in ubiquity (Ubuntu):
status: Fix Released → Confirmed
importance: High → Low
Dave Jones (waveform)
summary: - Screen corruption of slides during install on Raspberry Pi
+ Screen corruption of slides during install on Raspberry Pi 4
Revision history for this message
Paride Legovini (paride) wrote : Re: Screen corruption of slides during install on Raspberry Pi 4

Confirmed happening on the Pi4 with the latest Mantic RCs.

Dave Jones (waveform)
Changed in ubiquity (Ubuntu Mantic):
assignee: Dave Jones (waveform) → nobody
Changed in ubiquity (Ubuntu Noble):
assignee: Dave Jones (waveform) → nobody
Revision history for this message
Leó Kolbeinsson (leok) wrote :

This occurring on daily ISO 20-11-2023 Ubuntu Noble Pi4

Changed in ubiquity (Ubuntu Noble):
milestone: none → ubuntu-24.03
Changed in ubiquity (Ubuntu Mantic):
status: Confirmed → Won't Fix
Revision history for this message
Dave Jones (waveform) wrote :

Now affecting the 22.04.4 jammy ISO

Changed in ubiquity (Ubuntu Jammy):
status: New → Confirmed
Dave Jones (waveform)
Changed in ubiquity (Ubuntu Jammy):
importance: Undecided → Low
Changed in ubiquity (Ubuntu Noble):
milestone: ubuntu-24.03 → none
milestone: none → ubuntu-24.04
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Same issue in Yelp (the Help app) when in Xorg sessions. So I think this is a webkit2gtk bug that only manifests on Xorg (like our installer/live sessions).

Also I have removed the series targets because they were getting cluttered and likely targeting the wrong package anyway.

tags: added: noble
no longer affects: ubiquity (Ubuntu Jammy)
no longer affects: ubiquity (Ubuntu Mantic)
no longer affects: ubiquity (Ubuntu Noble)
no longer affects: webkit2gtk (Ubuntu Jammy)
no longer affects: webkit2gtk (Ubuntu Mantic)
no longer affects: webkit2gtk (Ubuntu Noble)
Changed in mesa (Ubuntu):
status: New → Confirmed
Changed in webkit2gtk (Ubuntu):
status: New → Confirmed
tags: added: raspi raspigfx
Revision history for this message
Dave Jones (waveform) wrote :

There's an intriguingly different style of corruption in the noble images on the Pi 5. It's still just on the installer's slides, but it's more ... "chunky"? I'll attach a photo...

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

That's expected; it's just a different graphics memory layout with a different GPU.

summary: - Screen corruption of slides during install on Raspberry Pi 4
+ Screen corruption of slides during install on Raspberry Pi
Changed in webkit2gtk (Ubuntu):
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in webkit2gtk (Ubuntu):
status: Confirmed → In Progress
importance: Undecided → Medium
milestone: none → ubuntu-24.04
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: Screen corruption of slides during install on Raspberry Pi

Yelp also crashes soon after displaying the corruption: bug 2060938

Revision history for this message
In , Webkitbug (webkitbug) wrote :
Download full text (5.7 KiB)

Created attachment 470961
Image of the artifacts.

All pages do not render properly in both the Eiphany and surf browsers (see attached example). This is on a Raspberry Pi 4, running NixOS. Here's the output of webkit://gpu in the Eiphany browser:

```
{
    "Version Information": {
        "WebKit version": "WebKitGTK 2.44.1 (tarball)",
        "Operating system": "Linux 6.1.63 #1-NixOS SMP Tue Jan 1 00:00:00 UTC 1980 aarch64",
        "Desktop": "XFCE",
        "Cairo version": "1.18.0 (build) 1.18.0 (runtime)",
        "GStreamer version": "1.22.9 (build) GStreamer 1.22.9 (runtime)",
        "GTK version": "4.12.5 (build) 4.12.5 (runtime)"
    },
    "Display Information": {
        "Identifier": "1",
        "Type": "X11",
        "Screen geometry": "0,0 1920x1080",
        "Screen work area": "0,27 1920x1053",
        "Depth": "24",
        "Bits per color component": "8",
        "DPI": "96",
        "VBlank type": "Timer",
        "VBlank refresh rate": "60Hz",
        "DRM Device": "/dev/dri/card0",
        "DRM Render Node": "/dev/dri/renderD128"
    },
    "API": "OpenGL ES 2 (libepoxy)",
    "Hardware Acceleration Information": {
        "Policy": "always",
        "WebGL enabled": "Yes",
        "Renderer": "DMABuf (Supported buffers: Hardware, Shared Memory)",
        "Native interface": "None"
    },
    "Hardware Acceleration Information (Render process)": {
        "Platform": "GBM",
        "GL_RENDERER": "V3D 4.2.14",
        "GL_VENDOR": "Broadcom",
        "GL_VERSION": "OpenGL ES 3.1 Mesa 24.0.3",
        "GL_SHADING_LANGUAGE_VERSION": "OpenGL ES GLSL ES 3.10",
        "GL_EXTENSIONS": "GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_AMD_performance_monitor GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_pack_subimage GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_APPLE_sync GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_NV_generate_mipmap_sRGB GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_debug_label GL_EXT...

Read more...

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

And webkit2gtk's MiniBrowser has the same crash: bug 2062146

(both in Xorg sessions)

no longer affects: ubiquity (Ubuntu)
Changed in webkit:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: Screen corruption of slides during install on Raspberry Pi

I have a hunch the problems might have started in WebKit 2.43.2 which included a backport of:
https://github.com/WebKit/WebKit/commit/8b0ce3683045d93cd365e91a4299f7e9babfc126

That's forcing us to take a whole new code path which clearly we're just discovering is a bit buggy on some platforms.

To work around it, you can export:

  WEBKIT_DMABUF_RENDERER_FORCE_SHM=1

which should have better performance than another workaround:

  WEBKIT_DISABLE_DMABUF_RENDERER=1

Both of those also solve bug 2060938 and bug 2062146 which I suspect is a newer crash caused by the newer Mesa in Noble. So if people find the installer is reliably crashing recently then that might explain it.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Revision history for this message
Steve Langasek (vorlon) wrote :

This is targeted to 24.04 and marked as 'in progress' but is definitely not landing before 24.04 GA on Thursday. What is the overall plan here? should this go to SRU? (It can, but in that case doesn't benefit users wrt the corruption issue in the *installer* until 24.04.1.)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

The plan is to SRU since the installer is not the only app affected.

It's non-fatal, 23.10 was released with the same bug. But I expect to have it fixed in time for 24.04.1

summary: - Screen corruption of slides during install on Raspberry Pi
+ Screen corruption of webkit2gtk apps in X11 on Raspberry Pi, such as
+ during install
Changed in mesa (Ubuntu):
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in webkit2gtk (Ubuntu):
milestone: ubuntu-24.04 → noble-updates
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
description: updated
description: updated
Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote (last edit ):

This is one of those first-touch experience items that, since this is Edubuntu's first foray into the Raspberry Pi experience, I'd rather get right the first time. Unfortunately, the corruption on the slideshow is sub-par and looks amateurish for us. So no, this needs to be reprioritized.

UPDATE: I was fed bad information (or not bad information, but information that was good at the time), and it turns out Edubuntu will have a Raspberry Pi LTS for 24.04, therefore, a 24.04.1.

Changed in webkit2gtk (Ubuntu):
milestone: noble-updates → ubuntu-24.04
Steve Langasek (vorlon)
Changed in webkit2gtk (Ubuntu):
milestone: ubuntu-24.04 → noble-updates
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.