wip(assembler): round S6 -- in-game cold view counted; workers mostly idle, apply cap not the floor

Direct per-tile trace on the BuildHost actor (owner plan, 2,578 keys): full set
17.4 s legacy; gated coarse-first (after the 9-tile walkable ring) 11.7 s with
the ring still at 0.63 s, but full LOD0 slips 2.3 -> 10.2 s. Startup apply
boost changed nothing (0.4%). 37.6 worker-s over 17.4 s on 10 slots = ~3.3
busy: the floor is admission/work supply. S5's 251 ms staircase was the trace
sampler. Fixed CVar parsing in headless BeginPlay and the 60 m/s crossing
instrument. All three knobs stay opt-in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-19 06:46:54 +02:00
1 parent c0596c5f24
commit b9c13c37c0
11 files changed
+903 -31

No files matched your search

+37
View File
@@ -1476,6 +1476,43 @@ rather than proof of screen presentation. Keep S5 opt-in until an owner-visible
three gates and closes that gap. Full results and limits are in
`Standalone/Research/WorldAssemblerM3/Round9/REPORT.md`.
### 8.27 Cold-view throughput trace and gated coarse admission — World Assembler S6 / M3 Round 10
`UpdateChunksAroundPosition` samples residency at intervals of at least 0.25 seconds. A `streaming_sample`
timestamp is therefore a quantized observation, not a tile-completion timestamp or an admission throttle.
Use the direct per-tile apply records for completion time, and `apply_frame` records for the game-thread
budget, queued-result estimate and running-worker count. `collision_ready` measures the asynchronous
RealtimeMesh submit-to-body-update interval; it is not an isolated Chaos CPU-cook timer.
The staged SurfaceWorld actor trace contained 2,578 desired keys. With legacy order and the authored
4-visible-mesh / 2 ms apply budget, the full desired set became resident at 17.412 s and the required
collision ring became walkable at 0.632 s. `voxel.StreamingCoarseFirst=1` with
`voxel.StreamingDynamicNearReserve=1` completed the same set at 11.704 s while the ring gate remained
0.627 s. Coarse admissions begin only after the nine-tile walkable gate. This reduces measured cold
residency by about one third on the staged plan, but null-RHI residency does not prove rendered
enclosure. Keep coarse-first opt-in until that view is checked in a rendered owner-plan run.
The separate `voxel.StreamingStartupApplyBoost` switch stays default-off. At `1`, it temporarily allows
12 visible mesh submissions / 14 ms while the initial desired set and walkable ring are incomplete,
with a 30 second ceiling; at `0`, the authored budget is unchanged. On the matched legacy-order test,
the boost changed full-set readiness from 17.412 s to 17.346 s and removed count-cap frames, but did
not improve end-to-end residency. Keep the normal 4 / 2 ms guard for play.
The trace found the shared worker pool was not saturated: the 10-slot idle estimate was about 132
slot-seconds on legacy order and 73 on gated coarse-first, while game-thread tile applies totaled only
about 0.24 seconds during cold residency. Results waited in the result queue, and some frames reached
the four-mesh cap, but expanding the apply budget alone did not move the wall clock. The remaining
floor is worker-side work supply/admission; this trace does not isolate why available worker slots
stay idle. The 1.57 s target remains unmet; the headless trace is not a render-time measurement.
The report records per-LOD worker, queue, result-queue and apply totals, collision latency, frame
percentiles, hashes, regressions and the command lines. The standalone 60 m/s viewer now counts
forward +Y center crossings across multi-chunk deltas; that route reports valid crossing deltas, but
its latency gate still fails. These are scheduling and instrumentation changes only: deterministic
W1/W8/W16 world and LOD hashes are unchanged, as are `Epoch`, cancellation, `ModsLock`, MPSC queue,
shutdown-drain and game-thread UObject-creation rules. See
[`Standalone/Research/WorldAssemblerM3/Round10/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round10/REPORT.md).
## 9. Multiplayer model (listen-server first, dedicated-friendly)
> **Status: transport is DESIGN ONLY — nothing is networked in-tree yet** (no `Replicated`/`HasAuthority`/RPCs; a