926 Commits
Author SHA1 Message Date
Jeremy Bowers 64cc2b2e13 When Immersive VR is used, lock certain settings in place that are necessary for it.
This fixes #5.
2026-10-18 19:21:47 -04:00
Jeremy Bowers 70dbdb5f0f Render the UI to the main window.
This works toward #14, but is not entirely satisfactory as due to
some other previous fixes, when the Dolphin UI is displayed the
emulation window stops rendering. So that needs to be addressed.
2026-10-17 11:11:02 -04:00
Jeremy Bowers 38fc6d9a95 Remove the arrow in the help dialogs.
The previous fix to fit them in their dialog box often unseated
the arrow from the widget it is trying to point at. With the user
so actively interacting with the widgets to get the help,
including having to hold the pointer steady to keep it where they
can read it (arguably a problem of its own), I don't think we need
to quite that aggressively point at the target widget.
2026-10-16 00:56:49 -04:00
Jeremy Bowers 14effdb34e Fix the tooltips so they don't exceed the dialog's boundaries.
Steam OS intepreted that as a resize of the window and recentered it.
This caused a lot of displeasing UI churn.

This still leaves the little chevrons pointed at the wrong places
sometimes but it is still a much better user experience.
2026-10-12 19:49:33 -04:00
Jeremy Bowers fbeefedb2a Updates to the Readme.md and compiling scripts. 2026-10-05 17:06:08 -04:00
Jeremy Bowers 9dd817d864 OpenXR: add independent stereo separation control
Immersive VR previously used the full runtime-reported left/right view
positions, with Units per Meter scaling both world geometry and the
per-eye offsets. That left no direct way to soften strong near-field
pop-out without also changing the apparent world scale.

Add Graphics.VR.StereoSeparation as a 0-200 percent setting, defaulting
to 100 percent. Scale each eye's positional offset around the average
eye center independently of shared head translation. At 100 percent the
projection is unchanged, 0 percent brings the virtual view positions
together toward mono, and values above 100 percent amplify stereo depth.
Units per Meter continues to set world scale and head-motion mapping.

Expose the setting in the global VR pane and per-game VR configuration,
include it in game VR override application/reset, and refresh cached
projection rows when it changes. Help text explains the scale/depth
tradeoff, possible near-field comfort benefit, and that Stereo 3D Screen
continues to use the existing Stereoscopic Depth control.
2026-10-05 00:21:28 -04:00
Jeremy Bowers 4465c932fb Steam Frame: decouple XR heartbeat from game timing 2026-10-04 20:54:26 -04:00
Jeremy Bowers 22f6884ca0 Checkpoint. This has a number of things including defaulting eager_heartbeat to true. 2026-10-04 14:41:52 -04:00
Jeremy Bowers 8c549d2036 DolphinQt: hide raw motion mappings for Frame 2026-10-03 23:16:44 -04:00
Jeremy Bowers 7df6a30691 DolphinQt: defer Frame mappings until controller loads 2026-10-03 23:03:54 -04:00
Jeremy Bowers 5fa8d90d8b Steam Frame: use dropdown controller mappings and defaults 2026-10-03 22:58:52 -04:00
Jeremy Bowers d3bdaab03a DolphinQt: remove VR mapping configure button 2026-10-03 22:36:43 -04:00
Jeremy Bowers ce93e0606d DolphinQt: pin controller mapping to Steam Frame 2026-10-03 22:26:21 -04:00
Jeremy Bowers 3ec01541fd OpenXR: add configurable presentation modes 2026-10-03 20:06:38 -04:00
Jeremy Bowers 7726dbe5a5 OpenXR: add requested display refresh rate
Add GFX_VR_REQUESTED_REFRESH_RATE setting (Auto/60/72/90/120 Hz). When a
non-zero rate is configured, call xrRequestDisplayRefreshRateFB after the
session begins so the runtime can switch the headset panel to a rate that
matches the game's frame rate (e.g. 60 Hz or 120 Hz for 60 fps Wii games,
instead of the default 72 Hz).

This should reduce judder caused by the compositor showing 60 fps content on
a 72 Hz display. The runtime may clamp the request to the nearest supported
rate; the result is logged.

UI exposed in VRPane and VRConfigWidget.
2026-10-03 10:12:22 -04:00
Jeremy Bowers fb2e70a608 OpenXR: implement stereoscopic virtual screen mode
- Add IOpenXRSwapchain::GetEyeSwapchainHandle() and SubmitStereoFlatFrame(),
  with per-backend overrides for Vulkan, D3D11, D3D12, and OGL.
- Add OpenXRManager::SubmitStereoQuadFrame() which builds two world-locked
  XrCompositionLayerQuad layers with XR_EYE_VISIBILITY_LEFT/RIGHT and publishes
  them through the pacing thread (or EndFrame on the legacy path).
- Extend PublishedXRFrame and FrameThreadLoop to submit the stereo quad pair.
- Add UI checkbox for Stereo Screen in VRPane and VRConfigWidget.

The game renders with classic SBS stereoscopy; left/right XFB layers are blit
into the corresponding OpenXR eye swapchains and shown as a 3D floating screen.
2026-10-03 01:29:02 -04:00
iChris4 6575095298 Updated Quest Settings 2026-07-28 15:59:44 +02:00
iChris4 c28b2ba0f8 Added spinbox in Graphics settings to set custom command list buffer 2026-07-27 04:19:10 +02:00
iChris4 3ddf87e56e Updated VRPane UI & Settings 2026-07-25 18:53:44 +02:00
iChris4 b38bebb869 Added semantic family scheme to the shader hunter 2026-07-24 17:41:25 +02:00
iChris4 56261dca10 Added "preserve_stereo_efb" to Fullscreen override 2026-07-24 16:28:46 +02:00
iChris4 c42e41c88e Added Global Flag Override and "Flag" type to Texture Override 2026-07-24 04:00:51 +02:00
iChris4 6814e0b955 Updated Hide Object UI 2026-07-24 03:07:44 +02:00
iChris4 a39dce8432 Added right-click menu for Overrides sorting 2026-07-24 01:39:02 +02:00
iChris4 5a01a4a673 Adjusted Texture Element Override Layout 2026-07-24 01:18:33 +02:00
iChris4 655b65af7a Added drag and drop support for PNG/DDS from File Explorer onto the Texture Override Tool 2026-07-24 01:06:50 +02:00
iChris4 a409877f3d Added texture override parser support for tex1_WxH_m_<hash> 2026-07-23 23:59:02 +02:00
iChris4 6ff81b072f Added Screen Pane Depth options type "Original, Physical, Flat" 2026-07-23 23:40:13 +02:00
iChris4 d85e292b12 Presentation-stage fix & Added screen_pane type override 2026-07-23 17:45:43 +02:00
iChris4 b4796daa35 Added Frame Size from XFB Copy, Small 3D Viewports and Detect Render-to-Texture Viewports 2026-07-23 00:14:58 +02:00
iChris4 a72e99fd4b Updated VR-Config to match Game Config behavior 2026-07-22 05:24:01 +02:00
iChris4 e9da12534f Removed (VR) after Vulkan and Direct3D 11 2026-07-22 04:36:13 +02:00
iChris4 3f7bab1a03 Added new Hotkeys for the Texture Override Tool and Anchor Overrides 2026-07-22 04:23:19 +02:00
iChris4 e963819d00 Added "Configure in VR" for Hotkey Settings 2026-07-22 03:37:00 +02:00
iChris4 1793f16d6d Removed Element Depth 2026-07-22 02:52:37 +02:00
iChris4 5f651538d3 Removed depreciated Auto Layer and Layer Offset 2026-07-21 21:01:36 +02:00
iChris4 a5d08016a4 Added Controller Anchor to Shader and Texture Override Tool 2026-07-21 19:51:32 +02:00
iChris4 eca3105a0b Added Camera Anchor to Shader and Texture Override Tool 2026-07-21 18:36:46 +02:00
iChris4 8aa116d0e2 Added Custom FPV UPM Value 2026-07-21 17:49:31 +02:00
iChris4 e7662f3c8b Removed "LockHeadPosePerFrame " and "AutoImmediateXFB "in VR Hacks 2026-07-21 17:06:40 +02:00
iChris4 7ba102775f Added "Configure in VR" to the GameCube bindings 2026-07-21 15:12:49 +02:00
iChris4 d94a5a0cfe Updated "Configure in VR" Wii Remote OpenXR controller bindings 2026-07-20 02:53:55 +02:00
iChris4 2aa5f3b2ca Added "Controller Anchor" type to the group elements override 2026-07-19 17:56:55 +02:00
iChris4 b44ac1f850 Added "Camera Anchor" type to Group Element Override 2026-07-19 04:51:48 +02:00
iChris4 e61053a0ba Added Semantic VS/GS family signatures 2026-07-17 04:06:11 +02:00
iChris4 3bfa9ad3ec Improved passthrough & Added XRPacingThread 2026-07-12 01:32:52 +02:00
iChris4 ff556da459 Dropdown replaced with two icon toggle buttons 2026-07-09 04:52:37 +02:00
iChris4 ed0f0d5beb UI Adjustments 2026-07-09 04:35:01 +02:00
iChris4 2ba044173d Save List/Grid state 2026-07-09 04:21:58 +02:00
iChris4 90274522bf Added grid selection 2026-07-09 04:16:28 +02:00