Hello @zitr0y, this issue is already being tracked at #901 and needs to be resolved on ALVR's side.
Confirming this on a different setup, plus a data point on the previous branch that I think is new.
Environment: Arch Linux, kernel 7.1.9, RTX 4090 + Raphael iGPU, NVIDIA 610.57.04, KDE Plasma 6.7.4 (Wayland), ALVR 20.14.1 (alvr-bin), headset is an Apple Vision Pro via alvr-visionos.
SteamVR 2.16.7 (default branch): reproduces exactly as described. vrmonitor.txt reports Unable to get compositor interface (303) and the state machine never leaves SteamVRSystemState_NotReady. Notably the compositor itself is fine — direct mode is acquired through ALVR's drm-lease shim, Startup Complete (0.29 seconds), the session stays alive for minutes, and video does reach the headset (the SteamVR void grid is visible). Launching a VR title works on the desktop side (the app connects to vrserver) but never reaches the headset, because the system never becomes Ready.
SteamVR 2.12.14 (previous, v1781734990 → v1755290071): the 303 is indeed gone. But it fails one step earlier instead, so it is not a usable workaround here:
HMD swapchain mode:2 count:3
Swapchain failed to be created: fffffff9
CHmdWindowSDL::CreateSwapChainBufferResources - Invalid swapchain
Direct mode: disabled
CHmdWindowSDL: Failed to inititalize X presentation support
Failed to start compositor: VRInitError_Compositor_CannotConnectToDisplayServer
fffffff9 is -7, i.e. VK_ERROR_EXTENSION_NOT_PRESENT. Status alert is 497 (Failed to connect to window manager); on the Wayland path it surfaces as 496 (Failed to connect to headset display) because 2.12.14 does not use SRT_LAUNCHER_SERVICE_ALONGSIDE_STEAM, so ALVR's Vulkan layer never gets loaded into vrcompositor at all.
X11 path fails identically on both versions. With WAYLAND_DISPLAY= QT_QPA_PLATFORM=xcb plus vrmonitor.sh %command% and the ALVR layer explicitly requested (VK_INSTANCE_LAYERS=VK_LAYER_ALVR_capture), Tried to find direct display through Vulkan WSI does return a valid display — and then both 2.16.7 and 2.12.14 die on the same Swapchain failed to be created: fffffff9.
So on this machine there is no SteamVR version that works with ALVR 20.14.1: the new one gets a display but never reaches Ready, the old one never gets a swapchain.
The interface-version theory in this thread matches what vrserver.txt shows here:
driver alvr_server ... IVRDriverDirectModeComponent_007
driver vrlink ... IVRDriverDirectModeComponent_009
driver lighthouse ... IVRDriverDirectModeComponent_009
Unrelated but worth noting so it doesn't confound the above: vrcompositor also segfaults in libnvidia-glcore.so during distortion rendering on NVIDIA 590+ (alvr-org/ALVR#3230). I patched that separately before these tests, so none of the results here are affected by it.
Nothing extracted yet.
Describe the bug
SteamVR 2.16.7 build 23791826 breaks ALVR's direct-mode path on Linux.
vrcompositorstarts and completes init in ~0.2 s, butvrservertimes out after 10 s claiming the compositor is not running.vrmonitorthen reportsUnable to get compositor interface (303)and shows the "A key component of SteamVR isn't working correctly. Please reinstall SteamVR" dialog (its "More info" link is dead).Streaming still starts, but ALVR logs
Desync detected. Attempting recovery.continuously. That warning fires when game render latency exceeds 250 ms, rate-limited to once per 100 ms — and it fires at the maximum allowed rate, so the condition is continuous rather than intermittent. In the headset it presents as heavy lag with the client re-warping a stale frame: turning your head exposes the unrendered border of the previous frame, so the world looks flat.Rolling SteamVR back to the
previousSteam branch (build 22542555) fixes it completely. Clean bisect on one variable — no other configuration changed between the two runs.Desync detectedwarnings per sessiontimeout - vrcompositor process is not runningRelevant log excerpts.
vrcompositor.txt— compositor comes up fine:vrserver.txt— ~10 s later, vrserver disagrees:vrmonitor.txt:ALVR streamer log, starting ~2 s after the encoder comes up:
Already ruled out:
@90.000008Hz) and changed nothing.vrlinkdriver — disabled via"driver_vrlink": {"enable": false}, confirmed not loaded (noVRLINKQ_*devices). Desyncs unchanged. This is not the VPN scenario from #910 — no VPN interface was up during any of these runs, and disabling vrlink did not help.Possibly relevant (hypothesis, not proven): ALVR's driver advertises older direct-mode interfaces than the drivers shipped with 2.16.7:
If something in 23791826's compositor/vrserver registration path began assuming
_003/_009, that would explain a driver that still loads and produces an HMD and a video stream, while the compositor never completes its handshake with vrserver. I have not verified this — the bisect is solid, the explanation is speculation.To Reproduce
timeout - vrcompositor process is not runninginvrserver.txtandUnable to get compositor interface (303)invrmonitor.txt, roughly 10 s aftervrcompositor.txtlogsStartup Complete.Desync detected. Attempting recovery.in the ALVR streamer log, and severe lag / stale-frame reprojection in the headset.previousSteam branch (build 22542555) and repeat step 2. All symptoms disappear.Expected behavior
vrservershould registervrcompositorafter it reportsStartup Complete, no 303 should be raised, and frame pacing should proceed normally — as it does on build 22542555 with an otherwise identical configuration.System Information
previousbranchpaste.txt steam-runtime-system-info
steam-minidumps.tar.gz
steam-logs.tar.gz
Additional context
A note on the template's request to test the latest beta: build 23791826 was the current build when this was found. I am running the
previousbranch now because it is the only configuration in which the headset is usable. Happy to switch back to beta and gather anything specific you need — just say what to capture.Two existing issues look related but are not the same thing:
vrlinkbinding VPN interfaces. My case has vrlink disabled and no VPN present, and still fails, so that cannot be the whole cause.Desync detectedwarning from the ALVR side.