Steam not starting; probably mesa/llvm issues

Hi all,

I've recently updated my system, and Steam now crashes on startup. I suspect this is because my mesa is built against the wrong llvm. Before I get too into the details, here's what I think is the relevant section of the error I get on trying to launch Steam:

Loaded SDL version 3.0.0-765-gc4db0725e
OpenGL GLX extension not supported by display
OpenGL GLX extension not supported by displaysrc/steamUI/Main.cpp (425) : Assertion Failed: Error: OpenGL GLX extension not supported by display
src/steamUI/Main.cpp (425) : Assertion Failed: Error: OpenGL GLX extension not supported by display
assert_20230214172943_6.dmp[5045]: Uploading dump (out-of-process)
/tmp/dumps/assert_20230214172943_6.dmp
Gtk-Message: 17:29:43.388: Failed to load module "appmenu-gtk-module"
Gtk-Message: 17:29:43.389: Failed to load module "appmenu-gtk-module"

I've got the [mesa-git](https://wiki.archlinux.org/title/Unofficial_user_repositories#mesa-git) repo enabled, so I've actually got two llvm-libs-git available in Octopi: one from chaotic-aur and one from mesa-git. I first ran into this a month or so ago, and managed to get everything working by just installing the mesa-git version instead of the newer chaotic-aur version with sudo pacman -Sd mesa-git/llvm-libs-git. I then proceeded to leave my system precariously balanced like that and didn't update anything for weeks, because I knew I'd have to fix stuff and I wanted to play games on my new machine instead.

So now I'm trying to make things right. When I try to install the mesa-git version instead of the chaotic-aur version, I now get the following errors:

╰─λ sudo pacman -Sd mesa-git/llvm-libs-git
[sudo] password for kestrel:
warning: downgrading package llvm-libs-git (17.0.0_r451593.5dc34eb379f4-1 => 16.0.0_r448555.dca40e3288f4-1)
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing llvm-libs-git (16.0.0_r448555.dca40e3288f4-1) breaks dependency 'llvm-libs' required by openmp
:: installing llvm-libs-git (16.0.0_r448555.dca40e3288f4-1) breaks dependency 'llvm-libs' required by vulkan-swrast

It looks like llvm-libs-git depends on openmp, which depends on tensorflow, which depends on llvm-libs-git, which is a pleasant little circle. vulkan-swrast looks like it replaces vulkan, and is used by lots of stuff, so that's not an option to remove.

So I guess I have a few questions:

  1. What's the best way to approach this? Should I just try to remove the mesa-git repo, and if so, how do I do that?
  2. If removing mesa-git doesn't seem like the way to go, what other avenues should I look at?
  3. How can I check the llvm/mesa versions in my system to make sure that mesa is built against the version of llvm that I have?

It's probably worth noting that I had to go for the mesa-git repo because I've got a 7900XT, which a month ago was shiny and new enough that I needed to use mesa-git to get support for it. I'm hopeful that all the changes I need have trickled into slightly more standard repos.

Thanks!

EDIT: It appears that someone has moved this to the Unsupported Software category. That's fine, but I'd love to know about what's unsupported and what's not, as well. Is this purely because of the mesa-git stuff, or is chaotic-aur also unsupported?

[đź”´] Ă— garuda-inxi
System:
Kernel: 6.1.11-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=cf95cbc9-d27b-41f5-acc4-f8824ac2d362 rw rootflags=subvol=@
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
loglevel=3 ibt=off
Desktop: KDE Plasma v: 5.26.5 tk: Qt v: 5.15.8 info: latte-dock
wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Desktop System: Gigabyte product: Z790 UD AC v: N/A
serial: <superuser required>
Mobo: Gigabyte model: Z790 UD AC v: x.x serial: <superuser required>
UEFI: American Megatrends LLC. v: F3k date: 01/05/2023
CPU:
Info: model: 13th Gen Intel Core i9-13900K bits: 64 type: MST AMCP
arch: Raptor Lake gen: core 13 level: v3 note: check built: 2022+
process: Intel 7 (10nm) family: 6 model-id: 0xB7 (183) stepping: 1
microcode: 0x10F
Topology: cpus: 1x cores: 24 mt: 8 tpc: 2 st: 16 threads: 32 smt: enabled
cache: L1: 2.1 MiB desc: d-16x32 KiB, 8x48 KiB; i-8x32 KiB, 16x64 KiB
L2: 32 MiB desc: 8x2 MiB, 4x4 MiB L3: 36 MiB desc: 1x36 MiB
Speed (MHz): avg: 2909 high: 3000 min/max: 800/5500:5800:4300 scaling:
driver: intel_pstate governor: performance cores: 1: 1372 2: 3000 3: 3000
4: 3000 5: 3000 6: 3000 7: 3000 8: 3000 9: 3000 10: 3000 11: 1724 12: 3000
13: 3000 14: 3000 15: 3000 16: 3000 17: 3000 18: 3000 19: 3000 20: 3000
21: 3000 22: 3000 23: 3000 24: 3000 25: 3000 26: 3000 27: 3000 28: 3000
29: 3000 30: 3000 31: 3000 32: 3000 bogomips: 191692
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel Raptor Lake-S GT1 [UHD Graphics 770] vendor: Gigabyte
driver: i915 v: kernel arch: Gen-13 process: Intel 7 (10nm) built: 2022+
ports: active: DP-1 empty: HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0
chip-ID: 8086:a780 class-ID: 0300
Device-2: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] driver: amdgpu
v: kernel arch: RDNA-3 code: Navi-3x process: TSMC n5 (5nm) built: 2022+
pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: none empty: DP-2,
DP-3, DP-4, HDMI-A-3 bus-ID: 03:00.0 chip-ID: 1002:744c class-ID: 0300
Device-3: Logitech C920 HD Pro Webcam type: USB
driver: snd-usb-audio,uvcvideo bus-ID: 1-9.1:9 chip-ID: 046d:0892
class-ID: 0102 serial: <filter>
Display: x11 server: X.Org v: 21.1.7 with: Xwayland v: 22.1.8
compositor: kwin_x11 driver: X: loaded: amdgpu,modesetting unloaded: radeon
alternate: fbdev,intel,vesa gpu: i915 display-ID: :0 screens: 1
Screen-1: 0 s-res: 3840x2160 s-dpi: 96 s-size: 1016x571mm (40.00x22.48")
s-diag: 1165mm (45.88")
Monitor-1: DP-1 model: Acer XB273K GP serial: <filter> built: 2020
res: 3840x2160 hz: 60 dpi: 163 gamma: 1.2 size: 597x336mm (23.5x13.23")
diag: 685mm (27") ratio: 16:9 modes: max: 3840x2160 min: 640x480
API: OpenGL v: N/A renderer: N/A direct-render: N/A
Audio:
Device-1: Intel vendor: Gigabyte driver: snd_hda_intel v: kernel
bus-ID: 1-5:4 chip-ID: 1038:12ad alternate: snd_sof_pci_intel_tgl
bus-ID: 00:1f.3 class-ID: 0300 chip-ID: 8086:7a50 class-ID: 0403
Device-2: AMD driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab30 class-ID: 0403
Device-3: SteelSeries ApS Arctis 7 type: USB
driver: hid-generic,snd-usb-audio,usbhid
Device-4: Logitech C920 HD Pro Webcam type: USB
driver: snd-usb-audio,uvcvideo bus-ID: 1-9.1:9 chip-ID: 046d:0892
class-ID: 0102 serial: <filter>
Sound API: ALSA v: k6.1.11-zen1-1-zen running: yes
Sound Server-1: PulseAudio v: 16.1 running: no
Sound Server-2: PipeWire v: 0.3.65 running: yes
Network:
Device-1: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter
vendor: AzureWave driver: rtw_8821ce v: N/A modules: rtw88_8821ce pcie:
gen: 1 speed: 2.5 GT/s lanes: 1 port: 4000 bus-ID: 06:00.0
chip-ID: 10ec:c821 class-ID: 0280
IF: wlp6s0 state: down mac: <filter>
Device-2: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: 3000 bus-ID: 07:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp7s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth:
Device-1: IMC Networks Bluetooth Radio type: USB driver: btusb v: 0.8
bus-ID: 1-14:11 chip-ID: 13d3:3533 class-ID: e001 serial: <filter>
Report: bt-adapter ID: hci0 rfk-id: 1 state: up address: <filter>
Drives:
Local Storage: total: 9.08 TiB used: 1 TiB (11.1%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
model: WD BLACK SN850X 2000GB size: 1.82 TiB block-size: physical: 512 B
logical: 512 B speed: 63.2 Gb/s lanes: 4 type: SSD serial: <filter>
rev: 620281WD temp: 48.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Toshiba model: HDWR460 size: 5.46 TiB
block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s type: HDD
rpm: 7200 serial: <filter> rev: 0601 scheme: GPT
ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST1500DL003-9VT16L
size: 1.36 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
type: HDD rpm: 5900 serial: <filter> rev: CC3C scheme: MBR
ID-4: /dev/sdc maj-min: 8:32 vendor: Intel model: SSDSC2BP480G4
size: 447.13 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
type: SSD serial: <filter> rev: 0420 scheme: GPT
Partition:
ID-1: / raw-size: 60 GiB size: 60 GiB (100.00%) used: 37.61 GiB (62.7%)
fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 1024 MiB size: 1022 MiB (99.80%)
used: 608 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 1.76 TiB size: 1.76 TiB (100.00%)
used: 824.66 GiB (45.8%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-4: /var/log raw-size: 60 GiB size: 60 GiB (100.00%)
used: 37.61 GiB (62.7%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 60 GiB size: 60 GiB (100.00%)
used: 37.61 GiB (62.7%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 31.12 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
Sensors:
System Temperatures: cpu: 34.0 C mobo: N/A gpu: amdgpu temp: 36.0 C
mem: 52.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 0
Info:
Processes: 499 Uptime: 1h 39m wakeups: 1 Memory: 31.12 GiB
used: 3.98 GiB (12.8%) Init: systemd v: 252 default: graphical
tool: systemctl Compilers: gcc: 12.2.1 Packages: pm: pacman pkgs: 1933
libs: 545 tools: octopi,pamac,paru Shell: fish v: 3.6.0 default: Bash
v: 5.1.16 running-in: konsole inxi: 3.3.25
Garuda (2.6.14-1):
System install date:     2023-01-15
Last full system update: 2023-02-14
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio
Windows dual boot:       No/Undetected
Failed units:

That is a very broadly applicable category for basically anything that is not specifically related to Garuda packages or settings. It is not meant to imply you should not be using Steam, or AUR packages, or anything like that.

You can give this a shot, just to see if it gives a different result. Open /etc/pacman.conf, find the [mesa-git] entry in the REPOSITORIES section, and comment out all of the lines by adding a # as the first character in the line.

It is possible you have simply run into a kernel bug. This is fairly common with new hardware (new GPUs or network cards seem especially prone), and if that’s all it is there isn’t much for it but to wait for a fix to come down from upstream. Test some other kernels and see if you have any better luck getting Steam running.

The LTS kernel is a fairly standard suggestion for alternative kernels because it is so stable, although with super new hardware sometimes it might not work because it is still back on 5.15. Worth a shot though. Also try the mainline kernel, which is a RC kernel so will have the most recent kernel patches (watch out, it has the most recent kernel bugs too :wink:).

First bring your system fully up to date with garuda-update, then install the new kernels and headers:

sudo pacman -S linux-lts linux-lts-headers linux-mainline linux-mainline-headers

Boot to an alternative kernel in the advanced boot options of the Grub menu.

This thread here someone had some luck getting the 7900 XT working by using the git version of linux-firmware.

sudo pacman -S linux-firmware-git

If that doesn’t help, I would probably switch back to the regular linux-firmware package. Like the mainline kernel, linux-firmware-git will have both the most recent fixes and the most recent bugs.

2 Likes

Thanks for the response! I've tried out a few of your suggestions:

  • Tried out a few different kernels: linux-zen (which I was using previously), linux-mainline, and linux-drm-next.
  • Commented out the mesa-git repo in /etc/pacman.conf
  • Ran garuda-update a couple of times before and after these changes

I should note that I'm already using linux-firmware-git. I'll try going back to linux-firmware and see if that does the trick. EDIT: it did not do the trick.

I still feel like it's most likely to be that the version of mesa I've got is built against a different version of llvm than I've got installed; switching llvm versions seemed to be what worked for me last time. I'm not sure how to verify which version of llvm my mesa is built against, though.

I have more clarity on what I'm looking for, I think. I want to do one of these two things:

  1. remove the mesa-git package and replace it with mesa; or
  2. remove the chaotic-aur version of llvm-libs-git and replace it with the mesa-git version

The packages I've got right now are:

  • chaotic-aur/llvm-libs-git: 17.0.0_r451593.5dc34eb379f4-1
  • mesa-git/llvm-libs-git: 16.0.0_r448555.dca40e3288f4-1
  • mesa-git/lib32-llvm-libs-git: 16.0.0_r448555.dca40e3288f4-1
  • mesa-git/mesa-git: 1:23.1.0_devel.166663.fa66c8954e7-1

Unfortunately, installing mesa in place of mesa-git gets me a bunch of broken dependencies, and installing mesa-git/llvm-libs-git in place of chaotic-aur/llvm-libs-git gets me a couple of other broken dependencies. I'm not sure how to resolve those dependencies--is just forcing the install an option? That seems like a Bad Idea, but :person_shrugging:.

OK, victory! It took messing around with packages, but what I did was:

  • Replace lib32-vulkan-radeon with lib32-vulkan-radeon-git. This removed one of the two dependency problems keeping me from downgrading to mesa-git/llvm-libs-git
  • force the downgrade with sudo pacman -Sdd mesa-git/llvm-libs-git.

The only thing I've done so far is fire up Steam and see that it works, so I'm not sure if other problems will show up with the potentially broken dependency for openmp, or if it will just happily use mesa-git/llvm-libs-git. But I'm cautiously optimistic.

1 Like

Nice one, glad you got it working. :+1:

It is generally not advised to force Pacman to do things it doesn’t want to do, but as long as you are comfortable with restoring system snapshots then sometimes it’s worth it to take a little risk. :wink:

If you want Pacman to prefer sourcing the packages from the mesa-git repo instead of the chaotic-aur repo, you can set that up by putting the mesa-git repo above the chaotic-aur repo in /etc/pacman.conf like this:

...

[mesa-git]
Server = https://pkgbuild.com/~lcarlier/$repo/$arch

[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

...

If a package you need is available from more than one repo in your list, whichever one is first (top to bottom) will be the one Pacman uses, even if another repo has a more recent version of the package.

It is generally not advised to force Pacman to do things it doesn’t want to do, but as long as you are comfortable with restoring system snapshots then sometimes it’s worth it to take a little risk. :wink:

I figured that was the case; I generally try to stay away from forcing computers to do things, but yeah, I figured I might as well take advantage of this cool snapshot ability that comes with btrfs.

If you want Pacman to prefer sourcing the packages from the mesa-git repo instead of the chaotic-aur repo, you can set that up by putting the mesa-git repo above the chaotic-aur repo in /etc/pacman.conf like this:

Oh dang, that’s great! I had no idea that was a thing; I’ll have to do that.

So far most stuff seems to be working–with the exception of Cyberpunk, which is the one game I’ve been really hooked on lately. When I fire that up, it just runs slower and slower until it eventually just hangs in the middle of the launch process. It was running like silk before I decided to get the upgrade working, so I’m sure it’s doable–I just need to figure out what’s not configured right.

Appreciate all the help!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.