measure(step2b): per-brick setup rebuilds the chunk caches -- 10x slower; live cost attributed

Editor-only brick API (<= 8^3 points per call, TunnelNetwork/Underwater op-stack routes, 1.16%
scalar fallback). Exact: 0 Q16/sign disagreements on the full 259^3 ring and the five-seed probe
set, same hash on 1 and 6 workers, reach shrink still caught (18,107 Q16 / 735 sign).
Speed: 69.19 s wall, 17.6 us/sample vs live 7.04 s, 1.65 us/sample. Stack sampler (inclusive):
BuildChunkCache 93.5%, PropagateSdfOverBox 92.5%, BuildActiveOpList 92.6% -- each brick rebuilds
the cache windows and active-op lists; EvalBlock itself is 3.6%.
Live path attribution (inclusive, 68,934 stacks): op-stack RoomGraph EvalBlock 54.4%, SDF and
spatial candidate scans ~28%, tunnel core 18.4%, passage floor segment 15.0%, structural posts
14.6%, noise octaves 2.6%, disturbances 0.6%, diff layer 0.3%.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-09-30 03:10:22 +02:00
1 parent 41a9265ebd
commit fd9f809c1c
7 files changed
+749 -97

No files matched your search

@@ -17,10 +17,15 @@ namespace VoxelForgeRegionEval
int32 Workers = WorkerCount;
int32 ObservedWorkerThreads = 0;
int64 SampleCount = 0;
int64 EvaluatedSamples = 0;
int64 BrickCount = 0;
int64 FallbackSamples = 0;
double FallbackShare = 0.0;
double WallSeconds = 0.0;
double WorkerCpuSeconds = 0.0;
double NanosecondsPerSample = 0.0;
bool bWorkerCpuFromOsThreadTimes = false;
bool bBrickProgram = false;
uint64 QuantizedHash = 0;
uint64 RawFloatHash = 0;
uint64 SaturatedSamples = 0;
@@ -67,7 +72,9 @@ namespace VoxelForgeRegionEval
bool bPrepared,
float ReachScale,
TArray<float>* OutDensities,
FTiming& OutTiming);
FTiming& OutTiming,
bool bBrickProgram = false,
int32 RequestedWorkerCount = WorkerCount);
/** Count exact room/tunnel/core/passage candidate visits with instrumentation enabled. */
FCandidateVisits CountCandidates(