wip(assembler): round S11 -- bounded spawn apply budget: in-game full set 7.1 s -> 6.0 s

Startup apply mode on by default (12 meshes / 14 ms per frame, ends when the
initial set and walkable ring are ready, 30 s cap); normal play keeps the
authored budget. Backlog peak 252 -> 10, LOD8 apply wait 1.1 s -> 4 ms.
Ring 0.49 s, LOD0 1.40 s, 40 m/s ring 75/75. Remaining floor: frame-paced
admission (~8.3 submits/frame, 8 running workers max). No geometry change.
Report: Standalone/Research/WorldAssemblerM3/Round15.

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 13:03:44 +02:00
1 parent b90d63d0f7
commit dd9bfd3217
6 files changed
+240 -7

No files matched your search

+28
View File
@@ -1679,6 +1679,34 @@ coverage gates still pass at their existing tolerances. BuildHost actor startup,
matrix, W1/W8/W12 Standalone hashes, the 40 m/s support-ring trace and the S10/S9 captures are
recorded in [`Standalone/Research/WorldAssemblerM3/Round14/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round14/REPORT.md).
### 8.32 Bounded spawn-phase mesh applies — World Assembler S11 / M3 Round 15
The shared `AVoxelWorld::ProcessPendingChunks` startup budget now defaults on for the initial desired
set: up to 12 visible mesh applies or 14 ms in one frame, with a 30 second ceiling. It ends as soon
as the first desired set and stationary walkable ring are ready, the desired epoch changes, an
explicit per-step apply override is supplied, or the ceiling expires. Normal play uses the authored
`MaxMeshAppliesPerFrame` and `MaxMeshApplyMilliseconds` values. Set
`voxel.StreamingStartupApplyBoost=0` for the matched authored-budget control. `startup_apply_config`
records the actor-read CVar and both budgets; `startup_apply_budget` records when the bounded phase
starts and ends.
On the matched 25 cm SurfaceWorld trace, both fresh processes handled 2,578 initial tiles. With the
authored 4-mesh/2 ms budget, readiness was 7.118 s, the nine-tile walkable ring was ready at 0.495 s,
and full LOD0 at 1.444 s. The four-mesh limit hit 305 of 399 apply frames; result backlog peaked at
252/256 and result-wait p95/max was 847/1,119 ms. The last LOD8 worker ended at 6.068 s, but its
result applied at 7.182 s. With the shared startup budget enabled, readiness was 5.960 s, the ring
was ready at 0.486 s, and full LOD0 at 1.403 s. No apply-count frame hit its limit; backlog peaked
at 10 and result-wait p95/max fell to 16.6/19.3 ms. The last LOD8 worker/apply times were 6.015/6.019 s.
The remaining worker-generation span is frame-paced: 2,578 requests arrived over 310 submission
passes (8.32 per pass) in 5.58 s. The trace integrates 4.8 busy workers out of 10, while sampled
active task guards averaged 9.9/10 and sampled running workers peaked at 8. The LOD4 group used the
most worker time (6.590 s) but finished at 4.276 s; the final LOD8 group applied at 6.019 s. The 60
initial RMC body updates had an 18.4 ms p95 submit-to-body-update interval, and the walkable ring was
ready well before that far-LOD tail. Geometry and collision arithmetic do not change, so recipe
versions stay unchanged.
See [`Standalone/Research/WorldAssemblerM3/Round15/REPORT.md`](Standalone/Research/WorldAssemblerM3/Round15/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