Environment
GPU: NVIDIA RTX 3090
Driver: 595.84 (both proprietary and nvidia-open tested)
Desktop: Wayland only — GNOME 50 and COSMIC (neither ships X11 sessions; XWayland is available for X11 apps but SDL_VIDEODRIVER=x11 did not resolve the crash)
Bolt version: 0.23.2 (tested via AUR, Flatpak, and Nix package)
Tested on:
PikaOS (Debian Sid, glibc 2.42) — AUR, Flatpak, Nix
Nobara (Fedora) — Flatpak
Symptom
rs2client consistently segfaults at si_addr=0x8 during "Loading application resources". Address 0x8 indicates null pointer dereference (0x0 + 0x8 offset). Client crashes before entering any playable state.
Observed Data Points
-
Software rendering prevents the segfault but does not make the game playable
LIBGL_ALWAYS_SOFTWARE=1 ./rs2client # ✅ No segfault, but client exits silently without launching
./rs2client # ❌ Segfault
Conclusion: The crash is directly tied to GPU driver initialization. If the binary itself were corrupt or the issue were unrelated to graphics, software rendering would not prevent the segfault. However, software rendering is not a viable workaround as the client still fails to launch. -
EGL_LOG_LEVEL=debug produces zero output
EGL_LOG_LEVEL=debug ./rs2client 2>&1 # No EGL logs at all, just immediate segfault
Conclusion: The crash occurs extremely early in the initialization phase — before EGL logging mechanisms are bootstrapped or before a valid EGL context is successfully created. -
All dependencies are satisfied
ldd ~/.local/share/Jagex/launcher/rs2client # Shows 0 missing libraries
No libEGL.so.1, libOpenGL.so.0, libSDL2-2.0.so.0 issues. All present. -
System GLX works correctly
System GLX works correctly (verified via glxinfo, reports "NVIDIA GeForce RTX 3090"), confirming the issue is isolated to the EGL/Wayland initialization path. -
Works inconsistently on Bazzite
Same hardware, fresh install of Bazzite (Fedora Atomic): First launch crashed with identical segfault. Second launch worked without any changes from user side.
Proposed Root Cause / Logical Reconstruction
Without access to source code or debug symbols, the following is a logical reconstruction based on external behavior:
rs2client likely calls SDL_CreateWindow with OpenGL flags
SDL2 attempts to set up an OpenGL/EGL backend during window creation
On the NVIDIA + Wayland configurations tested (PikaOS, Nobara), this initialization fails and returns NULL
Jagex's code appears to lack NULL-pointer checking after this call, immediately dereferencing the result (+8 bytes offset = accessing a struct member)
Kernel delivers SIGSEGV at address 0x8
LIBGL_ALWAYS_SOFTWARE=1 forces Mesa llvmpipe/swrast instead of NVIDIA's EGL driver, which prevents the segfault but does not result in a successful launch
Workaround (Alternative Client)
Running RuneScape through Steam + Proton avoids the native rs2client and rs3linux binaries altogether. I have verified this as a working alternative — the Windows client via Proton does not exhibit the same EGL/Wayland initialization crash.
Additional Context
Similar reports: #16
GDB backtrace was unsymbolized (no debug symbols available), so exact crash function could not be identified
strace was run but without strace installed in the container initially; when installed, confirmed SIGSEGV signal but no useful function names due to stripped binary
Environment variables tested (none resolved the crash): SDL_VIDEODRIVER=x11, GDK_BACKEND=x11, GBM_BACKEND=nvidia-drm, __GLX_VENDOR_LIBRARY_NAME=nvidia, EGL_PLATFORM=wayland, EGL_PLATFORM=x11
Note: GNOME 50 and COSMIC are both Wayland-only — no X11 session fallback is available, so switching to an Xorg session is not a viable workaround on these desktop environments