Steam crashes on start (glXChooseVisual failed)

Hi all,

my steam crashes after start. I’m fairly new to linux so I’m not sure what infos to give you. Just tell me what you need in addition to these:
starting steam from terminal:

steam.sh[4279]: Running Steam on cachyos rolling 64-bit
steam.sh[4279]: STEAM_RUNTIME is enabled automatically
setup.sh[4329]: Steam runtime environment up-to-date!
steam.sh[4279]: Steam client's requirements are satisfied
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2025-01-16 20:52:41] Startup - updater built Dec  2 2024 21:26:10
[2025-01-16 20:52:41] Startup - Steam Client launched with: '/home/katha/.local/share/Steam/ubuntu12_32/steam' '-srt-logger-opened'
01/16 20:52:41 minidumps folder is set to /tmp/dumps
01/16 20:52:41 Init: Installing breakpad exception handler for appid(steam)/version(1733265492)/tid(4383)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2025-01-16 20:52:41] Loading cached metrics from disk (/home/katha/.local/share/Steam/package/steam_client_metrics.bin)
[2025-01-16 20:52:41] Using the following download hosts for Public, Realm steamglobal
[2025-01-16 20:52:41] 1. https://client-update.fastly.steamstatic.com, /, Realm 'steamglobal', weight was 900, source = 'update_hosts_cached.vdf'
[2025-01-16 20:52:41] 2. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 100, source = 'update_hosts_cached.vdf'
[2025-01-16 20:52:41] 3. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'
[2025-01-16 20:52:41] Checking for update on startup
[2025-01-16 20:52:41] Suche nach verfügbaren Updates …
[2025-01-16 20:52:41] Downloading manifest: https://client-update.fastly.steamstatic.com/steam_client_ubuntu12
[2025-01-16 20:52:41] Manifest download: send request
[2025-01-16 20:52:41] Manifest download: waiting for download to finish
[2025-01-16 20:52:42] Manifest download: finished
[2025-01-16 20:52:42] Download skipped: /steam_client_ubuntu12 version 1733265492, installed version 1733265492, existing pending version 0
[2025-01-16 20:52:42] Nothing to do
[2025-01-16 20:52:42] Installation wird überprüft …
[2025-01-16 20:52:42] Performing checksum verification of executable files
[2025-01-16 20:52:42] Verification complete
UpdateUI: skip show logo
Steam logging initialized: directory: /home/katha/.local/share/Steam/logs

/usr/share/themes/Adwaita/gtk-2.0/main.rc:733: error: unexpected identifier 'direction', expected character '}'
/usr/share/themes/Adwaita/gtk-2.0/hacks.rc:28: error: invalid string constant "normal_entry", expected valid string constant
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xf1281dc0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xf1280500
steamwebhelper.sh[4414]: Using supervisor /home/katha/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-supervisor
steamwebhelper.sh[4414]: Starting steamwebhelper under bootstrap sniper steam runtime via /home/katha/.local/share/Steam/ubuntu12_64/steam-runtime-sniper.sh
steamwebhelper.sh[4414]: Using CEF sandbox \(try with -no-cef-sandbox if this fails\)
steamwebhelper.sh[4414]: Starting steamwebhelper with Sniper steam runtime at /home/katha/.local/share/Steam/ubuntu12_64/steam-runtime-sniper/_v2-entry-point
src/vgui2/src/surface_linux.cpp (1954) : glXChooseVisual failed
src/vgui2/src/surface_linux.cpp (1954) : glXChooseVisual failed
src/vgui2/src/surface_linux.cpp (1954) : Fatal assert; application exiting
src/vgui2/src/surface_linux.cpp (1954) : Fatal assert; application exiting
01/16 20:52:42 Init: Installing breakpad exception handler for appid(steam)/version(1733265492)/tid(4383)
assert_20250116205242_8.dmp[4468]: Uploading dump (out-of-process)
/tmp/dumps/assert_20250116205242_8.dmp

~
❯ assert_20250116205242_8.dmp[4468]: Finished uploading minidump (out-of-process): success = yes
assert_20250116205242_8.dmp[4468]: response: CrashID=bp-dd146c50-e916-48b2-9718-68cca2250116
assert_20250116205242_8.dmp[4468]: file ''/tmp/dumps/assert_20250116205242_8.dmp'', upload yes: ''CrashID=bp-dd146c50-e916-48b2-9718-68cca2250116''

glxinfo -B

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon RX 7900 XTX (radeonsi, navi31, LLVM 19.1.6, DRM 3.59, 6.12.9-3-cachyos) (0x744c)
    Version: 24.3.3
    Accelerated: yes
    Video memory: 24576MB
    Unified memory: no
    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
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 23912 MB, largest block: 23912 MB
    VBO free aux. memory - total: 31660 MB, largest block: 31660 MB
    Texture free memory - total: 23912 MB, largest block: 23912 MB
    Texture free aux. memory - total: 31660 MB, largest block: 31660 MB
    Renderbuffer free memory - total: 23912 MB, largest block: 23912 MB
    Renderbuffer free aux. memory - total: 31660 MB, largest block: 31660 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 24576 MB
    Total available memory: 56328 MB
    Currently available dedicated video memory: 23912 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 7900 XTX (radeonsi, navi31, LLVM 19.1.6, DRM 3.59, 6.12.9-3-cachyos)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.3.3-cachyos1.3
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 24.3.3-cachyos1.3
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 24.3.3-cachyos1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

glxinfo32 -B

glxinfo32 may be found in the following packages:
  multilib/lib32-mesa-utils 9.0.0-2	/usr/bin/glxinfo32

pacman -Qikk lm_sensors

Installed From           : cachyos-extra-znver4
Name                     : lm_sensors
Version                  : 1:3.6.0.r41.g31d1f125-3.1
Beschreibung             : Collection of user space tools for general SMBus access and hardware
                           monitoring
Architektur              : x86_64_v4
URL                      : https://hwmon.wiki.kernel.org/lm_sensors
Lizenzen                 : GPL  LGPL
Gruppen                  : Nichts
Stellt bereit            : libsensors.so=5-64
Hängt ab von             : bash  glibc
Optionale Abhängigkeiten : rrdtool: for logging with sensord
                           perl: for sensor detection and configuration convert [Installiert]
Benötigt von             : lib32-lm_sensors  mesa  net-snmp
Optional für             : inxi
In Konflikt mit          : Nichts
Ersetzt                  : Nichts
Installationsgröße       : 492,67 KiB
Packer                   : CachyOS <admin@cachyos.org>
Erstellt am              : Sa 13 Jul 2024 00:19:34 CEST
Installiert am           : Mi 13 Nov 2024 15:31:30 CET
Installationsgrund       : Installiert als Abhängigkeit eines anderen Pakets
Installations-Skript     : Nein
Verifiziert durch        : Signatur

lm_sensors: 48 Dateien gesamt, 0 veränderte Dateien

I think you need to install lib32-mesa
Also try to run steam-native

Does “steam --reset” help there?

lib32-mesa is already installed and steam-native crashes with the same error

Warnung: lib32-mesa-1:24.3.3-3 ist aktuell -- Reinstalliere
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …

Pakete (1) lib32-mesa-1:24.3.3-3

Gesamtgröße der installierten Pakete:  126,70 MiB
Größendifferenz der Aktualisierung:      0,00 MiB

steam reset gives this error:

steam --reset
steam.sh[4154]: Can't reset development directory

Not sure if this will help your situation, I use mesa-git and lib32-mesa-git using Intel Arc graphics.

Had same issue with steam failing to launch, ‘glxinfo32 -B’ was failing, ‘ldd /usr/lib32/libvulkan_intel.so’ showed it was missing ‘libSPIRV-Tools.so’, the main package was installed but not the lib32 version, installed lib32-spirv-tools and started working no problems.

Tracked down the lib32 issues from running ~/.steam/steam/ubuntu12_32/steam-runtime/run.sh ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-system-info and it not loading the i386-linux-gnu x11/vulkan drivers for my gpu.

This might lead to something. Running ~/.steam/steam/ubuntu12_32/steam-runtime/run.sh ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/bin/steam-runtime-system-info
Tells me that I might have the wrong drivers installed?

"graphics-details" : {
        "x11/vulkan" : {
          "messages" : [
            "vkCreateInstance (&inst_info, NULL, vk_instance) failed: ERROR_INCOMPATIBLE_DRIVER (-9)"
          ],
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-load",
            "cannot-draw"
          ],
          "exit-status" : 1,
          "devices" : [
          ]
        },
        "x11/vdpau" : {
          "messages" : [
            "Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory",
            "vdp_device_create_x11 (display, screen, &device, &vdp_get_proc_address) failed: 1"
          ],
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-draw"
          ],
          "exit-status" : 1
        },
        "x11/vaapi" : {
          "messages" : [
            "libva error: dlopen of /usr/lib32/dri/radeonsi_drv_video.so failed: libLLVM.so.19.1: wrong ELF class: ELFCLASS64",
            "vaInitialize (va_display, &major_version, &minor_version) failed: unknown libva error (-1)"
          ],
          "renderer" : null,
          "version" : null,
          "issues" : [
            "cannot-draw"
          ],
          "exit-status" : 1
        },

(Here the full log:https://pastebin.mozilla.org/tMihnodz)
No idea how that happend but any idea how I can resolve that?

The VDPAU stuff is fine, you dont have NVIDIA anyway, which is all that matters for really. The issue is this: "libva error: dlopen of /usr/lib32/dri/radeonsi_drv_video.so failed: libLLVM.so.19.1: wrong ELF class: ELFCLASS64" which says it found a 64bit library while looking for a 32bit version for the llvm library.
Are you updated to the latest mesa and lib32-mesa as well as llvm-libs and lib32-llvm-libs ?

I know LLVM updated from 18 to 19 which caused some issues and there. Check what versions you have with sudo pacman -Qs llvm current lastest version should be 19.1.7, something like:

local/lib32-llvm-libs 1:19.1.7-1
    LLVM runtime libraries (32-bit)
local/llvm 19.1.7-2
    Compiler infrastructure
local/llvm-libs 19.1.7-2
    LLVM runtime libraries

lib32-llvm-libs is still on version 18 while the rest is on 19.1.7-2

local/lib32-llvm-libs 18.1.8-1
    LLVM runtime libraries (32-bit)
local/llvm 19.1.7-2
    Compiler infrastructure
local/llvm-libs 19.1.7-2
    LLVM runtime libraries

I’m not sure how to update it sudo pacman -S lib32-llvm throws some conflicts and then fails to install.

Pakete (12) clang-19.1.7-2 [Entfernung]  compiler-rt-19.1.7-1.1 [Entfernung]
            lib32-clang-18.1.8-1 [Entfernung]  lib32-llvm-libs-git-19.0.0_r497401.23f0f7bda0c1-1
            lld-19.1.7-1.1 [Entfernung]  llvm-19.1.7-2 [Entfernung]
            llvm-git-19.0.0_r504078.4a9aef683df8-1  llvm-libs-19.1.7-2 [Entfernung]
            llvm-libs-git-19.0.0_r504078.4a9aef683df8-1  lua53-5.3.6-3.1  z3-4.13.4-2.1
            lib32-llvm-git-19.0.0_r497401.23f0f7bda0c1-1

And sudo pacman -Si lib32-llvm-git only finds version 19.0.0 instead of 19.1.7-2. Not sure if something is wrong with my mirrorlist or I’m just checking the wrong package.

Repositorium             : cachyos-v3
Name                     : lib32-llvm-git
Version                  : 19.0.0_r497401.23f0f7bda0c1-1

Edit: Something else that is weird. sudo pacman -Qi lib32-llvm-libs returns it was installed from Nothing :dizzy:

Installed From           : Nichts
Name                     : lib32-llvm-libs
Version                  : 18.1.8-1

while sudo pacman -Qi llvm-libs states it was installed from cachyos-v3

Installed From           : cachyos-v3
Name                     : llvm-libs
Version                  : 19.1.7-2

I assume the conflicts to running sudo pacman -S lib32-llvm-libs is from something else is installed that relies on it? If so that needs to be upgraded, or removed if can be. Until you upgrade the package your lib32 graphics vulkan drivers will not be able to load, which will stop Steam from running.

Make sure you do sudo pacman -S lib32-llvm-libs exactly to call the exact package name to install it.

sudo pacman -Si lib32-llvm-libs did not find any packages. I recreated my mirrorlist and now the package can be updated again.
Thanks all!