I recently encountered this problem when running games-fps/redeclipse (and some steam games). I am able to use the game's main menu, but when entering the game, it segfaults. After rebuilding media-libs/mesa with USE="llvm" (which is indeed the default, but not enforced by any profile), the problem went away. I think llvm should be required for video_cards_radeonsi like it's currently being required for video_cards_radeon. I think it's weird that this only happens in some games, though. games-fps/xonotic works without a hitch. $ cd /usr/share/redeclipse; gdb redeclipse_linux [...] (gdb) r Starting program: /usr/bin/redeclipse_linux [...] Thread 16 "redeclipse:sh1" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffd2dfd6c0 (LWP 15672)] nir_mov_alu (num_components=1, build=0x7fffd2df9b40, src=...) at ../mesa-24.2.6/src/compiler/nir/nir_builder.h:614 614 nir_def_init(&mov->instr, &mov->def, num_components, (gdb) bt #0 nir_mov_alu (num_components=1, build=0x7fffd2df9b40, src=...) at ../mesa-24.2.6/src/compiler/nir/nir_builder.h:614 #1 nir_swizzle (num_components=1, build=0x7fffd2df9b40, src=0x0, swiz=<synthetic pointer>) at ../mesa-24.2.6/src/compiler/nir/nir_builder.h:645 #2 nir_channel (b=0x7fffd2df9b40, def=0x0, c=3) at ../mesa-24.2.6/src/compiler/nir/nir_builder.h:736 #3 lower_tex (s=0x7fffd2df9bd0, b=0x7fffd2df9b40, instr=0x7fffc4345078) at ../mesa-24.2.6/src/gallium/drivers/radeonsi/si_nir_lower_abi.c:789 #4 si_nir_lower_abi (nir=nir@entry=0x7fffc4319130, shader=0x7fffc8057fb0, args=<optimized out>) at ../mesa-24.2.6/src/gallium/drivers/radeonsi/si_nir_lower_abi.c:821 #5 0x00007ffff469a2c2 in si_get_nir_shader (shader=shader@entry=0x7fffc8057fb0, args=args@entry=0x7fffd2dfa3e0, free_nir=free_nir@entry=0x7fffd2dfa2df, tcs_vgpr_only_inputs=tcs_vgpr_only_inputs@entry=0, output_info=output_info@entry=0x7fffd2dfa3a0) at ../mesa-24.2.6/src/gallium/drivers/radeonsi/si_shader.c:2499 #6 0x00007ffff469c877 in si_compile_shader (sscreen=0x555555f1adf0, compiler=<optimized out>, shader=0x7fffc8057fb0, debug=0x7fffc4323510) at ../mesa-24.2.6/src/gallium/drivers/radeonsi/si_shader.c:2875 #7 0x00007ffff46ce9c3 in si_init_shader_selector_async (job=0x7fffc43234e0, gdata=<optimized out>, thread_index=1) at ../mesa-24.2.6/src/gallium/drivers/radeonsi/si_state_shaders.cpp:3334 #8 0x00007ffff4071b59 in util_queue_thread_func (input=input@entry=0x7fffc403f540) at ../mesa-24.2.6/src/util/u_queue.c:309 #9 0x00007ffff4090717 in impl_thrd_routine (p=<optimized out>) at ../mesa-24.2.6/src/c11/impl/threads_posix.c:67 #10 0x00007ffff729772a in start_thread (arg=<optimized out>) at pthread_create.c:447 #11 0x00007ffff7324cf8 in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 $ emerge --info media-libs/mesa Portage 3.0.66.1 (python 3.12.7-final-0, default/linux/amd64/23.0/split-usr/desktop, gcc-14, glibc-2.40-r5, 6.6.58 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-6.6.58-x86_64-AMD_Ryzen_5_PRO_2500U_w-_Radeon_Vega_Mobile_Gfx-with-glibc2.40 KiB Mem: 23471468 total, 3167488 free KiB Swap: 8388604 total, 6668796 free Timestamp of repository gentoo: Sun, 01 Dec 2024 23:00:00 +0000 Head commit of repository gentoo: 980d5abbb6a111f6c3c3eb18896e0b559379680f Timestamp of repository guru: Sun, 01 Dec 2024 09:33:35 +0000 Head commit of repository guru: 365d878954f83f7cdadd94fc9e0f520d745fb991 Timestamp of repository pf4public: Sat, 30 Nov 2024 21:33:16 +0000 Head commit of repository pf4public: 6d49fd5fb6cdc35f76fc9b9586b177c0aebad52b Timestamp of repository src_prepare-overlay: Sun, 01 Dec 2024 09:33:36 +0000 Head commit of repository src_prepare-overlay: c0c263c67d1ef9c84555325d14e52ae9414ba902 Head commit of repository tlp: af2991838d36eb8337616cb66dcda93d455fdd66 Timestamp of repository without-systemd: Mon, 04 Nov 2024 07:18:29 +0000 Head commit of repository without-systemd: 47d0116a8785a3e78dc359bc604944924126787a sh dash 0.5.12 ld GNU ld (Gentoo 2.43 p3) 2.43.1 ccache version 4.10.2 [disabled] app-misc/pax-utils: 1.3.8::gentoo app-shells/bash: 5.2_p37::gentoo dev-build/autoconf: 2.13-r8::gentoo, 2.72-r1::gentoo dev-build/automake: 1.16.5-r2::gentoo dev-build/cmake: 3.30.5::gentoo dev-build/libtool: 2.4.7-r4::gentoo dev-build/make: 4.4.1-r100::gentoo dev-build/meson: 1.5.2::gentoo dev-java/java-config: 2.3.4::gentoo dev-lang/perl: 5.40.0::gentoo dev-lang/python: 3.12.7_p1::gentoo, 3.13.0::gentoo dev-lang/rust: 1.81.0-r100::gentoo dev-util/ccache: 4.10.2-r1::gentoo sys-apps/baselayout: 2.17::gentoo sys-apps/openrc: 0.55.1::gentoo sys-apps/sandbox: 2.39::gentoo sys-devel/binutils: 2.43-r2::gentoo sys-devel/binutils-config: 5.5.2::gentoo sys-devel/clang: 18.1.8::gentoo sys-devel/gcc: 14.2.1_p20241116::gentoo sys-devel/gcc-config: 2.11::gentoo sys-devel/lld: 18.1.8::gentoo sys-devel/llvm: 18.1.8-r1::gentoo sys-kernel/linux-headers: 6.6-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.40-r5::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 volatile: True sync-rsync-verify-jobs: 1 sync-rsync-verify-max-age: 3 sync-rsync-verify-metamanifest: yes sync-rsync-extra-opts: localrepo location: /usr/local/portage masters: gentoo priority: -1000 volatile: True guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo volatile: False pf4public location: /var/db/repos/pf4public sync-type: git sync-uri: https://github.com/gentoo-mirror/pf4public.git masters: gentoo volatile: False src_prepare-overlay location: /var/db/repos/src_prepare-overlay sync-type: git sync-uri: https://github.com/gentoo-mirror/src_prepare-overlay.git masters: gentoo volatile: False tlp location: /var/db/repos/tlp sync-type: git sync-uri: https://github.com/dywisor/tlp-portage masters: gentoo volatile: False without-systemd location: /var/db/repos/without-systemd sync-type: git sync-uri: https://github.com/gentoo-mirror/without-systemd.git masters: gentoo volatile: False Installed sets: @group-extdeps, @group-fonts, @group-i3-desktop, @group-sway-desktop, @group-system ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -O3 -w -march=znver1 -flto -fuse-linker-plugin -flto=4 --param=lto-max-streaming-parallelism=4 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe -O3 -w -march=znver1 -flto -fuse-linker-plugin -flto=4 --param=lto-max-streaming-parallelism=4 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--ask --nospinner --quiet-unmerge-warn --keep-going --usepkg --with-bdeps=y --binpkg-respect-use=n --binpkg-changed-deps=n" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-O2 -pipe -O3 -w -march=znver1 -flto -fuse-linker-plugin -flto=4 --param=lto-max-streaming-parallelism=4 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe -O3 -w -march=znver1 -flto -fuse-linker-plugin -flto=4 --param=lto-max-streaming-parallelism=4 -fgraphite-identity -floop-nest-optimize -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition" GENTOO_MIRRORS="http://distfiles.gentoo.org" INSTALL_MASK="/etc/apparmor.d /etc/systemd /lib/systemd /usr/lib/systemd" LANG="ca_ES.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs" LEX="flex" MAKEFLAGS="-j8" MAKEOPTS="-j4 -l5" PKGDIR="/usr/portage/packages" PORTAGE_BZIP2_COMMAND="lbzip2" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" RUSTFLAGS="-Copt-level=3 -Ctarget-cpu=znver1 -Clinker-plugin-lto -Clinker=clang -Clink-arg=-fuse-ld=lld" SHELL="/bin/zsh" USE="X acl acpi alsa amd64 bzip2 cairo cet crypt cups dbus dist-kernel dri elogind encode exif flac fontconfig gdbm gif gtk gui iconv icu ipv6 jpeg kf6compat lcms libnotify libtirpc lto modules-compress mp4 multilib ncurses nls ogg opengl openmp pam pango pcre pdf pgo png policykit ppds qml readline seccomp sound split-usr ssl startup-notification svg test-rust truetype udev udisks unicode upower usb v4l vaapi vim-syntax vorbis vulkan wxwidgets x264 xattr xcb xft xml xv zlib zsh-completion" ABI_X86="64" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput synaptics" KERNEL="linux" L10N="ca es-ES es en-GB en-US en" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-4" LUA_TARGETS="lua5-4" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" VIDEO_CARDS="amdgpu" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, SIZE, STRINGS, STRIP, YACC, YFLAGS ================================================================= Package Settings ================================================================= media-libs/mesa-24.2.6-r2::gentoo was built with the following: USE="X (opengl) proprietary-codecs vaapi vulkan wayland -d3d9 -debug -llvm -lm-sensors -opencl -osmesa (-selinux) -test -unwind -valgrind -vdpau -vulkan-overlay -xa -zstd" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse2" LLVM_SLOT="18 -15 -16 -17" VIDEO_CARDS="radeonsi -d3d12 (-freedreno) -intel -lavapipe (-lima) -nouveau -nvk (-panfrost) -r300 -r600 -radeon (-v3d) (-vc4) -virgl (-vivante) -vmware -zink" CFLAGS="-O2 -pipe -ggdb3" CXXFLAGS="-O2 -pipe -ggdb3" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles installsources ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
(In reply to Esteve Varela Colominas from comment #0) > I think it's weird that this only happens in some games, though. > games-fps/xonotic works without a hitch. Probably because radv doesn't require llvm.
Also in recent mesa versions radeonsi driver can use ACO compiler instead of llvm. It can be enabled with the following environment variable: AMD_DEBUG=useaco But IIUC some shaders are still require llvm. Support for compiling all shaders using ACO will be in mesa-24.0.
I see! I'll wait for 24.0 to try again, though I'm mostly worried about getting warnings/ewarn messages for things like this. It would make sense to make this slightly more idiot-proof, I think.
Very interesting. Can you reproduce this with 24.3.x? If so, could you please file an issue upstream at https://gitlab.freedesktop.org/mesa/mesa/-/issues ? The people the work on the ACO compiler will be interested to investigate.