Commit Graph
60 Commits
Author SHA1 Message Date
iChris4 787dbcf7d2 Implement more detailed diagnostics for OpenXR stages 2026-09-20 17:24:16 +02:00
iChris4 c4c7078afc Enhance texture management and profiling in GX thread; add reinitialization flag and optimize consumer behavior 2026-09-20 17:10:00 +02:00
iChris4 6a1641e0b7 Implement GX Thread for Asynchronous Rendering
- Introduced a new GX thread to handle the rendering pipeline, allowing the game thread to post commands without blocking.
- Added `gx_thread.h` and `gx_thread.cpp` to manage the command ring buffer and thread synchronization.
- Updated `vi.cpp` to utilize the GX thread for rendering tasks, improving frame pacing and responsiveness.
- Modified `main.cpp` to configure and start the GX thread, ensuring it integrates with the existing rendering workflow.
- Enhanced `openxr_integration.cpp` to register the GX thread with OpenXR for better performance in VR scenarios.
- Refactored `settings_overlay.cpp` to remove unnecessary waits for the frame worker, as the overlay now draws directly into the game thread's ImGui frame.
- Improved error handling and logging in the GX thread to capture exceptions during command execution.
2026-09-19 22:57:49 +02:00
iChris4 ffa63fa60a Implement render-first pacing for Vulkan backend and enhance view location handling 2026-09-19 20:36:03 +02:00
iChris4 47b59c7294 Implement per-pass GPU timing for performance tracking and optimization & fixed mono in Immersive 2026-09-19 19:23:57 +02:00
iChris4 f0e5e43985 README: replace header image with the WiiCompiled VR logo 2026-09-19 18:26:46 +02:00
iChris4andClaude Opus 5 80b4be4f6c Release 0.2.41 and Quest app 0.2.0
Bump the backend to 0.2.41 and the Quest app to versionCode 2 / 0.2.0-quest.
They ship together because the app's game kit fingerprints runtime/include,
and a 0.2.40 installation's headers no longer match it, so WheelWizard's
Build for Quest needs the matching setup.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 15:52:54 +02:00
iChris4 7c981888d6 Set default render scale for VR to 0.8 on Quest and update related configurations 2026-09-19 15:33:27 +02:00
iChris4 e681294709 Refactor OpenXR controller input handling and update settings panel interactions 2026-09-19 15:28:20 +02:00
iChris4 60c443654f Added performance level configuration for OpenXR runtime and enhance Aurora's frame worker 2026-09-19 04:43:47 +02:00
iChris4 d296b3dcb3 Quest: optimize compilation rules, adjust stack protection, and increase indirect dispatch cache size 2026-09-19 03:18:07 +02:00
iChris4 7f2113dbc5 - Added new strings for installation reset prompts and messages in strings.xml.
- Created InstallReset.kt to handle the removal of game files, built games, and mod packs while preserving user data.
- Implemented unit tests for InstallReset to ensure correct functionality and file handling.
- Updated RetroRewindPackTest to include new test cases for update and deletion order.
- Enhanced Vulkan interop and OpenXR integration to support new thread scheduling hints for Android.
- Improved error handling and logging for GPU submission failures in Vulkan backend.
2026-09-19 00:08:58 +02:00
iChris4 d4a3f0b350 Quest Fixed Vulkan pipeline cache management and storage mechanisms 2026-09-18 23:38:55 +02:00
iChris4andClaude Opus 5 bf3b53555b Release 0.2.40
Bump the backend version for the release that adds the Meta Quest app and
merges upstream v0.2.32, and point the DISTRIBUTION.md verify example at the
tag that goes with it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 02:41:56 +02:00
iChris4 5899114b4c Add ReverbHi audio processing functions and improve memory handling 2026-09-18 02:24:02 +02:00
iChris4 d2fa3789b0 Updated Quest Launcher & Added Retro Rewind Automatic Download 2026-09-18 01:27:17 +02:00
iChris4andClaude Opus 5 ee5df403ac Merge upstream/main (v0.2.32) into openxr-work
Brings in the keyboard/mouse rebinding overhaul (#162), the Kamek
skip-return hook fixes (#182, #218), the exit button and controller LED
fix (#221), the autohide-cursor and mute hotkey fix (#211), the Linux
--sysroot plumbing (#224) and the switch to the theofficialgman
dawn-build fork (#215).

Conflicts resolved to keep the VR integration intact:

- settings_overlay.cpp/.h: kept both new declarations. The controller
  rebinding UI takes upstream's click-to-rebind widgets wholesale - our
  only edit there was wrapping the combo width in Scaled(), and
  upstream's bindingWidth is already font-relative, so the headset
  panel still scales. Kept our DrawResolutionMenu() extraction (the VR
  panel reuses it) while adopting upstream's DrawExitPrompt() and its
  new DrawTopBar() prologue; kept our Diagnostics menu alongside
  upstream's exit-button width math. HandleEvents merges both keyboard
  paths, with the VR recenter hotkey now guarded by !g_rebind.active so
  it cannot fire while a binding is being captured.

- AuroraDawnProvider.cmake: dropped our now-dead Android hash block.
  Upstream restructured the pins into an if/elseif chain that already
  covers android/aarch64, with the digest for the new dawn-build fork;
  our leftover block was unreachable and carried the old encounter
  digest.

- Version plumbing (Build-Installer.ps1, Setup.Windows Program.cs and
  csproj): kept this fork's own line, which is 0.2.39 and centralised in
  Launcher/Directory.Build.props, rather than regressing to upstream's
  hardcoded 0.2.32.

Verified: translator 654/654; runtime ctest 14/14 including every VR
test; WiiCompiled and RetroRewind link; aurora gx_fifo_tests 262/263,
the one failure being the TevRegisterLiveness case already documented as
pre-existing on this branch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 23:02:33 +02:00
iChris4 321db74a0f Added Support for both Base and Retro Rewind in the launher 2026-09-17 22:46:15 +02:00
iChris4 58c0890983 Added Retro Rewind Quest Support 2026-09-17 21:36:00 +02:00
iChris4 0bf2675db1 Introduced translator_host C program to start the WiiCompiled translator on the headset, managing heap pointer tagging and dynamic library loading. 2026-09-17 20:33:43 +02:00
iChris4 2f85207c39 Added Android Launcher and Disk Extration 2026-09-17 18:32:04 +02:00
iChris4 1346e53cd6 Implement OpenXR Settings Panel and Stereo Overlay 2026-09-17 04:32:22 +02:00
iChris4 f222eedf6b Implement log export functionality and OpenXR diagnostics 2026-09-17 02:05:12 +02:00
iChris4 19485b9e8b Implement OpenXR Wii Remote support 2026-09-16 23:58:04 +02:00
iChris4 75f0f5f26d Refactor QuestSurface and Build-Quest scripts for improved surface handling and performance logging 2026-09-16 22:30:05 +02:00
iChris4 e52227baf5 Added Android Meta Quest Support 2026-09-16 22:06:34 +02:00
iChris4 49b8602543 Remove OpenXR Vulkan backend implementation files 2026-09-16 22:04:30 +02:00
iChris4 3e8bdcfd7b Added Support for Multiplayer Player 1 Immersive View 2026-09-16 17:06:03 +02:00
iChris4 9e37bb6447 Fixed VR Frame Interpolation frame-history copying bottleneck 2026-09-11 02:46:23 +02:00
iChris4 023c7dd082 Performance Improvements to Frame Interpolation 2026-09-10 23:52:01 +02:00
iChris4 c4f386724c Disabled bloom by default 2026-09-10 23:06:46 +02:00
iChris4 715830e89a Updated default value 2026-09-10 22:51:12 +02:00
iChris4 850d157481 Fixed "Mirror Mode" Gran Prix 2026-09-10 22:50:50 +02:00
iChris4 6467c6390c Added support for VR Frame Interpolation 2026-09-10 21:33:34 +02:00
iChris4andClaude Opus 5 c8eaa52727 Merge upstream/main into openxr-work (reverse-Z fix adapted for VR)
Brings in patchzyy/Wiicompiled main: os_sleep parked-thread fix (#195),
HTTPS Retro WFC payload (#198), macOS build guide (#177), and the
reverse-Z depth fix (#134).

Conflicts were in aurora-main/lib/gfx/common.cpp and lib/gx/shader.cpp,
both from #134, which lands squarely on the VR stereo replay path.

#134 makes UseReversedZ genuinely reversed: the near/far correction now
applies exactly once, inside effective_projection(), instead of being
applied there AND per-vertex in the shader (the double application had
been cancelling out, so "reversed" Z silently behaved like forward Z).
Three pieces of the VR path were built against that old behaviour and
would have broken silently, so they are adapted here:

- shader.cpp exact-screen-depth parked the virtual screen at -0.5*w
  specifically so the shader's following negation would land it at
  +0.5*w. With that negation gone it now writes +0.5*w directly; keeping
  the minus sign would park the screen at NDC -0.5, outside the clip
  volume, discarding every 2D/HUD draw.

- stereo_replay.hpp backend_ndc_depth_row re-applied the correction to
  the projection it was handed. That projection is effective_projection()
  output, which now already carries it, so the function is a pass-through
  of the Z row and no longer depends on the reversed-Z setting; the dead
  bool parameter is dropped. Re-applying it would invert the virtual
  screen's depth ordering, so 2D layers meant to sit on top would lose
  the depth test to the ones behind them.

- shader_info.cpp stages the host depth window for that exact-depth path.
  It now uses the same reversed-Z remap as upstream's new SetViewport
  code, since frag_depth is written directly and has to reproduce the
  window the fixed viewport transform would have applied. Restricted
  depth windows (how the game forces an element in front of everything)
  are exactly the 2D draws the virtual screen carries.

The SetViewport resolution keeps upstream's remap but retains the
ordering/clamp guard our version had: for any ordered guest range the
result is identical to upstream, and it avoids handing WebGPU
minDepth > maxDepth for the swapped pair MKW is known to emit. The VR eye
replay reuses these recorded values, so the guard covers that path too.

Test updates:
- stereo_replay_test now asserts the composed Z row against the staged
  projection's own Z row rather than against the helper's output, so it
  actually catches a re-introduced double correction (verified: it fails
  when the old negation is put back; the previous self-consistent form
  passed).
- gx_fifo_test's clearDepthValue expectation followed #134's deliberate
  clear_depth_value() inversion, expressed through UseReversedZ rather
  than hardcoded. Upstream changed the behaviour without updating this
  test, so it fails on upstream/main as-is.

Verified: aurora suite 247 passed with the same 2 failures that already
fail on the pre-merge branch (IndexedPaletteHistoryKeepsAbsoluteVertexSlots,
PacksOneUniformWhenBothHalvesNeedInitialValue - both pre-existing, unrelated
to depth); shader.cpp and common.cpp compile clean; translator suite 577
passed. Not yet validated on-device in VR.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 04:19:51 +02:00
iChris4 ee34fbe419 Online First-person camera anchor fix 2026-09-10 03:56:42 +02:00
iChris4 0353b76baa Online fix 2026-09-10 03:30:03 +02:00
iChris4 8a510695dc Launcher update 2026-09-09 22:34:27 +02:00
iChris4 5caec70da9 Added Support for VR in Launcher Setup 2026-09-09 20:40:23 +02:00
iChris4 d86dcb0aeb Updated default fpv values 2026-09-09 02:13:05 +02:00
iChris4 f525b9dd75 Fix : XR thread resubmits the last valid frame during stall + Eager Frame Heartbeat option 2026-09-09 01:08:04 +02:00
iChris4 4cf9f60ee7 Added Desktop view selector 2026-09-09 00:18:41 +02:00
iChris4andClaude Opus 5 a138670b37 Merge upstream main (v0.2.31) into openxr-work
Brings in 25 upstream commits: Dolphin-compatible input expressions and
GCPadNew.ini import, NAND setting.txt console identity, empty-MKW-save
handling, rumble toggle, LLVM 22, and CI caching.

The only conflict was runtime/CMakeLists.txt, where both sides appended
test targets after mkw_platform_paths_tests. Both blocks are kept: the VR
first-person test alongside upstream's NAND save/settings, SC serial, and
input expression tests.

runtime_config.h and settings_overlay.cpp auto-merged; the VR settings
menu, recenter hotkey, and stereo/first-person init calls are intact
alongside upstream's InputBindings wiring.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 22:32:59 +02:00
iChris4 0e3e2c3dc0 Added Yaw only / Yaw + Pitch / Full rotation options to first-person 2026-09-08 22:17:50 +02:00
iChris4 bd106dd1fe Anchored Main Menu Quad 2026-09-08 21:24:37 +02:00
iChris4 913eda2b3a Added "Lean back angle" option 2026-09-08 20:58:49 +02:00
iChris4 6e7e0f075b Added hotkey/menu recenter & Removed head orientation into the view rotation 2026-09-08 18:38:47 +02:00
iChris4 bf8539999d Moved VR Settings from "Graphics" Menu 2026-09-08 15:53:35 +02:00
iChris4 6440c5bc10 Added First-person "Hide Driver" and "Hide Driver and Kart" & Improved Default FPV Settings 2026-09-08 15:43:52 +02:00
iChris4 2742b8d9a2 Fixes for the First Person Camera 2026-09-08 13:37:28 +02:00
iChris4 02e5cb60a4 Added First Person Camera Option 2026-09-04 23:11:22 +02:00
iChris4 7898a76a22 Added 2D Virtual Screen for HUD and Ortho Elements 2026-09-04 18:31:03 +02:00
iChris4 60316f0115 Merge upstream main into openxr-work 2026-09-03 15:08:50 +02:00
iChris4 eafa33837f chore: removed scratch build artifacts 2026-09-03 04:11:26 +02:00
iChris4 b5a73959d4 docs: package and document experimental OpenXR support 2026-09-03 04:01:07 +02:00
iChris4 2156617cd5 runtime: integrate OpenXR presentation for Mario Kart Wii 2026-09-03 04:00:24 +02:00
iChris4 d8788de919 aurora: add asynchronous OpenXR stereo replay bridge 2026-09-03 04:00:02 +02:00
iChris4 8c8e4561e9 translator: add project entry observers for MKW VR 2026-09-03 03:59:42 +02:00
iChris4 e31932de0a OpenXR D3D12/Vulkan backend 2026-08-30 21:48:59 +02:00
iChris4 0beb7d880c Initial OpenXR configuration 2026-08-30 21:47:12 +02:00