110 lines
5.1 KiB
Markdown
110 lines
5.1 KiB
Markdown
---
|
|
date-created: 2026-10-20 17:45
|
|
date-modified: 2026-10-20 17:52
|
|
---
|
|
# SteamVR to Meta Quest 3 design tree
|
|
|
|
## Goal
|
|
|
|
Stream PCVR from Zeus to a Meta Quest 3.
|
|
|
|
The design must produce a repeatable and diagnosable SteamVR session.
|
|
|
|
## Observed facts
|
|
|
|
- Zeus runs NixOS with a CachyOS kernel.
|
|
- Zeus uses an AMD Radeon RX 9070-series GPU with the `amdgpu` driver.
|
|
- Zeus runs Hyprland on Wayland.
|
|
- Zeus has Steam and Gamescope configured.
|
|
- SteamVR 2.17.10 is installed.
|
|
- SteamVR includes Valve's Linux `vrlink` driver.
|
|
- A previous `vrlink` session detected the Quest 3 and its Touch controllers.
|
|
- That session selected 90 Hz from the Quest's 72, 80, 90, and 120 Hz modes.
|
|
- SteamVR setup lacks `cap_sys_nice` on `vrcompositor-launcher`.
|
|
- NixOS can declare host packages, permissions, services, and diagnostics.
|
|
- Steam owns the Quest pairing and SteamVR user settings.
|
|
- Zeus connects by Ethernet at `10.23.50.221`.
|
|
- The local Wi-Fi scan finds the `Tracion` 5 GHz network at 5220 MHz.
|
|
- The scan reports a 1170 Mbit/s link rate.
|
|
- The operator has no external tracked devices.
|
|
|
|
## Decision tree
|
|
|
|
- **D1: Host platform commitment** — Settled: Linux-native on the current NixOS installation.
|
|
- Linux-native on the current NixOS installation.
|
|
- **D2: Transport** — Blocked by D1
|
|
- Wireless LAN. — Settled: primary transport.
|
|
- **D3: Streaming stack** — Settled: SteamVR with its built-in VRLink driver.
|
|
- SteamVR with its built-in VRLink driver.
|
|
- **D3a: SteamVR acceptance criteria** — Settled: reliable session test.
|
|
- Run a SteamVR game for 30 minutes at 90 Hz.
|
|
- Verify visuals, audio, and Touch controllers.
|
|
- Verify one reconnect.
|
|
- ALVR only after SteamVR fails the agreed acceptance criteria.
|
|
- **D4: Wi-Fi topology** — Settled: keep the current access point.
|
|
- Keep the current access point.
|
|
- Add a dedicated access point.
|
|
- Use a direct Wi-Fi link.
|
|
- **D5: Session performance target** — Settled: selectable refresh-rate profiles.
|
|
- Selectable refresh-rate profiles.
|
|
- **D5a: Default refresh rate** — Settled: 90 Hz.
|
|
- **D5b: Included refresh rates** — Settled: 72, 80, 90, and 120 Hz.
|
|
- **D6: Network isolation** — Settled: existing trusted LAN.
|
|
- Existing trusted LAN.
|
|
- Dedicated VR VLAN or SSID.
|
|
- **D7: Controller and tracking scope** — Settled: Quest Touch controllers only.
|
|
- Quest Touch controllers only.
|
|
- Also support external tracked devices.
|
|
- **D8: Launch workflow** — Settled: automatic service and headset connection.
|
|
- Start SteamVR when Steam Link connects from the Quest.
|
|
- **D9: Diagnostics and recovery** — Settled: capture health checks and logs.
|
|
- Capture SteamVR logs and health checks.
|
|
- Recover failed sessions manually.
|
|
- USB tether.
|
|
- **D10: USB streaming stack** — Blocked by D2
|
|
- ALVR over USB.
|
|
- Meta Quest Link through a Windows installation.
|
|
- **D11: USB role** — Blocked by D2
|
|
- Primary transport.
|
|
- Fallback transport.
|
|
- Both wireless LAN and USB tether.
|
|
- **D12: Primary transport** — Blocked by D2
|
|
- **D13: Fallback behavior** — Blocked by D12
|
|
- **D14: System integration** — Settled: hybrid configuration.
|
|
- NixOS manages system integration.
|
|
- Steam manages Quest pairing and user settings.
|
|
- Dual-boot or replace NixOS with Windows.
|
|
- **D15: Windows streaming stack** — Blocked by D1
|
|
- Steam Link.
|
|
- Virtual Desktop.
|
|
- Meta Quest Link or Air Link.
|
|
- ALVR.
|
|
- **D16: Windows installation scope** — Blocked by D1
|
|
- Dedicated VR installation.
|
|
- General-use Windows installation.
|
|
- **D2: Transport** — Blocked by D1
|
|
- Keep NixOS and add a separate Windows VR host.
|
|
- **D17: Host placement** — Blocked by D1
|
|
- **D15: Windows streaming stack** — Blocked by D17
|
|
- **D2: Transport** — Blocked by D17
|
|
|
|
## Frontier
|
|
|
|
None.
|
|
|
|
## Settled decisions
|
|
|
|
- **D1: Host platform commitment** — Linux-native on the current NixOS installation.
|
|
- **D2: Transport** — Wireless LAN as the primary transport.
|
|
- **D4: Wi-Fi topology** — Keep the current access point.
|
|
- **D5: Session performance target** — Selectable profiles at 72, 80, 90, and 120 Hz.
|
|
- **D5a: Default refresh rate** — 90 Hz.
|
|
- **D5b: Included refresh rates** — 72, 80, 90, and 120 Hz.
|
|
- **D6: Network isolation** — Existing trusted LAN.
|
|
- **D7: Controller and tracking scope** — Quest Touch controllers only.
|
|
- **D3: Streaming stack** — SteamVR with its built-in VRLink driver.
|
|
- **D3a: SteamVR acceptance criteria** — 30-minute session at 90 Hz, with visuals, audio, Touch controllers, and one reconnect.
|
|
- **D8: Launch workflow** — Start SteamVR when Steam Link connects from the Quest.
|
|
- **D9: Diagnostics and recovery** — Capture health checks and logs. Recover failed sessions manually.
|
|
- **D14: System integration** — NixOS manages system integration. Steam manages Quest pairing and user settings.
|