Control: retitle -1 Mesa 22.x regression on mipsel: GTK4 test segfaults with llvmpipe
Control: reassign -1 libgl1-mesa-dri 22.0.3-1
Control: severity -1 important
Control: affects -1 src:gtk4
not a regression in the new GTK version. Instead, it looks like a
regression in related packages, most likely in the transition to Mesa 22
or LLVM 14.
I can reproduce this without building GTK, by using the installed-tests
in the gtk-4-tests package.
Enter a mipsel chroot on eller:
schroot -n ${USER}-bug1010838 -c sid_mipsel-dchroot --begin
dd-schroot-cmd -c ${USER}-bug1010838 apt-get -y update
dd-schroot-cmd -c ${USER}-bug1010838 apt-get -y dist-upgrade
dd-schroot-cmd -c ${USER}-bug1010838 apt-get -y install gdb gtk-4-tests xauth xvfb
schroot -c ${USER}-bug1010838 -r
Get GTK 4 source code and cd into it (no need to compile or patch, you
just need the test data files). Then the reproducer for the segfault is:
xvfb-run -a \
/usr/libexec/installed-tests/gtk-4.0/gsk/compare-render \
--output ~ \
testsuite/gsk/compare/rounded-clip-in-clip-3d.node \
testsuite/gsk/compare/rounded-clip-in-clip-3d.png
Expected result: GTK renders the node, writes it to
~/rounded-clip-in-clip-3d.out.png and compares it with the reference
PNG. Ideally it should exit with status 0. If there is a rendering
difference, it writes an exaggerated version of the difference into
~/rounded-clip-in-clip-3d.diff.png and exits with status 1.
Actual result: compare-render segfaults (for this specific .node file,
others work OK). Unfortunately the backtrace from the segfault doesn't
seem to be useful (presumably it's in generated code), but I've captured
it into gdb.txt in case it's useful.
This test works OK in a bookworm chroot (see attached good.txt for the
exact package list), and fails in a sid chroot (see bad.txt).
Workaround: any of the following environment variables avoids the crash:
- GSK_RENDERER=cairo
(avoids GTK's GL renderer and falls back to Cairo; the scene is
misrendered and the test fails, but it doesn't crash)
- GALLIUM_DRIVER=softpipe
(the test passes)
- LIBGL_ALWAYS_INDIRECT=true
(the scene is misrendered and the test fails, but it doesn't crash)
Mesa-related information from
xvfb-run -a reportbug --template libgl1-mesa-dri
also attached, as reportbug.txt.
smcv