wip(assembler): round S6 -- in-game cold view counted; workers mostly idle, apply cap not the floor

Direct per-tile trace on the BuildHost actor (owner plan, 2,578 keys): full set
17.4 s legacy; gated coarse-first (after the 9-tile walkable ring) 11.7 s with
the ring still at 0.63 s, but full LOD0 slips 2.3 -> 10.2 s. Startup apply
boost changed nothing (0.4%). 37.6 worker-s over 17.4 s on 10 slots = ~3.3
busy: the floor is admission/work supply. S5's 251 ms staircase was the trace
sampler. Fixed CVar parsing in headless BeginPlay and the 60 m/s crossing
instrument. All three knobs stay opt-in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-19 06:46:54 +02:00
1 parent c0596c5f24
commit b9c13c37c0
11 files changed
+903 -31

No files matched your search

+36 -4
View File
@@ -2,9 +2,11 @@
param(
[ValidateRange(60, 900)][int]$TimeoutSeconds = 900,
[ValidateRange(12.5, 25.0)][double]$CoreVoxelSizeCm = 25.0,
[ValidateSet('CoarseFirst', 'Legacy')][string]$StreamingOrder = 'CoarseFirst',
[ValidateSet('CoarseFirst', 'Legacy')][string]$StreamingOrder = 'Legacy',
[switch]$EnforceCollisionGate,
[switch]$StartupTrace,
[ValidateRange(0, 1)][int]$StartupApplyBoost = 0,
[switch]$StreamingTraceOnly,
[string]$WorldAssemblyManifestPath = '',
[ValidateSet('MarchingCubesV1', 'WorldAssemblerHybridV1', 'WorldAssemblerHybridV2')][string]$CoreMesherRecipe = 'MarchingCubesV1',
[switch]$EnableHybridFixturePlacement,
@@ -50,11 +52,13 @@ $RunName = if ($FloatingIslandsOnly) { "floating_islands$CoreSizeSuffix" }
elseif ($CoreOffTest) { "core_off$CoreSizeSuffix" }
elseif ($CorePlanOnly) { if ($CoreTestSeed -ne [int]::MinValue) { "plan_seed_$CoreTestSeed$CoreSizeSuffix" } else { "plan_only$CoreSizeSuffix" } }
else { "owner_surface$CoreSizeSuffix" }
$RunName += $(if ($StreamingTraceOnly) { '_stream_trace_only' } else { '' })
$RunName += "_applyboost_$StartupApplyBoost"
if ($MismatchedManifestFallback) { $CoreFallbackTest = $true }
$SelectedModeFlags = @(
[bool]$FloatingIslandsOnly, [bool]$CoreFallbackTest,
[bool]$CoreOffTest, [bool]$CorePlanOnly
[bool]$CoreOffTest, [bool]$CorePlanOnly, [bool]$StreamingTraceOnly
)
$SelectedModeCount = @($SelectedModeFlags | Where-Object { $_ }).Count
if ($SelectedModeCount -gt 1) { throw 'Select one Core test mode per BuildHost launch.' }
@@ -64,6 +68,10 @@ if ($CorePlanOnly -and $CoreTestSeed -eq [int]::MinValue) {
if ($CoreTestSeed -ne [int]::MinValue -and -not $CorePlanOnly) {
throw '-CoreTestSeed is valid only with -CorePlanOnly.'
}
if ($StreamingTraceOnly -and ($SharedFeatureAuditOnly -or $EnableHybridFixturePlacement -or
$HybridCliffOnly -or $HybridFixturesOnly -or $WorldAssemblyManifestPath)) {
throw '-StreamingTraceOnly uses the staged owner plan without additional fixture or manifest overrides.'
}
function Assert-UnderPath([string]$Candidate, [string]$Root) {
$candidateFull = [IO.Path]::GetFullPath($Candidate).TrimEnd('\', '/')
@@ -138,7 +146,7 @@ if ($SharedFeatureAuditOnly) {
}
$RunName += if ($StreamingOrder -eq 'Legacy') { '_legacy_order' } else { '_coarse_first' }
if ($EnforceCollisionGate) { $RunName += '_collision_gate' }
if ($StartupTrace) { $RunName += '_trace' }
if ($StartupTrace -or $StreamingTraceOnly) { $RunName += '_trace' }
$foreignEditors = @(Get-Process -ErrorAction SilentlyContinue |
Where-Object { $_.ProcessName -like 'UnrealEditor*' })
@@ -257,7 +265,15 @@ $CoarseFirstValue = if ($StreamingOrder -eq 'CoarseFirst') { 1 } else { 0 }
$DynamicReserveValue = if ($StreamingOrder -eq 'CoarseFirst') { 1 } else { 0 }
$BaseArguments += "-voxel.StreamingCoarseFirst=$CoarseFirstValue"
$BaseArguments += "-voxel.StreamingDynamicNearReserve=$DynamicReserveValue"
if ($StartupTrace) {
$BaseArguments += "-voxel.StreamingStartupApplyBoost=$StartupApplyBoost"
if ($StreamingTraceOnly) {
$BaseArguments += '-coreworldstreamtrace=1'
$BaseArguments += '-voxel.TestMove=1'
$BaseArguments += '-voxel.TestMoveSpeedCmPerSecond=600'
$BaseArguments += '-voxel.TestMoveStartSeconds=30'
$BaseArguments += '-voxel.TestMoveDirection=0,1,0'
}
if ($StartupTrace -or $StreamingTraceOnly) {
$TracePath = Join-Path $LogDirectory "CoreWorldValidation-$RunName.trace.jsonl"
$BaseArguments += ('-voxel.StartupTraceFile="{0}"' -f $TracePath)
$BaseArguments += '-voxel.StartupTraceUntilEndPlay=1'
@@ -387,6 +403,22 @@ if ($SharedFeatureAuditOnly) {
Write-Host "Peak commandlet private bytes sampled: $PeakPrivateBytes"
return
}
if ($StreamingTraceOnly) {
if ($Text -notmatch '\[VoxelForgeCoreWorldStreamTrace\] initial_ready=1 .*walk_tick_ms_p95=.*walk_tick_ms_max=' -or
$Text -notmatch '\[VoxelForgeCoreWorldStreamTrace\] pass complete=1 .*walk_speed_cm_s=600 walk_direction=\+Y' -or
$Text -notmatch '\[VoxelForgeCoreWorldTest\] pass complete=1') {
throw "BuildHost actor-only stream trace did not prove initial readiness and a completed walk sample. See $FinalLog."
}
$NewCrashes = @(Get-NewCrashFolders)
if ($NewCrashes.Count -gt 0) {
throw "New UECC crash folders appeared during the stream trace: $($NewCrashes -join '; ')"
}
Write-Host "VOXELFORGE_CORE_STREAM_TRACE_PASS boost=$StartupApplyBoost order=$StreamingOrder"
Write-Host "Core actor log: $FinalLog"
Write-Host "Startup trace: $TracePath"
Write-Host "Peak commandlet private bytes sampled: $PeakPrivateBytes"
return
}
if ($CoreFallbackTest) {
foreach ($Marker in @(
'[VoxelForgeCoreFallbackTest] fallback=PASS core_disabled=1 legacy_generator=1',