Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux78/REPORT.md
T
Fr0zkaandClaude Opus 5.5 ec20994a8e streaming: near LODs first (walkable ring, LOD0, LOD1, LOD2, then far); exact passage trims (L78)
- Headless and Unreal schedulers drain the collision-critical ring, then LOD0-2, then far LODs
  at low priority. LOD0-2 ready (W8 medians): SW 4.36->1.76, FI 6.89->5.26, TN 4.88->3.22,
  VS 2.71->1.56 s. Whole view roughly unchanged (FI/VS slightly later).
  KNOWN RISK: far tiles wait until every near tile is ready, so far LODs may starve while
  moving fast (to address next).
- Exact composer trims: tile-level upper-mouth candidate list, segment-index min/max rejection
  before lower_bound, 64-entry thread-local value-noise corner cache. Passage share 65 -> 63%.
- World exact: 24/24 hash matrix + pinned L75 owner hash. Fast tier PASS. Linux UE host builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-10-27 19:13:45 +01:00

3.7 KiB
Raw Blame History

Linux78 report

Passage cost and world identity

The expensive path is ApplyResolvedStratePassageCarves: negative density samples enter the passage loop and query the segment index even when their tile has little passage overlap. The route relief calls VF_FieldPassageWallRelief, three 3D value-noise octaves at 43/29/19 voxel wavelengths; mouth relief uses the three-octave surface relief. A representative W8 tunnel LOD0 composer census recorded 6.0M composer queries, 18.1M passage iterations, 45.1M segment visits, and 40.8M relief calls.

The retained exact changes are a conservative tile-level upper-mouth candidate list and early return, segment-index min/max rejection before lower_bound, and a 64-entry thread-local cache of value-noise lattice corners. The cache preserves the existing interpolation operations and values. The passage share remains high: FI/TN near-LOD passage phase averages 63.0%/63.7% after the change, versus 64.6%/65.9% before; support is 13.8%/13.5% versus 14.1%/13.2%.

The world is exact. The L75 full-grid owner hash and all 24 Clang/GCC × W1/W8/W12 × four-strate density, mesh, payload, and topology comparisons match. No version bump or new captures were needed. Fast-tier passage audits passed.

Readiness, W8, three interleaved pairs, median seconds

Strate LOD0–2 before LOD0–2 after Whole view before Whole view after
SurfaceWorld 4.36 1.76 4.36 3.43
FloatingIslands 6.89 5.26 6.89 6.93
TunnelNetwork 4.88 3.22 4.88 4.55
VerticalShafts 2.71 1.56 2.71 2.84

The headless and Unreal schedulers now submit the collision-critical walkable ring first, then LOD0, LOD1, and LOD2. Far LOD work waits until the requested near LODs are ready and runs at lower priority. The ~1 s near-LOD target is not met for FI/TN; their medians are 5.26 s and 3.22 s. Whole-view times are reported separately above.

L77 sampler closure and phase census

Values are mean sampled grid-fill/direct grid-fill closure; passage and support are their sampled CPU shares. Near is LOD0–2.

Strate Near closure B/A Whole closure B/A Passage share near B/A Support share near B/A
SurfaceWorld 99.1% / 99.9% 100.1% / 99.6% 45.1% / 47.6% 15.0% / 12.8%
FloatingIslands 99.9% / 99.5% 99.8% / 99.8% 64.6% / 63.0% 14.1% / 13.8%
TunnelNetwork 99.9% / 100.1% 99.8% / 100.2% 65.9% / 63.7% 13.2% / 13.5%
VerticalShafts 100.0% / 100.2% 99.9% / 100.9% 45.9% / 42.9% 5.9% / 6.6%

Sampler handler cost stayed below 0.05% of profiled thread CPU. Detailed samples and route counts are in Saved/Linux/l78/sampler-census.csv, closure-census.csv, and route-census.csv.

Builds and checks

  • Fast tier: PASS, 366.8 s.
  • Hash matrix: PASS, 24/24; the pinned L75 full-grid owner hash also matches.
  • Linux VFHostEditor: PASS after timing, -MaxParallelActions=4, no address-space limit; UBT reported 70.35 s in its parallel executor.
  • No installs, commit, push, or stash.

Failed runs and rejected experiment

  • The first fast-tier launch pointed at an output directory without its expected verifier binaries; corrected, then the final fast tier passed.
  • L76's broad per-tile passage-loop experiment caused 612 density mismatches and changed mesh, payload, and topology hashes on 24 tiles; L76 rejected it. It is not part of the accepted L76 reference. In L78, per-brick and direct per-sample feature-bound filters also failed the pinned L75 owner hash, so both were removed. The retained path matches the accepted L76 matrix and pinned L75 owner hash.
  • The first direct UBT call could not find dotnet in PATH; rerunning through the engine Build.sh wrapper succeeded.