Repository navigation
WS2: performance — quality levels 0-3, faster step-down, 72 Hz, perf budget - #10
Merged
karanheart96 merged 6 commits intoNov 11, 2026
Conversation
Competition hardening: diagnostics, cold start, recognition
…t on the stage Level 1 trims the shadow-receiving surface to the lit area (it follows the pool and grows for the finale). Level 3 is a 256 px shadow map and half the storm's raindrops. The stage asks for 72 Hz on XR entry and records the answer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he display rate Slow means 3% over the refresh interval (14.3 ms at 72 Hz). The interval comes from XRSession.frameRate on a device; under the emulator, which claims 72 Hz on a 60 Hz desktop, it is measured at the end of warm-up. Previously any 60 Hz emulator session was quietly stepped down to level 2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…shadow map Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…checks for quality levels Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
WS2 (P0): performance. The goal is to hold 72 Hz on Quest 3/3S and degrade quietly if a headset can't.
What changed
XRSession.frameRateon a real device. Under the emulator, which reports 72 Hz while Chromium draws at 60, it is measured at the end of warm-up. The emulator is detected by itsIWER_DEVICEglobal, since it also spoofs the Quest user agent.?diag. The result (granted / refused / unsupported) goes to diagnostics and the summary.__sp.audit()reports visible meshes, shadow casters, transparent layers and shadow-map setup.Numbers (emulator, GPU, The Moth, six personas)
The emulator can't measure GPU time on a Quest, so the real frame-time gain from the trimmed surface and smaller maps is a device item.
Trade-offs (the conservative option was chosen in each case)
frameRateonly off the emulator. The alternative, always measuring, would hide a Quest that is slow from the very first frames.Verified
npm test,npm run build: pass.playtest.mjs --gpu: all six personas, no stalls, 0 errors, 60 fps, budget ok.live-family.mjs: pass; fps the same as the previous run (software rendering).readRenderTargetPixelsAsync).Device items (docs/DEVICE-TEST.md)
🤖 Generated with Claude Code