libalvr_vulkan_layer.so segfaults any Vulkan app on NVIDIA (crash in libnvidia-eglcore) — no video, "Gimme frames"
Description
On NVIDIA driver 610.57.04, libalvr_vulkan_layer.so segfaults any Vulkan
application that loads it. Because the layer is the only mechanism ALVR uses to
capture frames on Linux, vrcompositor dies on start, no frames are ever captured,
and the client disconnects every 20s with Fatal decoder error … Gimme frames >:(.
This reproduces with no VR hardware, no SteamVR and no client connection:
ALVR_SESSION_JSON=~/.config/alvr/session.json \
VK_LAYER_PATH=~/alvr/alvr_streamer_linux/share/vulkan/explicit_layer.d \
VK_LOADER_LAYERS_ENABLE=VK_LAYER_ALVR_capture \
vulkaninfo --summary >/dev/null 2>&1; echo $?| test | exit |
|---|---|
vulkaninfo alone |
0 |
vulkaninfo + ALVR layer v20.14.1 |
139 (SIGSEGV) |
vulkaninfo + ALVR layer v21.0.0-dev13+nightly.2026.06.06 |
139 (SIGSEGV) |
Unaffected by: VK_DRIVER_FILES (NVIDIA-only ICD), DISPLAY set/unset,
ALVR_SESSION_JSON set/unset, VK_LOADER_LAYERS_DISABLE.
The layer does initialise (it prints ALVR's Render Target: 7552 3648 / Refresh Rate: 90)
before crashing during instance creation.
Backtrace (gdb)
Thread 1 "vulkaninfo" received signal SIGSEGV
#0 0x0000555555ea1bd0 in ?? ()
#1-#11 libnvidia-eglcore.so.610.57.04
#12-#14 libEGL_nvidia.so.0Loader also warns:
Layer VK_LAYER_ALVR_capture uses API version 1.0 which is older than the
application specified API version of 1.4. May cause issues.(alvr_x86_64.json declares "api_version": "1.0.68".)
Environment
- ALVR streamer 20.14.1 (also repro'd on v21 nightly)
- Client: alvr-visionos 20.14.1, Apple Vision Pro (versions match; no protocol errors)
- NVIDIA driver 610.57.04, CUDA 13.3, RTX 4090
- vulkan-loader 1.4.341
- Bazzite 44 (Fedora 44 atomic), KDE Plasma Wayland
- SteamVR 2.12.14 (build 22542555 — downgraded per SteamVR-for-Linux#923)
Ruled out
- Version mismatch (client == streamer, no
protocol IDerrors) - Network (verified bidirectional via
/proc/net/snmpcounters) - Encoder (
Using NvEnc encodersucceeds; standaloneffmpeg -c:v hevc_nvencworks) - Codec/profile/bit-depth — the client creates its decoder lazily from the first NAL
(
EventHandler.swift:502), and no NAL ever arrives, so these cannot be involved.
Impact
No ALVR version can stream on this driver, since both the stable and nightly layers crash identically.
Source: alvr-org/ALVR