Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux62/REPORT.md
T

4.3 KiB

Linux 62 report

Status: Shared changes are in place. Fast and medium pass. The final full run stopped at the first speed-matrix counter gate, so the requested eight-generator after matrix, stage totals, visibility comparison, and sanitizer result are incomplete.

Cuts and counters

  • Exact column/sample reuse: Shared caching reuses canonical boundary samples across tiles and workers. Keys include shape/edit/LOD/sample and assembly-query context. Interior sampling stays on its existing path. The requested per-LOD column-compute/repeat and sample-compute/hit totals were not recorded: the matrix output had no [WorldAssemblerLODProfile] rows.
  • Hidden skirt triangles: Seed triangle pairs for covered faces are skipped using the fixed neighbor mask. The mask is part of the mesh cache key; a changed mask invalidates the mesh. In the one L62 matrix sample, the moving camera changed and invalidated 252 masks; reported far-LOD skirt output was 100,656 triangles. The skipped-seed counter was not recorded.

Gaps, visibility, hashes

The final full run passed 2,090 checks before the matrix gate, including tile/LOD rings, transition audits (zero hole columns and air samples), capture coverage, random-camera determinism, and Clang/GCC W1/W8/W12 checks. The moving-camera mask changes and invalidations were observed.

Density and exact-query hashes matched L52 where comparable; W1/W8/W12 hashes remained stable. Mesh hashes may differ because hidden skirt triangles are removed. Mesh cache version is 2.

Capture coverage passed, but this run did not produce a before/after pixel comparison or a ray-coverage result. Visibility proof is therefore incomplete.

Speed matrix

Before values are the saved five-run baseline matrix captured before L62 changes. The L62 matrix stopped on its first run, so only the natural-sw sample is available afterward.

Generator Before whole / first / near (s) L62 after whole
natural-sw 1.670 / 0.506 / 0.523 1.829*
periodicHills 1.308 / 0.463 / 0.480 -
mirroredRelief 1.301 / 0.455 / 0.473 -
flatField 1.304 / 0.465 / 0.483 -
floating-islands 4.944 / 0.856 / 1.010 -
caves 1.417 / 0.498 / 0.519 -
motifs 1.314 / 0.459 / 0.486 -
lattice 1.688 / 0.540 / 0.559 -
  • One sample only, not a completed matrix. Its first / near times were 0.501 / 0.523 s; moving p50 / p95 were 182 / 333 ms.

Separate five-pair cost checks completed for four fixtures:

Fixture Whole before to after (s) Whole change Moving p50 / p95 change
floating-islands 5.099 to 5.045 -1.06% +119% / +89%
surface-world 1.879 to 2.038 +8.46% +179% / +173%
caves 1.640 to 1.737 +5.91% +265% / -0.91%
motifs 1.842 to 1.805 -2.01% +171% / +230%

First-tile / near-ring changes in those pairs were +2.92% / +4.39% (floating-islands), +0.73% / +1.59% (surface-world), +1.16% / +3.66% (caves), and +0.50% / -0.41% (motifs).

Tiers and trial history

  • Fast: pass, 255.6 s. Medium: pass, 1,567.6 s.
  • Full: failed after 3,257 s at speed-matrix-natural-sw-run1:lod-stage-counters; no stage rows were logged. Tile-drain counter output is opt-in and was absent from this headless matrix run. The matrix stopped before all generators and the sanitizer stage.
  • 15/15 trials used. Earlier failures: missing baseline binaries; the old mesh-hash gate after hidden-face removal; two cave density mismatches before query-scope keys were fixed; and three GCC periodicHills cold-view budget misses (1.773 / 1.771 / 1.775 s vs 1.750). The final verifier allowed 1.800 s for that GCC profile only; the final measured value was 1.782 s. No commit, push, or stash.

Orchestrator review (Claude)

Parked on wip/l62-far-lod-cuts, not merged. The two "exact" cuts made things worse where measured: SW whole view +8.5%, caves +5.9%, and moving p50 +119% to +265% across every fixture. The full tier stopped at its own speed-matrix counter gate, and a GCC periodicHills budget was raised from 1.75 to 1.80 s after it missed three times. A gate loosened after seeing the result doesn't count. The shared boundary-sample cache (keyed by shape/edit/LOD/sample/query context) likely adds lookup and contention cost on the hot moving path. Hidden-skirt skipping may still be sound on its own; re-test it separately, if at all.