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
6.0 KiB
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.