[Bisected] VirtualBox: GDM fails to start
Description from the original bug report: https://bugzilla.redhat.com/show_bug.cgi?id=2333711
After upgrading to fedora rawhide (42), gdm is stuck on login screen or blank screen depending on kernel being used on virtual box (fedora rawhide being the guest OS and not the hypervisor)
Setting the following in /etc/environment "solved" the problem:
MUTTER_DEBUG_DISABLE_TRIPLE_BUFFERING=1 MUTTER_DEBUG_USE_KMS_MODIFIERS=0
as found in one of the comments of [1]. The gnome-shell process coredumps with the following backtrace:
Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007fe021228f4f in drisw_init_screen (screen=0x5628cfe3e790, driver_name_is_inferred=false) at ../src/gallium/frontends/dri/drisw.c:623 623 if (loader->base.version >= 4) { --Type <RET> for more, q to quit, c to continue without paging-- [Current thread is 1 (Thread 0x7fe0496b7640 (LWP 3954))] (gdb) bt #0 0x00007fe021228f4f in drisw_init_screen (screen=0x5628cfe3e790, driver_name_is_inferred=false) at ../src/gallium/frontends/dri/drisw.c:623 #1 0x00007fe0212242cd in driCreateNewScreen3 (scrn=scrn@entry=0, fd=<optimized out>, loader_extensions=0x7fe04453f1a0 <image_loader_extensions>, type=type@entry=DRI_SCREEN_SWRAST, driver_configs=driver_configs@entry=0x5628cfca7420, driver_name_is_inferred=driver_name_is_inferred@entry=false, has_multibuffer=true, data=0x5628cfcee530) at ../src/gallium/frontends/dri/dri_util.c:144 #2 0x00007fe044504ae9 in dri2_create_screen (disp=disp@entry=0x5628cfcee530) at ../src/egl/drivers/dri2/egl_dri2.c:825 #3 0x00007fe0445062ce in dri2_initialize_device (disp=disp@entry=0x5628cfcee530) at ../src/egl/drivers/dri2/platform_device.c:362 #4 0x00007fe044505388 in dri2_initialize (disp=0x5628cfcee530) at ../src/egl/drivers/dri2/egl_dri2.c:912 #5 0x00007fe0444f3b86 in eglInitialize (dpy=<optimized out>, major=0x0, minor=0x0) at ../src/egl/main/eglapi.c:719 #6 0x00007fe04d2faf74 in meta_egl_initialize (egl=0x5628cf944830, display=0x5628cfcee530, error=0x7fff81dcbb38) at ../src/backends/meta-egl.c:276 #7 meta_render_device_egl_stream_create_egl_display (render_device=<optimized out>, error=0x7fff81dcbb38) at ../src/backends/native/meta-render-device-egl-stream.c:220 #8 0x00007fe04d36f7ad in meta_render_device_create_egl_display (render_device=0x5628cfccaf50, error=0x7fff81dcbb38) at ../src/backends/native/meta-render-device.c:67 #9 init_egl (render_device=0x5628cfccaf50) at ../src/backends/native/meta-render-device.c:139
I bisected the issue to:
1de7c86bc1accf45ed42d4b67a1c37cd36f6306d is the first bad commit
commit 1de7c86bc1accf45ed42d4b67a1c37cd36f6306d
Author: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Date: Tue Jul 30 15:02:10 2024 -0400
dri: pass through a type enum for creating screen instead of driver_extensions
the caller always knows what type of screen this will be, which means
it's finally possible to kill off passing a vtable here
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30524>
cc @zmike