Files
VoxelForge/Docs/archive/PERF-SAMPLED.md
Claude 1de44af7cc chore(repo): archive historical docs under Docs/archive, drop tracked pycache
Move closed audits, task briefs, design rounds, perf reports, the OPSTACK
plan/progress logs and WORK-NEXT.md into Docs/archive/ (git mv, history kept).
Whitelist Docs/ in the strict .gitignore, ignore Tools/**/__pycache__/, and
remove the tracked .pyc. Repoint references in the kept docs and in non-test
source comments to the new paths.
2026-09-28 13:46:17 +00:00

173 KiB
Raw Permalink Blame History

PERF-SAMPLED

Measurement-only report for the in-process stack sampler, 2026-09-13. No generation, classifier, or field logic was optimized in this round.

Bottom line

The sampler is useful: it samples registered generation workers without adding scopes to the density hot path, tags every capture with LOD, finds the planted cost, and exposes the game path's dominant work. It is not yet an acceptance-clean low-overhead instrument at the requested default interval. Static timing and worker CPU move beyond the two-run off baseline; moving worker CPU is within noise, but moving request/generation timing is not.

Current command entry point

Use the guarded harness at E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1 for new measurements. It owns the staged host under Saved\BuildHost, serializes Unreal launches, uses an isolated -userdir, Zen/DDC directory, and log directory under the requested run directory, waits by PID, records crash/UECC-* evidence, and writes compact result.json plus a ≤40-line summary.txt; full logs remain beside them.

All paths passed to -Out must be absolute and under the plugin's Saved directory. The normal entry forms are:

pwsh -NoLogo -NoProfile -File "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1" -Scenario canonical -Build -Assets default -Label canonical
pwsh -NoLogo -NoProfile -File "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1" -Scenario owner -Assets owner -Label owner
pwsh -NoLogo -NoProfile -File "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1" -Scenario probe -Assets owner -Label probe
pwsh -NoLogo -NoProfile -File "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1" -Scenario perf -Label perf
pwsh -NoLogo -NoProfile -File "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1" -Scenario tests -Label tests
pwsh -NoLogo -NoProfile -File "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Tools\VoxelForgeTest.ps1" -Scenario parity -Build -Assets owner -Label parity

Optional controls are -Cvars @{...}, -Out "E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\TestHarness\named", and -Label name. -Assets owner stages DA_Strate3 and DA_Settings and records both SHA-256 values. parity exports 64 level-0 tiles through VoxelForgeExplore -gameconfig=1, runs the headless game's streaming path with the same owner settings, dumps per-tile hashes, and fails on the first missing or differing tile. Do not invent a direct UnrealEditor command line: the harness's launch ledger is the reproducible command record.

The headline game result is that LOD0 is not dominated by candidate AABB rejection. It is dominated by the evaluator and its downstream tunnel/floor/core and structural work. Coarse LOD1+ samples are dominated by room-cache/player-fit/room-landing work. The profile supports the suspected swept-tunnel/core duplication, but does not isolate the parameter-copy cost.

Instrument and build

  • Registration is at generation-task entry/exit in VoxelWorld.cpp, not around individual samples. Disabled registration is one relaxed atomic load of the global sampler flag. Idle workers are not registered.
  • The sampler thread calls FPlatformStackWalk::CaptureThreadStackBackTrace for each active registered worker at the configured interval (default 1000 us). Raw PCs go to preallocated bounded storage; workers share no sampling lock and do no symbolization.
  • After the run, PCs are symbolized with the platform resolver and DbgHelp inline callbacks when available. Inline frames were resolved in both game runs. The final bounded store is a 131072-sample reservoir, so the long moving run is not represented by only its first capture window.
  • LOD is written beside each raw sample and is set when the generation task registers. The game switch is -voxel.SampleStacks=intervalus; the commandlet switch is -samplestacks[=intervalus]. Both write under the plugin's Saved directory.
  • The game logs show the sampler starting and stopping from the measured staged runtime. The measured runtime DLL was E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForge.dll, SHA-256 FBC56BDD4826057A5EF6A9CB6D06694CF61C92DE077762AC05DB926779A68BA8. The staged editor DLL was E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForgeEditor.dll, SHA-256 E55930A8D8D7C2F8EF1D8FFEE0867323044D5054752DF531D3A6DBC98FB2E9B8.
  • Build command: dotnet "E:\Program Files\Epic Games\UE_5.7\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" UnrealEditor Win64 Development "-Project=E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\HostProject.uproject" -WaitMutex -FromMsBuild -architecture=x64 -NoUBA "-Log=E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_Fallback.log"

Closure

Run Capture attempts Registered-thread samples Retained stacks LOD0 LOD1+ Resolved frames Unknown frames Wait-like frames Resolved leaf
Static 193166 193165 131072 16057 115015 59.1492% 40.8508% 0.0136% 82.5142%
Moving 251129 251126 131072 41467 89605 57.5231% 42.4769% 0.0370% 83.9149%

There were zero untagged samples and zero capture failures. The sampler captured generation work rather than waits: wait-like frames were 368 static and 957 moving, or 0.2808% and 0.7301% of retained samples. Unknown frames are a real symbol-coverage limitation, not a wait problem: 40.8508% and 42.4769% of all captured frame slots were unknown, while the leaf frame still resolved for 82.5142% and 83.9149% of retained samples. Unknown is kept as an explicit top-table row.

The static run had 7380 inline symbols and the moving run had 7833. The complete raw CSV and readable summary for the headline runs are:

  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSamples_game_18392.csv
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSummary_game_18392.txt
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSamples_game_13844.csv
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSummary_game_13844.txt

Game overhead

The off runs are the noise estimate. Worker generation seconds are the sum of generation time recorded by workers, not wall-clock time.

Path Run Sampler Request p50 Request p95 Generation p50 Generation p95 Worker generation seconds Applied tiles Visible tiles Triangles Obsolete
Static GameStaticOffA_20260913 off 0.108582 0.171829 0.076228 0.122883 184.994019 841 447 669834 0
Static GameStaticOffB_20260913 off 0.110888 0.179788 0.077364 0.128214 185.959906 841 447 669834 0
Static GameStaticOnFinal2_20260913 1 ms 0.112669 0.188827 0.079557 0.130637 193.721335 841 447 669834 0
Moving GameMovingOffA_20260913 off 0.105508 0.191523 0.074358 0.126597 256.549700 2219 949 1862188 1
Moving GameMovingOffB_20260913 off 0.106318 0.194674 0.074501 0.127767 256.792375 2216 946 1860284 2
Moving GameMovingOnFinal2_20260913 1 ms 0.108368 0.201022 0.078347 0.132525 256.742287 2199 930 1853788 4

Static off-run noise was 4.64% for request p95, 1.49% for generation p50, 4.34% for generation p95, and 0.52% for worker generation seconds. Against the mean of the two off runs, sampler-on static was +2.67% request p50, +7.41% request p95, +3.60% generation p50, +4.06% generation p95, and +4.71% worker generation seconds. This fails the requested within-noise test for static.

Moving off-run noise was 1.64% for request p95, 0.19% for generation p50, 0.92% for generation p95, and 0.095% for worker generation seconds. Against the off mean, sampler-on moving was +2.32% request p50, +4.10% request p95, +5.26% generation p50, +4.20% generation p95, and +0.03% worker generation seconds. Moving worker CPU passes the noise check; request and generation timing do not. Therefore small (<5%) game-path differences should not be treated as reliable until the sampling overhead is reduced or calibrated.

Field and tile/triangle comparison

Static on/off is exact at the game output level measured here: 841 applied tiles, 447 visible tiles, and 669834 triangles in both off runs and the sampler-on run. The sampler has no field writes and classifier mode was the default 0 in every game run; no classifier was enabled.

The moving comparison is a finite 25-second streaming window, so applied work is schedule-sensitive even with the sampler off: the two off runs are already 2219/2216 applied tiles and 1/2 obsolete tile aborts. The on run is 2199 applied, 930 visible, 1853788 triangles, and 4 obsolete aborts. This is not evidence of a sampler-induced field mutation; it is evidence that the moving window did not finish the same tile frontier. The implementation remains deterministic for the same build and seed; any classifier used in a future run must remain outside sampler-controlled state and must be field-preserving.

Static game profile (GameStaticOnFinal2_20260913)

Percentages are relative to the retained non-empty-stack samples in that subgroup. Inclusive rows count a function once per sample; they are intentionally not additive.

All registered generation samples

Exclusive functions (leaf)

# Samples % Label Function Source
1 22919 17.4858 unknown unknown
2 19415 14.8125 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
3 10059 7.6744 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
4 7519 5.7365 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2392
5 6377 4.8653 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
6 4228 3.2257 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2515
7 4104 3.1311 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
8 4048 3.0884 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
9 3725 2.8419 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2086
10 3565 2.7199 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
11 3522 2.6871 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:169
12 2475 1.8883 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
13 1827 1.3939 plugin [Inline Frame] VoxelHash::Mix() Plugin/Public/VoxelCaveMorphology.h:215
14 1771 1.3512 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2216
15 1646 1.2558 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
16 1271 0.9697 plugin VoxelCaveMorphology::BuildChunkCache'::2'::<lambda_7>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5045
17 1263 0.9636 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:471
18 1220 0.9308 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1656
19 1024 0.7812 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
20 952 0.7263 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
21 897 0.6844 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:111
22 817 0.6233 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
23 758 0.5783 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5165
24 742 0.5661 plugin [Inline Frame] ?A0x7db52731::VF_GetFloorReliefBound() Plugin/Private/VoxelCaveMorphology.cpp:296
25 725 0.5531 engine [Inline Frame] UE4::SSE4::FloorToFloat() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE4.h:34
26 684 0.5219 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6298
27 640 0.4883 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968
28 633 0.4829 plugin [Inline Frame] `anonymous-namespace'::VF_FindPlayerFitPointForRoom::__l2::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:2629
29 602 0.4593 engine [Inline Frame] TArray<FBuildRoom,TSizedInlineAllocator<64,32,TSizedDefaultAllocator<32> > >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
30 589 0.4494 engine [Inline Frame] UE::Math::TVector::DistSquared() Engine/Runtime/Core/Public/Math/Vector.h:2480

Inclusive functions (once per sample)

# Samples % Label Function Source
1 131072 100.0000 engine [Inline Frame] Invoke() Engine/Runtime/Core/Public/Templates/Invoke.h:47
2 131072 100.0000 engine [Inline Frame] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()() Engine/Runtime/Core/Public/Async/Fundamental/Task.h:499
3 131072 100.0000 engine [Inline Frame] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::Call() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:162
4 131072 100.0000 engine [Inline Frame] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:180
5 131072 100.0000 engine LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::CallAndMove() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171
6 131072 100.0000 engine UE::Tasks::Private::FTaskBase::TryExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:518
7 131072 100.0000 engine UE::Tasks::Private::TExecutableTaskBase<AVoxelWorld::LoadTile'::2'::<lambda_1>,void,void>::ExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:898
8 131072 100.0000 plugin AVoxelWorld::LoadTile'::2'::<lambda_1>::operator()() Plugin/Private/VoxelWorld.cpp:3766
9 131072 100.0000 plugin AVoxelWorld::GenerateTileResult() Plugin/Private/VoxelWorld.cpp:4078
10 131029 99.9672 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:64
11 130502 99.5651 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1587
12 118433 90.3572 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2800
13 104250 79.5364 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5276
14 96145 73.3528 plugin [Inline Frame] VoxelCaveMorphology::BuildChunkCache::__l2::<lambda_9>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5153
15 96139 73.3482 plugin `anonymous namespace'::VF_FindPlayerFitPointForRoom() Plugin/Private/VoxelCaveMorphology.cpp:2687
16 95273 72.6875 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2217
17 68853 52.5307 engine [Inline Frame] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,float __cdecl(float,float,float)>::operator()() Engine/Runtime/Core/Public/Templates/Function.h:414
18 68717 52.4269 engine UE::Core::Private::Function::TFunctionRefCaller<``anonymous namespace'::VF_FindPlayerFitPointForRoom'::`2'::<lambda_1> const ,float,float,float,float>::Call() Engine/Runtime/Core/Public/Templates/Function.h:298
19 67989 51.8715 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2512
20 50851 38.7962 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2387
21 41573 31.7177 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:115
22 20551 15.6792 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2039
23 19415 14.8125 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
24 11934 9.1049 engine UE::Core::Private::ReallocGrow1_DoAlloc_Tiny<3,TSizedHeapAllocator<32,FMemory>::ForAnyElementType>() Engine/Runtime/Core/Public/Containers/Array.h:463
25 10059 7.6744 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
26 6377 4.8653 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
27 4104 3.1311 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
28 4048 3.0884 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
29 3753 2.8633 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:169
30 3710 2.8305 plugin UVoxelStrateManager::ApplyPassageStructuralPostsMC() Plugin/Private/VoxelStrateManager.cpp:2585

Exclusive source lines (leaf source)

# Samples % Label Function Source
1 22950 17.5095 unknown FSurfaceColumn::FSurfaceColumn() unknown
2 6377 4.8653 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
3 4398 3.3554 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
4 4248 3.2410 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:83
5 3973 3.0312 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
6 3597 2.7443 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:82
7 3464 2.6428 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
8 3314 2.5284 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:80
9 3092 2.3590 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
10 2643 2.0164 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2382
11 2594 1.9791 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:58
12 2474 1.8875 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:68
13 2344 1.7883 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:79
14 2300 1.7548 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:54
15 2036 1.5533 engine [Inline Frame] TArray<float,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
16 1852 1.4130 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2377
17 1753 1.3374 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2392
18 1702 1.2985 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
19 1701 1.2978 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:57
20 1536 1.1719 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
21 1489 1.1360 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
22 1486 1.1337 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
23 1485 1.1330 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:84
24 1087 0.8293 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2509
25 1024 0.7812 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
26 982 0.7492 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1995
27 952 0.7263 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
28 817 0.6233 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
29 725 0.5531 engine [Inline Frame] UE4::SSE4::FloorToFloat() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE4.h:34
30 706 0.5386 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2644

LOD0 (floor)

Exclusive functions (leaf)

# Samples % Label Function Source
1 2079 12.9476 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
2 1870 11.6460 unknown unknown
3 791 4.9262 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:471
4 705 4.3906 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:552
5 696 4.3346 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1656
6 561 3.4938 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:169
7 547 3.4066 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
8 417 2.5970 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6298
9 406 2.5285 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
10 291 1.8123 engine [Inline Frame] TArray<float,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
11 246 1.5320 plugin [Inline Frame] ?A0x7db52731::VF_DistanceSquaredToAabb() Plugin/Private/VoxelCaveMorphology.cpp:68
12 244 1.5196 plugin VF_EvaluatePassageLandingSDF() Plugin/Private/VoxelCaveMorphology.cpp:4394
13 239 1.4884 engine [Inline Frame] UE::Math::TVector2::SizeSquared() Engine/Runtime/Core/Public/Math/Vector2D.h:1119
14 236 1.4698 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6192
15 229 1.4262 plugin [Inline Frame] ?A0x7db52731::VF_ProjectTunnelSegmentXY() Plugin/Private/VoxelCaveMorphology.cpp:950
16 209 1.3016 plugin `anonymous namespace'::VF_EvaluateSweptTunnelChain() Plugin/Private/VoxelCaveMorphology.cpp:982
17 205 1.2767 engine [Inline Frame] TArray<UE::Math::TVector,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
18 194 1.2082 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::{ctor}() Plugin/Public/VoxelDensityProfile.h:393
19 188 1.1708 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1058
20 181 1.1272 plugin UVoxelStrateManager::EvaluateModifierSDF() Plugin/Private/VoxelStrateManager.cpp:2277
21 159 0.9902 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:574
22 154 0.9591 plugin UVoxelStrateManager::ApplyPassageStructuralPostsMC() Plugin/Private/VoxelStrateManager.cpp:2574
23 151 0.9404 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::End() Plugin/Private/VoxelDensityProfile.cpp:975
24 142 0.8843 plugin [Inline Frame] VoxelPassageGeometry::ProjectWalkableTunnelFloor() Plugin/Public/VoxelPassageGeometry.h:327
25 138 0.8594 plugin VoxelDensityProfile::FScopedTimer::~FScopedTimer() Plugin/Private/VoxelDensityProfile.cpp:969
26 135 0.8408 engine [Inline Frame] UE4::SSE::FloorToInt32() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE.h:90
27 132 0.8221 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968
28 126 0.7847 plugin UVoxelStrateManager::UsesOperatorStackForChunk() Plugin/Private/VoxelStrateManager.cpp:4932
29 123 0.7660 plugin UVoxelStrateManager::ApplyPassageLandingFloorMC() Plugin/Private/VoxelStrateManager.cpp:2472
30 122 0.7598 plugin ApplyDisturbances() Plugin/Private/VoxelGenerator.cpp:533

Inclusive functions (once per sample)

# Samples % Label Function Source
1 16057 100.0000 engine [Inline Frame] Invoke() Engine/Runtime/Core/Public/Templates/Invoke.h:47
2 16057 100.0000 engine [Inline Frame] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()() Engine/Runtime/Core/Public/Async/Fundamental/Task.h:499
3 16057 100.0000 engine [Inline Frame] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::Call() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:162
4 16057 100.0000 engine [Inline Frame] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:180
5 16057 100.0000 engine LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::CallAndMove() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171
6 16057 100.0000 engine UE::Tasks::Private::FTaskBase::TryExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:518
7 16057 100.0000 engine UE::Tasks::Private::TExecutableTaskBase<AVoxelWorld::LoadTile'::2'::<lambda_1>,void,void>::ExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:898
8 16057 100.0000 plugin AVoxelWorld::LoadTile'::2'::<lambda_1>::operator()() Plugin/Private/VoxelWorld.cpp:3766
9 16057 100.0000 plugin AVoxelWorld::GenerateTileResult() Plugin/Private/VoxelWorld.cpp:4078
10 16036 99.8692 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:64
11 15732 97.9760 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1587
12 8893 55.3839 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
13 2323 14.4672 plugin UVoxelStrateManager::ApplyPassageStructuralPostsMC() Plugin/Private/VoxelStrateManager.cpp:2585
14 2259 14.0686 plugin UVoxelStrateManager::ApplyPassageCarvingOnly() Plugin/Private/VoxelStrateManager.cpp:2373
15 2226 13.8631 plugin [Inline Frame] VF_ApplyPassageCarving() Plugin/Public/VoxelDensityPrimitives.h:75
16 2225 13.8569 plugin UVoxelStrateManager::EvaluateModifierSDF() Plugin/Private/VoxelStrateManager.cpp:2259
17 1990 12.3933 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld() Plugin/Private/VoxelCaveMorphology.cpp:6397
18 1983 12.3498 plugin VoxelCaveMorphology::EvaluateSDFCached() Plugin/Private/VoxelCaveMorphology.cpp:6222
19 1899 11.8266 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6345
20 1856 11.5588 plugin `anonymous namespace'::VF_EvaluateSweptTunnel() Plugin/Private/VoxelCaveMorphology.cpp:1149
21 1832 11.4094 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:470
22 1765 10.9921 plugin `anonymous namespace'::VF_EvaluateSweptTunnelChain() Plugin/Private/VoxelCaveMorphology.cpp:1067
23 1594 9.9271 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6214
24 1210 7.5357 plugin [Inline Frame] VF_IsWalkableTunnelAir() Plugin/Private/VoxelStrateManager.cpp:714
25 1197 7.4547 plugin `anonymous namespace'::VF_ProjectPassageFloor() Plugin/Private/VoxelStrateManager.cpp:550
26 886 5.5178 plugin [Inline Frame] VoxelSDF::TaperedCapsule() Plugin/Public/VoxelCaveMorphology.h:149
27 770 4.7954 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
28 757 4.7145 plugin UVoxelStrateManager::ApplyPassageNativeFloorMC() Plugin/Private/VoxelStrateManager.cpp:2658
29 732 4.5588 plugin VF_EvaluatePassageLandingSDF() Plugin/Private/VoxelCaveMorphology.cpp:4394
30 705 4.3906 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:552

Exclusive source lines (leaf source)

# Samples % Label Function Source
1 1871 11.6522 unknown FSurfaceColumn::FSurfaceColumn() unknown
2 727 4.5276 engine [Inline Frame] TArray<float,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
3 666 4.1477 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
4 547 3.4066 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
5 482 3.0018 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
6 417 2.5970 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
7 406 2.5285 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
8 399 2.4849 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2644
9 354 2.2046 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2652
10 239 1.4884 engine [Inline Frame] UE::Math::TVector2::SizeSquared() Engine/Runtime/Core/Public/Math/Vector2D.h:1119
11 215 1.3390 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:3652
12 186 1.1584 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6313
13 177 1.1023 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::{ctor}() Plugin/Public/VoxelDensityProfile.h:393
14 173 1.0774 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::End() Plugin/Private/VoxelDensityProfile.cpp:975
15 163 1.0151 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6192
16 158 0.9840 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:3615
17 157 0.9778 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:471
18 135 0.8408 engine [Inline Frame] UE4::SSE::FloorToInt32() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE.h:90
19 119 0.7411 engine [Inline Frame] UE::Math::TVector::operator*() Engine/Runtime/Core/Public/Math/Vector.h:316
20 109 0.6788 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968
21 104 0.6477 plugin VF_EvaluatePassageLandingSDF() Plugin/Private/VoxelCaveMorphology.cpp:4394
22 104 0.6477 plugin [Inline Frame] ?A0x7db52731::VF_DistanceSquaredToAabb() Plugin/Private/VoxelCaveMorphology.cpp:62
23 98 0.6103 engine [Inline Frame] UE::Math::TVector::DistSquared() Engine/Runtime/Core/Public/Math/Vector.h:2480
24 90 0.5605 engine [Inline Frame] UE::Math::TVector::operator-() Engine/Runtime/Core/Public/Math/Vector.h:1573
25 90 0.5605 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1058
26 89 0.5543 engine [Inline Frame] FMath::Square() Engine/Runtime/Core/Public/Math/UnrealMathUtility.h:580
27 87 0.5418 plugin VoxelDensityProfile::FScopedTimer::~FScopedTimer() Plugin/Private/VoxelDensityProfile.cpp:969
28 87 0.5418 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:452
29 86 0.5356 plugin [Inline Frame] ?A0x7db52731::VF_ProjectTunnelSegmentXY() Plugin/Private/VoxelCaveMorphology.cpp:955
30 81 0.5045 plugin VF_EvaluatePassageLandingSDF() Plugin/Private/VoxelCaveMorphology.cpp:4411

LOD1+ (coarse/background)

Exclusive functions (leaf)

# Samples % Label Function Source
1 21049 18.3011 unknown unknown
2 19342 16.8169 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
3 10021 8.7128 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
4 7486 6.5087 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2392
5 6355 5.5254 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
6 4217 3.6665 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2587
7 4090 3.5561 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
8 3704 3.2204 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2086
9 3343 2.9066 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
10 2961 2.5744 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
11 2469 2.1467 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
12 1802 1.5668 plugin [Inline Frame] VoxelHash::Mix() Plugin/Public/VoxelCaveMorphology.h:217
13 1755 1.5259 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2221
14 1639 1.4250 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
15 1486 1.2920 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2652
16 1263 1.0981 plugin VoxelCaveMorphology::BuildChunkCache'::2'::<lambda_7>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5045
17 948 0.8242 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
18 893 0.7764 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:111
19 757 0.6582 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5165
20 716 0.6225 engine [Inline Frame] UE4::SSE4::FloorToFloat() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE4.h:34
21 678 0.5895 plugin [Inline Frame] ?A0x7db52731::VF_GetFloorReliefBound() Plugin/Private/VoxelCaveMorphology.cpp:296
22 631 0.5486 plugin [Inline Frame] `anonymous-namespace'::VF_FindPlayerFitPointForRoom::__l2::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:2629
23 599 0.5208 engine [Inline Frame] TArray<FBuildRoom,TSizedInlineAllocator<64,32,TSizedDefaultAllocator<32> > >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
24 524 0.4556 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:2078
25 508 0.4417 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968
26 499 0.4339 plugin [Inline Frame] VoxelHash::SeedOffset() Plugin/Public/VoxelCaveMorphology.h:257
27 491 0.4269 engine [Inline Frame] UE::Math::TVector::DistSquared() Engine/Runtime/Core/Public/Math/Vector.h:2480
28 477 0.4147 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
29 472 0.4104 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:461
30 463 0.4026 engine [Inline Frame] FMicrosoftPlatformMathBase::IsFinite() Engine/Runtime/Core/Public/Microsoft/MicrosoftPlatformMath.h:17

Inclusive functions (once per sample)

# Samples % Label Function Source
1 115015 100.0000 engine [Inline Frame] Invoke() Engine/Runtime/Core/Public/Templates/Invoke.h:47
2 115015 100.0000 engine [Inline Frame] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()() Engine/Runtime/Core/Public/Async/Fundamental/Task.h:499
3 115015 100.0000 engine [Inline Frame] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::Call() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:162
4 115015 100.0000 engine [Inline Frame] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:180
5 115015 100.0000 engine LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::CallAndMove() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171
6 115015 100.0000 engine UE::Tasks::Private::FTaskBase::TryExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:518
7 115015 100.0000 engine UE::Tasks::Private::TExecutableTaskBase<AVoxelWorld::LoadTile'::2'::<lambda_1>,void,void>::ExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:898
8 115015 100.0000 plugin AVoxelWorld::LoadTile'::2'::<lambda_1>::operator()() Plugin/Private/VoxelWorld.cpp:3766
9 115015 100.0000 plugin AVoxelWorld::GenerateTileResult() Plugin/Private/VoxelWorld.cpp:4078
10 114993 99.9809 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:574
11 114770 99.7870 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:2073
12 109540 95.2398 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2800
13 103850 90.2926 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5276
14 95772 83.2691 plugin [Inline Frame] VoxelCaveMorphology::BuildChunkCache::__l2::<lambda_9>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5153
15 95766 83.2639 plugin `anonymous namespace'::VF_FindPlayerFitPointForRoom() Plugin/Private/VoxelCaveMorphology.cpp:2687
16 94908 82.5179 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2217
17 68607 59.6505 engine [Inline Frame] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,float __cdecl(float,float,float)>::operator()() Engine/Runtime/Core/Public/Templates/Function.h:414
18 68472 59.5331 engine UE::Core::Private::Function::TFunctionRefCaller<``anonymous namespace'::VF_FindPlayerFitPointForRoom'::`2'::<lambda_1> const ,float,float,float,float>::Call() Engine/Runtime/Core/Public/Templates/Function.h:298
19 67746 58.9019 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2512
20 50654 44.0412 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2387
21 41417 36.0101 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:115
22 20462 17.7907 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2039
23 19342 16.8169 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
24 11885 10.3334 engine UE::Core::Private::ReallocGrow1_DoAlloc_Tiny<3,TSizedHeapAllocator<32,FMemory>::ForAnyElementType>() Engine/Runtime/Core/Public/Containers/Array.h:463
25 10021 8.7128 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
26 6355 5.5254 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
27 4090 3.5561 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
28 3343 2.9066 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
29 3207 2.7883 plugin [Inline Frame] VoxelSDF::SmoothMax() Plugin/Public/VoxelCaveMorphology.h:179
30 3178 2.7631 plugin [Inline Frame] VoxelSDF::Ellipsoid() Plugin/Public/VoxelCaveMorphology.h:96

Exclusive source lines (leaf source)

# Samples % Label Function Source
1 21079 18.3272 unknown unknown
2 6355 5.5254 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
3 4381 3.8091 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
4 4230 3.6778 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:83
5 3584 3.1161 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:82
6 3448 2.9979 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
7 3307 2.8753 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
8 3305 2.8735 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:80
9 2629 2.2858 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2382
10 2610 2.2693 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
11 2588 2.2501 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:58
12 2465 2.1432 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:68
13 2336 2.0310 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:79
14 2296 1.9963 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:54
15 1846 1.6050 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2377
16 1747 1.5189 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2392
17 1696 1.4746 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
18 1689 1.4685 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:57
19 1528 1.3285 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
20 1486 1.2920 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
21 1481 1.2877 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
22 1477 1.2842 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:84
23 1309 1.1381 engine [Inline Frame] TArray<float,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
24 1084 0.9425 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2509
25 979 0.8512 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1995
26 948 0.8242 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
27 716 0.6225 engine [Inline Frame] UE4::SSE4::FloorToFloat() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE4.h:34
28 631 0.5486 plugin [Inline Frame] `anonymous-namespace'::VF_FindPlayerFitPointForRoom::__l2::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:2629
29 617 0.5365 plugin [Inline Frame] VoxelHash::Mix() Plugin/Public/VoxelCaveMorphology.h:215
30 610 0.5304 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2051

Moving game profile (GameMovingOnFinal2_20260913)

Percentages are relative to the retained non-empty-stack samples in that subgroup. Inclusive rows count a function once per sample; they are intentionally not additive.

All registered generation samples

Exclusive functions (leaf)

# Samples % Label Function Source
1 21083 16.0851 unknown unknown
2 13476 10.2814 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
3 8432 6.4331 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
4 7150 5.4550 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
5 5327 4.0642 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2382
6 4500 3.4332 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
7 4246 3.2394 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
8 3562 2.7176 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
9 2987 2.2789 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
10 2944 2.2461 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2509
11 2684 2.0477 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1673
12 2644 2.0172 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
13 2211 1.6869 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:452
14 1964 1.4984 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
15 1845 1.4076 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6313
16 1668 1.2726 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
17 1373 1.0475 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
18 1360 1.0376 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6214
19 1271 0.9697 plugin [Inline Frame] ?A0x7db52731::VF_DistanceSquaredToAabb() Plugin/Private/VoxelCaveMorphology.cpp:68
20 1251 0.9544 plugin [Inline Frame] VoxelHash::Mix() Plugin/Public/VoxelCaveMorphology.h:215
21 1241 0.9468 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2207
22 1150 0.8774 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
23 994 0.7584 plugin VoxelCaveMorphology::BuildChunkCache'::2'::<lambda_7>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5047
24 921 0.7027 engine [Inline Frame] TArray<float,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
25 883 0.6737 plugin `anonymous namespace'::VF_EvaluateSweptTunnelChain() Plugin/Private/VoxelCaveMorphology.cpp:971
26 813 0.6203 plugin [Inline Frame] ?A0x7db52731::VF_ProjectTunnelSegmentXY() Plugin/Private/VoxelCaveMorphology.cpp:950
27 757 0.5775 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1058
28 745 0.5684 plugin VoxelDensityProfile::FScopedTimer::~FScopedTimer() Plugin/Private/VoxelDensityProfile.cpp:969
29 731 0.5577 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
30 703 0.5363 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968

Inclusive functions (once per sample)

# Samples % Label Function Source
1 131072 100.0000 engine [Inline Frame] Invoke() Engine/Runtime/Core/Public/Templates/Invoke.h:47
2 131072 100.0000 engine [Inline Frame] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()() Engine/Runtime/Core/Public/Async/Fundamental/Task.h:499
3 131072 100.0000 engine [Inline Frame] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::Call() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:162
4 131072 100.0000 engine [Inline Frame] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:180
5 131072 100.0000 engine LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::CallAndMove() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171
6 131072 100.0000 engine UE::Tasks::Private::FTaskBase::TryExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:518
7 131072 100.0000 engine UE::Tasks::Private::TExecutableTaskBase<AVoxelWorld::LoadTile'::2'::<lambda_1>,void,void>::ExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:898
8 131072 100.0000 plugin AVoxelWorld::LoadTile'::2'::<lambda_1>::operator()() Plugin/Private/VoxelWorld.cpp:3766
9 131071 99.9992 plugin AVoxelWorld::GenerateTileResult() Plugin/Private/VoxelWorld.cpp:4078
10 130985 99.9336 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:574
11 129786 99.0189 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:2449
12 105813 80.7289 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2800
13 73739 56.2584 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5276
14 67864 51.7761 plugin [Inline Frame] VoxelCaveMorphology::BuildChunkCache::__l2::<lambda_9>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5153
15 67861 51.7738 plugin `anonymous namespace'::VF_FindPlayerFitPointForRoom() Plugin/Private/VoxelCaveMorphology.cpp:2687
16 67251 51.3084 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2217
17 48451 36.9652 engine [Inline Frame] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,float __cdecl(float,float,float)>::operator()() Engine/Runtime/Core/Public/Templates/Function.h:414
18 48320 36.8652 engine UE::Core::Private::Function::TFunctionRefCaller<``anonymous namespace'::VF_FindPlayerFitPointForRoom'::`2'::<lambda_1> const ,float,float,float,float>::Call() Engine/Runtime/Core/Public/Templates/Function.h:298
19 47804 36.4716 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2512
20 35692 27.2308 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2387
21 29215 22.2893 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:100
22 14512 11.0718 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2039
23 13476 10.2814 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
24 8855 6.7558 plugin VoxelCaveMorphology::EvaluateSDFCached() Plugin/Private/VoxelCaveMorphology.cpp:6222
25 8494 6.4804 engine UE::Core::Private::ReallocGrow1_DoAlloc_Tiny<3,TSizedHeapAllocator<32,FMemory>::ForAnyElementType>() Engine/Runtime/Core/Public/Containers/Array.h:463
26 7483 5.7091 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld() Plugin/Private/VoxelCaveMorphology.cpp:6397
27 7217 5.5061 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6390
28 7156 5.4596 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6214
29 7152 5.4565 plugin `anonymous namespace'::VF_EvaluateSweptTunnel() Plugin/Private/VoxelCaveMorphology.cpp:1149
30 7150 5.4550 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59

Exclusive source lines (leaf source)

# Samples % Label Function Source
1 21101 16.0988 unknown unknown
2 4500 3.4332 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
3 4103 3.1303 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
4 3252 2.4811 engine [Inline Frame] TArray<FBuildRoom,TSizedInlineAllocator<64,32,TSizedDefaultAllocator<32> > >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
5 3098 2.3636 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
6 3004 2.2919 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
7 2865 2.1858 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:83
8 2531 1.9310 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:82
9 2503 1.9096 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
10 2422 1.8478 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:80
11 1964 1.4984 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
12 1867 1.4244 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2382
13 1821 1.3893 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:68
14 1817 1.3863 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:58
15 1714 1.3077 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2644
16 1705 1.3008 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
17 1612 1.2299 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:54
18 1603 1.2230 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:79
19 1584 1.2085 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2652
20 1373 1.0475 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
21 1295 0.9880 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2377
22 1218 0.9293 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:57
23 1216 0.9277 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
24 1214 0.9262 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2392
25 1063 0.8110 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
26 1043 0.7957 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
27 1025 0.7820 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:84
28 1018 0.7767 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
29 951 0.7256 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:3652
30 943 0.7195 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6192

LOD0 (floor)

Exclusive functions (leaf)

# Samples % Label Function Source
1 5755 13.8785 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
2 5003 12.0650 unknown unknown
3 1859 4.4831 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1771
4 1589 3.8320 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
5 1554 3.7476 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:466
6 1372 3.3087 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
7 1319 3.1808 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6313
8 1281 3.0892 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
9 974 2.3489 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6214
10 906 2.1849 plugin [Inline Frame] ?A0x7db52731::VF_DistanceSquaredToAabb() Plugin/Private/VoxelCaveMorphology.cpp:71
11 891 2.1487 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
12 668 1.6109 engine [Inline Frame] TArray<float,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
13 654 1.5772 plugin `anonymous namespace'::VF_EvaluateSweptTunnelChain() Plugin/Private/VoxelCaveMorphology.cpp:971
14 600 1.4469 plugin [Inline Frame] ?A0x7db52731::VF_ProjectTunnelSegmentXY() Plugin/Private/VoxelCaveMorphology.cpp:950
15 541 1.3047 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1056
16 516 1.2444 plugin VF_EvaluatePassageLandingSDF() Plugin/Private/VoxelCaveMorphology.cpp:4415
17 486 1.1720 engine [Inline Frame] UE::Math::TVector2::SizeSquared() Engine/Runtime/Core/Public/Math/Vector2D.h:1119
18 479 1.1551 plugin VoxelDensityProfile::FScopedTimer::~FScopedTimer() Plugin/Private/VoxelDensityProfile.cpp:969
19 468 1.1286 engine [Inline Frame] TArray<UE::Math::TVector,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
20 460 1.1093 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::{ctor}() Plugin/Public/VoxelDensityProfile.h:393
21 407 0.9815 plugin UVoxelStrateManager::EvaluateModifierSDF() Plugin/Private/VoxelStrateManager.cpp:2277
22 406 0.9791 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:574
23 397 0.9574 plugin ApplyDisturbances() Plugin/Private/VoxelGenerator.cpp:533
24 385 0.9284 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::End() Plugin/Private/VoxelDensityProfile.cpp:975
25 361 0.8706 plugin UVoxelStrateManager::ApplyPassageStructuralPostsMC() Plugin/Private/VoxelStrateManager.cpp:2521
26 328 0.7910 plugin `anonymous namespace'::VF_GetNearbyPassages() Plugin/Private/VoxelStrateManager.cpp:246
27 327 0.7886 engine [Inline Frame] UE4::SSE::FloorToInt32() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE.h:90
28 320 0.7717 plugin UVoxelStrateManager::UsesOperatorStackForChunk() Plugin/Private/VoxelStrateManager.cpp:4932
29 313 0.7548 engine [Inline Frame] TArray<FCachedTunnel,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
30 309 0.7452 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6060

Inclusive functions (once per sample)

# Samples % Label Function Source
1 41467 100.0000 engine [Inline Frame] Invoke() Engine/Runtime/Core/Public/Templates/Invoke.h:47
2 41467 100.0000 engine [Inline Frame] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()() Engine/Runtime/Core/Public/Async/Fundamental/Task.h:499
3 41467 100.0000 engine [Inline Frame] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::Call() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:162
4 41467 100.0000 engine [Inline Frame] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:180
5 41467 100.0000 engine LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::CallAndMove() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171
6 41467 100.0000 engine UE::Tasks::Private::FTaskBase::TryExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:518
7 41467 100.0000 engine UE::Tasks::Private::TExecutableTaskBase<AVoxelWorld::LoadTile'::2'::<lambda_1>,void,void>::ExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:898
8 41467 100.0000 plugin AVoxelWorld::LoadTile'::2'::<lambda_1>::operator()() Plugin/Private/VoxelWorld.cpp:3766
9 41466 99.9976 plugin AVoxelWorld::GenerateTileResult() Plugin/Private/VoxelWorld.cpp:4078
10 41416 99.8770 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:574
11 40598 97.9044 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:2449
12 24328 58.6683 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2800
13 6307 15.2097 plugin VoxelCaveMorphology::EvaluateSDFCached() Plugin/Private/VoxelCaveMorphology.cpp:6222
14 5363 12.9332 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld() Plugin/Private/VoxelCaveMorphology.cpp:6397
15 5178 12.4870 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6390
16 5148 12.4147 plugin `anonymous namespace'::VF_EvaluateSweptTunnel() Plugin/Private/VoxelCaveMorphology.cpp:1149
17 5145 12.4075 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6214
18 4937 11.9059 plugin `anonymous namespace'::VF_EvaluateSweptTunnelChain() Plugin/Private/VoxelCaveMorphology.cpp:992
19 4710 11.3584 plugin UVoxelStrateManager::ApplyPassageStructuralPostsMC() Plugin/Private/VoxelStrateManager.cpp:2574
20 4663 11.2451 plugin UVoxelStrateManager::ApplyPassageCarvingOnly() Plugin/Private/VoxelStrateManager.cpp:2373
21 4561 10.9991 plugin [Inline Frame] VF_ApplyPassageCarving() Plugin/Public/VoxelDensityPrimitives.h:75
22 4556 10.9870 plugin UVoxelStrateManager::EvaluateModifierSDF() Plugin/Private/VoxelStrateManager.cpp:2234
23 3711 8.9493 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:466
24 2459 5.9300 plugin [Inline Frame] VF_IsWalkableTunnelAir() Plugin/Private/VoxelStrateManager.cpp:714
25 2441 5.8866 plugin `anonymous namespace'::VF_ProjectPassageFloor() Plugin/Private/VoxelStrateManager.cpp:550
26 1994 4.8086 plugin [Inline Frame] VoxelSDF::TaperedCapsule() Plugin/Public/VoxelCaveMorphology.h:159
27 1679 4.0490 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1058
28 1663 4.0104 plugin UVoxelStrateManager::ApplyPassageNativeFloorMC() Plugin/Private/VoxelStrateManager.cpp:2658
29 1643 3.9622 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5276
30 1615 3.8947 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990

Exclusive source lines (leaf source)

# Samples % Label Function Source
1 5004 12.0674 unknown unknown
2 1888 4.5530 engine [Inline Frame] TArray<FVoxelPassage,TSizedDefaultAllocator<32> >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
3 1489 3.5908 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
4 1372 3.3087 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
5 1150 2.7733 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2644
6 1146 2.7636 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
7 1107 2.6696 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
8 1081 2.6069 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2652
9 891 2.1487 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
10 671 1.6182 plugin VoxelCaveMorphology::EvaluateSDFCached'::2'::<lambda_3>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6192
11 646 1.5579 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:3652
12 616 1.4855 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6313
13 486 1.1720 engine [Inline Frame] UE::Math::TVector2::SizeSquared() Engine/Runtime/Core/Public/Math/Vector2D.h:1119
14 484 1.1672 plugin VoxelDensityProfile::FScopedTimer::End() Plugin/Private/VoxelDensityProfile.cpp:975
15 447 1.0780 plugin [Inline Frame] VoxelDensityProfile::FScopedTimer::{ctor}() Plugin/Public/VoxelDensityProfile.h:393
16 344 0.8296 plugin [Inline Frame] ?A0x7db52731::VF_DistanceSquaredToAabb() Plugin/Private/VoxelCaveMorphology.cpp:62
17 343 0.8272 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:3615
18 327 0.7886 engine [Inline Frame] UE4::SSE::FloorToInt32() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE.h:90
19 327 0.7886 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:471
20 298 0.7186 engine [Inline Frame] UE::Math::TVector::operator*() Engine/Runtime/Core/Public/Math/Vector.h:316
21 274 0.6608 plugin VoxelDensityProfile::FScopedTimer::~FScopedTimer() Plugin/Private/VoxelDensityProfile.cpp:969
22 251 0.6053 plugin [Inline Frame] ?A0x7db52731::VF_ProjectTunnelSegmentXY() Plugin/Private/VoxelCaveMorphology.cpp:955
23 240 0.5788 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1056
24 220 0.5305 plugin [Inline Frame] ?A0x7db52731::VF_DistanceSquaredToAabb() Plugin/Private/VoxelCaveMorphology.cpp:68
25 218 0.5257 plugin ``anonymous namespace'::VF_EvaluateSweptTunnelChain'::`7'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:1058
26 217 0.5233 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968
27 213 0.5137 plugin VF_EvaluatePassageLandingSDF() Plugin/Private/VoxelCaveMorphology.cpp:4394
28 205 0.4944 plugin VoxelDensityProfile::FScopedTimer::~FScopedTimer() Plugin/Private/VoxelDensityProfile.cpp:971
29 204 0.4920 engine [Inline Frame] FMath::Square() Engine/Runtime/Core/Public/Math/UnrealMathUtility.h:580
30 204 0.4920 engine [Inline Frame] UE::Math::TVector::operator-() Engine/Runtime/Core/Public/Math/Vector.h:1573

LOD1+ (coarse/background)

Exclusive functions (leaf)

# Samples % Label Function Source
1 16080 17.9454 unknown unknown
2 13179 14.7079 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
3 6983 7.7931 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:54
4 5204 5.8077 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2382
5 4419 4.9316 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
6 2936 3.2766 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:68
7 2863 3.1951 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2576
8 2677 2.9876 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:3650
9 2657 2.9652 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
10 2578 2.8771 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
11 2281 2.5456 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
12 1629 1.8180 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
13 1203 1.3426 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2207
14 1196 1.3347 plugin [Inline Frame] VoxelHash::Mix() Plugin/Public/VoxelCaveMorphology.h:217
15 1123 1.2533 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
16 980 1.0937 plugin VoxelCaveMorphology::BuildChunkCache'::2'::<lambda_7>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5047
17 825 0.9207 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:1673
18 711 0.7935 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
19 657 0.7332 plugin `anonymous namespace'::VF_ProjectNativePassageFloor() Plugin/Private/VoxelStrateManager.cpp:452
20 592 0.6607 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
21 578 0.6451 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:98
22 526 0.5870 plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld'::2'::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:6313
23 513 0.5725 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:5192
24 504 0.5625 engine [Inline Frame] UE4::SSE4::FloorToFloat() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE4.h:34
25 496 0.5535 plugin [Inline Frame] ?A0x7db52731::VF_GetFloorReliefBound() Plugin/Private/VoxelCaveMorphology.cpp:296
26 482 0.5379 engine [Inline Frame] FGenericPlatformMath::Min() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:990
27 438 0.4888 plugin [Inline Frame] `anonymous-namespace'::VF_FindPlayerFitPointForRoom::__l2::<lambda_1>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:2629
28 430 0.4799 engine [Inline Frame] TArray<FBuildRoom,TSizedInlineAllocator<64,32,TSizedDefaultAllocator<32> > >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
29 425 0.4743 engine [Inline Frame] FGenericPlatformMath::Max() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:968
30 400 0.4464 engine [Inline Frame] FMicrosoftPlatformMathBase::IsFinite() Engine/Runtime/Core/Public/Microsoft/MicrosoftPlatformMath.h:18

Inclusive functions (once per sample)

# Samples % Label Function Source
1 89605 100.0000 engine [Inline Frame] Invoke() Engine/Runtime/Core/Public/Templates/Invoke.h:47
2 89605 100.0000 engine [Inline Frame] LowLevelTasks::FTask::Init::__l13::<lambda_1>::operator()() Engine/Runtime/Core/Public/Async/Fundamental/Task.h:499
3 89605 100.0000 engine [Inline Frame] LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::Call() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:162
4 89605 100.0000 engine [Inline Frame] UE::Tasks::Private::FTaskBase::Init::__l2::<lambda_1>::operator()() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:180
5 89605 100.0000 engine LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask * __cdecl(bool),48>::TTaskDelegateImpl<LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init'::2'::<lambda_1> >'::13'::<lambda_1>,0>::CallAndMove() Engine/Runtime/Core/Public/Async/Fundamental/TaskDelegate.h:171
6 89605 100.0000 engine UE::Tasks::Private::FTaskBase::TryExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:518
7 89605 100.0000 engine UE::Tasks::Private::TExecutableTaskBase<AVoxelWorld::LoadTile'::2'::<lambda_1>,void,void>::ExecuteTask() Engine/Runtime/Core/Public/Tasks/TaskPrivate.h:898
8 89605 100.0000 plugin AVoxelWorld::LoadTile'::2'::<lambda_1>::operator()() Plugin/Private/VoxelWorld.cpp:3766
9 89605 100.0000 plugin AVoxelWorld::GenerateTileResult() Plugin/Private/VoxelWorld.cpp:4078
10 89569 99.9598 plugin UVoxelMarchingCubesMesher::GenerateMesh() Plugin/Private/VoxelMarchingCubesMesher.cpp:574
11 89188 99.5346 plugin UVoxelGenerator::GetDensityAt() Plugin/Private/VoxelGenerator.cpp:2073
12 81485 90.9380 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2800
13 72096 80.4598 plugin VoxelCaveMorphology::BuildChunkCache() Plugin/Private/VoxelCaveMorphology.cpp:4974
14 66315 74.0081 plugin [Inline Frame] VoxelCaveMorphology::BuildChunkCache::__l2::<lambda_9>::operator()() Plugin/Private/VoxelCaveMorphology.cpp:5153
15 66312 74.0048 plugin `anonymous namespace'::VF_FindPlayerFitPointForRoom() Plugin/Private/VoxelCaveMorphology.cpp:2687
16 65715 73.3385 plugin `anonymous namespace'::VF_ValidatePlayerFitPose() Plugin/Private/VoxelCaveMorphology.cpp:2221
17 47401 52.8999 engine [Inline Frame] UE::Core::Private::Function::TFunctionRefBase<UE::Core::Private::Function::FFunctionRefStoragePolicy,float __cdecl(float,float,float)>::operator()() Engine/Runtime/Core/Public/Templates/Function.h:414
18 47272 52.7560 engine UE::Core::Private::Function::TFunctionRefCaller<``anonymous namespace'::VF_FindPlayerFitPointForRoom'::`2'::<lambda_1> const ,float,float,float,float>::Call() Engine/Runtime/Core/Public/Templates/Function.h:298
19 46764 52.1891 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2577
20 34914 38.9643 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2377
21 28597 31.9145 plugin [Inline Frame] VoxelNoise::Perlin3D() Plugin/Public/VoxelNoise.h:118
22 14149 15.7904 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
23 13179 14.7079 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
24 8269 9.2283 engine UE::Core::Private::ReallocGrow1_DoAlloc_Tiny<3,TSizedHeapAllocator<32,FMemory>::ForAnyElementType>() Engine/Runtime/Core/Public/Containers/Array.h:463
25 6983 7.7931 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:54
26 4419 4.9316 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
27 2936 3.2766 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:68
28 2657 2.9652 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
29 2548 2.8436 plugin VoxelCaveMorphology::EvaluateSDFCached() Plugin/Private/VoxelCaveMorphology.cpp:6222
30 2426 2.7074 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170

Exclusive source lines (leaf source)

# Samples % Label Function Source
1 16097 17.9644 unknown unknown
2 4419 4.9316 plugin [Inline Frame] VoxelNoise::Detail::Lerp() Plugin/Public/VoxelNoise.h:87
3 2936 3.2766 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:77
4 2803 3.1282 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:83
5 2614 2.9172 engine [Inline Frame] FGenericPlatformMath::Sqrt() Engine/Runtime/Core/Public/GenericPlatform/GenericPlatformMath.h:553
6 2475 2.7621 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:82
7 2453 2.7376 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:59
8 2374 2.6494 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:80
9 1991 2.2220 plugin [Inline Frame] VoxelSDF::SmoothMin() Plugin/Public/VoxelCaveMorphology.h:170
10 1822 2.0334 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2382
11 1789 1.9965 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:68
12 1773 1.9787 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:58
13 1570 1.7521 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:54
14 1567 1.7488 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:79
15 1364 1.5222 engine [Inline Frame] TArray<FBuildRoom,TSizedInlineAllocator<64,32,TSizedDefaultAllocator<32> > >::RangeCheck() Engine/Runtime/Core/Public/Containers/Array.h:1095
16 1269 1.4162 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2377
17 1187 1.3247 plugin [Inline Frame] VoxelNoise::Detail::HashCorner() Plugin/Public/VoxelNoise.h:57
18 1184 1.3214 plugin `anonymous namespace'::VF_ApplyCaveWarp() Plugin/Private/VoxelCaveMorphology.cpp:2392
19 1180 1.3169 plugin `anonymous namespace'::VF_BuildPlayerFitStencil() Plugin/Private/VoxelCaveMorphology.cpp:2049
20 1045 1.1662 plugin [Inline Frame] VoxelNoise::Detail::Fade() Plugin/Public/VoxelNoise.h:67
21 1013 1.1305 engine [Inline Frame] TArray<UE::Math::TIntPoint,TSizedDefaultAllocator<32> >::Emplace() Engine/Runtime/Core/Public/Containers/Array.h:2602
22 998 1.1138 plugin [Inline Frame] VoxelNoise::Detail::GradDot() Plugin/Public/VoxelNoise.h:84
23 997 1.1127 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1993
24 754 0.8415 plugin `anonymous namespace'::VF_EvaluateRoomLandingDensity() Plugin/Private/VoxelCaveMorphology.cpp:2509
25 711 0.7935 engine [Inline Frame] UE::Math::TVector::operator/() Engine/Runtime/Core/Public/Math/Vector.h:1585
26 628 0.7009 plugin [Inline Frame] ?A0x7db52731::VF_IsPointInsidePlayerCapsule() Plugin/Private/VoxelCaveMorphology.cpp:1995
27 592 0.6607 engine [Inline Frame] UE::Math::TVector2::{ctor}() Engine/Runtime/Core/Public/Math/Vector2D.h:837
28 564 0.6294 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2644
29 559 0.6238 plugin UVoxelGenerator::GetDensityWithParams() Plugin/Private/VoxelGenerator.cpp:2648
30 504 0.5625 engine [Inline Frame] UE4::SSE4::FloorToFloat() Engine/Runtime/Core/Public/Math/UnrealPlatformMathSSE4.h:34

Component mapping

The percentages below are inclusive unless marked exclusive/source-line. They are LOD0 shares where the LOD0 row is available; all-LOD figures are called out for work dominated by coarse tiles. Inclusive values overlap and must not be added.

Component Static Moving Reading
Fused evaluator core, GetDensityWithParams 55.38% LOD0 inclusive; 90.36% all-LOD 58.67% LOD0 inclusive; 80.73% all-LOD The evaluator is the parent of most density work.
Detail noise GradDot 14.81%, HashCorner 7.67%, Lerp 4.87%, Fade 3.13% all-LOD exclusive leaves GradDot 14.71%, HashCorner 7.79%, Lerp 4.93%, Fade 3.28% all-LOD exclusive leaves Roughly 30% across these four resolved leaves before other noise helpers; this is a real arithmetic cost, not a wait frame.
Swept tunnel shape VF_EvaluateSweptTunnel 11.56%; chain 10.99% LOD0 inclusive 12.41%; chain 11.91% LOD0 inclusive The chain is nested, so do not sum the two rows.
Tunnel floor projection VF_ProjectNativePassageFloor 11.41%; VF_ProjectPassageFloor 7.45% LOD0 inclusive 8.95%; 5.89% LOD0 inclusive The current symbol names are the native/passage-floor implementations of the requested swept-floor component.
Tunnel core EvaluateTunnelCoreWorld 12.39% and its lambda 11.83% LOD0 inclusive 12.93% and 12.49% LOD0 inclusive The core path is independently hot; the relevant implementation is around VoxelCaveMorphology.cpp:6275 and the resolved body at the later lambda lines.
Room graph / player fit BuildChunkCache 79.54%, FindPlayerFitPointForRoom 73.35%, room landing 51.87% all-LOD inclusive 80.46%, 74.00%, 52.19% all-LOD inclusive This is mostly LOD1+ background work; LOD0's hot list shifts toward density/tunnel/floor work.
Candidate traversal DistanceSquaredToAabb 1.53% LOD0 exclusive; floor-relief bound is 0.59% in LOD1+ 2.18% LOD0 exclusive; floor-relief bound is 0.55% in LOD1+ Cheap compared with tunnel/core evaluation.
Disturbances ApplyDisturbances 0.7598% LOD0 exclusive 0.9574% LOD0 exclusive Not a top cost.
Post-stack structural tail ApplyPassageStructuralPostsMC 14.47%, carving 14.07% LOD0 inclusive 11.36%, carving 11.25% LOD0 inclusive This is a material LOD0 tail after the density stack.
Surface column FSurfaceColumn constructor 11.6522% LOD0 exclusive/source line; source file unresolved 12.0674% LOD0 exclusive/source line; source file unresolved The symbol is known but the source location is not; keep it as an unknown-source cost until PDB/source mapping is improved.
Per-sample FStrateGenerationParams copy No isolated top-30 function or source-line share No isolated top-30 function or source-line share The ~74-field copy noted at VoxelDensityOpStack.cpp:3946 is folded into its caller or below the sampled leaf threshold; this profile cannot claim it is free or expensive.
Mesher GenerateMesh 99.8692% LOD0 inclusive 99.8770% LOD0 inclusive This is the registered task parent, not an additive exclusive cost. Density is inside it.

The old component names cover the main LOD0 path, but the profile adds two important named costs: room-cache/player-fit/landing work for coarse tiles and FSurfaceColumn construction in LOD0. Those are the clearest candidates for the cost that the old 34f06df scope view did not name.

Hypotheses

  • Swept tunnel evaluated twice: supported. The LOD0 stack repeatedly contains both VF_EvaluateSweptTunnel and EvaluateTunnelCoreWorld at roughly 11.6–12.9% inclusive each, and the existing counters report the tunnel and tunnel-core candidate populations both at 28,951,420. This is measured duplication evidence; proving that every candidate takes both full paths still requires a targeted call counter.
  • Candidate rejection cheap, evaluation expensive: held. AABB distance is about 1.5–2.2% exclusive in LOD0, while swept-tunnel and tunnel-core bodies are each about 11.6–12.9% inclusive. The scan is not the 4.5x-sized cost.
  • Per-sample parameter copy is a standalone cost: not proven. It never appears as an isolated top-30 function/source line in either headline run.
  • A cost absent from the old named list exists: supported, but not uniquely differential. Room graph/player fit/landing dominates LOD1+ and FSurfaceColumn is a material LOD0 leaf. The sampler cannot by itself prove which of those was absent from 34f06df without profiling that old build.
  • Static and moving game profiles differ materially. Static retained samples were 12.2% LOD0 and 87.8% LOD1+; moving was 31.6% LOD0 and 68.4% LOD1+. Moving therefore exposes more floor/tunnel/core/structural work, while static is more heavily diluted by coarse room-graph work.

Planted-cost proof

Before trusting the sampler, a diagnostic-only 20000 us busy loop was planted in one function, VF_SampleStacksPlantedBusyLoop, for a sampler-on commandlet run. The summary retained 712 samples with 712 registered samples and no reservoir drops. The planted function was:

  • exclusive: rank 21, 8 samples, 1.1236%;
  • inclusive: rank 20, 75 samples, 10.5337%.

That is the expected approximately 10–12% share for the planted duration in the active worker interval. The plant was then removed; a source search for SampleStacksPlant and PlantedBusyLoop is clean.

Secondary export cross-check

The owner redirected this round to the game path, so no further export tables were run. The already retained primary export cross-check remains:

  • sampler-off mesh times: 0.971 s, 0.992 s, 0.954 s; mean 0.972333 s;
  • sampler-on mesh times: 0.951 s, 0.964 s, 0.967 s; mean 0.960667 s;
  • all off/on OBJ SHA-256 values: b3e5f4c398dd0547c6c55f415872058246d4a292c2f0d636ee1cd0829de9b377.

Ranked fixes for the game path

These are measurement-derived estimates, not changes made this round. The ranges are expected LOD0 request-to-ready p95 and worker-CPU gains, assuming the relevant work can be removed or reused without changing scheduling.

  1. Share one exact swept-tunnel result between the SDF path and EvaluateTunnelCoreWorld/floor metadata: expected LOD0 p95 gain 8–15%, worker CPU gain 8–15%. Classification: field-preserving only if the exact existing values and evaluation order are reused; otherwise field-changing. Capability risk is medium because tunnel floor/core metadata affects player-fit and walk reachability, so recheck player-fit 20,830 and walk-reachable 10,909.
  2. Reuse or move deterministic room-cache/player-fit work out of the LOD0 request critical path: expected LOD0 p95 gain 3–8%, worker CPU gain 5–12%. Classification: field-preserving if cache keys include seed, generator parameters, room graph, and LOD and the returned values are copied unchanged; field-changing if candidate pruning or fit thresholds change. Capability risk is medium, concentrated in player-fit and walk-reachable coverage.
  3. Reuse exact detail-noise values within one sample/evaluator invocation: expected LOD0 p95 gain 4–10%, worker CPU gain 8–18%. Classification: field-preserving for exact value reuse; any approximation, altered hash, or reordered floating-point expression is field-changing. Capability risk is high for an approximation because it can alter narrow tunnel openings and walk reachability; exact reuse carries low field risk.

No rank is assigned to the 74-field parameter copy: the sampler did not measure a standalone share, so optimizing it now would repeat the earlier fiction problem.

Handoff

This round changed only diagnostic instrumentation and report artifacts under E:\Projet Unreal\VoxelM\Plugins\VoxelForge. Engine source was not modified. No commit, push, or stash was performed. The key caveat is explicit: the instrument has good closure and a successful planted-cost proof, but its 1 ms game overhead is above the requested timing/worker-CPU noise on static and above timing noise on moving. Treat the large, repeated component differences as useful; do not treat small single-digit improvements as established until that overhead is brought inside the game baseline.

Floor round 1 — field-preserving LOD0 work (2026-09-13)

This section is the final report for the subsequent LOD0 floor round. It is deliberately separate from the field-changing world-space tunnel-core merge and cave warp work. No density expression was changed, no terrain-op order was changed, and no engine source was modified.

Changes

  • Passage floor projection is memoised in FPassageEvaluationCache::FloorProjections, one indexed entry per passage and worker. Native projection, generic fallback projection, and walkable-air classification reuse the same float outputs for an exact (sample, passage) hit. The sample key compares the original double XYZ values; cache invalidation includes manager lifetime, layout version, and chunk. voxel.FloorRound1PassageProjectionCache disables only this cache for A/B.
  • Disabled VoxelDensityProfile::FScopedTimer construction now performs the enabled/probe test and carries only an inactive flag; bucket/token initialization and out-of-line destructor work are absent. Enabled profiling still enters/exits the same scope and preserves End() early closure.
  • Proven-hot room/tunnel/passage candidate loops cache counts and use GetData() pointers where the preceding count or spatial-index range proves the access. Other array checks remain intact.
  • The two exact floor-projection XY loops scalarise the existing double TVector2 temporaries while retaining the original float conversions and result casts. FVector::DistSquared float paths were left alone.
  • FSurfaceColumn is now a trivial payload. ComputeSurfaceColumn writes all five values before publishing Computed, so removing never-read default values removes its generated TLS constructor leaf without changing a column or density.

Build and field/capability gates

The prescribed UBT build succeeded on the staged host. The loaded runtime was verified on every field, capability, and game process as:

E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForge.dll

SHA-256: E54290C5056D63A12E407E39EED96935CCDC87F82882E9A607C84759DF8656D7.

Field runs:

  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\FloorR1BookField2Off_20260913Out
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\FloorR1BookField2On_20260913Out

Both reports are status=ok, deterministic repeat passed, geometry CRC 07C14005, 82,273 vertices, and 153,346 triangles. Both geometry.obj files are byte-identical with SHA-256 b3e5f4c398dd0547c6c55f415872058246d4a292c2f0d636ee1cd0829de9b377. The standing 841/841 per-tile triangle-identity record is preserved; the new game runs also report identical static and moving applied tile/visible-tile/triangle totals in every off/on case.

Capability run:

E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\FloorR1BookCapability_20260913Out\explore.json

The report is status=ok, deterministic repeat passed, with player_fit_volume_cells=20830, reachable_player_fit_cells=10909, and walk_only_reachable_player_fit_cells=10909.

Clean game A/B

Sampler off, diagnostics off, LOD0, voxel.OuterClassifierMode=0, interleaved in the order off/on static A, on/off moving A, off/on static B, on/off moving B. Static runs had 343 LOD0 ready samples; moving runs had 1,274.

run cache request p50/p95 (s) generation p50/p95 (s) worker s applied tiles / visible / triangles
OffStaticA 0 0.091413 / 0.145960 0.066545 / 0.108736 33.354203 841 / 447 / 669834
OnStaticA 1 0.091688 / 0.151787 0.066298 / 0.107866 33.549964 841 / 447 / 669834
OnMovingA 1 0.067281 / 0.138041 0.059686 / 0.108387 97.919700 2348 / 1055 / 1985216
OffMovingA 0 0.067659 / 0.135287 0.059316 / 0.107414 98.007684 2348 / 1055 / 1985216
OffStaticB 0 0.088911 / 0.146950 0.064988 / 0.104965 33.246204 841 / 447 / 669834
OnStaticB 1 0.090368 / 0.151585 0.065554 / 0.107661 33.323367 841 / 447 / 669834
OnMovingB 1 0.067540 / 0.139517 0.059545 / 0.108946 97.915109 2348 / 1055 / 1985216
OffMovingB 0 0.067745 / 0.137666 0.059707 / 0.108898 97.926095 2348 / 1055 / 1985216

Paired means, on relative to off:

mode off request p50/p95 on request p50/p95 off generation p50/p95 on generation p50/p95 off worker s on worker s on vs off worker
static 0.090162 / 0.146455 0.091028 / 0.151686 0.065767 / 0.106851 0.065926 / 0.107764 33.300204 33.436666 +0.41%
moving 0.067702 / 0.136477 0.067411 / 0.138779 0.059512 / 0.108156 0.059616 / 0.108667 97.966890 97.917405 −0.05%

The isolated projection-cache A/B is therefore neutral within run-to-run noise (an earlier brief blamed cross-round drift on "daytime use"; that was false, the machine was idle): static is slightly worse, moving worker sum is effectively unchanged. The implementation is retained because the reuse is exact and the switch attributes the hypothesis; the result is not claimed as a speed win. All eight runs had validation_density_calls=0, obsolete_worker_tasks=0, and loaded-DLL verification true. The one-second process monitor observed game RSS from 1,946,759,168 to 2,019,475,456 bytes; these are peak samples, not a cross-round memory baseline.

Final sampler-on moving run

Raw samples:

E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSamples_game_3352.csv

Summary:

E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSummary_game_3352.txt

The run retained 102,854 samples, dropped 0, had 67,187 LOD0 samples, ran 24.978248 s, and had unknown-frame fraction 0.472158. It reported 2,348 applied tiles, 1,055 visible tiles, 1,985,216 triangles, 2,360 generation tasks, 103.016440 worker seconds, and zero obsolete worker tasks.

LOD0 exclusive top 20:

# samples % leaf
1 11531 17.1625 GetDensityWithParams — VoxelGenerator.cpp:2874
2 8658 12.8864 unknown
3 3068 4.5664 GetDensityAt — VoxelGenerator.cpp:1998
4 2702 4.0216 Sqrt
5 2312 3.4411 VoxelSDF::SmoothMin
6 2209 3.2878 EvaluateTunnelCoreWorld lambda — VoxelCaveMorphology.cpp:7648
7 1876 2.7922 EvaluateSDFCached lambda — VoxelCaveMorphology.cpp:7526
8 1788 2.6612 VF_ProjectNativePassageFloorUncached — VoxelStrateManager.cpp:597
9 1504 2.2385 VF_DistanceSquaredToAabb — VoxelCaveMorphology.cpp:68
10 1419 2.1120 VF_ProjectTunnelSegmentXY — VoxelCaveMorphology.cpp:970
11 1268 1.8873 ProjectWalkableTunnelFloor — VoxelPassageGeometry.h:314
12 1241 1.8471 VF_EvaluateSweptTunnelChain — VoxelCaveMorphology.cpp:1006
13 1009 1.5018 swept-chain lambda — VoxelCaveMorphology.cpp:1076
14 880 1.3098 VF_EvaluatePassageLandingSDF — VoxelCaveMorphology.cpp:5690
15 844 1.2562 GenerateMesh — VoxelMarchingCubesMesher.cpp:578
16 758 1.1282 FScopedTimer::End — VoxelDensityProfile.h:432
17 732 1.0895 EvaluateModifierSDF — VoxelStrateManager.cpp:2470
18 729 1.0850 ApplyPassageStructuralPostsMC — VoxelStrateManager.cpp:2808
19 700 1.0419 VF_GetPassageFloorProjectionCacheEntry — VoxelStrateManager.cpp:349
20 609 0.9064 EvaluateSDFCached lambda — VoxelCaveMorphology.cpp:7397

LOD0 inclusive top 20:

# samples % inclusive function
1 67187 100.0000 Invoke
2 67187 100.0000 LowLevelTasks::FTask::Init lambda
3 67187 100.0000 LowLevelTasks::TTaskDelegate::Call
4 67187 100.0000 UE::Tasks::Private::FTaskBase::Init lambda
5 67187 100.0000 LowLevelTasks::TTaskDelegate::CallAndMove
6 67187 100.0000 UE::Tasks::Private::FTaskBase::TryExecuteTask
7 67187 100.0000 TExecutableTaskBase::ExecuteTask
8 67187 100.0000 AVoxelWorld::LoadTile lambda — VoxelWorld.cpp:3782
9 67186 99.9985 AVoxelWorld::GenerateTileResult — VoxelWorld.cpp:4126
10 67100 99.8705 UVoxelMarchingCubesMesher::GenerateMesh — VoxelMarchingCubesMesher.cpp:578
11 65522 97.5218 UVoxelGenerator::GetDensityAt — VoxelGenerator.cpp:2297
12 40538 60.3361 UVoxelGenerator::GetDensityWithParams — VoxelGenerator.cpp:3117
13 18270 27.1928 VF_ForEachSpatialCandidate — VoxelCaveMorphology.cpp:1582
14 11093 16.5106 VoxelCaveMorphology::EvaluateSDFCached — VoxelCaveMorphology.cpp:7377
15 8829 13.1409 EvaluateSDFCached lambda — VoxelCaveMorphology.cpp:7526
16 8777 13.0635 VF_EvaluateSweptTunnel — VoxelCaveMorphology.cpp:1167
17 8581 12.7718 VoxelCaveMorphology::EvaluateTunnelCoreWorld — VoxelCaveMorphology.cpp:7732
18 8366 12.4518 VF_EvaluateSweptTunnelChain — VoxelCaveMorphology.cpp:1029
19 7811 11.6258 ApplyPassageCarvingOnly — VoxelStrateManager.cpp:2596
20 7682 11.4338 VF_ApplyPassageCarving — VoxelDensityPrimitives.h:75

Unknown-source resolution

The old FSurfaceColumn constructor PCs are absent from this final sampler. The LOD0 unknown leaf is 8,658 samples (12.8864%), but the raw PC cluster that accounts for the largest part is not plugin code: 0x00007FF88382C080, ...C08A, ...C095, ...C0A5, and ...C0A9 map to the loaded UnrealEditor-Core.dll at runtime RVA 0xC080, inside its private .pdata function range 0xB4D0–0xC32B. The packaged Core binary has no PDB, so the source function name cannot be resolved. Smaller unresolved groups map to UnrealEditor-Engine.dll + RVA 0x500947 (generated reflection StaticStruct code) and UnrealEditor-CoreUObject.dll + RVA 0x76168; none maps to Plugins\VoxelForge.

This closes the actionable part of candidate 5: the previous plugin constructor was removed, while the remaining unknown is an engine-symbolisation limitation. No commit, push, or stash was performed.

Worm block skip round (2026-09-14)

Proof and gates

The worm skip is enabled by default through voxel.WormBlockSkip=1. It is fail-closed and only removes the two worm noise calls after the unchanged WormNetworkRange mask has passed. The worker-local cache is keyed by generator owner, seed, params/layout fingerprint, tile origin, step, lattice size, and worm parameters; it is never shared across tiles or workers.

For this implementation's actual GradDot set, the unique gradients are (±1,±1,0), (±1,0,±1), and (0,±1,±1). The exact finite-support partial-derivative relaxation with Fade'(t)=30t²(1-t)² has supremum 15/4, attained at (0.5,0.5,0.5). Therefore the noise-space vector bound is

L = (15/4) * sqrt(3) * VOXEL_NOISE_SCALE = 8.118988160 (VOXEL_NOISE_SCALE=1.25).

The existing 2D floor constant was proven differently and does not transfer: its comment uses the loose component bound [-1,1], four-edge interpolation difference bound, and max SmoothCurve' = 1.875, giving 1 + 4*1.875 = 8.5 per partial. The worm derives its bound from the actual 3D gradient support. The block radius is measured after the exact X/Y/Z noise transform, including WormFrequency, VerticalScale, and WormHorizontalBias; Abs is 1-Lipschitz and the positive noise scale is included in L. A 1e-3 scaled-output margin is subtracted before the threshold comparison. It is deliberately much larger than the accumulated float rounding at the center/radius operations and is covered by the soundness test.

The adversarial attack used dense corner/face sampling plus random pairs: 17,365,280 pairs, worst scaled ratio 3.187330411, or 0.392577295*L. The fail-capable automation test also audited 6,476 proved blocks over 355,945 exact lattice samples with zero violations. A deliberately halved L proves the negative-control block while the exact point has N1=0.011259466 < 0.015 and the full L rejects it.

Default-on export is byte-identical to the baseline: geometry hash B3E5F4C398DD0547C6C55F415872058246D4A292C2F0D636EE1CD0829DE9B377, 82,273 vertices, 153,346 triangles. The static trace is 841/841 keyed tiles with zero field/empty/triangle differences. Capability remains 20,830 / 10,909.

Clean game A/B

Sampler off, diagnostics off, voxel.OuterClassifierMode=0, interleaved static and moving runs. Static runs had 343 LOD0 ready samples; moving runs had 1,274. All valid runs had identical applied geometry totals, zero validation calls, zero obsolete worker tasks, and verified the loaded plugin module. The clean timings below used the staged runtime before the final counter-only diagnostic-accounting rebuild (81F52389A78543E41EEC8E3E40DEF8F2634A79EB83E2A933FF35EE42CD611E12). That patch is behind diagnostics, so it does not change this clean path. The final staged runtime used by the last diagnostic run is E72E140100B3D258F28E9DBA19CD95D379D98794DA49D24C708FDD01B5B5FE08.

run switch request p50/p95 (s) generation p50/p95 (s) worker s
WormSkipGameOffStaticA_20260914 off 0.087151 / 0.150116 0.063115 / 0.104426 33.308914
WormSkipGameOnStaticA_Resume_20260914 on 0.092174 / 0.154458 0.065730 / 0.110507 34.980771
WormSkipGameOffMovingA_20260914 off 0.066421 / 0.138179 0.059918 / 0.108181 99.193222
WormSkipGameOnMovingA_20260914 on 0.064163 / 0.135519 0.059273 / 0.106991 97.624292
WormSkipGameOffStaticB_20260914 off 0.090372 / 0.160169 0.064016 / 0.109362 34.116813
WormSkipGameOnStaticB_Resume_20260914 on 0.091922 / 0.154718 0.063731 / 0.112871 33.892686
WormSkipGameOffMovingB_Resume_20260914 off 0.066659 / 0.142168 0.061916 / 0.110043 100.995082
WormSkipGameOnMovingB_Resume_20260914 on 0.065557 / 0.141592 0.060515 / 0.110629 99.716139

Paired means, on relative to off:

mode request p50/p95 generation p50/p95 worker s on vs off worker
static off 0.088762 / 0.155143; on 0.092048 / 0.154588 off 0.063566 / 0.106894; on 0.064731 / 0.111689 33.712864 → 34.436729 +2.1471%
moving off 0.066540 / 0.140174; on 0.064860 / 0.138556 off 0.060917 / 0.109112; on 0.059894 / 0.108810 100.094152 → 98.670216 −1.4226%

The two-run result is mixed: moving improves modestly, while static is within ordinary run noise and is slightly worse on worker sum. The switch remains default-on because the field proof is exact; the timing result is not presented as a universal speed claim.

Skip rate

The final diagnostics-enabled moving run used the final DLL and emitted 2,360 tile profiles. The rate is worm_block_skipped / worm_eligible, not a fraction of all density samples:

LOD worm-eligible samples successful block proofs skipped eligible samples skip rate
0 12,381,885 9,541 503,696 4.068007%
1 4,821,000 0 0 0.000000%
2 188,063 0 0 0.000000%
3 58,276 0 0 0.000000%
4 25,253 0 0 0.000000%

Sampler-on moving profile

WormSkipGameOnMovingSampler_20260914 retained 96,649 samples with zero drops and zero capture failures: 61,869 LOD0 and 34,780 LOD1+. It ran for 24.972305 s; resolved-frame fraction was 52.9174%, unknown-frame fraction 47.0826%, wait-like fraction 0.1011%, and resolved-leaf fraction 95.3388%.

LOD0 exclusive top 20:

# samples % leaf
1 12472 20.1587 GetDensityWithParams — VoxelGenerator.cpp:3128
2 3137 5.0704 GetDensityAt — VoxelGenerator.cpp:2994
3 2853 4.6114 unknown
4 2540 4.1054 Sqrt
5 2238 3.6173 VoxelSDF::SmoothMin — VoxelCaveMorphology.h:170
6 1736 2.8059 VF_ProjectNativePassageFloorUncached — VoxelStrateManager.cpp:561
7 1704 2.7542 FChunkSDFSpatialIndex::GetRange — VoxelCaveMorphology.cpp:1356
8 1434 2.3178 VF_ProjectTunnelSegmentXY — VoxelCaveMorphology.cpp:970
9 1244 2.0107 ProjectWalkableTunnelFloor — VoxelPassageGeometry.h:338
10 1229 1.9865 VF_EvaluateSweptTunnelChain — VoxelCaveMorphology.cpp:1128
11 1151 1.8604 EvaluateTunnelCoreWorld lambda — VoxelCaveMorphology.cpp:7635
12 1009 1.6309 swept-chain lambda — VoxelCaveMorphology.cpp:1074
13 938 1.5161 EvaluateSDFCached lambda — VoxelCaveMorphology.cpp:7526
14 819 1.3238 IsFiniteFast — VoxelTypes.h:30
15 769 1.2429 IsFinite — VoxelTypes.h:47
16 764 1.2349 EvaluateModifierSDF — VoxelStrateManager.cpp:2451
17 748 1.2090 VF_EvaluatePassageLandingSDF — VoxelCaveMorphology.cpp:5673
18 739 1.1945 GenerateMesh — VoxelMarchingCubesMesher.cpp:578
19 724 1.1702 FScopedTimer::End — VoxelDensityProfile.h:435
20 700 1.1314 VF_DistanceSquaredToAabb — VoxelCaveMorphology.cpp:74

LOD0 inclusive top 20:

# samples % inclusive function
1 61869 100.0000 Invoke
2 61869 100.0000 LowLevelTasks::FTask::Init lambda
3 61869 100.0000 LowLevelTasks::TTaskDelegate::Call
4 61869 100.0000 UE::Tasks::Private::FTaskBase::Init lambda
5 61869 100.0000 LowLevelTasks::TTaskDelegate::CallAndMove
6 61869 100.0000 UE::Tasks::Private::FTaskBase::TryExecuteTask
7 61869 100.0000 TExecutableTaskBase::ExecuteTask
8 61869 100.0000 AVoxelWorld::LoadTile lambda — VoxelWorld.cpp:3782
9 61869 100.0000 AVoxelWorld::GenerateTileResult — VoxelWorld.cpp:4142
10 61774 99.8464 GenerateMesh — VoxelMarchingCubesMesher.cpp:578
11 60310 97.4802 GetDensityAt — VoxelGenerator.cpp:2606
12 38073 61.5381 GetDensityWithParams — VoxelGenerator.cpp:3426
13 15666 25.3212 VF_ForEachSpatialCandidate — VoxelCaveMorphology.cpp:1570
14 9775 15.7995 EvaluateSDFCached — VoxelCaveMorphology.cpp:7484
15 7846 12.6816 VF_EvaluateSweptTunnel — VoxelCaveMorphology.cpp:1167
16 7460 12.0577 VF_EvaluateSweptTunnelChain — VoxelCaveMorphology.cpp:1128
17 7276 11.7603 ApplyPassageCarvingOnly — VoxelStrateManager.cpp:2596
18 7209 11.6520 EvaluateTunnelCoreWorld — VoxelCaveMorphology.cpp:7732
19 7128 11.5211 VF_ApplyPassageCarving — VoxelDensityPrimitives.h:75
20 7106 11.4856 EvaluateModifierSDF — VoxelStrateManager.cpp:2538

Run ledger

Every worm-round launch is listed here, including invalidated launches and the compile retry:

launch outcome
Initial staged build Failed compiling VoxelForgeWormBlockSkipTest.cpp because of an ambiguous FMath::IsNearlyEqual overload; fixed by an explicit cast. No Unreal process was launched.
Rebuilt staged plugin Succeeded; final build log reports Result: Succeeded.
VoxelForge.Determinism.WormBlockSkipSoundness Passed: 6,476 proofs / 355,945 lattice samples / 0 violations; halved-L control fails as intended.
WormSkipFieldOn_20260914 Passed; export byte-identical and loaded module verified.
WormSkipStaticTrace_20260914 Data passed 841/841; harness intentionally stopped the process after .done (ExitCode=-1), not a crash.
WormSkipCapability_20260914 Passed; capability 20,830 / 10,909.
WormSkipGameOffStaticA_20260914 Completed; valid off A.
WormSkipGameOnStaticA_20260914 Launched before the stop; void by owner instruction and excluded, even though a complete artifact exists.
WormSkipGameOffMovingA_20260914 Completed; valid on/off interleave partner.
WormSkipGameOnMovingA_20260914 Completed; valid on/off interleave partner.
WormSkipGameOffStaticB_20260914 Completed; valid off B.
WormSkipGameOnStaticB_20260914 Interrupted at the stop; partial module/RSS artifacts only, void and excluded.
WormSkipGameOnStaticA_Resume_20260914 Completed; valid on A replacement.
WormSkipGameOffMovingB_Resume_20260914 Completed; valid off B replacement.
WormSkipGameOnMovingB_Resume_20260914 Completed; valid on B replacement.
WormSkipGameOnStaticB_Resume_20260914 Completed; valid on B replacement.
WormSkipGameOnMovingSampler_20260914 Completed; sampler-on moving profile, zero drops/failures.
WormSkipDiagnosticsMoving_20260914 Completed; superseded by the final counter-semantics diagnostic run, not used for reported skip rates.
WormSkipDiagnosticsMovingProofs_20260914 Completed on final DLL; per-LOD skip rates above, module verified.

The Saved crash inventory also contains earlier-round UECC artifacts, which are kept visible here: three failed Task4CurrentTracePIE attempts on 2026-09-09 (plugin-manager/ShaderCore/DDC launch failures), GameMovingOn_20260913 (fatal shutdown), MemoGameStaticOffA_20260913 (no writable DDC graph; retried successfully), TakeoverFinalMovingSamplerOnHost_20260913 (crash artifact; ...Host2 retry succeeded), Final3MovingSamplerOn_20260913 (fatal shutdown), and IsFiniteExact_20260913 (no writable DDC graph). No CrashReportClient crash occurred in the worm-round launches above.

Final worms round — real off switch, cheap field, and offline stacks (2026-09-14)

This addendum covers the implementation and the final hardening runs after the block-skip round above. Existing historical measurements are retained. Scope stayed inside E:\Projet Unreal\VoxelM\Plugins\VoxelForge; no .uasset content was edited and nothing was committed, pushed, or stashed.

Final build

The prescribed UE 5.7 UBT command in this report was used throughout. Three intermediate staged builds failed before the final game runs: the first had stale-source compile errors (Tunnel not found, missing FGuid, and the offline module record missing PdbAge); the second exposed a linker error from editor access to unexported tile-context TLS; the third cleanup build exposed a missing anonymous-namespace close after removing the in-process resolver. Each failure was fixed; none left an Unreal process running.

The final hardening build succeeded in E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_FinalHardening.log (Result: Succeeded, 9.11 s). The subsequent benchmark-only force-off wiring rebuild also succeeded in E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_FinalForceOff.log (Result: Succeeded, 81.89 s). The final off/on game runs below use that latter staged build. Its loaded staged DLLs were verified as:

  • runtime: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForge.dll, SHA-256 5A79B6FBDE2944D66C762EDB2D099E634B2BE84C08808D48C8CB7A3897E233FD;
  • editor: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForgeEditor.dll, SHA-256 AB20BE8A2CBAF5FA4D9D2545AA7CC9DC058085741EA18B9FEAB26669A92F9F77.

After the performance runs, the cache-key-only hardening described below was rebuilt in E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_FinalFingerprint.log (Result: Succeeded, 8.87 s). Its runtime hash is 19190CB64AB894097A49C37B8DC5D43B67018A1BD624253473D4F710FBECB532 (the editor hash is unchanged). WormFinalFingerprintSmoke_20260914 then loaded that exact staged runtime, used the plugin DDC, and exited cleanly; the acceptance tables below remain measurements from the force-off build above, while this smoke verifies the final source tree after the key hardening.

Part 0 — module map and offline symbolizer

FVoxelStackSampler::StopAndWrite now joins the sampler first, writes the bounded raw CSV, then enumerates the current process with PSAPI (EnumProcessModules, GetModuleInformation, and GetModuleFileNameExW). The sibling VoxelStackModules_<label>_<pid>.tsv records module path, load base, image size, file size, last write FILETIME, and the CodeView PDB GUID/age/path when the loaded image exposes an RSDS record. The image identity read is a bounded PE-header read; the measured process does not initialize or call DbgHelp. The raw summary explicitly says symbolization: deferred and dbghelp_in_measured_process: no.

-run=VoxelForgeExplore -symbolizestacks=<csv> is now an editor-only post-exit commandlet. It loads the sibling module map, checks recorded file size and timestamp, maps each PC to module and RVA, loads only the modules needed by the CSV into DbgHelp, resolves functions and source lines, and queries inline frames. It writes a resolved-PC TSV and the former all-LOD, LOD0, and LOD1+ exclusive-function, inclusive-function, and source-line tables. DbgHelp is linked by VoxelForgeEditor only.

The fresh final cheap moving sampler run was WormFinalForceOffBuildSamplerOnMoving_20260914. It completed cleanly with 1,521 LOD0 samples, request-to-ready p50/p95 0.062287 / 0.135633 s, generation p50/p95 0.054268 / 0.106542 s, and 113.578722 worker seconds. Its artifacts are:

  • raw CSV: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSamples_game_26772.csv;
  • module map: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackModules_game_26772.tsv;
  • raw summary: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSummary_game_26772.txt;
  • resolved PCs: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackResolved_game_26772.tsv;
  • offline summary: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSummaryOffline_game_26772.txt.

The offline pass completed with 733 recorded modules, 10 needed and loaded, zero identity mismatches, 109,593 samples (70,968 LOD0 and 38,625 LOD1+), 1,879,380 frame slots, 993,473 resolved frames, 6,714 inline symbols, 7,795 mapped unique PCs, and zero unmapped PCs. The unknown-frame count is 885,907 and is retained as an explicit table row. The exact moving proof (WormFinalMovingSamplerExactProof_20260914 plus its offline pass) independently completed with zero identity mismatches as well. The post-exit retry was WormFinalForceOffBuildSamplerOfflineRetry_20260914; its first direct attempt is recorded as a failed launch below because it omitted the writable local DDC arguments.

The LOD0 exclusive identities in the fresh offline table match the old in-process exact configuration: GetDensityWithParams, GetDensityAt, Sqrt, SmoothMin, FChunkSDFSpatialIndex::GetRange, VF_ProjectNativePassageFloorUncached, VF_ProjectTunnelSegmentXY, VF_EvaluateSweptTunnelChain, EvaluateTunnelCoreWorld, and ProjectWalkableTunnelFloor. Counts differ because these are separate moving reservoirs; the function/source identities and table shape are the comparison.

The planted-cost proof used WormSamplerPlantGenerator_20260914 and WormSamplerPlantGeneratorOffline_20260914. The post-exit map for game_22152 contained five resolved VoxelWormField::RunSampleStacksPlant() rows, all module identities matched, and all planted PCs mapped. The two earlier plant attempts (WormSamplerPlantOffline_20260914 and WormSamplerPlantLongOffline_20260914) completed but were inconclusive because the hook was placed where it was optimized away from the captured stack. The plant was then removed; a source and harness search has no RunSampleStacksPlant or SampleStacksPlant match.

The final disabled sampler proof used WormFinalOffSampler_20260914 followed by WormFinalOffSymbolize_20260914. It produced 1,992 untagged commandlet samples (the commandlet has no generation-task LOD tag) and zero resolved rows containing Worm, which is the required zero-worm-frame result for the disabled configuration.

Part 1 — asset-owned off switch

UVoxelStrateDefinition now has bEnableWorms, defaulting to true, so existing assets retain their current behavior. It is deliberately not a member of FStrateGenerationParams; the VF_STRATE_PARAM_FIELDS list and its static assertions remain at 83 fields plus 8 bytes of padding. The manager resolves the asset switch after composer candidates, season vectors, and boundary blending, and the generation-parameter fingerprint includes the switch. Composer runtime overrides are also clamped before publication, so a roll cannot re-enable a disabled asset.

voxel.WormsForceOff=1 is present only as a development measurement override for the game harness: 0 uses the asset-owned value and 1 forces all resolved worm strengths to zero. It is resolved once per process, included in the generation fingerprint, and explicitly documented as world-changing; it is not the per-strate switch and must never vary between multiplayer peers or world regenerations.

With the resolved strength at zero, the fused evaluator does not enter the worm block or its timer; the op-stack builder omits the worm source, an already-materialized source returns exact identity and zero carve bounds, and the interval/classifier paths do no worm evaluation. The same gate is applied to the recipe materializer and the composer override path.

The final post-hardening geometry proof is exact:

configuration geometry hash triangles player-fit walk-reachable connectivity
WormPostHardeningOff_20260914 (-wormsenabled=0) 70D310A4 74,672 20,856 10,917 Connected
WormPostHardeningZeroed_20260914 (-wormstrength=0) 70D310A4 74,672 20,856 10,917 Connected

Both runs also reported canonical_repeat_equal=true. The disabled asset path therefore matches the hand-zeroed control byte-for-byte at the exported geometry hash, while exceeding the required 20,830 / 10,909 capability gate.

Historical Part 2 — measured cheap field (reverted 2026-09-14)

The historical build selected voxel.WormNoiseMode=1: a deterministic scalar value-noise evaluation using the same worm coordinate mapping, threshold, N1 short-circuit, N2 offset, and strength contract. That selection was reverted after the ablation review. The current source is exact-only Perlin mode 0; voxel.WormNoiseMode and voxel.WormLatticeStep, their storage, and their switches no longer exist. The run names and measurements below are retained as historical evidence only.

The coarser lattice was measured rather than assumed. The first lattice implementation was much slower because of cache churn; after the fixed tile-window cache, it returned to roughly the exact cost but did not improve it. Representative static worker seconds were exact 33.10, lattice-2 initial 160.86, lattice-2 cache-fixed 33.78, lattice-4 cache-fixed 33.25, and exact block-skip 33.10. The lattice path was a bounded historical experiment and is not retained. The exact block skip is retained as a fail-closed exact-mode diagnostic; it is not used as a correctness or performance claim for value noise because its Perlin proof does not cover the changed field.

The capability and geometry candidates were:

candidate mode geometry hash triangles player-fit / reach result
WormExactCurrentExplore_20260914 exact, lattice 0 311CA42C 75,482 20,830 / 10,909 accepted control
WormLedgerLattice2_20260914 exact, lattice 2 5C9E0858 74,932 20,856 / 10,917 capability pass; no speed gain
WormLedgerLattice4_20260914 exact, lattice 4 E3EC3FAF 74,708 20,857 / 10,917 capability pass; no speed gain
WormCheapValue_20260914 value, lattice 0 — — 20,826 / 10,917 rejected: fit short by 4
WormCheapValueLattice2Explore_20260914 value, lattice 2 C47567A2 75,132 20,857 / 10,917 pass; no speed gain
WormCheapFastHashExplore_20260914 value, lattice 0 6204C7E6 75,956 20,851 / 10,917 selected

The historical selected mode changed the field, but the measured full-game gain was small rather than a claim of a dramatic speedup. In two interleaved static pairs, exact averaged 0.087128 / 0.148415 s request-to-ready p50/p95, 0.063042 / 0.105080 s generation p50/p95, and 33.213871 worker s; cheap averaged 0.087761 / 0.145897 s, 0.062863 / 0.106258 s, and 33.083774 worker s. In two interleaved moving pairs at 800 cm/s, exact averaged 0.060116 / 0.131752 s request-to-ready, 0.050910 / 0.104262 s generation, and 109.165600 worker s; cheap averaged 0.061533 / 0.133272 s, 0.052125 / 0.105495 s, and 111.492032 worker s. Thus cheap is a small static worker improvement and within noise there, but approximately 2.1% worse in moving worker seconds. That is the measured tradeoff for the field change, not an overclaim.

The explicit game-path switch-off/on measurement requested for Part 2 used the force-off override, with value-noise mode and no sampler. Static on averaged 0.085736 / 0.143135 s request-to-ready p50/p95, 0.062793 / 0.104333 s generation p50/p95, and 33.022549 worker s. Static off averaged 0.084559 / 0.136829 s, 0.061727 / 0.099843 s, and 32.218070 worker s. Moving on averaged 0.059974 / 0.132163 s request-to-ready, 0.051983 / 0.102972 s generation, and 109.244366 worker s; moving off averaged 0.058397 / 0.126581 s, 0.050210 / 0.098518 s, and 105.648779 worker s. These are two interleaved A/B runs per side, 343 static and 1,521 moving LOD0 samples per run, and all four had zero obsolete-tile aborts. Enabled worms therefore cost about 2.5% static and 3.4% moving worker time in this harness, while the selected cheap field's exact-versus- cheap comparison above measures the cost of changing the enabled field itself.

The final deterministic tile ledger used 64 tiles in z_then_y_then_x order. Exact A/B and cheap A/B each had zero per-tile triangle-count/hash differences. Exact versus selected cheap changed 29/64 tile hashes/counts (45.3125%); the changed tiles contained 69,625/75,482 exact triangles (92.2405%) and 70,099/75,956 cheap triangles (92.2890%), with a signed total of +474 triangles and an absolute per-tile triangle-count delta of 1,822. The triangle percentages are explicitly changed-tile coverage, not an assertion that individual triangles were matched across changed topologies.

The four final deterministic/acceptance exports were:

run pair per-tile differences hash / triangles player-fit / reach connectivity
WormFinalExactDetA_20260914 / WormFinalExactDetB_20260914 0 / 64 311CA42C / 75,482 20,830 / 10,909 Connected
WormFinalCheapDetA_20260914 / WormFinalCheapDetB_20260914 0 / 64 6204C7E6 / 75,956 20,851 / 10,917 Connected

The final fixed-camera LOD0 renders are 512×288 at -89.4815216,-104.9037323,-163.272038:

  • exact before: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\WormPostHardeningRenderBefore_20260914Out\render_02.png;
  • cheap after: E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\WormPostHardeningRenderAfter_20260914Out\render_02.png.

They show the same worm-rich passage with only small local wall/relief changes, consistent with the tile ledger. The preliminary final static pair WormFinalPerfStaticOffA_20260914 / WormFinalPerfStaticOnA_20260914 also completed, but both were accidentally launched with mode 1 and are excluded from the exact-versus-cheap averages.

Fresh moving sampler LOD0 top 20

The final post-hardening moving cheap run had 1,521 LOD0 samples, no obsolete tile aborts, and the following offline-resolved exclusive leaf table. Percentages use the 71,427 LOD0 samples in the offline reservoir:

# samples percent function
1 13,250 18.6704 GetDensityWithParams
2 3,632 5.1178 GetDensityAt
3 3,351 4.7218 unknown
4 2,750 3.8750 Sqrt
5 2,266 3.1930 SmoothMin
6 2,066 2.9112 FChunkSDFSpatialIndex::GetRange
7 1,708 2.4067 VF_ProjectNativePassageFloorUncached
8 1,678 2.3644 VF_ProjectTunnelSegmentXY
9 1,540 2.1700 VF_EvaluateSweptTunnelChain
10 1,360 1.9164 EvaluateTunnelCoreWorld lambda
11 1,267 1.7853 ProjectWalkableTunnelFloor
12 1,120 1.5782 EvaluateSDFCached lambda
13 1,116 1.5725 swept-chain lambda
14 1,035 1.4584 IsFiniteFast
15 875 1.2330 IsFinite
16 874 1.2315 GenerateMesh
17 842 1.1865 EvaluateModifierSDF
18 832 1.1724 DistanceSquaredToAabb
19 819 1.1540 FScopedTimer::End
20 789 1.1118 UsesOperatorStackForChunk

Complete current-round launch ledger

The existing block-skip ledger above remains the record for the earlier WormSkip* launches. This table adds the harness validation and every launch made for this off-switch/cheap-field round, including invalidated, inconclusive, failed, and retried launches. A PASS here means the process exited cleanly and produced its stated artifact; a candidate can still be rejected by a capability or comparison gate.

launch outcome
HarnessFixBuild_20260914 PASS; harness/build validation completed.
HarnessFixSamplerSmoke_20260914 PASS; sampler-on static smoke, clean exit.
HarnessFixSamplerSmokeRetry_20260914 PASS; sampler-on static retry, clean exit.
HarnessFixSamplerSmokeFinal_20260914 PASS; sampler-on static final smoke, clean exit.
HarnessFix01SamplerOnStatic.log PASS; sampler-on static.
HarnessFix02SamplerOnMoving.log PASS; sampler-on moving, 64 m movement.
HarnessFix03SamplerOnStatic.log PASS; sampler-on static.
HarnessFix04SamplerOnMoving.log PASS; sampler-on moving, 64 m movement.
HarnessFix05SamplerOnStatic.log PASS; sampler-on static.
HarnessFix06SamplerOffMoving.log PASS; sampler-off moving; one obsolete-tile abort was recorded by the stress session.
HarnessFix07SamplerOffStatic.log PASS; sampler-off static.
HarnessFix08SamplerOnMoving.log PASS; sampler-on moving.
HarnessFix09SamplerOffMoving.log PASS; sampler-off moving; nine obsolete-tile aborts were recorded by the stress session.
HarnessFix10SamplerOnStatic.log PASS; sampler-on static.
HarnessFixExport_20260914 PASS; export commandlet exited 0.
WormOnExact_20260914 PASS; exact export-only baseline, hash 07C14005, 153,346 triangles.
WormOffSwitch_20260914 PASS; disabled switch, hash 70D310A4, 74,672 triangles, 20,856 / 10,917, Connected.
WormZeroedControl_20260914 PASS; hand-zeroed control, same hash 70D310A4, 74,672 triangles.
WormOfflineSamplerOn_20260914 PASS; fresh exact sampler-on game run.
OfflineSymbolizeWormSampler_20260914 PASS; post-exit exact CSV resolved; 733 modules, zero identity mismatches.
WormLedgerExact_20260914 PASS; exact ledger candidate, 20,830 / 10,909, Connected.
WormLedgerLattice2_20260914 PASS; exact lattice-2 candidate.
WormLedgerLattice4_20260914 PASS; exact lattice-4 candidate.
WormLatticeExactStaticA_20260914 PASS; 343 LOD0 samples, worker 33.102516 s.
WormLattice2StaticA_20260914 PASS process; invalidated as a candidate after 160.860434 worker s and p95 generation 1.036767 s.
WormLattice2StaticCacheFixA_20260914 PASS process; invalidated partial cache experiment, 189 samples and 209.142420 worker s.
WormLattice2StaticCacheFixB_20260914 PASS; cache-fixed lattice-2 rerun, worker 33.779886 s.
WormLattice4StaticCacheFixA_20260914 PASS; cache-fixed lattice-4, worker 33.252895 s.
WormLattice2StaticN2CacheA_20260914 PASS; N2-cache experiment, worker 33.226479 s.
WormBlockSkipStaticProbe_20260914 PASS; exact block-skip probe, worker 33.099186 s.
WormLattice2StaticN1CacheA_20260914 PASS; N1-cache experiment, worker 33.618430 s.
WormLedgerN1Exact_20260914 PASS; exact N1 ledger candidate.
WormLedgerN1Lattice2_20260914 PASS; lattice-2 N1 ledger candidate.
WormCheapValue_20260914 PASS process; candidate rejected because player-fit was 20,826.
WormCheapValueStaticA_20260914 PASS; value-noise static profile, worker 32.551710 s.
WormCheapValueLattice2StaticA_20260914 PASS; value-noise lattice-2 profile, worker 33.814655 s.
WormCheapValueLattice2Explore_20260914 PASS; capability 20,857 / 10,917, Connected.
WormCheapValue098Explore_20260914 PASS process; candidate fit 20,821, rejected.
WormCheapValue102Explore_20260914 PASS process; candidate fit 20,827, rejected.
WormCheapValue110Explore_20260914 PASS process; candidate fit 20,828, rejected.
WormCheapFastHashExplore_20260914 PASS; selected cheap field, hash 6204C7E6, 75,956 triangles, 20,851 / 10,917, Connected.
WormExactCurrentExplore_20260914 PASS; selected exact control, hash 311CA42C, 75,482 triangles, 20,830 / 10,909, Connected.
WormPerfStaticExactA_20260914 PASS; preliminary exact static A.
WormPerfStaticCheapA_20260914 PASS; preliminary cheap static A.
WormPerfStaticExactB_20260914 PASS; preliminary exact static B.
WormPerfStaticCheapB_20260914 PASS; preliminary cheap static B.
WormSamplerPlant_20260914 PASS process; first planted profile, proof inconclusive.
WormSamplerPlantOffline_20260914 PASS process; first offline planted pass, no named plant row.
WormSamplerPlantLong_20260914 PASS process; longer planted profile, proof inconclusive.
WormSamplerPlantLongOffline_20260914 PASS process; longer offline pass, no named plant row.
WormSamplerPlantGenerator_20260914 PASS; generator-level planted profile.
WormSamplerPlantGeneratorOffline_20260914 PASS; five named plant rows resolved; proof accepted before plant removal.
WormFinalOffSampler_20260914 PASS; disabled sampler-on commandlet, zero worm rows after symbolization.
WormFinalOffSymbolize_20260914 PASS; post-exit disabled CSV resolved.
WormFinalOffSwitch_20260914 PASS; disabled geometry/capability proof.
WormFinalZeroedControl_20260914 PASS; zeroed-parameter control, exact geometry match.
WormFinalExactDetA_20260914 PASS; exact determinism A.
WormFinalExactDetB_20260914 PASS; exact determinism B.
WormFinalCheapDetA_20260914 PASS; cheap determinism A.
WormFinalCheapDetB_20260914 PASS; cheap determinism B.
WormFinalPerfStaticOffA_20260914 PASS process; preliminary pair member, but launched with cheap mode.
WormFinalPerfStaticOnA_20260914 PASS process; preliminary pair member, also cheap mode, excluded from comparison.
WormFinalPerfStaticWormsOnA_20260914 PASS; explicit game-path worms-on static A (WormsForceOff=0).
WormFinalPerfStaticWormsOffA_20260914 PASS; explicit game-path worms-off static A (WormsForceOff=1).
WormFinalPerfStaticWormsOnB_20260914 PASS; explicit game-path worms-on static B (WormsForceOff=0).
WormFinalPerfStaticWormsOffB_20260914 PASS; explicit game-path worms-off static B (WormsForceOff=1).
WormFinalPerfStaticExactA_20260914 PASS; final exact static A.
WormFinalPerfStaticCheapA_20260914 PASS; final cheap static A.
WormFinalPerfStaticExactB_20260914 PASS; final exact static B.
WormFinalPerfStaticCheapB_20260914 PASS; final cheap static B.
initial WormFinalPerfMovingExactA_20260914 wrapper launch FAILED harness shutdown after the graceful-close timeout; no crash folder or reporter, and the preserved backup log is WormFinalPerfMovingExactA_20260914-backup-2026.09.14-05.14.32.log.
retried WormFinalPerfMovingExactA_20260914 PASS; rerun used the runtime movement/exit path, 1,521 LOD0 samples.
WormFinalPerfMovingCheapA_20260914 PASS; final cheap moving A.
WormFinalPerfMovingExactB_20260914 PASS; final exact moving B.
WormFinalPerfMovingCheapB_20260914 PASS; final cheap moving B.
WormFinalPerfMovingWormsOnA_20260914 PASS; explicit game-path worms-on moving A (WormsForceOff=0).
WormFinalPerfMovingWormsOffA_20260914 PASS; explicit game-path worms-off moving A (WormsForceOff=1).
WormFinalPerfMovingWormsOnB_20260914 PASS; explicit game-path worms-on moving B (WormsForceOff=0).
WormFinalPerfMovingWormsOffB_20260914 PASS; explicit game-path worms-off moving B (WormsForceOff=1).
WormFinalMovingSamplerOn_20260914 PASS; pre-hardening cheap sampler-on moving profile.
WormFinalMovingSamplerOffline_20260914 PASS; pre-hardening post-exit symbolization.
WormFinalRenderBefore_20260914 PASS; exact fixed-camera render.
WormFinalRenderAfter_20260914 PASS; cheap fixed-camera render.
WormPostHardeningOff_20260914 PASS; final disabled geometry proof.
WormPostHardeningZeroed_20260914 PASS; final zeroed-control geometry proof.
WormFinalMovingSamplerOnPostHardening_20260914 PASS; final cheap sampler-on moving profile, 1,521 LOD0 samples, 800 cm/s, no obsolete aborts.
WormFinalMovingSamplerOfflinePostHardening_20260914 PASS; final cheap offline symbolization, zero module identity mismatches.
WormFinalMovingSamplerExactProof_20260914 PASS; final exact sampler-on comparison profile.
WormFinalMovingSamplerExactProofOffline_20260914 PASS; final exact offline symbolization, zero module identity mismatches.
WormPostHardeningRenderBefore_20260914 PASS; final exact render refresh.
WormPostHardeningRenderAfter_20260914 PASS; final cheap render refresh.
PerfSampledBuild_FinalForceOff.log PASS; final force-off wiring build, Result: Succeeded.
WormFinalForceOffBuildSamplerOnMoving_20260914 PASS; final sampler-on moving run on the force-off build, 1,521 LOD0 samples, no obsolete aborts.
WormFinalForceOffBuildSamplerOffline_20260914 FAILED; first direct post-exit symbolizer attempt stopped on UE 5.7's fatal no-writable-cache-graph DDC configuration; preserved log/output, no code failure.
WormFinalForceOffBuildSamplerOfflineRetry_20260914 PASS; retried with writable Saved\ZenData/Saved\DDC, 733 modules, 10 loaded, zero identity mismatches, all 7,795 unique PCs mapped.
PerfSampledBuild_FinalFingerprint.log PASS; final cache-key hardening rebuild, Result: Succeeded.
WormFinalFingerprintSmoke_20260914 PASS; post-hardening clean game smoke, exact staged runtime verified, writable DDC, zero crash folders/reporters.

Cheap-worm revert and TunnelNetwork ablation round — 2026-09-14

This section supersedes the historical cheap-worm selection above. The earlier value-noise experiment changed the field without producing a gain: static movement was within noise and the moving worker result was about 2.1% slower. The production/default path therefore keeps exact Perlin.

Revert and exactness

  • voxel.WormNoiseMode and voxel.WormLatticeStep, their storage, and their switches are removed.
  • VoxelWormField now has one evaluation path: exact Perlin, with the existing N1 short circuit.
  • The exact block skip remains available as voxel.WormBlockSkip, default 0. The asset-owned bEnableWorms and the measurement-only voxel.WormsForceOff remain.
  • The generation fingerprint still hashes bEnableWorms and WormsForceOff, and now also hashes the resolved TunnelNetwork ablation mask.
  • The new ablation controls are development-only, resolve once per process, are world-changing, and are never gameplay or multiplayer switches. A nonzero bit means force that stage off; zero means all stages on. Shipping builds resolve the mask to zero.

The prescribed UBT command from this file was used after synchronizing the staged host copy under the plugin Saved directory. The final build log is E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_Ablation.log and reports Result: Succeeded. The loaded runtime was E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForge.dll with SHA-256 A70528AC82641D7D610D8BA9497D0322B1EBDE22978B1E826A97FC4C0D038149. The editor module SHA-256 was 8EA2A71BB29F828C5DE7559EC200AC4E86CF61F7DB5C8470406208073E22456D.

The two default commandlets both used E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\DDC and E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\ZenData:

  • AblationDefaultExact_20260914Out: mask 0; status ok; canonical 128^3 export SHA-256 B3E5F4C398DD0547C6C55F415872058246D4A292C2F0D636EE1CD0829DE9B377; geometry CRC 07C14005; 82,273 vertices and 153,346 triangles.
  • AblationDefaultCapability_20260914Out: mask 0; geometry CRC 311CA42C; 75,482 triangles; player_fit_volume_cells 20,830; reachable_player_fit_cells 10,909; walk-only reachable 10,909; Connected; deterministic JSON.

The current game startup trace E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\AblationDefaultStaticTrace_20260914.startup.jsonl was compared by tile key to E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\NextHeadStaticTrace_20260913.startup.jsonl: 841 versus 841 tile records, zero missing, zero extra, zero verdict/empty/triangle mismatches, and identical all-tile and LOD0 triangle totals of 669,834 and 325,204. The current trace finished with desired_set_satisfied_and_queue_drained and the loaded runtime hash above.

Ablation controls

bit CVar stage forced off
0x0001 voxel.TunnelAblateCaveWarp the three cave-warp Perlin calls; CaveWarpStrength resolves to zero
0x0002 voxel.TunnelAblateDetailOps detail noise, roughness, and terrain operations
0x0004 voxel.TunnelAblateRoomSDF room SDF and room-SDF joins in EvaluateSDFCached
0x0008 voxel.TunnelAblateTunnelSDF tunnel SDF in EvaluateSDFCached
0x0010 voxel.TunnelAblateTunnelCore EvaluateTunnelCoreWorld, support/core SDF work, and its GetDensityAt tail
0x0020 voxel.TunnelAblatePassageCarving EvaluateModifierSDF and passage carving
0x0040 voxel.TunnelAblatePassageStructuralPosts passage structural posts and legacy structural floor support
0x0080 voxel.TunnelAblateNativeFloor native floor composition
0x0100 voxel.TunnelAblateDisturbances ApplyDisturbances
0x0200 voxel.TunnelAblateOriginSpine origin spine
0x0400 voxel.TunnelAblateBoundarySeal boundary seal
0x0800 voxel.TunnelAblateLandingPosts landing posts and landing-floor posts
0x1000 voxel.TunnelAblateXYEdgeSeal XY edge seal
0x2000 voxel.TunnelAblatePitChimneySDF pit and chimney SDF work

Each override is applied in the fused evaluator, operator-stack source/classifier paths, cached SDF/core paths, and modifier/floor paths where that stage exists. The resolved mask is emitted in the explore JSON and is part of the generation fingerprint. This is an ablation instrument, not a candidate field.

Measurement method and noise

All game runs were sampler-off, NullRHI, operator block on, fused evaluator on, outer classifier off, and used a 15-second clean session. Static runs produced 343 LOD0 samples and 841 applied tiles. Each static row has two off runs; the two all-on static baselines are shared and interleaved across the two passes. The all-on static mean was 33.064458 worker seconds, generation p50 0.064657 s, generation p95 0.105786 s. Baseline worker range was 0.27%; baseline generation-p95 range was 1.62%.

The table reports the mean of the two off runs, the saving against that all-on mean, and the off-run worker range as a compact noise indicator. Positive saving means the off run used fewer worker seconds. All rows completed 841 tiles with zero obsolete aborts.

component removed runs off worker s saving s (%) off generation p50 s off generation p95 s off worker range
tunnel SDF 2 29.304 3.760 (11.37%) 0.060813 0.084811 0.53%
cave warp 2 29.654 3.411 (10.31%) 0.056881 0.098260 2.03%
passage carving 2 29.730 3.334 (10.08%) 0.056336 0.096892 0.88%
landing posts 2 29.800 3.264 (9.87%) 0.056776 0.097884 1.33%
passage structural posts 2 31.205 1.859 (5.62%) 0.060143 0.099723 0.50%
worms 2 32.265 0.799 (2.42%) 0.064232 0.099511 0.83%
native floor 2 32.347 0.718 (2.17%) 0.063590 0.103897 0.45%
origin spine 2 32.529 0.535 (1.62%) 0.063174 0.102446 0.61%
room SDF 2 32.542 0.522 (1.58%) 0.064194 0.100999 0.90%
pit/chimney SDF 2 32.689 0.375 (1.13%) 0.064599 0.103472 0.26%
boundary seal 2 32.814 0.251 (0.76%) 0.064863 0.104105 1.21%
detail ops 2 32.838 0.227 (0.69%) 0.065330 0.100864 0.69%
XY edge seal 2 32.901 0.164 (0.49%) 0.065021 0.104411 1.30%
disturbances 2 33.208 -0.144 (-0.43%) 0.065100 0.106342 0.53%
tunnel core 2 95.468 -62.404 (-188.73%) 0.060597 0.098965 0.07%

The field was intentionally allowed to change. For example, tunnel-SDF off produced 643,388 triangles, cave-warp off 655,726, passage-carving off 654,932, and tunnel-core off 655,654, against the all-on 669,834 static triangles. Some low-cost rows retained the same mesh totals in this window; they are still world-changing overrides and are not correctness candidates.

The sum of positive standalone static savings is 19.218608 worker seconds, 58.125% of the 33.064458-second baseline, leaving 13.845850 seconds (41.875%) as shared/unattributed cost in this ablation accounting. The signed sum over every row is -43.329105 seconds because tunnel-core removal is a large regression caused by the changed field; the rows are not additive and this is why the signed sum is not a speedup prediction.

Moving confirmation covered the five largest positive static savers. Each row has two fresh all-on baselines interleaved with two off runs. Movement began at 3 seconds and ran at 800 cm/s; each run produced 882 LOD0 samples and 1,680 applied tiles, with zero obsolete aborts.

component removed runs all-on worker s off worker s saving s (%) all-on gen p50/p95 s off gen p50/p95 s baseline/off worker range
tunnel SDF 2+2 72.218 63.847 8.371 (11.59%) 0.063238 / 0.104331 0.060117 / 0.082540 0.71% / 0.87%
cave warp 2+2 72.810 65.010 7.800 (10.71%) 0.064610 / 0.105986 0.055398 / 0.094423 0.46% / 1.14%
landing posts 2+2 72.556 64.763 7.794 (10.74%) 0.063820 / 0.105220 0.055539 / 0.096228 1.13% / 2.36%
passage carving 2+2 72.043 64.552 7.492 (10.40%) 0.063507 / 0.104761 0.055276 / 0.096373 1.07% / 1.72%
passage structural posts 2+2 72.417 68.093 4.324 (5.97%) 0.063779 / 0.104611 0.059068 / 0.101321 0.14% / 0.83%

The moving standalone saving sum is 35.780708 worker seconds. Because these are five separate ablations with separate baseline pairs, it is not a combined-speedup forecast; against the mean 72.409-second baseline per row it is 49.4%, leaving 36.628 seconds of shared/unattributed work.

Ranking and plausible cheaper forms

  1. Tunnel SDF — the largest measured real cost in both paths. A plausible exact optimization is sharing one cached swept-tunnel result between EvaluateSDFCached, tunnel-core metadata, and the final density tail, while preserving the existing evaluation order and float values. That would be field-preserving. A lower-resolution or analytic approximation would be field-changing and would need a fresh capability/export gate.
  2. Cave warp — the three Perlin calls are expensive in the ablation. Exact reuse of the same coordinates/results across the evaluator, cached graph, and op-stack paths is plausible and field-preserving. Reducing frequency or replacing the noise is field-changing.
  3. Passage carving — exact memoization/reuse of modifier SDF and passage candidate results across EvaluateModifierSDF, ApplyPassageCarvingOnly, and the structural/floor queries is plausible and field-preserving. Simplifying the carving geometry is field-changing.
  4. Landing posts — exact per-tile reuse of landing/post/floor metadata is plausible and field-preserving. Removing or thinning landing posts is field-changing.
  5. Passage structural posts — exact reuse of structural-post SDF/metadata is plausible and field-preserving. Removing or merging posts is field-changing.

Worms is sixth at 2.42% static and is now kept exact because the cheap alternatives had no gain. Native floor and origin spine follow at 2.17% and 1.62%. Room SDF, detail ops, seals, disturbances, and pit/chimney work are not attractive next-round targets on these measurements. Tunnel-core removal is explicitly not a candidate: it increased worker time by about 2.9x. These ablations explain why the old 19.4% line-level worm figure and the proposed tunnel-core line targets were unsafe attribution guides.

Complete launch ledger for this round

All game and commandlet logs below are under E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved. Every commandlet used the writable DDC path E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\DDC. No offline symbolizer was needed or launched in this round. Every Unreal process that ran exited 0, verified the loaded runtime SHA-256 A70528AC82641D7D610D8BA9497D0322B1EBDE22978B1E826A97FC4C0D038149, and had no crash or retry; the two parser-only attempts below launched no Unreal process. Peak observed private memory was approximately 1.54–1.60 GiB per process, with no runaway growth.

launch outcome
initial prescribed staged build UP-TO-DATE report; staged host was stale, so no measurement was taken
PerfSampledBuild_Ablation PASS; prescribed UBT build, Result: Succeeded
AblationDefaultExact_20260914 PASS; canonical export exact
AblationDefaultCapability_20260914 PASS; 311CA42C, 75,482 triangles, 20,830 / 10,909
static ablation batch launch 1 FAILED before process start; PowerShell parser error from a missing DDC-argument quote
static ablation batch launch 2 FAILED before process start; same quoting error; no Unreal process
AblationStaticBaseA_20260914 PASS
AblationStaticBaseB_20260914 PASS
AblationStaticCaveWarpA_20260914 PASS
AblationStaticCaveWarpB_20260914 PASS
AblationStaticDetailOpsA_20260914 PASS
AblationStaticDetailOpsB_20260914 PASS
AblationStaticRoomSDFA_20260914 PASS
AblationStaticRoomSDFB_20260914 PASS
AblationStaticTunnelSDFA_20260914 PASS
AblationStaticTunnelSDFB_20260914 PASS
AblationStaticTunnelCoreA_20260914 PASS; 95.436091 worker seconds
AblationStaticTunnelCoreB_20260914 PASS; 95.500636 worker seconds
AblationStaticPassageCarvingA_20260914 PASS
AblationStaticPassageCarvingB_20260914 PASS
AblationStaticPassageStructuralPostsA_20260914 PASS
AblationStaticPassageStructuralPostsB_20260914 PASS
AblationStaticNativeFloorA_20260914 PASS
AblationStaticNativeFloorB_20260914 PASS
AblationStaticDisturbancesA_20260914 PASS
AblationStaticDisturbancesB_20260914 PASS
AblationStaticOriginSpineA_20260914 PASS
AblationStaticOriginSpineB_20260914 PASS
AblationStaticBoundarySealA_20260914 PASS
AblationStaticBoundarySealB_20260914 PASS
AblationStaticLandingPostsA_20260914 PASS
AblationStaticLandingPostsB_20260914 PASS
AblationStaticXYEdgeSealA_20260914 PASS
AblationStaticXYEdgeSealB_20260914 PASS
AblationStaticPitChimneySDFA_20260914 PASS
AblationStaticPitChimneySDFB_20260914 PASS
AblationStaticWormsOffA_20260914 PASS
AblationStaticWormsOffB_20260914 PASS
AblationMovingTunnelSDFBaseA_20260914 PASS
AblationMovingTunnelSDFA_20260914 PASS
AblationMovingTunnelSDFBaseB_20260914 PASS
AblationMovingTunnelSDFB_20260914 PASS
AblationMovingCaveWarpBaseA_20260914 PASS
AblationMovingCaveWarpA_20260914 PASS
AblationMovingCaveWarpBaseB_20260914 PASS
AblationMovingCaveWarpB_20260914 PASS
AblationMovingPassageCarvingBaseA_20260914 PASS
AblationMovingPassageCarvingA_20260914 PASS
AblationMovingPassageCarvingBaseB_20260914 PASS
AblationMovingPassageCarvingB_20260914 PASS
AblationMovingLandingPostsBaseA_20260914 PASS
AblationMovingLandingPostsA_20260914 PASS
AblationMovingLandingPostsBaseB_20260914 PASS
AblationMovingLandingPostsB_20260914 PASS
AblationMovingPassageStructuralPostsBaseA_20260914 PASS
AblationMovingPassageStructuralPostsA_20260914 PASS
AblationMovingPassageStructuralPostsBaseB_20260914 PASS
AblationMovingPassageStructuralPostsB_20260914 PASS
AblationDefaultStaticTrace_20260914 PASS; current 841-tile trace, exact keyed comparison

No .uasset was edited. Engine source and binaries were not modified. No commit, push, or stash was performed.

Current-tip cost re-rank — 2026-09-15 (1d824aa)

This is a measurement-only round on the committed experimental tip. Generation source, configuration assets, and .uasset files were not edited. The ignored staged host outputs under E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost were rebuilt as part of the measurement; no commit, push, or stash was performed.

Build and loaded runtime

The owner/editor check was clear before the build and before every Unreal launch. The prescribed build completed successfully:

dotnet "E:\Program Files\Epic Games\UE_5.7\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" UnrealEditor Win64 Development "-Project=E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\HostProject.uproject" -WaitMutex -FromMsBuild -architecture=x64 -NoUBA "-Log=E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_ReRank_20260915.log"
Result: Succeeded; Target is up to date; total execution time 1.31 s.

The runtime loaded by every game and commandlet process was E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Binaries\Win64\UnrealEditor-VoxelForge.dll, SHA-256 70F5F69DCCBCE28AA0C1AC89E92040EBDB78FBC58F1F5FE07BD958F3C38DF0B4. The editor module built alongside it was SHA-256 C2081DB9B14D7E43A31A218200064FA941643E40DEAA9372E9067E72B6D966C6. Each launched process observed the runtime module at that staged path and matched the runtime hash. The build log is E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\PerfSampledBuild_ReRank_20260915.log.

Method and current static table

The game command line was the same as the 6ccf371 ablation method: staged HostProject, -nullrhi, operator block on, fused evaluator on, outer classifier off, tile cache and spatial index on, -voxel.TestExitSeconds=15, sampler off, writable E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\DDC and Saved\ZenData, and an absolute -abslog= path. Static sessions generated 343 LOD0 samples and 841 applied tiles with zero obsolete aborts. The two all-on static baselines were shared by every row and were run before the remove-one pairs: 29.368018 s and 29.229716 s worker time, mean 29.298867 s; baseline generation p50/p95 was 0.053218 / 0.095652 s.

The table reports the mean of two off runs, the saving against that shared all-on mean, and the changed-field triangle total. The percentage is the signed standalone worker saving share; rows are not additive, and a field-changing ablation is not a production speedup claim.

component removed control off worker s saving s (%) off generation p50/p95 s triangles A/B
tunnel SDF 0x0008 25.595623 3.703244 (12.64%) 0.050373 / 0.073456 643424 / 643424
cave warp 0x0001 27.340968 1.957899 (6.68%) 0.048299 / 0.092184 655734 / 655734
passage carving 0x0020 26.639516 2.659351 (9.08%) 0.046557 / 0.090078 655000 / 655000
landing posts 0x0800 29.047863 0.251005 (0.86%) 0.052757 / 0.095932 669902 / 669902
passage structural posts 0x0040 27.352201 1.946666 (6.64%) 0.048393 / 0.089721 669902 / 669902
worms voxel.WormsForceOff=1 28.242978 1.055889 (3.60%) 0.052127 / 0.091638 662342 / 662342
native floor 0x0080 28.302872 0.995995 (3.40%) 0.051091 / 0.093253 671138 / 671138
origin spine 0x0200 28.857599 0.441268 (1.51%) 0.051791 / 0.095496 670350 / 670350
room SDF 0x0004 28.055889 1.242978 (4.24%) 0.050986 / 0.090057 535220 / 535220
pit/chimney SDF 0x2000 29.146807 0.152060 (0.52%) 0.052071 / 0.098243 669902 / 669902
boundary seal 0x0400 29.447356 -0.148489 (-0.51%) 0.052806 / 0.094607 669902 / 669902
detail ops 0x0002 29.957673 -0.658805 (-2.25%) 0.054265 / 0.095532 666972 / 666972
XY edge seal 0x1000 29.071525 0.227342 (0.78%) 0.052822 / 0.097379 669902 / 669902
disturbances 0x0100 28.832774 0.466093 (1.59%) 0.052326 / 0.094430 669902 / 669902
tunnel core 0x0010 23.192249 6.106618 (20.84%) 0.046526 / 0.068197 655666 / 655666

All 14 voxel.TunnelAblate* bits were run twice. The extra worms row is included so this table remains row-comparable with the 6ccf371 table; worms is controlled by voxel.WormsForceOff, not by a TunnelAblate* bit. The current all-on field is 669902 triangles in this window. Different triangle counts show that these overrides are field-changing; equal triangle totals do not prove field identity.

Static share against 6ccf371

These are standalone remove-one saving shares, not inclusive profiler shares. Now uses the 29.298867 s current all-on mean above. The historical column is copied from the 6ccf371 remove-one table, whose all-on mean was 33.064458 s. Change is percentage points.

component share now share at 6ccf371 change
tunnel SDF 12.64% 11.37% +1.27 pp
cave warp 6.68% 10.31% -3.63 pp
passage carving 9.08% 10.08% -1.00 pp
landing posts 0.86% 9.87% -9.01 pp
passage structural posts 6.64% 5.62% +1.02 pp
worms 3.60% 2.42% +1.18 pp
native floor 3.40% 2.17% +1.23 pp
origin spine 1.51% 1.62% -0.11 pp
room SDF 4.24% 1.58% +2.66 pp
pit/chimney SDF 0.52% 1.13% -0.61 pp
boundary seal -0.51% 0.76% -1.27 pp
detail ops -2.25% 0.69% -2.94 pp
XY edge seal 0.78% 0.49% +0.29 pp
disturbances 1.59% -0.43% +2.02 pp
tunnel core 20.84% -188.73% +209.57 pp

The old tunnel-core row was a changed-field regression and is not a valid old cost estimate. The current tunnel-core saving is likewise a changed-field diagnostic, not permission to remove the stage. Summing only positive current standalone savings gives 21.206406 worker seconds, or 72.3796% of the current static baseline. The remaining 27.6204%, 8.092461 s, is the current unattributed/shared cost in this ablation accounting. The signed rows are not a combined speedup forecast.

Moving confirmation for the current top five

Moving sessions used the same switches, began at 3 s, ran at 800 cm/s, and produced 882 LOD0 samples and 1680 applied tiles per process with zero obsolete aborts. Each row has two fresh all-on baselines interleaved with two remove-one runs. The worker-share column is against that row's own all-on mean.

component removed all-on worker s off worker s saving s (%) all-on gen p50/p95 s off gen p50/p95 s off triangles
tunnel core 62.803210 50.841671 11.961539 (19.05%) 0.051890 / 0.094224 0.045179 / 0.071081 1310998 / 1310998
tunnel SDF 62.793729 54.886260 7.907468 (12.59%) 0.051844 / 0.095083 0.049000 / 0.074435 1274742 / 1274742
passage carving 63.103260 56.867475 6.235784 (9.88%) 0.051921 / 0.094814 0.045053 / 0.089081 1315772 / 1315772
cave warp 63.121345 59.108887 4.012458 (6.36%) 0.052307 / 0.094549 0.048029 / 0.091797 1354749 / 1354749
passage structural posts 63.000096 59.544697 3.455399 (5.48%) 0.052444 / 0.095416 0.048040 / 0.090804 1331550 / 1331550

The moving table confirms the current top five. Cave warp is materially below its old 10.71% moving share after the exact SIMD batching in 1d824aa; landing posts no longer belongs in the top five after the near-free reach-gated structural path.

Sampler-on moving hint and offline symbolization

One sampler-on moving run used -voxel.SampleStacks=1000, a 30 s session beginning at 5 s, 800 cm/s movement, and the same clean NullRHI command line. Its process result was 1521 LOD0 samples, 2807 applied tiles, 2315204 triangles, and 101.786811 worker seconds. The raw and offline artifacts are:

  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackSamples_game_21444.csv
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\VoxelStackModules_game_21444.tsv
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\BuildHost\HostProject\Plugins\VoxelForge\Saved\ReRankSamplerMovingOffline_20260915.txt
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\ReRankSamplerMovingOn_20260915.log
  • E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Saved\ReRankSamplerMovingOffline_20260915.log

The offline summary has 95308 samples with stacks: 62031 LOD0 and 33277 LOD1+. It loaded 9/9 needed modules, has zero module-identity mismatches, maps 7335/7335 PCs, and has zero untagged samples. The inclusive top 20s below are a hint only. The engine task wrappers dominate the top ranks; component claims are taken from the ablations above, not inferred from one source line.

All LOD inclusive top 20

rank samples share label function source
1 95306 99.9979% engine [Inline] Invoke() E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Templates\Invoke.h:47
2 95306 99.9979% engine [Inline] LowLevelTasks::FTask::Init lambda E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Async\Fundamental\Task.h:499
3 95306 99.9979% engine [Inline] TTaskDelegate::Call E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Async\Fundamental\TaskDelegate.h:162
4 95306 99.9979% engine [Inline] FTaskBase::Init lambda E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:180
5 95306 99.9979% engine TTaskDelegate::CallAndMove E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Async\Fundamental\TaskDelegate.h:171
6 95306 99.9979% engine FTaskBase::TryExecuteTask E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:518
7 95306 99.9979% engine TExecutableTaskBase::ExecuteTask E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:898
8 95306 99.9979% plugin AVoxelWorld::LoadTile lambda E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelWorld.cpp:4752
9 95305 99.9969% plugin AVoxelWorld::GenerateTileResult() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelWorld.cpp:5159
10 95094 99.7755% plugin UVoxelMarchingCubesMesher::GenerateMesh() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelMarchingCubesMesher.cpp:663
11 92346 96.8922% plugin UVoxelGenerator::GetDensityAt() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelGenerator.cpp:3263
12 58256 61.1239% plugin UVoxelGenerator::GetDensityWithParams() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelGenerator.cpp:4093
13 26070 27.3534% plugin VF_ForEachSpatialCandidate E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:1473
14 16321 17.1245% plugin VoxelCaveMorphology::EvaluateSDFCached() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:7847
15 12382 12.9916% plugin VF_EvaluateSweptTunnel() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:1070
16 12044 12.6369% plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:8032
17 11862 12.4460% plugin VF_EvaluateSweptTunnelChain() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:986
18 10781 11.3117% plugin EvaluateSDFCached lambda E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelCaveMorphology.cpp:7836
19 10562 11.0820% plugin UVoxelStrateManager::ApplyPassageCarvingOnly() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelStrateManager.cpp:2727
20 9904 10.3916% plugin EvaluateTunnelCoreWorld lambda E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelCaveMorphology.cpp:8025

LOD0 inclusive top 20

rank samples share label function source
1 62029 99.9968% engine [Inline] Invoke() E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Templates\Invoke.h:47
2 62029 99.9968% engine [Inline] FTask::Init lambda E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Async\Fundamental\Task.h:499
3 62029 99.9968% engine [Inline] TTaskDelegate::Call E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Async\Fundamental\TaskDelegate.h:162
4 62029 99.9968% engine [Inline] FTaskBase::Init lambda E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:180
5 62029 99.9968% engine TTaskDelegate::CallAndMove E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Async\Fundamental\TaskDelegate.h:171
6 62029 99.9968% engine FTaskBase::TryExecuteTask E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:518
7 62029 99.9968% engine TExecutableTaskBase::ExecuteTask E:\Program Files\Epic Games\UE_5.7\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:898
8 62029 99.9968% plugin AVoxelWorld::LoadTile lambda E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelWorld.cpp:4752
9 62028 99.9952% plugin AVoxelWorld::GenerateTileResult() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelWorld.cpp:5159
10 61915 99.8130% plugin UVoxelMarchingCubesMesher::GenerateMesh() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelMarchingCubesMesher.cpp:663
11 60168 96.9967% plugin UVoxelGenerator::GetDensityAt() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelGenerator.cpp:3263
12 39193 63.1829% plugin UVoxelGenerator::GetDensityWithParams() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelGenerator.cpp:4093
13 17762 28.6341% plugin VF_ForEachSpatialCandidate E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:1473
14 11212 18.0748% plugin VoxelCaveMorphology::EvaluateSDFCached() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:7847
15 8730 14.0736% plugin VF_EvaluateSweptTunnel() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:1070
16 8379 13.5078% plugin VF_EvaluateSweptTunnelChain() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelCaveMorphology.cpp:986
17 8346 13.4546% plugin VoxelCaveMorphology::EvaluateTunnelCoreWorld() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:8032
18 7523 12.1278% plugin EvaluateSDFCached lambda E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelCaveMorphology.cpp:7836
19 7135 11.5023% plugin UVoxelStrateManager::ApplyPassageCarvingOnly() E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelStrateManager.cpp:2727
20 6937 11.1831% plugin EvaluateTunnelCoreWorld lambda E:\Projet Unreal\VoxelM\Plugins\VoxelForge\Source\VoxelForge\Private\VoxelCaveMorphology.cpp:8025

The symbolizer is not an attribution instrument: inclusive rows overlap, and the sampler itself adds overhead. It supports the same shape as the ablation result (SDF, swept tunnel, core, and passage carving are visible), but any line-level statement must be confirmed by a remove-one row.

Next three targets

  1. Warped tunnel SDF + world-space tunnel core merge — field-changing. The current tunnel-core remove-one is the largest standalone result (20.84% static, 19.05% moving), and tunnel SDF is independently 12.64% / 12.59%. A plausible form is one warped tunnel/core representation that supplies the final density and core/floor metadata once. This changes the world-space core semantics, so it requires the capability/export gates (player-fit 20,830; walk-reachable 10,909), render review, and determinism checks. The two tunnel rows are not additive and are not a 33% forecast.
  2. Passage carving reuse — exact. The measured share is 9.08% static and 9.88% moving. A cheaper exact form is per-tile reuse of the existing passage candidate list and modifier-SDF result across EvaluateModifierSDF, carving, and floor/structural queries, preserving the current values and evaluation order. Any changed carving geometry or threshold is field-changing instead.
  3. Cave warp — exact. The remaining share is 6.68% static and 6.36% moving after the exact three-channel SIMD batch in 1d824aa. The next exact form is reuse of the already computed warp coordinates/results across the evaluator, cached graph, and operator-stack paths. A frequency, hash, or approximation change is field-changing. Passage structural posts are the next measured moving target at 5.48%, but their static worker share is 6.64% and remains a secondary option.

Complete launch ledger

Every actual launch below had an owner/editor check of zero before start, ran serially, streamed the log while active, exited 0, and loaded the expected runtime DLL unless stated otherwise. No log or generated artifact was deleted. The two wrapper-report errors after the sampler processes exited did not invalidate their already-written artifacts; the initial worms wrapper error did not start an Unreal process.

launch outcome
PerfSampledBuild_ReRank_20260915 PASS; UBT result succeeded, target up to date.
ReRankStaticBaseA_20260915 PASS; mask 0x00000000, 29.368018 worker s.
ReRankStaticBaseB_20260915 PASS; mask 0x00000000, 29.229716 worker s.
ReRankStaticCaveWarpA_20260915 PASS; mask 0x00000001.
ReRankStaticCaveWarpB_20260915 PASS; mask 0x00000001.
ReRankStaticDetailOpsA_20260915 PASS; mask 0x00000002.
ReRankStaticDetailOpsB_20260915 PASS; mask 0x00000002.
ReRankStaticRoomSDFA_20260915 PASS; mask 0x00000004.
ReRankStaticRoomSDFB_20260915 PASS; mask 0x00000004.
ReRankStaticTunnelSDFA_20260915 PASS; mask 0x00000008.
ReRankStaticTunnelSDFB_20260915 PASS; mask 0x00000008.
ReRankStaticTunnelCoreA_20260915 PASS; mask 0x00000010.
ReRankStaticTunnelCoreB_20260915 PASS; mask 0x00000010.
ReRankStaticPassageCarvingA_20260915 PASS; mask 0x00000020.
ReRankStaticPassageCarvingB_20260915 PASS; mask 0x00000020.
ReRankStaticPassageStructuralPostsA_20260915 PASS; mask 0x00000040.
ReRankStaticPassageStructuralPostsB_20260915 PASS; mask 0x00000040.
ReRankStaticNativeFloorA_20260915 PASS; mask 0x00000080.
ReRankStaticNativeFloorB_20260915 PASS; mask 0x00000080.
ReRankStaticDisturbancesA_20260915 PASS; mask 0x00000100.
ReRankStaticDisturbancesB_20260915 PASS; mask 0x00000100.
ReRankStaticOriginSpineA_20260915 PASS; mask 0x00000200.
ReRankStaticOriginSpineB_20260915 PASS; mask 0x00000200.
ReRankStaticBoundarySealA_20260915 PASS; mask 0x00000400.
ReRankStaticBoundarySealB_20260915 PASS; mask 0x00000400.
ReRankStaticLandingPostsA_20260915 PASS; mask 0x00000800.
ReRankStaticLandingPostsB_20260915 PASS; mask 0x00000800.
ReRankStaticXYEdgeSealA_20260915 PASS; mask 0x00001000.
ReRankStaticXYEdgeSealB_20260915 PASS; mask 0x00001000.
ReRankStaticPitChimneySDFA_20260915 PASS; mask 0x00002000.
ReRankStaticPitChimneySDFB_20260915 PASS; mask 0x00002000.
ReRankStaticWormsOffA_20260915 PASS; WormsForceOff=1, mask 0x00000000.
ReRankStaticWormsOffB_20260915 PASS; WormsForceOff=1, mask 0x00000000.
ReRankMovingTunnelCoreBaseA_20260915 PASS; all-on moving baseline.
ReRankMovingTunnelCoreA_20260915 PASS; mask 0x00000010.
ReRankMovingTunnelCoreBaseB_20260915 PASS; all-on moving baseline.
ReRankMovingTunnelCoreB_20260915 PASS; mask 0x00000010.
ReRankMovingTunnelSDFBaseA_20260915 PASS; all-on moving baseline.
ReRankMovingTunnelSDFA_20260915 PASS; mask 0x00000008.
ReRankMovingTunnelSDFBaseB_20260915 PASS; all-on moving baseline.
ReRankMovingTunnelSDFB_20260915 PASS; mask 0x00000008.
ReRankMovingPassageCarvingBaseA_20260915 PASS; all-on moving baseline.
ReRankMovingPassageCarvingA_20260915 PASS; mask 0x00000020.
ReRankMovingPassageCarvingBaseB_20260915 PASS; all-on moving baseline.
ReRankMovingPassageCarvingB_20260915 PASS; mask 0x00000020.
ReRankMovingCaveWarpBaseA_20260915 PASS; all-on moving baseline.
ReRankMovingCaveWarpA_20260915 PASS; mask 0x00000001.
ReRankMovingCaveWarpBaseB_20260915 PASS; all-on moving baseline.
ReRankMovingCaveWarpB_20260915 PASS; mask 0x00000001.
ReRankMovingPassageStructuralPostsBaseA_20260915 PASS; all-on moving baseline.
ReRankMovingPassageStructuralPostsA_20260915 PASS; mask 0x00000040.
ReRankMovingPassageStructuralPostsBaseB_20260915 PASS; all-on moving baseline.
ReRankMovingPassageStructuralPostsB_20260915 PASS; mask 0x00000040.
ReRankSamplerMovingOn_20260915 PASS process; exit 0, sampler stopped, expected DLL, raw CSV written. Wrapper status print failed after exit on an invalid inline if expression; artifact was independently verified.
ReRankSamplerMovingOffline_20260915 PASS process; exit 0, symbolization completed, expected DLL, summary written. Wrapper post-check made the same invalid inline if mistake; summary was independently verified.
initial worms wrapper attempt FAILED before process start due orchestration-string interpolation; no Unreal process and no measurement.

All measured sessions were under 30 minutes. No editor was touched. The final checkout remains without tracked source or asset changes; no commit, push, or stash was performed.