How to fix crashes and run QL on modern Linux distros

Quake Live421 views18 favorites3 min readby esuba (˵ •̀ ᴗ - ˵ ) ✧Updated 16 JanView on Steam ↗

Intro

If you've recently upgraded your distro, you may have noticed that Quake Live started crashing after ~5 to 10 minutes of playtime.

The important part is that this is not a Quake Live update, and it is not Proton itself. It appears to be a regression in Mesa’s native OpenGL driver. Quake Live is an old OpenGL-only game and is very sensitive to changes in the graphics stack.
Internet sources would have you believe that you need to downgrade your OS (e.g. Bazzite - Fedora 43 -> 42) to "fix this". Let me be clear: That is not a fix. That is not how development works. You would have the same issue again when mesa drivers get updated for your stable-release distro.

This guide will tell you how to work around the issue in the easiest and smoothest ways, while waiting for an actual "fix" in mesa, if it ever does come. (Report this issue on valve's proton github, or mesa's github to help this process if you like!)

Why your game suddenly broke

Recent Mesa versions introduced changes to the native OpenGL driver that break some legacy OpenGL games. Since Quake Live relies on very old OpenGL behavior, it ends up hitting these bugs. In particular I suspect that updates / regressions in mesa's GLX / EGL stack are to blame.

2 Ways to fix it, in order of recommendation

Fix 1: Force an older mesa GL version and disable threading
Set these launch options:

mesa_glthread=false MESA_GL_VERSION_OVERRIDE=3.2 %command%

This forces a more conservative GL feature set and disables multi-threaded GL. This is the one i tried first, and can confirm to work, which means the bug is somewhere around or above GL feature negotiation. I tested this using Proton 7, but any more modern version of Proton should work.

you may also try to add RADV_DISABLE_TC_COMPAT=1 if this still won't work for you.
TC compat paths were rewritten recently and are heavily exercised by Quake Live.
You can also try to run Quake Live through Zink (OpenGL over Vulkan) by setting the launch options as: MESA_LOADER_DRIVER_OVERRIDE=zink %command%

These options seem to work intermittently though, suggesting an implementation issue in mesa opengl, and not a translation issue.

If it STILL crashes:
"Fix" 2: Downgrade mesa
I don't recommend this method, and the steps are very distro-dependent. Use the following commands at your own risk, and do your own extensive research. mixing the wrong packages with older mesa WILL break your system!

What to downgrade:
You want Mesa 23.3.x or early 24.0, not the bleeding edge.

Packages:
mesa
mesa-dri-drivers
mesa-libEGL
mesa-libGL
mesa-vulkan-drivers
mesa-va-drivers
mesa-vdpau-drivers

DO NOT TOUCH THESE PACKAGES:
glibc
libdrm
kernel
llvm

Example methodology for Fedora would be:
## List available versions ##
sudo dnf list --showduplicates mesa
## Downgrade ##
sudo dnf downgrade mesa\* --allowerasing
## Lock mesa so it doesn't get auto-updated ##
sudo dnf install dnf-plugins-core
sudo dnf versionlock add mesa\*

Again, I am not responsible for the results of these actions, and you need to do your own research if this is the path you choose. All other paths are essentially risk-free.

Closing

I can't provide tech support under this guide. I am fairly confident that I have identified the issue and this guide covers every method of circumventing the deeper issue. For further help, you need to find the official sources on github for mesa, or the "quake live" issue on valve's github page for proton. Hope this helps. Play more Quake. Cheers

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.