Skip to content

[BUG] DRM lease failing to start #926

Description

@ellywasshy-dotcom

Summary

SteamVR's compositor cannot acquire a DRM lease on the headset display and fails to start, with error VRInitError_Compositor_CannotDRMLeaseDisplay (often paired with the in-app "Can not connect to headset display" dialog, error 496). This happens on every SteamVR startup on this machine — 18/18 startups today, both idle and while launching a real game (VRChat) — even though every documented Linux VR requirement is met. This looks like an incompatibility between RTX 50-series (Blackwell) GPUs and SteamVR's Linux DRM-lease compositor path, not a local misconfiguration.

If you're on similar hardware (RTX 50-series GPU, Debian/Ubuntu-family Linux) and hitting the same wall, please add a 👍 / comment with your GPU model and driver version so Valve can see how widespread this is.

Environment

GPU NVIDIA GeForce RTX 5060 Ti (Blackwell, PCI ID 10de:2d04)
NVIDIA driver 595.84 (proprietary)
OS Linux Mint 22.3 (Zena) — Ubuntu 24.04/Debian-family
Kernel 6.17.0-40-generic
Steam install native .deb package (not Snap/Flatpak)
Session X11, Cinnamon desktop
SteamVR buildid 23791826, vrclient.so v2.16.7
nvidia-drm.modeset=1 enabled (via /etc/modprobe.d/nvidia-graphics-drivers-kms.conf)
/dev/dri present, correct video/render group permissions, no other process holding it

All of the above matches Valve's documented SteamVR-for-Linux requirements.

Steps to reproduce

  1. Launch SteamVR (steam steam://rungameid/250820) on the above hardware.
  2. Observe the compositor fails to start almost immediately — no VR game needs to be running.
  3. (Also reproduced identically while launching an actual VR title — VRChat, appid 438100 — so it isn't specific to SteamVR's idle/home state.)

Expected vs. actual

  • Expected: compositor acquires the display via DRM lease and SteamVR reaches its normal Home/dashboard state, ready to render.
  • Actual: compositor process starts, immediately fails to acquire an xlib/DRM display, and exits (~0.25s lifetime) with VRInitError_Compositor_CannotDRMLeaseDisplay.

Log evidence

From vrcompositor.txt (timestamps from a run captured today; identical sequence recurs on every startup):

Sun Aug 02 2026 22:46:07.608014 [Info] - Selected mode 8.
Sun Aug 02 2026 22:46:07.673351 [Info] - Failed to acquire xlib display
Sun Aug 02 2026 22:46:07.673401 [Error] - CHmdWindowSDL: Failed to create direct mode surface
Sun Aug 02 2026 22:46:07.673470 [Error] - CHmdWindowSDL: VR requires direct mode.
Sun Aug 02 2026 22:46:07.673573 [Error] - Error making window!
Sun Aug 02 2026 22:46:07.710488 [Info] - Failed to kill gpu-trace
Sun Aug 02 2026 22:46:07.710609 [Info] - Failed to initialize compositor
Sun Aug 02 2026 22:46:07.710641 [Info] - Failed to start compositor: VRInitError_Compositor_CannotDRMLeaseDisplay

Corresponding vrmonitor.txt entries show the compositor process connecting and disconnecting within ~0.29 seconds of being launched:

Sun Aug 02 2026 22:46:07.421063 [Info] - New Connect message from .../vrcompositor (VRApplication_Background) ... 295112
Sun Aug 02 2026 22:46:07.711676 [Info] - Process 295112: vrcompositor disconnected

Reproduction count today, by timestamp of VRInitError_Compositor_CannotDRMLeaseDisplay in vrcompositor.txt: 02:05, 02:31, 02:40, 02:49 (×2), 02:50, 03:02, 03:04, 03:08, 22:38, 22:39 (×3), 22:42 (×2), 22:44, 22:45, 22:46 — 18 consecutive failures, 0 successes.

Things already ruled out

Tested directly against the live compositor log — both produced the identical failure, so these are not the cause:

  • SteamVR's global direct_mode.enable setting set to false.
  • Removing Prop_DisplayDebugMode_Bool from the HMD driver's Activate() (tested with it matching Valve's own simplehmd sample).

Notes for others posting a similar report

  • Double-check nvidia-drm.modeset=1 via both /proc/cmdline and /etc/modprobe.d/*.conf — on Debian/Ubuntu-family distros the NVIDIA package sets it via a modprobe config file, not the kernel cmdline, so checking only the cmdline gives a false negative.
  • Worth including in your own report: GPU model + exact driver version, whether Steam is native/.deb vs Flatpak/Snap, X11 vs Wayland session, and the exact VRInitError_* code from your own vrcompositor.txt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions