Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux83/REPORT.md
T
Fr0zkaandClaude Opus 5.5 a81b5b7d06 passages: contiguous BVH node ranges + child-bound reuse (L83); scaling and serial floor measured
Exact through LOD2 (all near tile hashes equal L82). W8 LOD0-2: SW 1.09->1.06, FI 2.47->2.34,
TN 2.39->2.43 (noise), VS 1.20->1.18 s. Fast tier PASS.
Scaling W4/W8/W12/W16 (LOD0-2, FI): 3.59 / 2.48 / 2.33 / 2.34 s - flattens past W8-W12.
Estimated infinite-worker floor ~1.0 s FI/TN = shape compile (0.35-0.41 s, not overlapped:
no shape-free tiles in these views) + slowest single LOD0 tile service (0.51-0.59 s).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-10-28 00:24:49 +01:00

6.0 KiB
Raw Blame History

Linux L83 — passage CPU and worker scaling

Base was L82 (f572108); the retained code is the exact L83 candidate. Logs and machine-readable results are under Saved/Linux/l83/. Every benchmark/headless process used CPUs 0–11; headless runs had a 6 GiB address-space cap and a 1,740 s timeout. This Intel i9-12900H host exposes six P cores / twelve P-core threads on that mask, so W16 is oversubscription. The Ryzen 5800X3D target was not measured directly.

L77 near-LOD census

Three L77 samples per world and version. Passage phase is the share of all near-LOD0–2 samples. Term shares use passage plus support-phase samples; these are PC/source-line attribution estimates, not subroutine wall-clock timers. unresolved is code without a resolved source-line term.

Term share FI before → after TN before → after
Carve distance evaluation 45.1% → 41.5% 43.5% → 39.2%
Support restoration / columns 16.6% → 14.9% 16.2% → 13.5%
Mouth shaping 4.3% → 4.2% 4.0% → 4.5%
Smooth joins / Catmull–Rom 0.7% → 0.8% 1.2% → 1.3%
Remaining relief 18.9% → 21.3% 19.7% → 23.7%
Other passage work 9.3% → 11.5% 10.2% → 11.5%
Unresolved passage body 5.1% → 5.8% 5.1% → 6.3%

Passage phase itself was FI 58.76% → 58.75%, TN 58.51% → 59.11% of near-LOD samples. Top exclusive symbols (% of passage-phase samples):

World/version Top symbols
FI before VisitNearestPassageSpatialNode 24.3%; ApplyResolvedStratePassageCarves 21.4%; VF_FieldCachedValueNoise 18.7%; PassagePotentialWithinNode 17.5%; carve lambda 10.2%
FI after ApplyResolvedStratePassageCarves 21.3%; VF_FieldCachedValueNoise 20.8%; VisitNearestPassageSpatialNode 20.3%; PassagePotentialWithinNode 12.7%; carve lambda 11.8%
TN before VisitNearestPassageSpatialNode 25.9%; ApplyResolvedStratePassageCarves 21.3%; VF_FieldCachedValueNoise 19.2%; PassagePotentialWithinNode 14.2%; carve lambda 12.3%
TN after VF_FieldCachedValueNoise 22.8%; ApplyResolvedStratePassageCarves 21.8%; VisitNearestPassageSpatialNode 20.8%; carve lambda 13.1%; PassagePotentialWithinNode 10.5%

Exact cut and W8 readiness

Marked BVH nodes whose segment indices form a contiguous range, then skipped repeated lower_bound/membership work for those nodes. The nearest-node traversal now passes each already-computed child distance bound into recursion instead of calculating that bound again. A mask-only reachability trial was exact but showed mixed timing, so it was discarded.

L80 protocol: one warmup, then three interleaved L82/L83 pairs per stratum at W8. Cells show L82 → L83 median seconds; parentheses show the median of paired deltas.

Strate LOD0–2 ready Whole view
SW 1.088 → 1.058 (−0.021) 2.323 → 2.249 (−0.074)
FI 2.474 → 2.341 (−0.133) 3.756 → 3.591 (−0.165)
TN 2.386 → 2.431 (+0.058) 3.542 → 3.534 (−0.008)
VS 1.197 → 1.181 (−0.043) 2.233 → 2.171 (−0.109)

The cut is exact through LOD2: every near tile hash and the aggregate hash matched L82, with zero mismatches. Whole hashes (density / mesh / payload / topology):

Strate L82 = L83 whole hash
SW (1,408 tiles) 4889b882f274930e / cafd187b455569f1 / 09e265430de5d9c8 / 498dc21d1fb4100e
FI (1,216 tiles) 3175bceb00bfc76c / d1dabfba70a95d8a / b23900f97cfbb2cf / 3967a02b7c1ae1c8
TN (1,344 tiles) 6b3e9f38209c1d8f / efa0d7b993928cbc / ede5b7bf3a771552 / 798dc428930aa2e2
VS (1,344 tiles) e0c51b07a9a2016c / 99f2772314f721c5 / 922b324240786f79 / 6f8a836e0a17895c

Scaling

Final L83, L80 protocol: one warmup and three interleaved measured runs for each W4/W8/W12/W16 setting and stratum. Entries are median LOD0–2 / whole-view seconds; individual runs are in Saved/Linux/l83/scaling/summary.json.

Strate W4 W8 W12 W16
SW 1.464 / 3.493 1.455 / 3.023 1.210 / 2.427 1.087 / 2.309
FI 3.592 / 5.341 2.478 / 3.791 2.328 / 3.566 2.342 / 3.608
TN 3.625 / 5.398 2.475 / 3.631 2.327 / 3.384 2.295 / 3.368
VS 1.540 / 3.160 1.205 / 2.242 1.274 / 2.254 1.158 / 2.218

FI/TN scale well from W4 to W8 and gain about 0.15 s near-ready at W12; W16 is essentially flat for FI and slightly better for TN. Whole-view results mostly flatten by W12. W16 does not consistently help across all strata. Three-run variance is material in some cells: SW W4 near-ready ranged 1.400–2.322 s (shape compile 0.413–1.027 s), and FI W12 near-ready ranged 2.286–2.634 s (shape 0.344–0.594 s).

Serial floor

At W16, the FI/TN timeline had shape_free_desired=0 and near_ring=0/27. Shape compilation ran asynchronously, but there were no tiles to generate during it, so it is on the critical path and did not overlap tile generation in these views. Shape-free tiles could overlap compilation in views that actually contain them.

An instrumented W16 pass estimates the infinite-worker floor as the maximum, over near tiles, of enqueue time plus that tile's measured service time: FI 1.014 s (last enqueue 0.430 s; maximum LOD0 service 0.587 s), TN 0.974 s (0.470 s; 0.506 s). This is an estimate from W16 service times, not a measured W∞ run. Shape compile in these passes was 0.347 s FI and 0.408 s TN; queue wait reached about 1.8 s, so the actual W16 runs still have substantial parallel backlog beyond that floor.

Verification and failed runs

  • Fast tier passed in 299.8 s; source stamp 08af4e98c86a69477cc79e21463d8c93bcd11ebe0f077d7c11519031d9141fa9.
  • No Unreal build was needed: no Unreal Source/ files changed.
  • The first L77 parser attempt failed on a census regex unpack error; the parser was corrected and all six before/after FI/TN captures completed.
  • The first fast-tier invocation stopped immediately because its output directory had no verification binary. After building that binary, the full tier passed.
  • No timed-out benchmark or verification run. No commit, push, or stash.