protonscr

[BUG] Steam Link VR encoder capped at ~40 FPS regardless of settings (NVIDIA, Linux)

steamvrclosed bug
ValveSoftware/SteamVR-for-Linux#874 · opened 2026-03-26 by AleksAlfi · updated 2026-04-07 · 1 comments · github
AAleksAlfi 2026-03-26 github

Describe the bug
Steam Link VR's video encoder is hard-capped at approximately 40 FPS on Linux, regardless of HMD refresh rate, render resolution, encode resolution, or any other setting. This causes 100-250ms of perceived stream latency, making VR not enjoyable. The same hardware works perfectly on Windows with no encode bottleneck.

The 40 FPS cap does NOT change when:

  • HMD refresh rate is changed (90Hz and 120Hz tested)
  • Render resolution is changed (150%, 100%, 20% tested)
  • Encode resolution is reduced (1536 or 2048 width)
  • 10-bit encoding is disabled
  • Monitor refresh rate is changed (tested 60Hz, 120Hz, 240Hz)
  • GSP firmware is disabled (proprietary nvidia module with NVreg_EnableGpuFirmware=0)
  • KWin compositor is disabled
  • Process RT scheduling priorities are set (FIFO 90 for vrcompositor)
  • asyncSend and asyncStartEncode are enabled in driver_vrlink settings

The SteamVR Remote Detailed Debug overlay confirms: HMD target is 91 (or 120), LGPRX matches, but ENC stays locked at ~40 FPS. The dThrottle counter increments continuously, and the Enc bar dominates the latency graph.

To Reproduce

  1. Connect Meta Quest 3 via Steam Link to a Linux PC with NVIDIA GPU
  2. Launch SteamVR
  3. Open SteamVR Remote Detailed Debug
  4. Observe ENC FPS locked at ~40 regardless of HMD refresh rate or any other setting change

Expected behavior
Encoder FPS should match or exceed the HMD refresh rate (90/120 FPS), as it does on Windows with the same hardware.

System Information:

Performance Data:

  • CPU: AMD Ryzen 7 5800X (16 threads) @ 4.853GHz
  • GPU: NVIDIA GeForce RTX 3070
  • RAM: 32 GB
  • Kernel: 6.19.10-1-cachyos
  • Desktop: KDE Plasma 6.6.3, X11 (kwin_x11)
  • Displays: 3 monitors (2560x1440@240Hz primary, 1920x1200@60Hz, 1280x1024@75Hz)
  • VR connection: Meta Quest 3 via Steam Link

Screenshots
Image
Image

Additional context

  • vrcompositor log shows Async support disabled by user setting despite disableAsync being false in steamvr.vrsettings. This may contribute to the issue.
  • vrlink driver log shows successful Vulkan Video Encode initialization (Video Encode Queue Family: 4, Ultra Low Latency SUPPORTED: Yes, Rate control mode: 4, Slice count: 4).
  • nvidia-smi reports 0% encoder utilization during streaming, which may indicate Vulkan Video Encode is not properly utilizing NVENC hardware, or that nvidia-smi doesn't track Vulkan Video Encode sessions.
  • The issue persists whether using nvidia-open (GSP enabled) or proprietary nvidia (GSP disabled).
PPacketdancer 2026-04-07 github

Should be fixed in 2.16.1 (which has just gone out).

Nothing extracted yet.