Gnome-control-center and other apps abort because of GL_HALF_FLOAT
Package: gtk4-4.6.2+ds Package: gnome-shell Version: 42.0-4 -- System Information: Debian Release: bookworm/sid APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) As can be displayed by Firefox, gnome-shell with wayland is using ES 2.0: WebGL 1 Driver Renderer Intel Open Source Technology Center -- Mesa DRI Intel(R) 945GM x86/MMX/SSE2 WebGL 1 Driver Version OpenGL ES 2.0 Mesa 21.3.8 With the current gnome-shell version 42.0-4 many/all graphical gnome apps abort with segmentation failure. Also gtk4-demo aborts. This is caused by using GL_HALF_FLOAT at gtk4, which is not supported by ES 2.0. The coredump shows address data is NULL. A forced abort at _mesa_error shows it is caused by gtk4. At gsk/gl/gskglcommandqueue.c exist the lines: glVertexAttribPointer (2, 4, GL_HALF_FLOAT, GL_FALSE, and glVertexAttribPointer (3, 4, GL_HALF_FLOAT, GL_FALSE, gert@debian:~$ MESA_DEBUG=1 gnome-control-center Mesa: User error: GL_INVALID_ENUM in glVertexAttribPointer(type = GL_HALF_FLOAT) Segmentation fault (core dumped) No problem if I use: LIBGL_ALWAYS_SOFTWARE=1 MESA_DEBUG=1 gnome-control-center gnome-control-center also works if I use: MESA_GLES_VERSION_OVERRIDE=1.0 MESA_DEBUG=1 gnome-control-center (gnome-control-center:5552): GLib-WARNING **: 10:59:38.934: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Unable to create a GL context Gsk-Message: 10:59:38.934: Failed to realize renderer of type 'GskGLRenderer' for surface 'GdkWaylandToplevel': No EGL configuration available gnome-control-center also works without error if I use: GSK_RENDERER=cairo MESA_DEBUG=1 gnome-control-center Maybe the problem can be reproduced at a more powerful graphics card by: MESA_GLES_VERSION_OVERRIDE=2.0 MESA_DEBUG=1 gnome-control-center
Coredumps: Core was generated by `gnome-control-center'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0xa4a2af56 in run_vp (ctx=0xa27bc010, stage=0x26800b8) at ../src/mesa/tnl/t_vb_program.c:365 365 COPY_CLEAN_4V(machine->VertAttribs[attr], size, data); [Current thread is 1 (Thread 0xb0d69000 (LWP 2138))] (gdb) gdb Undefined command: "gdb". Try "help". (gdb) bt #0 0xa4a2af56 in run_vp (ctx=0xa27bc010, stage=0x26800b8) at ../src/mesa/tnl/t_vb_program.c:365 #1 0xa4a21986 in _tnl_run_pipeline (ctx=0xa27bc010) at ../src/mesa/tnl/t_pipeline.c:241 #2 0xa49698b9 in intelRunPipeline (ctx=0xa27bc010) at ../src/mesa/drivers/dri/i915/intel_tris.c:1087 #3 0xa4a20c37 in _tnl_draw_prims (ctx=0xa27bc010, arrays=0x2680ee0, prim=0xbfaace7c, nr_prims=1, ib=0x0, index_bounds_valid=1 '\001', min_index=<optimized out>, max_index=<optimized out>, num_instances=1, base_instance=0) at ../src/mesa/tnl/t_draw.c:528 #4 0xa4b281fa in _mesa_draw_gallium_fallback (ctx=0xa27bc010, info=0xbfaacee4, drawid_offset=0, draws=0xbfaaced8, num_draws=1) at ../src/mesa/main/draw.c:1016 #5 0xa4b2700c in _mesa_draw_arrays (ctx=0xa27bc010, mode=<optimized out>, start=<optimized out>, count=6, numInstances=1, baseInstance=0) at ../src/mesa/main/draw.c:1319 #6 0xb74ec559 in gsk_gl_command_queue_execute (self=<optimized out>, surface_height=884, scale_factor=1, scissor=0x0, default_framebuffer=0) at ../gsk/gl/gskglcommandqueue.c:1129 #7 0xb75058f6 in gsk_gl_render_job_render (job=0x37c8100, root=0x37c9c60) at ../gsk/gl/gskglrenderjob.c:4112 #8 0xb74e7abf in gsk_gl_renderer_render (renderer=<optimized out>, root=0x37c9c60, update_area=0x34e99a0) at ../gsk/gl/gskglrenderer.c:290 #9 0xb74d0c84 in gsk_renderer_render (renderer=0x2468ee8, root=0x37c9c60, region=0x24c9ff0) at ../gsk/gskrenderer.c:467 #10 0xb734f94a in gtk_widget_render (widget=0x21d41e8, surface=0x24e6018, region=0x24c9ff0) at ../gtk/gtkwidget.c:11694 #11 0xb73567c0 in surface_render (surface=0x24e6018, region=0x24c9ff0, widget=0x21d41e8) at ../gtk/gtkwindow.c:4733 #12 0xb744ec56 in _gdk_marshal_BOOLEAN__BOXEDv (closure=0x3089530, return_value=0xbfaad2e4, instance=<optimized out>, args=0xbfaad39c "\360\237L\002\274Ӫ\277\300\345G\002\220\034˷\026\274G\267", marshal_data=0x0, n_params=1, param_types=0x2498ff0) at gdk/gdkmarshalers.c:130 #13 0xb7c5f056 in () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #14 0xb7c76c01 in g_signal_emit_valist () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #15 0xb7c77915 in g_signal_emit () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #16 0xb747bdb6 in gdk_surface_process_updates_internal (surface=0x24e6018) at ../gdk/gdksurface.c:1348 #17 gdk_surface_paint_on_clock (clock=0x2472900, data=0x24e6018) at ../gdk/gdksurface.c:1436 #18 0xb7c5f056 in () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #19 0xb7c777bc in g_signal_emit_valist () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #20 0xb7c77915 in g_signal_emit () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #21 0xb746aa50 in _gdk_frame_clock_emit_paint (frame_clock=0x2472900) at ../gdk/gdkframeclock.c:708 #22 0xb746b839 in gdk_frame_clock_paint_idle (data=0x2472900) at ../gdk/gdkframeclockidle.c:605 #23 0xb7b4b101 in () at /lib/i386-linux-gnu/libglib-2.0.so.0 #24 0xb7b4a4a9 in g_main_context_dispatch () at /lib/i386-linux-gnu/libglib-2.0.so.0 #25 0xb7b4a879 in () at /lib/i386-linux-gnu/libglib-2.0.so.0 #26 0xb7b4a944 in g_main_context_iteration () at /lib/i386-linux-gnu/libglib-2.0.so.0 #27 0xb7d8e603 in g_application_run () at /lib/i386-linux-gnu/libgio-2.0.so.0 #28 0x0049fe49 in main () (gdb) f 0 #0 0xa623fdf6 in run_vp (ctx=0xa4b6a010, stage=0x1594998) at ../src/mesa/tnl/t_vb_program.c:365 365 COPY_CLEAN_4V(machine->VertAttribs[attr], size, data); (gdb) p data $1 = (const GLfloat *) 0x0
Forced abort at _mesa_error: Core was generated by `gnome-control-center'. Program terminated with signal SIGABRT, Aborted. #0 0xb7f34559 in __kernel_vsyscall () [Current thread is 1 (Thread 0xaf0a33c0 (LWP 19873))] (gdb) bt #0 0xb7f34559 in __kernel_vsyscall () #1 0xb5c7e8f6 in __libc_signal_restore_set (set=0xbfc20a8c) at ../sysdeps/unix/sysv/linux/internal-signals.h:105 #2 __GI_raise (sig=<optimized out>) at ../sysdeps/unix/sysv/linux/raise.c:47 #3 0xb5c6730b in __GI_abort () at abort.c:79 #4 0xa59ed08d in _mesa_error (ctx=<optimized out>, error=<optimized out>, fmtString=<optimized out>) at ../src/mesa/main/errors.c:353 #5 0xa5ae81ca in validate_array_format (ctx=0xa4210010, func=0xa62df2d1 "glVertexAttribPointer", legalTypesMask=<optimized out>, sizeMin=1, sizeMax=4, size=4, type=5131, normalized=false, integer=false, doubles=false, relativeOffset=0, format=6408, attrib=<optimized out>, vao=<optimized out>) at ../src/mesa/main/varray.c:711 #6 0xa5ae86fc in validate_array_and_format (ctx=ctx@entry=0xa4210010, func=func@entry=0xa62df2d1 "glVertexAttribPointer", vao=<optimized out>, obj=<optimized out>, legalTypes=<optimized out>, sizeMin=<optimized out>, sizeMax=<optimized out>, size=<optimized out>, type=<optimized out>, stride=<optimized out>, normalized=<optimized out>, integer=<optimized out>, doubles=0 '\000', format=6408, ptr=0x10, attrib=17) at ../src/mesa/main/varray.c:872 #7 0xa5aeb17d in _mesa_VertexAttribPointer (index=2, size=4, type=5131, normalized=0 '\000', stride=24, ptr=0x10) at ../src/mesa/main/varray.c:1656 #8 0xb751c437 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #9 0xb7536594 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #10 0xb7517fa1 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #11 0xb750052e in gsk_renderer_render () at /lib/i386-linux-gnu/libgtk-4.so.1 #12 0xb737f2dc in () at /lib/i386-linux-gnu/libgtk-4.so.1 #13 0xb73863e0 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #14 0xb7481e86 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #15 0xb7c87056 in () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #16 0xb7c9ec01 in g_signal_emit_valist () at /lib/i386-linux- gnu/libgobject-2.0.so.0 #17 0xb7c9f915 in g_signal_emit () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #18 0xb74af27e in () at /lib/i386-linux-gnu/libgtk-4.so.1 #19 0xb7c87056 in () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #20 0xb7c9f7bc in g_signal_emit_valist () at /lib/i386-linux- gnu/libgobject-2.0.so.0 #21 0xb7c9f915 in g_signal_emit () at /lib/i386-linux-gnu/libgobject-2.0.so.0 #22 0xb749e045 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #23 0xb749efb9 in () at /lib/i386-linux-gnu/libgtk-4.so.1 #24 0xb7b73101 in () at /lib/i386-linux-gnu/libglib-2.0.so.0 #25 0xb7b724a9 in g_main_context_dispatch () at /lib/i386-linux- gnu/libglib-2.0.so.0 #26 0xb7b72879 in () at /lib/i386-linux-gnu/libglib-2.0.so.0 #27 0xb7b72944 in g_main_context_iteration () at /lib/i386-linux- gnu/libglib-2.0.so.0 #28 0xb7db6603 in g_application_run () at /lib/i386-linux-gnu/libgio-2.0.so.0 #29 0x0044cdf9 in main () ii libgtk-3-0 3.24.33-1 ii libgtk-4-1 4.6.2+ds-1
Problem also reported at Debian Testing: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1010357