Repository navigation
Add Windows support using the existing RiftLift UI - #6
Merged
Merged
Conversation
Villagers654
force-pushed
the
windows-native
branch
from
September 3, 2026 05:56
aaca4d9 to
b814839
Compare
# Conflicts: # .github/workflows/release.yml # docs/COMPATIBILITY.md # src/riftlift/auth.py # src/riftlift/auth_browser.py # src/riftlift/auth_ui.py # src/riftlift/cli.py # src/riftlift/main_window.py
Use extended-length paths for downloader output and cache without changing system policy. Cover long-file assembly, cached resume, and traversal rejection. Validated with 50 Windows regression tests and recovery of Epic Roller Coasters from 1,413 cached segments.
Unity/Unreal titles using OVRPlugin go straight to OpenXR and reject runtimes that do not identify as Oculus, so Epic Roller Coasters fell back to flat mode and crashed. Ship the existing OVRPlugin OpenXR layer in the native runtime and enable it per game process, and point the game at SteamVR's OpenXR runtime when none is registered. No registry writes. The installer workflow never got past CMake configure: PowerShell split -DCMAKE_POLICY_VERSION_MINIMUM=3.5 into two arguments. Quote it. Drop the Windows 'Run setup' settings card; the installer owns the native runtime.
- Name games in SteamVR: write a temporary vrmanifest per game and have the launcher register it before IdentifyApplication, which previously failed for every unregistered riftlift.app key, so SteamVR showed executable names like TouchNUX-Win64-Shipping. - Dark native title bars to match the dark UI. - Hide the Steam Games button where Steam import is unsupported instead of showing it permanently disabled. - List the app as 'RiftLift' in Installed apps.
- OpenVR bridge: serialize InputManager. Games poll input, poses and haptics from several threads while frame submission updates action state, and IVRInput is not safe for concurrent use. Once controllers are connected this corrupted the heap in Stormland about a second after start (0xC0000374). - OpenXR bridge: when a runtime rejects a swapchain, retry with one mip level, then with color-attachment usage. SteamVR's OpenXR runtime rejected First Contact's mipmapped textures and Stormland's transfer-only texture; the first attempt is unchanged. - An explicit OpenXR launch can use SteamVR's OpenXR runtime when no other runtime is registered; automatic selection is unchanged. - Add a test-only SteamVR driver with two simulated Touch controllers (runtime/tests/steamvr-touch-sim) and a helper to script its input; CI builds it.
- OpenXR bridge: map BGRA swapchains to RGBA when the runtime only offers RGBA (SteamVR rejected First Contact's B8G8R8A8 textures), and retry static swapchains as regular ones. Trace create flags. - OpenVR bridge: with debug logging enabled, write up to three minidumps of fatal exceptions to %TEMP%. Stormland's controller-time crash does not reproduce under a debugger.
vrclient applies input binding updates inside PollNextEvent. With controllers connected those updates raced action-state updates on the render thread and corrupted vrclient's heap in Stormland (crash dump: RtlFreeHeap inside PollNextEvent under ovr_GetSessionStatus).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.