From 45f379560aeb55bcbebb814f9c492eb1c05a2886 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 17 Aug 2026 19:36:56 +0200 Subject: [PATCH] =?UTF-8?q?docs=20#418:=20lead-review=20refinement=20?= =?UTF-8?q?=E2=80=94=20the=20~31=20ms=20period=20is=20one=20landblock's=20?= =?UTF-8?q?update-thread=20publication=20cost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- docs/ISSUES.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 274a5457..34a46c70 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -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