Skip to content

Bring RiftLift's native Linux XR runtime in-tree - #1

Merged
Villagers654 merged 36 commits into
mainfrom
native-rift-runtime
Aug 13, 2026
Merged

Bring RiftLift's native Linux XR runtime in-tree#1
Villagers654 merged 36 commits into
mainfrom
native-rift-runtime

Conversation

@Villagers654

Copy link
Copy Markdown
Owner

What changed

  • moved the maintained Oculus ABI compatibility runtime into RiftLift itself and removed the separate Revive/XRizer repository workflow;
  • rebranded the maintained runtime as RiftLift while preserving upstream Revive licensing and credit;
  • added an in-process native Linux runtime boundary:
    • Oculus-only titles use wineopenxr.dll / wineopenxr.so to call Linux OpenXR;
    • mixed Oculus/OpenVR titles use vrclient_x64.dll / vrclient_x64.so and RiftLift's pinned XRizer build;
  • bundled and checksum-pinned the Windows ABI payload and Linux OpenVR translator, including Proton's required bin/linux64/vrclient.so layout;
  • replaced title-specific routing with installed-runtime and engine capability detection;
  • fixed packaged OpenVR injection, concurrent interface initialization, and legacy Touch/D-pad binding parsing;
  • made runtime payload upgrades version-aware and extended doctor diagnostics;
  • updated the beginner-facing README and architecture documentation.

Why

RiftLift previously depended on separately maintained compatibility forks and host-provided runtime state. That made installation fragile and allowed local development trees to hide packaging errors. This consolidates the complete application compatibility layer in one repository and sends XR calls directly through Proton's in-process PE-to-ELF boundary into the user's Linux OpenXR runtime.

The final packaging failure found during validation was that Proton resolves an OpenVR override at bin/linux64/vrclient.so, while the first release artifact only contained libxrizer.so at its root. The installer now creates the standard Proton runtime layout from the pinned payload.

User impact

Users with a working Linux OpenXR setup can install RiftLift through the normal GUI/CLI flow without separately installing or configuring Revive, XRizer, SteamVR, or a compatibility daemon. Explicit runtime overrides remain available for development.

Validation

  • 78 passed in the Python test suite;
  • GitHub Actions built the Windows ABI bridge, complete compatibility payload, and Linux XRizer artifact;
  • a fresh temporary install downloaded the published alpha-3 artifacts, verified their SHA-256 checksums, and materialized both version markers plus Proton's OpenVR runtime layout;
  • real PSVR2 spectator output was captured on the final codebase for:
    • Aircar
    • Echo VR
    • Five Nights at Freddy's: Help Wanted
    • Keep Talking and Nobody Explodes
    • Lone Echo
    • Oculus First Contact
    • StereoPaint
    • SUPERHOT VR
    • Vader Immortal: Episode I

Release candidate: v0.9.0-alpha.3

@Villagers654
Villagers654 merged commit bd2e042 into main Aug 13, 2026
8 checks passed
@Villagers654
Villagers654 deleted the native-rift-runtime branch August 13, 2026 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant