docs #418: lead-review refinement — the ~31 ms period is one landblock's update-thread publication cost

The identical flat 32/s across the serial and pooled binaries points at a
single ~31 ms indivisible per-landblock admission on the update thread
(one admission per frame under the 2 ms floor, frame stretched to ~31 ms,
~32 fps x 1/frame = 32/s); the old serial builder producing at the same
~31 ms/block masked it. Predicts ~31 ms tunnel frame time; fix shape is
splitting/off-threading the publication cost, not budgets (disproved
twice). Verify the frame-time prediction first next session.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-08-17 19:36:56 +02:00
parent 39967e78bd
commit 45f379560a

View file

@ -55,6 +55,23 @@ builds off the critical path (23 s → 0.2 s) and is quality-neutral
preserved; a pool of 1 reproduces the old serial behavior,
regression-tested in `LandblockStreamerPoolTests`).
**Lead-review refinement (2026-08-17, same day):** the identical ~31 ms
period across BOTH configurations is unlikely to be a coincidence of two
different limiters — the sharper hypothesis is that ONE ADMITTED
LANDBLOCK'S update-thread publication itself costs ~31 ms (GPU upload +
registration + typed-budget accounting as one indivisible admission).
The 2 ms `MaxUpdateMilliseconds` floor guarantees exactly one admission
per frame; that admission stretches the frame to ~31 ms; the hold
therefore runs at ~32 fps and 1 admission/frame × 32 fps = the measured
flat 32/s — in the OLD binary the serial builder happened to produce at
the same ~31 ms/block, which masked the admission cost entirely. This
predicts: (a) tunnel frame time during the hold is ~31 ms (measurable
from the existing frame profiler), and (b) the fix is splitting or
off-threading the per-landblock publication cost — NOT raising budgets
(already disproved twice). `MaxCompletionsPerFrame = 4` (the quality
line) is a profile SCALE of the same env-tunable options, so it is also
already exonerated. Verify (a) first next session.
## #417 — World ambience keeps playing (and re-firing) on the character-select screen after the in-world logoff
**Status:** ✅ FIXED 2026-08-17 (logout-audio round; fix + tests in the same