Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux170/REPORT.md
T
Fr0zkaandClaude Opus 5.5 24803ab771 streaming: latch fast-travel early admission until the arrival set settles (L170, still opt-in)
Switches verified inactive before first settlement; moving gains hold (near 43.7 -> 55.5%, far holes 1.8 -> 0%, p99
7.21 -> 6.48 ms, worst 12.32 -> 12.27 ms). Arrival median +1.28% (4/7 pairs slower) though the switches did no work
then; defaults remain off (WaitForAllCriticalTiles=1, ApplyBudget=0). Source/: VoxelWorld.cpp, VoxelWorld.h.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-11-02 17:28:52 +01:00

4.6 KiB
Raw Blame History

L170 — Gate early admission on settled arrival

Result: The initial-arrival latch works: fast-travel admission and its 1 ms apply budget stayed inactive until the LOD0–2 desired set and required collision set settled, then became active during 30 m/s movement. Promotion still fails the arrival gate, so the source defaults remain off. The candidate was 1.282% slower on the per-condition arrival medians and was slower in four of seven pairs.

First-arrival census

The UE matrix used seven interleaved W8 pairs against assembler/world ca0bf76, 30 m/s, 12 seconds of movement plus 5 seconds of dwell, and one excluded warm-up per binary. The candidate binary was compiled with the two early-admission defaults on; there were no CVar command-line overrides. Its raw first-settled LOD0–2 median was 1.691450 s versus 1.670039 s for baseline (+21.411 ms, +1.282%). The median paired delta was +12.176 ms; the candidate was not slower in only three pairs. Times from the first streaming sample to settlement had medians 1.2965 s and 1.3132 s respectively.

I counted startup-window trace timers from each run's first streaming sample through its first settled LOD0–2 sample. Candidate fast-travel mode was active in zero pre-settlement scheduler samples, and its apply budget remained at the normal 2 ms. During that same window:

  • Level candidate scanning summed to 2.896 ms baseline and 3.758 ms candidate (paired median delta +0.895 ms). Partial level sorting fell from 2.195 ms to 0.727 ms (−1.452 ms paired median).
  • Desired rebuild totals were effectively unchanged: 3.046 ms versus 3.047 ms per window (paired median delta −0.035 ms). The candidate spent 0.149 ms in its transition-index phase; the baseline has no matching phase.
  • Result-drain time was 127.986 ms versus 131.521 ms (paired median delta +5.001 ms). Apply time was 121.509 ms versus 125.095 ms (+5.416 ms paired median), while the candidate had applied 10 fewer meshes by settlement at the paired median.

These timers locate the largest measured difference in result draining and apply work, but they do not isolate why that work costs more; some phase timers may overlap and should not be added. The early-admission switches themselves did no work before settlement, so the census does not attribute the remaining arrival regression to those switches.

Movement results

Medians over the seven 30 m/s moving windows:

Metric ca0bf76 Candidate Change
Near LOD0–2 readiness 43.65% 55.46% +11.82 pp
Forward-cone readiness 15.79% 18.69% +2.90 pp
Far holes 1.80% 0.00% −1.80 pp
Tick p99 7.214 ms 6.476 ms lower
Worst tick 12.315 ms 12.272 ms lower

All runs met p99 ≤ 11 ms and worst tick ≤ 14 ms; the largest observed values across both conditions were 7.281 ms and 12.881 ms. Candidate fast-travel mode and the 1 ms budget were active in every moving run. The movement gains met the L169-relative gates; only the two arrival gates failed.

Defaults and checks

CVar Final source default Candidate test default
voxel.StreamingFastTravelWaitForAllCriticalTiles 1 0
voxel.StreamingFastTravelApplyBudgetMilliseconds 0 ms 1 ms
voxel.StreamingIncrementalDesiredSet 1 1
voxel.StreamingFastTravelForwardFirst 0 0
voxel.StreamingRebuildOnCoreRegionCompletion 1 1
voxel.StreamingCoreDesiredCacheByCenter 0 0
voxel.StreamingIncrementalDesiredAuditEvery 0 0
voxel.StreamingIncrementalDesiredMaterializationAuditEvery 0 0
voxel.StreamingIncrementalDesiredAuditInjectMismatch 0 0
  • VFHost UE Linux Development builds passed for the candidate-on measurement binary and final defaults-off source (-NoUBA -MaxParallelActions=4); three existing deprecated RealtimeMesh API warnings remain.
  • Standalone/Tools/verify/verify.py fast passed on the final source in 280.7 s: 268 passes, zero failures, five non-gating hash-baseline diagnostics. Worker-count determinism checks passed.
  • The L170 movement runner completed all seven pairs. Its exit was nonzero only because the two arrival promotion gates failed. Runner AST parsing and git diff --check passed.
  • UE W12 movement timing was not run; the VFHost procedure reported eight effective tile slots. Fast-tier W1/W8/W12 determinism checks ran.

No geometry or evaluator code changed. Remaining risk is the unexplained arrival regression in result-drain/apply work; promotion should wait for a measurement that isolates that cost.

Changed Unreal Source/ files:

  • Source/VoxelForge/Private/VoxelWorld.cpp
  • Source/VoxelForge/Public/VoxelWorld.h