10 Commits
Author SHA1 Message Date
Jeremy Bowers a814a8da74 Final instructions for the v0.2-alpha release. 2026-10-18 23:03:45 -04:00
Jeremy Bowers 70d096f8d7 Fix issue with intermittent slowdown.
An error in the way frames were submitted to XR resulted in intermittent
slowdown that fooled me for a while as being shader compilation stutter,
and had me down the wrong track of investigating that.

However this was actually the root cause. This should bring Baiji up to
performance parity with the current Dolphin release, as near as I can tell.

Resolves Issue #13.
2026-10-16 01:00:07 -04:00
Jeremy Bowers 8b4a0723fc Tone down my stridency about issues, and rewrite the contribution guide Github links to. 2026-10-12 19:16:59 -04:00
Jeremy Bowers 38cf5cf933 Make the best fix for Room View in S3D we can, given what the OS gives us. 2026-10-11 22:16:20 -04:00
Jeremy Bowers 0775c13109 Some Readme.md updates. 2026-10-11 11:53:04 -04:00
Jeremy Bowers f55ab9b06e Install the flatpak-based SDK if needed. You're up, Ubuntu. 2026-10-05 20:11:38 -04:00
Jeremy Bowers c4eb076a49 Further attempts to build this elsewhere. 2026-10-05 18:13:10 -04:00
Jeremy Bowers 6c95b40453 Steam Frame: complete stereo eye writes before XR release
StereoScreen previously submitted and released each Vulkan eye separately
while its image writes could still be in flight. On native Steam Frame
this produced conspicuous doubled/stale-image hiccups and apparent
backward jumps, even though API-side frame identities remained ordered.
A capture covering 16,699 XFB copies found no gameplay source regression,
GPU-submit reversal, XR display-time reversal, or eye-ID mismatch.
SteamVR motion smoothing was already forced off.

For Baiji StereoScreen, defer eye releases until both blits are recorded,
submit their GPU work together, wait once for completion, release both
images under the graphics-queue lock, then publish the quad layers.
Keep this wait even with timeline semaphores enabled: submitted writes
alone were insufficient for correct image delivery on Frame. The wait
trades some CPU/GPU overlap for a completed stereo pair.

Also exclude xrEndFrame from the video blit/completion/release/publish
transaction with a handoff mutex. The previous atomic flag had a
check-to-submit race. Take the handoff lock before publish/queue locks,
and never hold the graphics-queue lock during the completion wait.
PresentBackbuffer already advances frame resources; the stereo submit
must not advance them again.

CPU-side handoff locking alone did not cure the artifact. Headset tests
with the completed-pair handoff in Super Mario Galaxy 2 at 2x/120 Hz
confirmed that remaining misses look like ordinary dropped frames,
rather than doubled images or huge hiccups. The clean Frame SDK build
and launcher CLI smoke check passed. Remove the temporary timing/order
capture code and retain the findings and lock-order guidance in AGENTS.md.
2026-10-04 23:10:20 -04:00
Jeremy Bowers 4465c932fb Steam Frame: decouple XR heartbeat from game timing 2026-10-04 20:54:26 -04:00
Jeremy Bowers ef1a3a0500 OpenXR: synchronize flat-screen reanchor cache 2026-10-04 14:38:56 -04:00