ngl: rendering issues on ARM Mali G72 / panfrost
Steps to reproduce
Start any GTK4 app
Current behavior
GTK4 apps have graphical glitches (GTK3 apps seem to be fine). Issues include:
- scrollable sidebar elements missing/blinking
- icons rendered over other icons in scrollable sidebars
- text rendering issues in scrollable sidebars
- hamburger menus / other title bar items missing/blinking
The issues disappear when forcing the gl
or cairo
renderer via the GSK_RENDERER
environment variable.
Expected outcome
Normal rendering.
Version information
GTK4 version: 4.14.5
OS: NixOS unstable
Desktop environment: Phosh/Phoc (wayland/wlroots)
GPU driver: panfrost / mesa 24.2.2
Hardware:
Device: Lenovo IdeaPad Duet Chromebook (google-krane)
CPU: Mediatek MT8183
GPU: ARM Mali-G72 MP3
Additional information
For example, gnome-control-center:
Debug output (GDK_DEBUG=opengl GSK_RENDERER=ngl gnome-control-center
):
EGL API version 1.4 found
- Vendor: Mesa Project
- Version: 1.4
- Device: /dev/dri/renderD128, 226 128
- Client APIs: OpenGL OpenGL_ES
- Extensions:
EGL_ANDROID_blob_cache
EGL_ANDROID_native_fence_sync
EGL_EXT_buffer_age
EGL_EXT_config_select_group
EGL_EXT_image_dma_buf_import
EGL_EXT_image_dma_buf_import_modifiers
EGL_EXT_pixel_format_float
EGL_EXT_present_opaque
EGL_EXT_surface_compression
EGL_EXT_swap_buffers_with_damage
EGL_KHR_cl_event2
EGL_KHR_config_attribs
EGL_KHR_context_flush_control
EGL_KHR_create_context
EGL_KHR_create_context_no_error
EGL_KHR_fence_sync
EGL_KHR_get_all_proc_addresses
EGL_KHR_gl_colorspace
EGL_KHR_gl_renderbuffer_image
EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_texture_3D_image
EGL_KHR_gl_texture_cubemap_image
EGL_KHR_image_base
EGL_KHR_no_config_context
EGL_KHR_partial_update
EGL_KHR_reusable_sync
EGL_KHR_surfaceless_context
EGL_KHR_swap_buffers_with_damage
EGL_KHR_wait_sync
EGL_MESA_configless_context
EGL_MESA_drm_image
EGL_MESA_gl_interop
EGL_MESA_image_dma_buf_export
EGL_MESA_query_driver
EGL_MESA_x11_native_visual_id
EGL_WL_bind_wayland_display
EGL_WL_create_wayland_buffer_from_image
- Selected fbconfig: R8G8B8A8, depth 0, stencil 0
high depth: R16G16B16A16 float, depth 0, stencil 0
Creating EGL context version 2.0 (debug:no, forward:no, legacy:no, es:yes)
Created EGL context[0xf5e15f0]
Using OpenGL backend EGL
OpenGL ES version: 3.1 (core)
* GLSL version: OpenGL ES GLSL ES 3.10
* Max texture size: 8192
Enabled features (use GDK_GL_DISABLE env var to disable):
debug: YES
unpack-subimage: YES
half-float: YES
sync: YES
base-instance: YES
buffer-storage: YES
Creating EGL context version 3.0 (debug:no, forward:no, legacy:no, es:yes)
Created EGL context[0xf6a94b0]
OpenGL ES version: 3.1 (core)
* GLSL version: OpenGL ES GLSL ES 3.10
* Max texture size: 8192
Enabled features (use GDK_GL_DISABLE env var to disable):
debug: YES
unpack-subimage: YES
half-float: YES
sync: YES
base-instance: YES
buffer-storage: YES
Using fractional scale 2 for EGL window (600 913 => 1200 1826)
Destroying EGL context
Edited by Edwin Mackenzie-Owen