[Epic] VR support (OpenXR) — stretch goal, 2.0.0+ #251
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#251
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stretch goal: probably targeted at 2.0.0 or later. This is an epic to scope and break into child tickets; it's not near-term work.
Goal
First-class VR in Slipstream on our Vulkan renderer, via OpenXR (the standard, vendor-neutral runtime API: SteamVR, Monado on Linux, Meta / WMR / Pico runtimes). It should not be a bolted-on second renderer: the GPU-driven pipeline renders both eyes efficiently.
Prior art
These are all GL, side-by-side or OpenVR-era. Useful for UX lessons on SL-specific problems, not code.
Major workstreams (each likely a child ticket)
XR_KHR_vulkan_enable2;xrWaitFrame/xrBeginFrame/xrEndFrame) driving our frame pacing;VK_KHR_multiview) or layered rendering for main-view passes: pre-pass, G-buffer, deferred lighting compute, pass 2, post.XR_FB_space_warpwhere supported.Risks / open questions
Dependencies / enablers already in place
Related: #494, an investigation into SL Puppetry (LEAP joint streaming), which could carry headset head and hand tracking to other users.
Idea (owner): drive the avatar from VR controls through Pose Studio.
Pose Studio (#500) already applies per-bone poses locally and shares them with other Slipstream users through the #Slipstream Helper bridge; IK handles (#530) solve a chain from an end-effector target. VR tracking maps onto that directly: