mesa 24.3.1 gallium crash/segfault on GPUs without format modifiers
System information
- OS: Arch Linux
- GPU:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev e7)
- Kernel version: 6.13.0-rc1
- Mesa version: 24.3.1-arch1.1
- Desktop manager and compositor: Plasma 6.2.4
Describe the issue
After update to mesa 24.3.1, apps crash with segfault on GPUs without format modifiers support.
Backtraces
Thread 69 "firefox:gl0" received signal SIGSEGV, Segmentation fault.
#0 dri2_allocate_textures () at ../mesa-24.3.1/src/gallium/frontends/dri/dri2.c:505
#1 0x00007fffd54ee006 in dri_st_framebuffer_validate () at ../mesa-24.3.1/src/gallium/frontends/dri/dri_drawable.c:79
#2 0x00007fffd559c7e4 in st_framebuffer_validate () at ../mesa-24.3.1/src/mesa/state_tracker/st_manager.c:239
#3 0x00007fffd559d76d in st_manager_validate_framebuffers () at ../mesa-24.3.1/src/mesa/state_tracker/st_manager.c:1240
#4 0x00007fffd581f4c0 in st_update_framebuffer_state () at ../mesa-24.3.1/src/mesa/state_tracker/st_atom_framebuffer.c:120
#5 0x00007fffd558aea1 in st_validate_state () at ../mesa-24.3.1/src/mesa/state_tracker/st_util.h:131
#6 st_prepare_draw () at ../mesa-24.3.1/src/mesa/state_tracker/st_draw.c:88
#7 0x00007fffd572afa8 in _mesa_draw_arrays () at ../mesa-24.3.1/src/mesa/main/draw.c:1176
#8 0x00007fffd579f59d in _mesa_unmarshal_DrawArraysInstanced () at ../mesa-24.3.1/src/mesa/main/glthread_draw.c:293
#9 0x00007fffd553f011 in glthread_unmarshal_batch () at ../mesa-24.3.1/src/mesa/main/glthread.c:141
#10 0x00007fffd59976e4 in util_queue_thread_func () at ../mesa-24.3.1/src/util/u_queue.c:294
#11 0x00007fffd59cc55d in impl_thrd_routine () at ../mesa-24.3.1/src/c11/impl/threads_posix.c:67
...
Thread 1 "alacritty" received signal SIGSEGV, Segmentation fault.
#0 dri2_query_image () at ../mesa-24.3.1/src/gallium/frontends/dri/dri2.c:1410
#1 0x00007ffff76d2e39 in create_wl_buffer () at ../mesa-24.3.1/src/egl/drivers/dri2/platform_wayland.c:1471
#2 0x00007ffff76d3786 in dri2_wl_swap_buffers_with_damage () at ../mesa-24.3.1/src/egl/drivers/dri2/platform_wayland.c:1675
#3 0x00007ffff76c8a64 in dri2_swap_buffers_with_damage () at ../mesa-24.3.1/src/egl/drivers/dri2/egl_dri2.c:1683
#4 0x00007ffff76b8177 in _eglSwapBuffersWithDamageCommon () at ../mesa-24.3.1/src/egl/main/eglapi.c:1493
...
Regression
Yes, 24.3.0 is fine.
first bad commit: [4c065158] dri: revert INVALID modifier special-casing
Introduced in !32396 (merged).
Reverting this change fixes the issue.
Edited by Hanabishi