drisw: Avoid crashing when swrast_loader == NULL
authorDaniel van Vugt <daniel.van.vugt@canonical.com>
Fri, 4 Apr 2025 09:41:37 +0000 (17:41 +0800)
committerTimo Aaltonen <tjaalton@debian.org>
Fri, 2 May 2025 05:32:56 +0000 (08:32 +0300)
commit3e537dfbcedb80e6dace2f2599bb47057f6c904c
tree46ae8cafcdd344ad954f356ce3e329b33f3179cf
parent4b6547dee896cf92e829f9002ac62ab9ca94e475
drisw: Avoid crashing when swrast_loader == NULL

This is a blanket fix for all the segfaults in `drisw_init_screen()`
when `swrast_loader` is NULL, since 1de7c86bc1. A similar more targeted
fix for vmwgfx can be found in f3b8d7da46 ("egl: never select swrast
for vmwgfx"). We can safely return NULL because the caller
`driCreateNewScreen3` handles NULL, as does its own callers.

As this is currently the top crasher of gnome-shell since Ubuntu
upgraded to Mesa 25 and it seems to be coming from multiple different
drivers still, we want a universal fix to at least stop the crash
reports. People can figure out which drivers still need tweaking in
`dri2_load_driver` or elsewhere later.

Fixes: 1de7c86bc1 ("dri: pass through a type enum for creating screen instead of driver_extensions")
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12678 (radeon)
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12859 (radeon)
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12300 (nvidia-drm)
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12462 (nvidia-drm)
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2101817

Gbp-Pq: Name drisw-Avoid-crashing-when-swrast_loader-NULL.patch
src/gallium/frontends/dri/drisw.c