Skip to content

[BUG] 2.17.3 async reprojection on Bigscreen Beyond 2e has head-swim and intermittent left-eye stale-frame flicker #917

Description

@mommysgoodpuppy

Describe the bug

SteamVR's normal Linux launch path does not actually enable asynchronous reprojection on Bigscreen Beyond 2e. Async can be enabled through SteamVR's vrstartup-helper.sh entry point, but neither state is usable in low-frame-rate VRChat scenes (or other poorly optimized VR games):

  • Async reprojection off: missed frames produce severe double images while turning your head.
  • Async reprojection on: double images are replaced by intermittent flashes of a stale/past frame in the left eye.

There is also persistent head-relative latency/head-swim in both states.

There appear to be two related problems:

  1. SteamVR's normal native-Steam launch path goes through SteamLinuxRuntime Sniper / pressure-vessel and drops the capability needed for its high-priority Vulkan queue. Async reprojection then silently falls back off.
  2. When the capability is preserved and async is actually enabled, the double images are replaced by intermittent left-eye stale-frame flicker in low-frame-rate VRChat scenes. The underlying head-swim/latency remains.

To Reproduce

  1. Use native Steam, SteamVR, RADV, and a wired Bigscreen Beyond 2e on Linux.

  2. Opt into the SteamVR beta branch.

  3. Set the following under the steamvr object in ~/.local/share/Steam/config/steamvr.vrsettings:

    "enableLinuxVulkanAsync": true
  4. Launch SteamVR normally through Steam.

  5. Launch VRChat and enter a scene that runs below the headset refresh rate (I had 38 FPS thanks vrchat).

  6. Move your head.

Result with the normal Steam launch path

Async reprojection is not actually enabled. SteamVR logs:

Using vrcompositor capability proxy
Failed to raise ambient cap

Attempting to enable async support...
Enabling async support!
Insufficient permission to create high priority queue.
Failed to create VkDevice with high priority queue.
Disabling async support and retrying.

The normal SteamVR launch starts the compositor with NoNewPrivs=1 and without CAP_SYS_NICE, even though vrcompositor-launcher has cap_sys_nice=eip on disk. The compositor cannot create its high-priority Vulkan queue and falls back to non-async behavior. At low frame rate this adds severe double images while turning the head; the separate head-swim/latency issue is also present.

vrstartup-helper path to reproduce the async-on result

This is included only to demonstrate the launch-path defect and make the actual async behavior reproducible. It should not be necessary for a native SteamVR installation.

  1. Install SteamVRLinuxFixes (on Arch: steamvr-linux-fixes-layer-bin) and set enableLinuxVulkanAsync=true as above.

  2. Grant the compositor launcher the documented high-priority capability:

    sudo setcap cap_sys_nice=eip \
      ~/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrcompositor-launcher
  3. Do not use Steam's normal SteamVR Play button. Keep Steam running, but launch SteamVR's own helper directly from the desktop session:

    "$HOME/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup-helper.sh" &
  4. Re-run VRChat at the same low frame rate and turn your head.

There is no queue-permission error or fallback afterward. The severe double images are no longer the failure mode, but the left eye periodically flashes a stale/past frame. The persistent head-relative latency/head-swim remains.

Expected behavior

  • enableLinuxVulkanAsync=true should work when SteamVR is launched normally from the native Steam client, without a custom direct launcher or pressure-vessel bypass.
  • Async reprojection should work without stale-frame flicker.
  • There should be no head-swim (none is present on Windows).

System Information

  • Steam client version (build number or date): 1782866176 (current client log build)
  • SteamVR version: 2.17.3, build ID 23899461, SteamVR beta branch
  • Distribution: CachyOS / Arch Linux, kernel 7.0.10-2-cachyos
  • Desktop session: KDE Plasma on Wayland
  • GPU: Sapphire Radeon RX 7900 XTX (Navi 31), amdgpu + RADV, Mesa 26.1.1-1
  • Headset: Bigscreen Beyond 2e (SteamVR Lighthouse driver reports Bigscreen Beyond)
  • SteamVR Linux Fixes: steamvr-linux-fixes-layer-bin 0.1.4-1

runtimediag.txt
steam-logs-2026-07-10.tar.gz
steam-minidumps-2026-07-10.tar.gz

Additional context

  • SteamVR runs the Beyond at 90 Hz in this report.
  • Suggested investigation:
    1. Preserve CAP_SYS_NICE through the SteamLinuxRuntime Sniper / pressure-vessel handoff for SteamVR's capability proxy, or provide a supported way to create the high-priority Vulkan queue.
    2. Investigate stereo frame selection/present timing for async reprojection with the Lighthouse Bigscreen Beyond driver when the application is below the display refresh rate.
    3. Check interaction with VK_KHR_present_wait / SteamVRLinuxFixes. The layer is part of the workaround required to test async here, but it does not resolve the persistent head-swim or intermittent left-eye stale-frame artifact.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions