Clang -ffp-contract=on/fast and GCC's default (fast) all change the density hash on the L1 view; contraction off reproduces L1 (= Windows S13) at W1/W12. Seed sweep: 48 FloatingIslands seeds and 14 effective SurfaceWorld seeds (34 of 48 fell on a seed-independent cube) match across Clang/GCC and W1/W12. Standalone gains --seed/--recipe/--render-distance-chunks (viewer + headless) and a Windows replay script. Linux standalone workers get 32 MiB pthread stacks (TLS is 17.3 MiB/thread), so no external stack limit is needed. No Core or world-output change; MSVC compile unverified. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
47 lines
1.9 KiB
PowerShell
47 lines
1.9 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|
$Root = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot '..\..\..\..'))
|
|
$Viewer = Join-Path $Root 'Standalone\bin\VoxelForgeCoreStandalone.exe'
|
|
$Data = Join-Path $Root 'Standalone\data\owner_world.json'
|
|
$SeedFile = Join-Path $PSScriptRoot 'seeds.txt'
|
|
$LogDir = Join-Path $Root 'Saved\Linux'
|
|
[IO.Directory]::CreateDirectory($LogDir) | Out-Null
|
|
|
|
$Recipes = @(
|
|
@{ Name = 'surface-world'; Camera = '0,-35,-487.94,0,-22' },
|
|
@{ Name = 'floating-islands'; Camera = '0,0,-32,0,-22' }
|
|
)
|
|
$Seeds = @(Get-Content -LiteralPath $SeedFile | ForEach-Object { [int]$_.Trim() })
|
|
if ($Seeds.Count -ne 48) { throw "Expected 48 seeds in $SeedFile" }
|
|
if (-not (Test-Path -LiteralPath $Viewer -PathType Leaf)) { throw "Viewer not found: $Viewer" }
|
|
|
|
foreach ($Recipe in $Recipes) {
|
|
foreach ($Seed in $Seeds) {
|
|
foreach ($Workers in @(1, 12)) {
|
|
$Arguments = @(
|
|
$Data,
|
|
"--seed=$Seed",
|
|
"--recipe=$($Recipe.Name)",
|
|
'--render-distance-chunks=0',
|
|
"--workers=$Workers",
|
|
'--world-assembler-prototype',
|
|
'--stream-benchmark',
|
|
'--stream-pipeline',
|
|
'--stream-hash',
|
|
'--force-generate',
|
|
'--clip-radius=1',
|
|
'--max-clip-level=0',
|
|
"--camera=$($Recipe.Camera)",
|
|
'--far-horizon-lod8-step=0',
|
|
'--process-affinity=4095',
|
|
'--process-priority=Normal',
|
|
'--frame-limit=60'
|
|
)
|
|
$Stem = "windows2-seed-$Seed-$($Recipe.Name)-w$Workers"
|
|
$Log = Join-Path $LogDir "$Stem.log"
|
|
Write-Host "& `"$Viewer`" $($Arguments -join ' ')"
|
|
& $Viewer @Arguments *> $Log
|
|
if ($LASTEXITCODE -ne 0) { throw "Viewer failed ($LASTEXITCODE); see $Log" }
|
|
}
|
|
}
|
|
}
|