You are not logged in.
i915 is already included in my initramfs (via mkinitcpio's MODULES array); Nvidia modules are not, if that matters. Also, `nvidia_drm.modeset=1` is already set.
(Also, Electron was never an issue for me? Steam seems to be the only application affected by whatever my issue is.)
Offline
Just on a hunch, I tried installing `xf86-video-intel`, which I haven't had thus far. Unfortunately, Steam still crashes in the same way — which makes sense in that OpenGL support is handled by Mesa, which I already had.
Offline
Make sure to remove that ddx driver again otherwise and w/o further radjustments you're most likely running on the software rasterizer.
https://wiki.archlinux.org/title/Steam/ … sktop_file
Or what if you explicitly select
DRI_PRIME=pci-0000_00_02_0 steam
w/ 0000_00_02_0 being the PCI ID of your IGP (likely, check lspci)
Offline
Yep, removed xf86-video-intel as soon as I finished my test. Thanks!
For all of these tests, I've just been running `steam` via my terminal — so desktop file edits shouldn't be relevant? My application launcher is (the Wayland fork of) Rofi, which to my knowledge doesn't parse `PrefersNonDefaultGPU` anyway. (Edit: yeah, just tested this, and no change.)
Setting `DRI_PRIME=pci-0000_00_02_0` (which is correct for my iGPU) has no effect either.
Last edited by LRitzdorf (2025-02-03 09:44:35)
Offline
*sigh*
Time for the broadsword.
strace -f -tt -o /tmp/steam.strace steam
du -h /tmp/steam.strace # pot. very large you might want to gzip it?
cat /tmp/steam.strace | curl -F 'file=@-' 0x0.st
Offline
Oof, this is indeed the broadsword.
Trace is "only" 12MB; uploaded at http://0x0.st/8K3s.txt.
Offline
Idk whether that's normal for steam, but it opens /usr/lib/libGLX_indirect.so.0 - have we asked for "printenv"?
Offline
Yep, see #9 in this thread. Also, `libGLX_indirect.so.0` is provided by Mesa, which I have installed and haven't customized at all.
Offline
It's not so much that the file is there but that it gets accessed.
Is this on X11 or wayland (ie. xwayland)?
Don't use wayland for any of this, it complicates the situation because of the X11 nesting.
We need to make it work on X11 first, then see whether this translates to wayland (or why not)
Offline
That trace was under Xwayland, but Steam has and continues to crash in the same way under X11 proper (specifically IceWM). New trace uploaded to http://0x0.st/8PHc.bin, in case that's preferred over my previous Wayland one, though it does still access `libGLX_indirect.so.0`.
Offline
Hopefully this doesn't count as necrobumping if it's my own thread
So, updates after further testing:
While Steam itself launches successfully via `prime-run`, some games still crash. This includes Portal (both the native Linux version, and the Windows version running under Proton).
I've created a fresh Arch install (via a btrfs subvolume), and done my usual Hyprland/Nvidia configuration there.
On that fresh install, Steam launches normally (without needing `prime-run`), and games that crashed on my main install run successfully. Hopefully we can use this to compare against my main system somehow.
Back on my main install, I've used `DEBUGGER=gdb steam` to find where the crash occurs — we get a SIGTRAP, then a segfault, three function calls deep inside of `~/.local/share/Steam/ubuntu12_32/vgui2_s.so`.
I'm happy to do further testing, including more `gdb`/`strace`ing if necessary.
Last edited by LRitzdorf (2025-07-12 21:45:15)
Offline
To get everyone up to speed, please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General as well as the full output of "eglinfo -B" and the present output of "glxinfo -B" on both systems
Offline
Sure! Also, testing for both environments has been done under IceWM, to avoid XWayland shenanigans (and we determined earlier that Steam is still broken under raw Xorg in the same way as under Hyprland/XWayland, so fixing the former should also fix the latter).
eglinfo -B:
GBM platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 575.64.03
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 575.64.03
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 575.64.03
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Wayland platform:
eglinfo: eglInitialize failed
X11 platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Intel
OpenGL core profile renderer: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL core profile version: 4.6 (Core Profile) Mesa 25.1.5-arch1.1
OpenGL core profile shading language version: 4.60
OpenGL compatibility profile vendor: Intel
OpenGL compatibility profile renderer: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL compatibility profile version: 4.6 (Compatibility Profile) Mesa 25.1.5-arch1.1
OpenGL compatibility profile shading language version: 4.60
OpenGL ES profile vendor: Intel
OpenGL ES profile renderer: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 25.1.5-arch1.1
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Surfaceless platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 575.64.03
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 575.64.03
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 575.64.03
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device platform:
Device #0:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 575.64.03
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 575.64.03
OpenGL compatibility profile shading language version: 4.60 NVIDIA
OpenGL ES profile vendor: NVIDIA Corporation
OpenGL ES profile renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
OpenGL ES profile version: OpenGL ES 3.2 NVIDIA 575.64.03
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device #1:
Platform Device platform:
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
eglinfo: eglInitialize failed
Device #2:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Intel
OpenGL core profile renderer: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL core profile version: 4.6 (Core Profile) Mesa 25.1.5-arch1.1
OpenGL core profile shading language version: 4.60
OpenGL compatibility profile vendor: Intel
OpenGL compatibility profile renderer: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL compatibility profile version: 4.6 (Compatibility Profile) Mesa 25.1.5-arch1.1
OpenGL compatibility profile shading language version: 4.60
OpenGL ES profile vendor: Intel
OpenGL ES profile renderer: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 25.1.5-arch1.1
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
Device #3:
Platform Device platform:
EGL API version: 1.5
EGL vendor string: Mesa Project
EGL version string: 1.5
EGL client APIs: OpenGL OpenGL_ES
OpenGL core profile vendor: Mesa
OpenGL core profile renderer: llvmpipe (LLVM 20.1.7, 256 bits)
OpenGL core profile version: 4.5 (Core Profile) Mesa 25.1.5-arch1.1
OpenGL core profile shading language version: 4.50
OpenGL compatibility profile vendor: Mesa
OpenGL compatibility profile renderer: llvmpipe (LLVM 20.1.7, 256 bits)
OpenGL compatibility profile version: 4.5 (Compatibility Profile) Mesa 25.1.5-arch1.1
OpenGL compatibility profile shading language version: 4.50
OpenGL ES profile vendor: Mesa
OpenGL ES profile renderer: llvmpipe (LLVM 20.1.7, 256 bits)
OpenGL ES profile version: OpenGL ES 3.2 Mesa 25.1.5-arch1.1
OpenGL ES profile shading language version: OpenGL ES GLSL ES 3.20
glxinfo -B:
name of display: :1
display: :1 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel (0x8086)
Device: Mesa Intel(R) UHD Graphics (CML GT2) (0x9bc4)
Version: 25.1.5
Accelerated: yes
Video memory: 15853MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.6
Max compat profile version: 4.6
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 25.1.5-arch1.1
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.1.5-arch1.1
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.1.5-arch1.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
...I'm actually omitting the EGL/GLX outputs from the test system here, since they're identical to those above. (Checked using `diff`, so my unreliable human eyes aren't missing any details.)
Offline
Okay, further update: even when launched via `prime-run`, Steam would complain about being unable to resolve certain shared-object dependencies. I'd previously assumed this wasn't relevant, since Steam and most games ran successfully under `prime-run`, even with these warnings.
Just now, on a hunch, I tried launching Steam with LD_LIBRARY_PATH="/usr/lib:/usr/lib32" — and voila, the issue seems to be fixed! Steam itself, as well as my affected games (Portal 1 and 2 [via Steam Linux Runtime 1.0] and Heat Signature [via Proton Experimental]) all work. Reinforcing this is the fact that on my test system, Steam's LD_LIBRARY_PATH includes /usr/lib32, while on my main system it doesn't (unless I add it myself).
While my core issue is technically resolved, I guess my question now is, at what point should /usr/lib32 be injected into LD_LIBRARY_PATH? This happens by default on my test system, but not on my main one, so it'd be nice to know if (or more likely, where) I broke this. Will investigate further tomorrow — and since I have my test system for comparison, this shouldn't be too terribly difficult.
Offline
Why would LD_LIBRARY_PATH be set itfp, notably to the default paths?
Offline
LD_LIBRARY_PATH isn't set by default, on either system. Steam sets it somewhere during the bootstrap process, but on my main system, that seems to be broken somehow — the set of paths Steam comes up with doesn't include `/usr/lib32`. That seems to be why giving it an explicit LD_LIBRARY_PATH to start with fixes the issue; the paths I provide get baked into the full set that Steam generates for itself.
Offline
Okay, further shell-script tracing reveals that Steam calls
~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/bin/steam-runtime-identify-library-abi --ldconfig-paths
to build part of the LD_LIBRARY_PATH it uses later. On my test system, this lists `/usr/lib32`, `/usr/lib/libfakeroot` and `/usr/lib` — but on my main system, only `/usr/lib`.
The other two, lib32 and libfakeroot, are referenced in `/etc/ld.so.conf.d/lib32-glibc.conf` and `/usr/lib/ld.so.conf.d/fakeroot.conf`, which are owned by the `lib32-glibc` and `fakeroot` packages respectively. `pacman -Qkk` reveals no altered files and no other warnings for either of these packages.
My current guess is that the Steam ldconfig program isn't reading these correctly, or that my system's linker cache is somehow not reading them? I'm not intimately familiar with the dynamic linker system, though. (Also, that Steam "identify-library-abi" program is a binary, not a shell script, so poking around inside it is going to be rather difficult.)
Edit: `ldconfig -p` on my main system doesn't list any libraries in /usr/lib32, whereas it does on the test system. So this is definitely an ldconfig issue on my main system.
Last edited by LRitzdorf (Yesterday 21:09:18)
Offline
Okay, finally fixed! Somehow, my /etc/ld.so.conf was empty, so it didn't contain the usual include directives. That's why ldconfig was missing a bunch of my libraries. Not sure how that happened, but it's fixed now, and Steam runs perfectly!
Offline