mirror of
https://github.com/mitch030504/Wiicompiled_VR_Frame.git
synced 2026-10-06 03:00:14 +02:00
Replay each VR eye in one render pass
- Added eye_pass_plan.hpp: an eye keeps drawing in the render pass it has open across the frame's
GX copies (only the mono render performs them), skips passes a later clear of the whole color and
depth erases, and splits only for a clear of color alone or depth alone.
- render_stereo_eye follows that plan; the cockpit fallback is drawn inside the last pass instead of
a render pass of its own that loaded the eye back.
- The stencil is now cleared where the eye actually starts, so a cockpit mask drawn in an erased pass
can no longer punch holes in the HUD.
- [vr] single_pass_eyes (default on, live from F10) and debug.wiicompiled.eye_passes 0/1 on the Quest
switch back to one render pass per recorded pass for A/B timing.
- Each new plan shape is logged once ("Eye replay plan: ...").
- Tests: EyePassPlan cases in gx_fifo_tests; stereo_multiplayer_smoke and stereo_frame_worker_smoke
pass on D3D12.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
13311ea626
commit
ceeeba0332
12 files changed
+527
-18
No files matched your search
@@ -48,6 +48,7 @@ hud_virtual_screen = true
|
||||
flat_screen = false
|
||||
stop_at_display_copy = true
|
||||
skip_copy_clears = true
|
||||
single_pass_eyes = true
|
||||
first_person = false
|
||||
first_person_toggle_click = true
|
||||
first_person_seat = "cockpit"
|
||||
@@ -161,6 +162,13 @@ panel's rectangle), at the same size per pixel, so nothing moves.
|
||||
`stop_at_display_copy` ends eye replay at the final `GXCopyDisp`, matching the frame shown on the
|
||||
desktop. `skip_copy_clears` independently suppresses the EFB reset performed after a copy. Both
|
||||
default on and can be changed live from the F10 settings bar for diagnostics.
|
||||
`single_pass_eyes` draws each eye in one render pass. The desktop image ends a render pass at every
|
||||
GX copy, because the copy reads what was drawn before it; an eye samples the copies the desktop
|
||||
image made and never performs them, so it keeps drawing in the pass it has open, and it leaves out
|
||||
whatever a later clear of the whole color and depth erases. The picture is the same with less GPU
|
||||
memory traffic, which a tiled mobile GPU pays for at every split (the "Eye replay plan" log line
|
||||
reports each new pass structure). It defaults on and is live; turning it off replays one render pass
|
||||
per recorded pass.
|
||||
`first_person` and the `first_person_*` values are the first-person camera described below. All
|
||||
four are live and are also exposed in the F10 settings bar.
|
||||
`performance_level` is the level asked of the runtime through `XR_EXT_performance_settings` for
|
||||
|
||||
Reference in new issue
Block a user