wip(assembler): round S5 -- streaming gates + trace; coarse-first order kept opt-in (no win)
Walkable/enclosed/refined gates defined; JSONL trace joins request, worker start, build/apply and discards. Coarse-first + dynamic near reserve behind voxel.StreamingCoarseFirst / voxel.StreamingDynamicNearReserve (default 0 = S4 order): matched runs showed no walkability or full-view win and slower LOD0/1 refinement. Instruments settled: 3.1 s standalone reproduced (16.7 s was another generation route); black early captures were clear-only frames. Hashes equal S4; Core-off, M2, SurfaceWorld/FloatingIslands BuildHost pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
9d3c50ca95
commit
c0596c5f24
32 files changed
+1049
-65
No files matched your search
@@ -1435,6 +1435,47 @@ LOD7/8 shell repair is skipped for certified SurfaceWorld tiles, the renderer do
|
||||
backfaces, and the strips predate S4 in S2/S3. Refining all steep faces would multiply far mesh work;
|
||||
S4 leaves that cost/quality tradeoff open.
|
||||
|
||||
### 8.26 Streaming readiness gates and admission order — World Assembler S5 / M3 Round 9
|
||||
|
||||
Do not use “every tile in the current desired clipmap is resident” as a moving-player readiness
|
||||
gate: the center and desired keys change continuously, so that condition can remain false even when
|
||||
the player has safe ground and a closed view. Report three independent gates from the first actor
|
||||
tick: (1) **walkable now** — the support tile and collision-required level-0 tiles in the 3×3 XY
|
||||
neighborhood have installed collision (or are explicitly collision-not-required); (2) **enclosed
|
||||
now** — the active view has ground, horizon and the family-appropriate ceiling, with no exposed
|
||||
coverage hole or unexpected sky; (3) **refined soon** — each target LOD resolves within its stated
|
||||
time or travel distance after entering range. While moving, report the largest frame/time gap in
|
||||
enclosure and maximum distance that unresolved work trails the pawn. FloatingIslands has open sky by
|
||||
design, so its enclosure check excludes a planar roof.
|
||||
|
||||
The shared `AVoxelWorld::UpdateChunksAroundPosition` scheduler serves both the Core snapshot path and
|
||||
Core-off legacy path. It admits the collision-critical 3×3 ring first. The measured S5 order remains
|
||||
opt-in because it did not beat the legacy order on the gates and the viewer could not confirm screen
|
||||
presentation: set `voxel.StreamingCoarseFirst=1` to admit coarse desired levels from the maximum LOD
|
||||
down to `max(2, FullResClipLevels)`, favoring tiles ahead of travel and then nearer tiles within each
|
||||
LOD; LOD0/1 refinement follows. Default `0` preserves the S4 LOD0-to-LOD8 order.
|
||||
`voxel.StreamingDynamicNearReserve=1` opts into keeping the authored near-task reserve while the pawn
|
||||
moves or until the stationary walkable ring is ready; default `0` preserves the previous task budget.
|
||||
The standalone queue defaults to legacy order; `--coarse-first-stream-order` opts into the S5 tiers
|
||||
and `--legacy-stream-order` explicitly selects the legacy order.
|
||||
|
||||
This order changes only which key starts first. Tile field arithmetic, hashes, `Epoch`, cancellation
|
||||
checks, `ModsLock`, the four `EQueueMode::Mpsc` result queues and `EndPlay` draining remain unchanged.
|
||||
The clipmap remains a non-overlapping partition, and `TransitionHold` still performs load-before-
|
||||
unload reconciliation. No duplicate coarse placeholder is admitted: the current transition rules
|
||||
do not make a temporary overlapping parent safe at initial spawn without a separate all-descendants
|
||||
hide/swap gate. A coarse tile completion count alone is not proof of enclosure; verify the actual
|
||||
view and family-specific ground/ceiling coverage.
|
||||
|
||||
`VoxelStartupTrace` records request and worker-start ordinals, LOD, priority, epoch, resident-at-
|
||||
request, queue wait, build time, result wait, apply time and discarded/cancelled result reasons.
|
||||
Use `-voxel.StartupTraceUntilEndPlay=1` for a moving trace. Round 9 found similar cold walkable-gate
|
||||
times, no demonstrated enclosure win, and fewer cancellations at 60 m/s, while that route's center
|
||||
deltas were invalid. DXGI marked the capture window occluded, so its images are back-buffer evidence
|
||||
rather than proof of screen presentation. Keep S5 opt-in until an owner-visible run measures the
|
||||
three gates and closes that gap. Full results and limits are in
|
||||
`Standalone/Research/WorldAssemblerM3/Round9/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
|
||||
|
||||
Reference in new issue
Block a user