Files
VoxelForge/Standalone/Research/WorldAssemblerM3/Linux165/REPORT.md
T
Fr0zkaandClaude Opus 5.5 9c70053543 streaming: incremental clipmap desired-set delta for adjacent crossings (L165)
BuildDelta emits entering/leaving slabs per LOD (incl. coarser-ring coverage changes); cached Core key set updated
from the delta at one-tile crossings, full rebuild for larger jumps or LOD>=4 changes. Equality audit vs full rebuild
(45/45 crossings, 20/20 sampled; injected mismatch asserts) + 630 automation cases. 30 m/s UE, 5 pairs:
BuildDesiredTiles p95 7.80 -> 4.08 ms, p99 11.46 -> 7.97 ms, worst tick 13.73 -> 12.11 ms (all pairs), near and
forward readiness and arrival better in all pairs; far holes better in 4/5 (pair 5 +0.29 pp). Geometry unchanged.
Source/: VoxelClipmapDesiredTiles.h, VoxelWorld.cpp, VoxelWorld.h, Tests/VoxelForgeClipmapNoOverlapTest.cpp.

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

4.6 KiB
Raw Blame History

L165 — incremental desired-set rebuild

Result: The Core clipmap key update is incremental for ordinary adjacent crossings and cuts median nonzero BuildDesiredTiles p95 by 47.7% (7.80 to 4.08 ms). Equality checks pass. Worst tick, p99, near readiness, arrival, and five-pair median far-hole coverage all improved. Far holes regressed by 0.291 percentage points in pair 5, so the strict paired no-regression gate is not clean across all five pairs.

Count first

A count-only trace of the baseline run covered movement from 6.174 to 17.981 s: 316 desired-set updates, including 44 center crossings. At a crossing, 93.813% of prior desired keys were unchanged in aggregate (median crossing 93.405%; range 93.384–97.318%). Same-center updates had 99.955% median overlap.

LOD Prior keys unchanged at crossings
0 86.929%
1 91.071%
2 94.981%
3 97.017%
4 98.674%
5 99.053%
6 99.811%
7 100.000%
8 100.000%

This trace was used only for key counts. Its commandlet ended before its separate readiness check, so its timings are excluded.

Change and movement results

BuildDelta computes entering and leaving box slabs per LOD, including coarser-ring coverage changes. The runtime caches the Core key array and set, applies the delta at one-tile crossings, and updates the transition-descendant index from entering/leaving keys. It falls back to World::desiredTiles for larger jumps or when a changed key touches LOD4 or coarser. The UE overlay sets and priority/admission order are still rebuilt on each trigger; this round does not make those materialization steps incremental.

Five interleaved W8 UE pairs ran at 30 m/s, 45 crossings each, with the L160 assembler/world baseline settings and forward-first disabled. The machine was quiet before timing (load averages 0.35 / 1.46 / 1.25). Metrics below are medians of the five runs; rebuild p50/p95 are over nonzero BuildDesiredTiles samples in the 12 s movement window.

Metric assembler/world Incremental Paired result
BuildDesiredTiles p50 3.96 ms 1.28 ms lower in all five pairs
BuildDesiredTiles p95 7.80 ms 4.08 ms −3.72 ms median; lower in all five pairs
Game-thread p99 11.46 ms 7.97 ms every candidate run was 7.90–8.26 ms
Worst tick 13.73 ms 12.11 ms lower in all five pairs by 0.86–3.94 ms
Near LOD0–2 readiness 41.41% 42.90% better in all five pairs
55° forward-cone readiness 14.69% 15.37% better in all five pairs
Far holes while moving 3.09% 2.61% better in four pairs; pair 5 was +0.291 pp
First settled LOD0–2 arrival 2.453 s 2.437 s earlier in all five pairs

The cone uses the travel-direction fallback because null-RHI produced no camera-forward samples. Far-hole coverage measures loaded desired coverage; the desired key set itself matched in every-crossing control checks.

Checks and limits

  • Built VFHostEditor from this worktree with taskset -c 0-11, -NoUBA, and -MaxParallelActions=4; final build succeeded. Restored VFHost/PluginDeps/VoxelForge/Source to /home/jahni/VoxelM/Plugins/VoxelForge/Source.
  • Fast tier passed: 268 PASS, 0 FAIL, 5 diagnostics. Both canonical owner hash sets match the L130 baseline exactly (12/12 rows each); W1/W8/W12 determinism checks passed.
  • Clipmap automation passed 630 delta cases across six unit steps and three vertical-clamp settings. Its log reports Result=Success, failures=0; UE returned exit status 1 when TestExit=Automation Test Queue Empty fired.
  • The runtime equality audit passed all 45 crossings with interval 1, and all 20 sampled audits across the five measured candidate runs (four per run). Injecting an impossible reference key failed at crossing 1 with missing=1 and triggered the assertion/nonzero UE exit.
  • git diff --check and runner py_compile passed. The movement summarizer reports the strict pairwise far-hole gate as failed in pair 5; the five-pair median still improved. The other movement gates passed. HMD/camera-forward readiness and W12 movement were not measured.
  • The final transition-index range correction only changes configurations whose desired max LOD is below 8; this W8 scene includes LOD8, so the measured code path is unchanged. The forward-first default remains off.

Changed Unreal Source/ files:

  • Source/VoxelForge/Private/VoxelClipmapDesiredTiles.h
  • Source/VoxelForge/Private/VoxelWorld.cpp
  • Source/VoxelForge/Private/Tests/VoxelForgeClipmapNoOverlapTest.cpp
  • Source/VoxelForge/Public/VoxelWorld.h

Logs and summaries are in Saved/Linux/l165/.