Author SHA1 Message Date
Fr0zkaandClaude Opus 5.5 aa67bd31f5 wip(L6, side branch): screen-space far gate; no-op cutoff removed; cost within noise vs L4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ED33VnqepD4YY6gDAAA832
2026-10-19 21:10:08 +02:00
Fr0zkaandClaude Opus 5.5 b21a19d561 wip(L5, side branch): Linux offscreen captures + sampled far-LOD gate + no-op octave cutoff
Not for assembler/world: no octave qualifies under the cutoff's supremum criterion (world
unchanged), and the build is +4.6% slower than L4 with the flag off (reviewer interleaved W12).
Keeps the working EGL/GLES capture path and a gate whose metric is vertical height error, which
overstates screen error on steep slopes; its "exact far meshes exceed 1 px / 126 px pop" claims are
unconfirmed. See Linux5/REPORT.md "Orchestrator review".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ED33VnqepD4YY6gDAAA832
2026-10-19 20:39:41 +02:00
Fr0zkaandClaude Opus 5.5 7770074503 wip(assembler): round L4 -- lazy per-thread caches: 17.3 MiB -> 43 KiB per thread, view 7% faster
VoxelForgeCoreThreadLocal::FLazy<T> (new public header ThreadLocalStorage.h) makes every large
thread_local cache a pointer that heap-allocates on that thread's first use (still worker-private,
lock-free). Static TLS 17.33 MiB -> 43 KiB (initialised image 5.8 MiB -> 21 KiB); worker start
5.2 -> 0.12 ms; idle worker RSS 17.7 MiB -> 52 KiB. Linux workers back to 8 MiB stacks.
World unchanged (L1 hashes Clang off/GCC default, W1/W12; FloatingIslands seed 0).
Reviewer interleaved W12: 2.256 -> 2.091 s. MSVC/UBT not compiled here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ED33VnqepD4YY6gDAAA832
2026-10-19 19:16:14 +02:00
Fr0zkaandClaude Opus 5.5 046f2af495 wip(assembler): round L3 -- Core forces FP contraction off and refuses to generate if it can't
CoreNamespacePreamble.h applies per-compiler contraction-off pragmas (Clang, MSVC, GCC; unknown
compiler = #error) and a fused-multiply-add self-test that World::compile runs before building.
Clang -ffp-contract=on and GCC's default (fast) now reproduce the L1/Windows hashes (they diverged
in L2); Clang -ffp-contract=fast ignores the pragma and is refused at startup (negative control).
Seed sweep with every cube on real terrain: 48 seeds x 2 recipes x 3 builds x W1/W12, 576 runs,
0 mismatches, 0 empty meshes. Cost +0.5% (2.326 -> 2.337 s, interleaved). World unchanged.
MSVC/UBT not compiled here: Windows to-do list in Linux3/REPORT.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:51:07 +02:00
54 changed files with 3231 additions and 59 deletions

No files matched your search

+1
View File
@@ -648,6 +648,7 @@ driven by `EditorBrush*` props.
two global settings through `FVoxelOpContext` once per chunk, while `ClassifyBox`/`ClassifyTile`
share the radial proof. This adds no cache, state, RNG, or clipmap stream, and does not touch the
density grid's two-pass MC loop or any existing `thread_local` cache.
- **Large `thread_local` caches are lazy** (`VoxelForgeCoreThreadLocal::FLazy<T>`, `Standalone/Core/include/VoxelForgeCore/ThreadLocalStorage.h`, round Linux4): the per-thread handle is a pointer; the table is heap-allocated on that thread's first use and freed at thread exit. Still worker-private and lock-free. It keeps the static TLS block at ~43 KiB instead of 17.3 MiB (glibc carves static TLS out of each thread's stack, and a Linux server pays it on every thread). New cache tables over a few KiB go through `FLazy`, never a bare `thread_local` array.
- **Biome cache** (`ResolveBiomeSampleAt`/`FChunkBiomeCache`, §8.14): validity is a world-XY BOX +
ChunkZ + Seed, NOT a chunk key — same reason as the SDF cache. The cell classification is
noise-heavy; a chunk-key would thrash it on gradient-normal / +X/+Y boundary samples. Keep
+2
View File
@@ -158,6 +158,8 @@ remains `0`, and lateral regions remain gated off.
| `VoxelForge.Build.cs` | Deps: Core, CoreUObject, Engine, **GameplayTags**, **RealtimeMeshComponent**, `VoxelForgeCore`. `AVoxelWorld::bUseVoxelForgeCore` opts into the Core runtime route; it defaults off. |
| `../../VoxelForgeCore/VoxelForgeCore.Build.cs` | C++20 runtime module. Reads `Standalone/Core/core_sources.txt`, validates one include shim per canonical source, and fails UBT on missing, extra, or mismatched shims. No unity/PCH; private copied implementation stays under `vfcore::detail`. |
| `../../VoxelForgeCore/Private/Manifest/VFCore_*.cpp` | Eighteen one-source UBT shims that include canonical files under `Standalone/`; they do not copy Core implementation. The API-boundary row includes `Core/src/VoxelForgeCore.cpp` directly. |
| `../../Standalone/Core/include/VoxelForgeCore/ThreadLocalStorage.h` | `VoxelForgeCoreThreadLocal::FLazy<T>`: thread-local handle that heap-allocates a worker-private cache on first use. All large Core and legacy caches use it (HeightfieldColumnCache, IslandColumnCache, GFloorReliefCache, GRoomGraphCache, GSurfColCache, tunnel/diff caches). See ARCHITECTURE §8.10. |
| `../../Standalone/Core/src/CoreNamespacePreamble.h` | First include of every Core TU. Forces FP contraction off per compiler (Clang/MSVC/GCC pragmas; unknown compiler = `#error`) and defines `vfcore::fp_contract::selfTest`, which `World::compile` runs before building: a fused multiply-add (e.g. Clang `-ffp-contract=fast`) refuses world generation. The world depends on contraction (Linux2/Linux3 reports), so never remove either. |
| `../../VoxelForgeCore/Private/ModuleEntry/` | Unreal module entry and an isolated `CoreMinimal.h` shim for the actual engine header. |
| `../../Standalone/Core/include/VoxelForgeCore/VoxelForgeCore.h` | Standard-library-only public Core API. `VOXELFORGECORE_API` exports the API from the Unreal module and is empty for standalone builds. |
| `../../Standalone/Core/src/FloatingIslandsInternal.h` | Canonical standalone/Core floating-island planner, geometry-versioned field, manifest serializer, influence bounds, capsule-route checks, and thickness audit. |
+7
View File
@@ -33,6 +33,8 @@ if [[ "$FP_CONTRACT" != "default" && "$FP_CONTRACT" != "off" && "$FP_CONTRACT" !
fi
command -v "$COMPILER" >/dev/null || { printf 'Compiler not found: %s\n' "$COMPILER" >&2; exit 2; }
command -v ar >/dev/null || { printf 'ar not found\n' >&2; exit 2; }
command -v pkg-config >/dev/null || { printf 'pkg-config not found\n' >&2; exit 2; }
pkg-config --exists egl glesv2 libpng || { printf 'EGL, GLESv2, and libpng development files are required\n' >&2; exit 2; }
BUILD_DIR="$ROOT/Build/linux-$VARIANT"
BIN_DIR="$ROOT/bin/linux"
@@ -117,5 +119,10 @@ CORE_LIBRARY="$BUILD_DIR/libVoxelForgeCore.a"
"$(command -v ar)" rcs "$CORE_LIBRARY" "${CORE_OBJECTS[@]}"
OUTPUT="$BIN_DIR/VoxelForgeCoreHeadless-$VARIANT"
"$COMPILER" -pthread "${LEGACY_OBJECTS[@]}" "$CORE_LIBRARY" -o "$OUTPUT"
CAPTURE_OUTPUT="$BIN_DIR/VoxelForgeOffscreenCapture-$VARIANT"
"$COMPILER" -std=c++20 -O2 -fno-fast-math -pthread \
"$ROOT/Source/LinuxOffscreenCapture.cpp" -o "$CAPTURE_OUTPUT" \
$(pkg-config --cflags --libs egl glesv2 libpng)
printf 'Built Core library: %s\nBuilt headless benchmark: %s\n' "$CORE_LIBRARY" "$OUTPUT"
printf 'Built EGL offscreen capture: %s\n' "$CAPTURE_OUTPUT"
printf 'Compiler: %s | variant: %s | fp-contract: %s | jobs: %s\n' "$COMPILER" "$VARIANT" "$FP_CONTRACT" "$JOBS"
@@ -0,0 +1,33 @@
#pragma once
// Keep large worker caches out of each thread's eager ELF TLS image. Each handle is itself
// thread-local; its payload is allocated on the first use by that thread and released when the
// thread exits. The payload is never shared and this type has no synchronization.
namespace VoxelForgeCoreThreadLocal
{
template <typename T>
class FLazy
{
public:
FLazy() noexcept = default;
FLazy(const FLazy&) = delete;
FLazy& operator=(const FLazy&) = delete;
~FLazy()
{
delete Value;
}
T& Get()
{
if (Value == nullptr)
{
Value = new T{};
}
return *Value;
}
private:
T* Value = nullptr;
};
}
@@ -137,6 +137,7 @@ namespace VoxelForgeCore
double marchingCubesGradientNormalsMilliseconds = 0.0;
double marchingCubesEdgeInterpolationMilliseconds = 0.0;
double marchingCubesVertexDedupStreamMilliseconds = 0.0;
double marchingCubesSkirtMilliseconds = 0.0;
double marchingCubesOtherMilliseconds = 0.0;
std::uint64_t marchingCubesGradientFallbackDensityCalls = 0;
std::uint64_t marchingCubesEdgeMidpointDensityCalls = 0;
@@ -704,6 +705,10 @@ namespace VoxelForgeCore
std::int64_t maximumZSubvoxels, std::int32_t stepVoxels) const noexcept;
static void resetThreadColumnCacheStats(bool captureCoordinates = false,
bool clearCache = false, std::uint32_t octaveDrop = 0) noexcept;
static void setThreadColumnOctaveDrop(std::uint32_t octaveDrop) noexcept;
static std::uint32_t threadColumnOctaveDrop() noexcept;
static void setThreadColumnInterpolationStrideSubvoxels(std::int64_t stride) noexcept;
static std::int64_t threadColumnInterpolationStrideSubvoxels() noexcept;
static void setThreadColumnCacheLegacyDirectMapped(bool enabled) noexcept;
static const HeightfieldColumnCacheStats& threadColumnCacheStats() noexcept;
FieldInterval interval(std::int64_t minimumXSubvoxels,
@@ -1050,6 +1055,10 @@ namespace VoxelForgeCore
// Incremente quand le plafond lointain change. Les hashes LOD4-8 incluent cette version;
// densite et hashes LOD0-3 restent inchanges.
std::uint32_t farHorizonVersion = 3;
// Linux research controls for reproducing L5 negative controls. Defaults preserve output.
std::uint32_t diagnosticGlobalOctaveDrop = 0;
std::uint32_t diagnosticCellStride = 1;
std::uint32_t diagnosticColumnInterpolationStride = 1;
};
class VFCORE_API World
@@ -54,3 +54,41 @@
// value tree shared lets the viewer resolve its reference world and Core snapshot from one parse.
#include "Json.h"
#include "VoxelForgeCore/VoxelForgeCore.h"
#include "VoxelForgeCore/ThreadLocalStorage.h"
// Keep Core's expression-level FMA behavior fixed regardless of the toolchain setting.
// Clang's "fast" mode ignores the pragma, so Core's runtime self-test rejects that build.
#if defined(__clang__)
#pragma clang fp contract(off)
#elif defined(_MSC_VER)
#pragma fp_contract(off)
#elif defined(__GNUC__)
#pragma GCC optimize ("fp-contract=off")
#else
#error "VoxelForge Core requires a compiler-specific FP contraction control"
#endif
namespace vfcore::fp_contract
{
#if defined(_MSC_VER)
#define VFCORE_FP_PROBE_NOINLINE __declspec(noinline)
#else
#define VFCORE_FP_PROBE_NOINLINE __attribute__((noinline))
#endif
[[maybe_unused]] static VFCORE_FP_PROBE_NOINLINE double multiplyAddProbe(
double a, double b, double c) noexcept
{
return a * b + c;
}
[[maybe_unused]] static bool selfTest() noexcept
{
volatile double a = 1.0 + 0x1p-27;
volatile double b = 1.0 - 0x1p-27;
volatile double c = -1.0;
return multiplyAddProbe(a, b, c) == 0.0;
}
#undef VFCORE_FP_PROBE_NOINLINE
}
+10 -5
View File
@@ -1,5 +1,6 @@
#pragma once
#include "VoxelForgeCore/ThreadLocalStorage.h"
#include "Json.h"
#include "VoxelForgeCore/VoxelForgeCore.h"
@@ -441,7 +442,9 @@ namespace floating_island_detail
constexpr std::size_t Ways=4;
constexpr std::size_t SetCount=2048;
static_assert((SetCount&(SetCount-1))==0);
static thread_local std::array<FIslandColumnCacheEntry,SetCount*Ways> Cache{};
static thread_local VoxelForgeCoreThreadLocal::FLazy<
std::array<FIslandColumnCacheEntry,SetCount*Ways>> Cache;
auto& cache=Cache.Get();
const std::int64_t SampleX=static_cast<std::int64_t>(x);
const std::int64_t SampleY=static_cast<std::int64_t>(y);
std::uint64_t IndexKey=island.stableId
@@ -452,10 +455,10 @@ namespace floating_island_detail
IndexKey*=0xff51afd7ed558ccdull;
IndexKey^=IndexKey>>33;
const std::size_t Base=static_cast<std::size_t>(IndexKey&(SetCount-1))*Ways;
FIslandColumnCacheEntry* Replacement=&Cache[Base+((IndexKey>>11)&(Ways-1))];
FIslandColumnCacheEntry* Replacement=&cache[Base+((IndexKey>>11)&(Ways-1))];
for(std::size_t Way=0;Way<Ways;++Way)
{
FIslandColumnCacheEntry& Entry=Cache[Base+Way];
FIslandColumnCacheEntry& Entry=cache[Base+Way];
const bool bKeyMatches=Entry.bValid&&Entry.Seed==recipe.seed
&&Entry.StableId==island.stableId
&&Entry.SampleX==SampleX&&Entry.SampleY==SampleY
@@ -559,11 +562,13 @@ namespace floating_island_detail
// Mettre en cache les constantes par worker; la cle complete evite tout partage d'etat.
constexpr std::size_t CacheSize=1024;
static_assert((CacheSize&(CacheSize-1))==0);
static thread_local std::array<FRootLobeCacheEntry,CacheSize> Cache{};
static thread_local VoxelForgeCoreThreadLocal::FLazy<
std::array<FRootLobeCacheEntry,CacheSize>> Cache;
auto& cache=Cache.Get();
const std::uint64_t IndexKey=island.stableId^(island.stableId>>33)
^(static_cast<std::uint64_t>(recipe.seed)<<17)
^(static_cast<std::uint64_t>(static_cast<std::uint32_t>(rootIndex))*0x9e3779b97f4a7c15ull);
FRootLobeCacheEntry& Entry=Cache[static_cast<std::size_t>(IndexKey)&(CacheSize-1)];
FRootLobeCacheEntry& Entry=cache[static_cast<std::size_t>(IndexKey)&(CacheSize-1)];
const bool bKeyMatches=Entry.bValid&&Entry.Seed==recipe.seed
&&Entry.StableId==island.stableId&&Entry.RootIndex==rootIndex
&&Entry.GeometryVersion==recipe.geometryVersion
+37 -1
View File
@@ -969,6 +969,11 @@ namespace VoxelForgeCore
bool World::compile(const ShapeBuildRequest& request,const JobScheduler& scheduler,std::string& error)
{
if(!impl_->owner){error="resolved world snapshot is empty";return false;}
if(!::vfcore::fp_contract::selfTest())
{
error="Core startup refused: floating-point contraction self-test detected a fused multiply-add; this compiler/flag combination is unsupported for world generation";
return false;
}
auto shape=std::make_unique<FStandaloneShapeWorld>();
const bool ok=shape->Build(*impl_->owner,ToNative(request.minVoxel),ToNative(request.maxVoxel),
ToNative(request.clipMinVoxel),ToNative(request.clipMaxVoxel),
@@ -1441,6 +1446,14 @@ namespace VoxelForgeCore
}
}
}
int32 MeshCells=cells,MeshStep=step;
if(options.diagnosticCellStride>1&&level>=3)
{
const int32 Stride=static_cast<int32>(std::min<std::uint32_t>(
options.diagnosticCellStride,static_cast<std::uint32_t>(std::max(1,cells))));
MeshCells=FMath::Max(1,cells/Stride);
MeshStep=FMath::Max(1,extent/MeshCells);
}
int64 sampleCount=0;std::vector<float> densityValues;
FVoxelMarchingCubesStageTimings McStageTimings;
TileMesh out;out.key=key;
@@ -1673,13 +1686,32 @@ namespace VoxelForgeCore
out.diagnostics.featureListMilliseconds=std::chrono::duration<double,std::milli>(
std::chrono::steady_clock::now()-FeatureListStart).count();
const ScopedWorldAssemblyFeatureQueriesV1 featureScope(featureQueries);
const bool bDiagnosticColumnSampling=options.diagnosticGlobalOctaveDrop!=0
||options.diagnosticColumnInterpolationStride>1;
const std::uint32_t PreviousOctaveDrop=bDiagnosticColumnSampling
?Heightfield2D::threadColumnOctaveDrop():0;
const std::int64_t PreviousInterpolationStride=bDiagnosticColumnSampling
?Heightfield2D::threadColumnInterpolationStrideSubvoxels():0;
if(bDiagnosticColumnSampling)
{
Heightfield2D::setThreadColumnOctaveDrop(options.diagnosticGlobalOctaveDrop);
Heightfield2D::setThreadColumnInterpolationStrideSubvoxels(
options.diagnosticColumnInterpolationStride>1&&level>=3
?static_cast<std::int64_t>(MeshStep)*WorldAssemblySubvoxelsPerVoxel
*options.diagnosticColumnInterpolationStride:0);
}
const double ColumnMillisecondsBeforeMeshing=
VoxelForgeCore::Heightfield2D::threadColumnCacheStats().columnComputeMilliseconds;
const auto MarchingCubesStart=std::chrono::steady_clock::now();
FVoxelMeshData mesh=mesher.GenerateMesh(origin,step,cells,nullptr,
FVoxelMeshData mesh=mesher.GenerateMesh(origin,MeshStep,MeshCells,nullptr,
MeshBandMinZVoxel,MeshBandMaxZVoxel,&sampleCount,nullptr,nullptr,
(options.hashDensity||options.captureDensitySamples)?&densityValues:nullptr,
options.profileMesherStages?&McStageTimings:nullptr);
if(bDiagnosticColumnSampling)
{
Heightfield2D::setThreadColumnOctaveDrop(PreviousOctaveDrop);
Heightfield2D::setThreadColumnInterpolationStrideSubvoxels(PreviousInterpolationStride);
}
const double MarchingCubesWallMilliseconds=std::chrono::duration<double,std::milli>(
std::chrono::steady_clock::now()-MarchingCubesStart).count();
const double ColumnMillisecondsAfterMeshing=
@@ -1690,6 +1722,10 @@ namespace VoxelForgeCore
ColumnMillisecondsAfterMeshing-ColumnMillisecondsBeforeMeshing);
if(options.profileMesherStages)
{
out.diagnostics.marchingCubesSkirtMilliseconds=McStageTimings.SkirtMilliseconds;
out.diagnostics.marchingCubesExclusiveMilliseconds=std::max(0.0,
out.diagnostics.marchingCubesExclusiveMilliseconds
-out.diagnostics.marchingCubesSkirtMilliseconds);
out.diagnostics.marchingCubesDensityGridMilliseconds=McStageTimings.DensityGridMilliseconds;
out.diagnostics.marchingCubesCellClassificationMilliseconds=
McStageTimings.CellClassificationMilliseconds;
+65 -11
View File
@@ -1,5 +1,6 @@
#pragma once
#include "VoxelForgeCore/ThreadLocalStorage.h"
#include "Json.h"
#include "VoxelForgeCore/VoxelForgeCore.h"
@@ -1030,6 +1031,7 @@ namespace world_assembly_detail
// Audit-only override; normal tile generation resets this to zero before evaluating a recipe.
// Surcharge reservee aux mesures; la generation remet zero avant d'evaluer une recette.
inline thread_local std::uint32_t HeightfieldColumnOctaveDrop = 0;
inline thread_local std::int64_t HeightfieldColumnInterpolationStrideSubvoxels = 0;
inline std::int32_t FractalNoiseQ16(std::int64_t xQ16, std::int64_t yQ16,
std::int64_t zQ16, std::uint32_t octaves, bool ridged = false)
@@ -1367,9 +1369,10 @@ namespace world_assembly_detail
// qui partagent les bits faibles du hash.
constexpr std::size_t HeightfieldColumnCacheWays=4;
constexpr std::size_t HeightfieldColumnCacheSetCount=65536/HeightfieldColumnCacheWays;
inline thread_local std::array<HeightfieldColumnCacheEntry, 65536> HeightfieldColumnCache{};
inline thread_local std::array<std::uint8_t, HeightfieldColumnCacheSetCount>
HeightfieldColumnCacheNextWay{};
inline thread_local VoxelForgeCoreThreadLocal::FLazy<
std::array<HeightfieldColumnCacheEntry, 65536>> HeightfieldColumnCache;
inline thread_local VoxelForgeCoreThreadLocal::FLazy<
std::array<std::uint8_t, HeightfieldColumnCacheSetCount>> HeightfieldColumnCacheNextWay;
inline thread_local HeightfieldColumnCacheStats HeightfieldColumnStats{};
inline thread_local bool HeightfieldColumnCacheLegacyDirectMapped=false;
@@ -1504,6 +1507,45 @@ namespace world_assembly_detail
inline HeightfieldPointSample CachedColumn(const WorldAssemblyRecipeV1& recipe,
const WorldAssemblyStratumPlanV1& plan,std::int64_t x,std::int64_t y)
{
const std::int64_t InterpolationStride=HeightfieldColumnInterpolationStrideSubvoxels;
if(InterpolationStride>0)
{
const std::int64_t X0=FloorDiv(x,InterpolationStride)*InterpolationStride;
const std::int64_t Y0=FloorDiv(y,InterpolationStride)*InterpolationStride;
const std::int64_t X1=X0+InterpolationStride,Y1=Y0+InterpolationStride;
const std::int64_t Fx=x-X0,Fy=y-Y0;
struct FScopedInterpolationSampling
{
std::int64_t Previous=HeightfieldColumnInterpolationStrideSubvoxels;
~FScopedInterpolationSampling()
{HeightfieldColumnInterpolationStrideSubvoxels=Previous;}
} SamplingScope;
HeightfieldColumnInterpolationStrideSubvoxels=0;
const HeightfieldPointSample C00=CachedColumn(recipe,plan,X0,Y0);
const HeightfieldPointSample C10=CachedColumn(recipe,plan,X1,Y0);
const HeightfieldPointSample C01=CachedColumn(recipe,plan,X0,Y1);
const HeightfieldPointSample C11=CachedColumn(recipe,plan,X1,Y1);
const auto Lerp=[&](std::int64_t A,std::int64_t B,std::int64_t T)
{return A+((B-A)*T)/InterpolationStride;};
const auto Bilinear=[&](std::int64_t A,std::int64_t B,
std::int64_t C,std::int64_t D)
{
const std::int64_t Top=Lerp(A,B,Fx),Bottom=Lerp(C,D,Fx);
return Lerp(Top,Bottom,Fy);
};
HeightfieldPointSample Out=C00;
Out.groundHeightSubvoxels=Bilinear(C00.groundHeightSubvoxels,
C10.groundHeightSubvoxels,C01.groundHeightSubvoxels,
C11.groundHeightSubvoxels);
Out.capHeightSubvoxels=Bilinear(C00.capHeightSubvoxels,
C10.capHeightSubvoxels,C01.capHeightSubvoxels,
C11.capHeightSubvoxels);
return Out;
}
if(HeightfieldColumnOctaveDrop!=0)
return EvaluateColumn(recipe,plan,x,y);
auto& cache=HeightfieldColumnCache.Get();
auto& nextWay=HeightfieldColumnCacheNextWay.Get();
HeightfieldColumnCacheEntry* replacement=nullptr;
if(HeightfieldColumnCacheLegacyDirectMapped)
{
@@ -1513,8 +1555,7 @@ namespace world_assembly_detail
^std::rotl(static_cast<std::uint64_t>(y)*0xC2B2AE3D27D4EB4Full,23)
^static_cast<std::uint64_t>(reinterpret_cast<std::uintptr_t>(&recipe))
^std::rotl(static_cast<std::uint64_t>(reinterpret_cast<std::uintptr_t>(&plan)),41);
replacement=&HeightfieldColumnCache[static_cast<std::size_t>(mixed)
&(HeightfieldColumnCache.size()-1)];
replacement=&cache[static_cast<std::size_t>(mixed)&(cache.size()-1)];
if(replacement->recipe==&recipe&&replacement->plan==&plan
&&replacement->recipeHash==recipe.contentHash
&&replacement->planHash==plan.contentHash&&replacement->x==x&&replacement->y==y)
@@ -1528,7 +1569,7 @@ namespace world_assembly_detail
std::size_t replacementWay=HeightfieldColumnCacheWays;
for(std::size_t way=0;way<HeightfieldColumnCacheWays;++way)
{
auto& candidate=HeightfieldColumnCache[first+way];
auto& candidate=cache[first+way];
if(candidate.recipe==&recipe&&candidate.plan==&plan
&&candidate.recipeHash==recipe.contentHash&&candidate.planHash==plan.contentHash
&&candidate.x==x&&candidate.y==y)
@@ -1539,11 +1580,11 @@ namespace world_assembly_detail
if(replacementWay==HeightfieldColumnCacheWays)
{
++HeightfieldColumnStats.columnConflictMisses;
replacementWay=HeightfieldColumnCacheNextWay[set];
replacementWay=nextWay[set];
}
HeightfieldColumnCacheNextWay[set]=static_cast<std::uint8_t>(
nextWay[set]=static_cast<std::uint8_t>(
(replacementWay+1)%HeightfieldColumnCacheWays);
replacement=&HeightfieldColumnCache[first+replacementWay];
replacement=&cache[first+replacementWay];
}
auto& entry=*replacement;
const auto start=std::chrono::steady_clock::now();
@@ -2036,9 +2077,9 @@ void Heightfield2D::resetThreadColumnCacheStats(bool captureCoordinates, bool cl
// Les sondes de mesure peuvent vider les entrees d'une tuile avant de comparer deux grilles.
if(clearCache)
{
world_assembly_detail::HeightfieldColumnCache.fill(
world_assembly_detail::HeightfieldColumnCache.Get().fill(
world_assembly_detail::HeightfieldColumnCacheEntry{});
world_assembly_detail::HeightfieldColumnCacheNextWay.fill(0);
world_assembly_detail::HeightfieldColumnCacheNextWay.Get().fill(0);
}
auto& Stats=world_assembly_detail::HeightfieldColumnStats;
world_assembly_detail::HeightfieldColumnOctaveDrop=octaveDrop;
@@ -2055,6 +2096,19 @@ void Heightfield2D::resetThreadColumnCacheStats(bool captureCoordinates, bool cl
void Heightfield2D::setThreadColumnCacheLegacyDirectMapped(bool enabled) noexcept
{ world_assembly_detail::HeightfieldColumnCacheLegacyDirectMapped=enabled; }
void Heightfield2D::setThreadColumnOctaveDrop(std::uint32_t octaveDrop) noexcept
{ world_assembly_detail::HeightfieldColumnOctaveDrop=octaveDrop; }
std::uint32_t Heightfield2D::threadColumnOctaveDrop() noexcept
{ return world_assembly_detail::HeightfieldColumnOctaveDrop; }
void Heightfield2D::setThreadColumnInterpolationStrideSubvoxels(std::int64_t stride) noexcept
{ world_assembly_detail::HeightfieldColumnInterpolationStrideSubvoxels=std::max<std::int64_t>(0,stride); }
std::int64_t Heightfield2D::threadColumnInterpolationStrideSubvoxels() noexcept
{ return world_assembly_detail::HeightfieldColumnInterpolationStrideSubvoxels; }
const HeightfieldColumnCacheStats& Heightfield2D::threadColumnCacheStats() noexcept
{ return world_assembly_detail::HeightfieldColumnStats; }
@@ -0,0 +1,93 @@
# WorldAssemblerM3 Linux3 — FP contraction
## Unreal flags: documented and inferred
UE 5.7's Target Reference documents `FPSemantics`; Epic's Module Properties page documents the matching module-level property and says it overrides FP semantics. Epic Support says module and target overrides have existed since UE 5.4. This repo's `VoxelForgeCore.Build.cs` already sets `FPSemantics = FPSemanticsMode.Precise` and `PCHUsage = PCHUsageMode.NoPCHs` (existing lines 44–45). [UE 5.7 Target Reference](https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-build-tool-target-reference?application_version=5.7), [Module Properties](https://dev.epicgames.com/documentation/unreal-engine/module-properties-in-unreal-engine), [Epic Support answer](https://forums.unrealengine.com/t/debug-game-development/2668723)
Public UBT documentation does **not** publish one exact compiler argv for every plugin, platform, and configuration. Epic Support reports Windows DebugGame uses `/fp:precise` and Development uses `/fp:fast` by default. MSVC 2022 17+ defaults `/fp:precise` to contraction off; explicit `/fp:contract` can enable it under `/fp:precise`, and `/fp:fast` permits it by default. Earlier MSVC versions defaulted precise contraction on. Explicit `#pragma fp_contract(off)` overrides `/fp:fast`. Clang's `precise` model allows same-expression `-ffp-contract=on`; `-ffp-contract=fast` can fuse across statements and ignores `#pragma clang fp contract(off)`. GCC defaults to `-ffp-contract=fast`; its standard `FP_CONTRACT` pragma is not implemented, so this patch uses GCC's function-option pragma instead. [MSVC `/fp`](https://learn.microsoft.com/en-us/cpp/build/reference/fp-specify-floating-point-behavior?view=msvc-170), [MSVC pragma](https://learn.microsoft.com/en-us/cpp/preprocessor/fp-contract?view=msvc-170), [Clang FP pragmas and model](https://clang.llvm.org/docs/LanguageExtensions.html#extensions-to-specify-floating-point-flags), [GCC FP options](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html), [GCC function-specific pragmas](https://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html), [GCC FP implementation](https://gcc.gnu.org/onlinedocs/gcc/Floating-point-implementation.html)
**Inference for this repo:** The standalone BuildHost is safe-by-configuration on current VS 2022: `Build.ps1` explicitly uses `/fp:precise`, whose 17.0+ default is contraction off. The owner's UBT Windows build is likely safe for the same reason because the module sets `Precise`, but it was not captured here; an older MSVC or an explicit `/fp:contract` could put it at risk. On Linux, `Precise` alone does not mean contraction off for Clang, so the UBT build was at risk before this change. UE 5.7's supported Linux compiler is Clang 20.1.8; this host tested Clang 19.1.7. Epic's UE 5.7 PS5 notes also show Clang flags vary by platform: PS5 removed `-ffp-contract=off` because its `-ffast-math` setting conflicted with it. This does not establish that Linux UBT passes `-ffast-math`; capture that module's actual command line on the owner PC. [UE Linux requirements](https://dev.epicgames.com/documentation/unreal-engine/linux-development-requirements-for-unreal-engine?lang=en-US), [UE 5.7 PS5 notes](https://dev.epicgames.com/documentation/en-us/unreal-engine/playstation-5-release-notes-for-unreal-engine-5-7)
## Mechanism and Core lines touched
Each Core translation unit loads `CoreNamespacePreamble.h` before its implementation. The preamble applies Clang `contract(off)`, MSVC `fp_contract(off)`, or GCC `optimize("fp-contract=off")`; unknown compilers fail at compile time. Its noinline probe evaluates `(1 + 2^-27) * (1 - 2^-27) - 1` using volatile inputs. Separate multiply/add rounds to `0`; a fused operation returns `-2^-54`.
`World::compile` runs that probe before building the shape and returns an error before density generation if it fuses. The check and density implementation receive the same preamble/FP pragma in Core. Clang `fast` is deliberately refused because Clang documents that mode as ignoring the source pragma. GCC's default and the explicit Clang `on` mode are instead compiled with the source-level off control.
Only these Core lines changed:
- `Standalone/Core/src/CoreNamespacePreamble.h:58–93` — per-compiler pragma and shared self-test.
- `Standalone/Core/src/VoxelForgeCore.cpp:972–976` — refusal before shape build.
For this sweep, the standalone headless runner also gained `--auto-surface-camera` and `--mesh-coverage` in `Standalone/Source/StreamBenchmarkHeadless.cpp` and `Standalone/Source/StreamBenchmarkPipeline.h`.
The probe guards FP contraction. It does not establish immunity to unrelated `-ffast-math` transformations such as reassociation; those flags must be captured and handled separately if present.
## Hash immunity
All successful rows cover the L1 whole view (2,553 tiles); each cell below lists density / mesh / payload / topology hashes. Runs used `Standalone/data/owner_world.json` and `--world-assembler-prototype --stream-benchmark --stream-pipeline --stream-hash --force-generate --clip-radius=3 --max-clip-level=8 --camera=0,-35,-487.94,0,-22 --far-horizon-lod8-step=0`. `Clang fast` was built with `-ffp-contract=fast` and `-fno-fast-math`.
| Compiler and setting | W1 | W12 |
|---|---|---|
| Clang 19 `-ffp-contract=off` | `c10697a8f48380c7 / e75c9119a1498cd5 / 49a9a8d1835a6c8c / edcb23288b5e8724` | same |
| Clang 19 `-ffp-contract=on` | same | same |
| Clang 19 `-ffp-contract=fast` | refused before generation | refused before generation |
| GCC 14 default (effective contract=fast) | `c10697a8f48380c7 / e75c9119a1498cd5 / 49a9a8d1835a6c8c / edcb23288b5e8724` | same |
All three supported configurations (Clang off/on, GCC default) match the L1 reference. Both Clang `fast` runs returned exit code 2 in about 0.066 s with the explicit diagnostic, before generating a density hash. Logs: [W1 refusal](../../../../Saved/Linux/linux3-final-hash-clang-fast-w1.log), [W12 refusal](../../../../Saved/Linux/linux3-final-hash-clang-fast-w12.log); successful per-run logs are `linux3-final-hash-*.log` under `Saved/Linux`.
## Self-test negative control
The test is in the shared Core preamble, not a separate differently compiled test file. In the deliberate Clang `fast` build it detected the fused result and the Core API rejected world generation at W1 and W12. A compiler-only probe also returned `0` for Clang off/on and GCC with its off pragma, and `-0x1p-54` for Clang fast ([probe log](../../../../Saved/Linux/linux3-pragma-probe.log)). The production-build refusal is the negative control.
## Corrected seed sweep
The sweep used 48 unique seeds, both recipes, Clang off/on and GCC default, and W1/W12: 576 runs in 432.977 s. Each SurfaceWorld 96³-voxel cube was centered at the original XY and moved to that seed's nearest heightfield surface; each FloatingIslands cube was centered on that seed's largest planned island. Every run covered 27 LOD0 tiles and contained triangles.
| Recipe | Per-seed coverage across the sweep |
|---|---|
| SurfaceWorld | 9–18 nonempty mesh tiles; 26,182–52,468 indexed triangles |
| FloatingIslands | 7–15 nonempty mesh tiles; 15,728–46,224 indexed triangles |
All seeds had distinct density hashes within each recipe. Cross-build comparisons: 192, mismatches 0. W1/W12 comparisons: 288, mismatches 0. Empty-mesh rows: 0. Peak run RSS: 306,580 KiB. The full compiler/worker results are in [seed_mesh_coverage.csv](seed_mesh_coverage.csv); one row per seed and recipe, including the nonempty tile and triangle counts and placed camera, is in [seed_mesh_coverage_per_seed.csv](seed_mesh_coverage_per_seed.csv). Summary: [seed_mesh_coverage_summary.txt](seed_mesh_coverage_summary.txt).
## Cost
Three interleaved W12 runs per binary used the same 2,553-tile view, without mesh-coverage counting. “Before” is the S14 executable; “after” is the Clang-off L3 executable.
| Build | Whole-view ready times (s) | Median |
|---|---|---:|
| S14 before | 2.260, 2.326, 2.339 | 2.326 s |
| L3 after | 2.329, 2.384, 2.337 | 2.337 s |
The interleaved median change is +0.011 s (+0.5%). The agreed owner-provided before baseline was 2.42 s; L3's 2.337 s median is 0.083 s below it. All six runs retained the L1 hashes. Maximum run RSS was about 550 MiB. Governor remained `powersave`; EPP remained `balance_performance`.
## Windows work still needed
MSVC was not available here. On the Windows BuildHost:
1. Build the standalone Core and viewer from the updated tree: `powershell -ExecutionPolicy Bypass -File Standalone\Build.ps1 -Target All -CompileWorkers 12`. This uses `/fp:precise`; inspect `Standalone\Build\VoxelForgeCore\core-compile.rsp` to confirm.
2. Run the resulting viewer on the L1 view twice, once with `--workers=1` and once with `--workers=12`, using `--world-assembler-prototype --stream-benchmark --stream-pipeline --stream-hash --force-generate --clip-radius=3 --max-clip-level=8 --camera=0,-35,-487.94,0,-22 --far-horizon-lod8-step=0`. Require the four L1 hashes both times and no self-test error.
3. To validate the MSVC pragma under an explicitly contracted setting, make a temporary copy of `Build.ps1`, change its single `/fp:precise` entry to `/fp:fast`, and build it with `-OutputName VoxelForgeCoreStandalone-msvc-fast.exe`. Run the same W1/W12 L1 checks and require unchanged hashes and a passing self-test.
4. Build the owner project's UE 5.7 Win64 Development Editor target (and its Server target if configured) with this plugin enabled. Save the actual UBT `cl.exe` commands for `VoxelForgeCore` and record `/fp:*`, `/fp:contract`, and any `/fp:fast` or `/fp:precise` options. Run the owner's existing seed-0 Core world/hash path at W1 and W12 and confirm the L1 result and passing self-test.
MSVC-specific risks: the pragma has not been compiled here; `/fp:precise` contraction defaults changed at VS 2022 17.0; target configuration may add `/fp:fast` or `/fp:contract`; and UBT's module override must reach every Core source. Microsoft documents that the explicit pragma overrides `/fp:fast`, but the Windows build must confirm that the actual toolset honors it. `VoxelForgeCore.Build.cs` already disables PCH and unity builds, and each Core wrapper includes the pragma preamble.
## Runs and limits
No build, hash, sweep, or timing run failed or needed a retry. The two Clang `fast` exits were the expected negative control. Build variants were Clang 19.1.7 and GCC 14.2; builds and runs used CPUs 0–11, at most 12 jobs, normal priority, and a 6 GiB per-process address-space limit. Build peak RSS: 895,640 KiB (GCC); L1 hash-run peak: 551,004 KiB; seed-sweep peak: 306,580 KiB. The 8 MiB process stack was unchanged; Linux workers retain their existing 32 MiB stacks. Build artifacts are under `Standalone/Build/linux-l3-*` and `Standalone/bin/linux/`; logs are under `Saved/Linux/`.
## Note for the owner
Core now disables expression contraction for Clang, GCC, and MSVC, and rejects Clang fast when that compiler ignores the off pragma; all supported Linux settings retained the L1 hashes. Please validate the source pragma on native MSVC and capture UE 5.7 UBT's actual Windows and Linux compiler arguments, since those builds were not available here.
## Orchestrator review (Claude)
- Re-run by me on Luna's binaries, W12, L1 view: Clang `off` 2.299 s and Clang `on` 2.302 s, both density
`c10697a8f48380c7`; GCC default 2.469 s, also `c10697a8f48380c7`; Clang `fast` exits 2 with the self-test
refusal. Clang `on` and GCC default gave *different* worlds in L2, so the pragma is demonstrably effective.
- Known gap (small): the pragma sits after the standard headers, `Json.h` and the public API header in the
preamble, so inline/template code defined there is not covered. All Core world math (Compat, `*Internal.h`,
legacy sources) comes after it.
- The probe guards contraction only; `-ffast-math` reassociation is a separate risk (as Luna says). The
Windows to-do list above is the gate before claiming this on MSVC/UBT.
@@ -0,0 +1,175 @@
#!/usr/bin/env python3
"""Run the corrected L3 seed/compiler/worker matrix with per-seed mesh coverage."""
import csv
import re
import subprocess
import sys
import time
from pathlib import Path
ROOT = Path.cwd()
ROUND = ROOT / "Standalone/Research/WorldAssemblerM3/Linux3"
SEEDS = ROOT / "Standalone/Research/WorldAssemblerM3/Linux2/seeds.txt"
LOG_DIR = ROOT / "Saved/Linux"
MEASURE = ROOT / "Standalone/Research/WorldAssemblerM3/Linux2/MeasureProcess.py"
DATA = ROOT / "Standalone/data/owner_world.json"
BINARIES = {
"clang19-off": ROOT / "Standalone/bin/linux/VoxelForgeCoreHeadless-clang19-l3-off",
"clang19-on": ROOT / "Standalone/bin/linux/VoxelForgeCoreHeadless-clang19-l3-on",
"gcc14-default": ROOT / "Standalone/bin/linux/VoxelForgeCoreHeadless-gcc14-l3-default",
}
CAMERAS = {
"surface-world": "0,-35,-487.94,0,-22",
"floating-islands": "0,0,-32,0,-22",
}
HASH_RE = re.compile(
r"\[PipelineWholeViewHash\] tiles=(\d+) density=0x([0-9a-f]+) "
r"mesh=0x([0-9a-f]+) payload=0x([0-9a-f]+) topology=0x([0-9a-f]+)"
)
MESH_RE = re.compile(
r"\[PipelineMeshCoverage\] tiles=(\d+) nonempty_mesh_tiles=(\d+) indexed_triangles=(\d+)"
)
PLACEMENT_RE = re.compile(
r"\[SeedSurfacePlacement\].*camera_voxel=\(([-0-9.]+),([-0-9.]+),([-0-9.]+)\) status=PASS"
)
READY_RE = re.compile(r"\[StreamPipeline\].*whole_view_ready=([0-9.]+)s")
RESOURCE_RE = re.compile(
r"\[ProcessResources\] exit_code=(-?\d+) wall_s=([0-9.]+) peak_rss_kib=(\d+)"
)
def main() -> int:
if len(sys.argv) > 2:
raise SystemExit("usage: RunSeedSweep.py [budget-seconds; default 1800]")
budget = int(sys.argv[1]) if len(sys.argv) == 2 else 1800
seeds = [int(line.strip()) for line in SEEDS.read_text().splitlines() if line.strip()]
if len(seeds) != 48 or len(set(seeds)) != 48:
raise SystemExit("expected the 48 unique signed int32 L2 seeds")
missing = [str(path) for path in [MEASURE, DATA, *BINARIES.values()] if not path.is_file()]
if missing:
raise SystemExit("missing sweep input/build: " + ", ".join(missing))
LOG_DIR.mkdir(parents=True, exist_ok=True)
output_path = ROUND / "seed_mesh_coverage.csv"
fields = [
"seed", "recipe", "compiler_setting", "workers", "tiles",
"nonempty_mesh_tiles", "indexed_triangles", "camera_x_vox", "camera_y_vox", "camera_z_vox",
"density_hash", "mesh_hash", "payload_hash", "topology_hash",
"whole_view_ready_s", "wall_s", "peak_rss_kib", "exit_code", "status",
]
started = time.monotonic()
total = len(seeds) * len(CAMERAS) * len(BINARIES) * 2
print(f"L3 sweep: {len(seeds)} seeds x 2 recipes x 3 builds x W1/W12 = {total}; budget={budget}s", flush=True)
with output_path.open("w", newline="") as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=fields)
writer.writeheader()
completed = 0
for seed in seeds:
for recipe, camera in CAMERAS.items():
for compiler, binary in BINARIES.items():
for workers in (1, 12):
remaining = budget - (time.monotonic() - started)
if remaining <= 0:
print("L3 sweep exceeded its 30-minute budget; stopping.", file=sys.stderr, flush=True)
return 124
stem = f"linux3-seed-{seed}-{recipe}-{compiler}-w{workers}"
log_path = LOG_DIR / f"{stem}.log"
args = [
str(binary), str(DATA), f"--seed={seed}", f"--recipe={recipe}",
"--render-distance-chunks=0", f"--workers={workers}",
"--world-assembler-prototype", "--stream-benchmark", "--stream-pipeline",
"--stream-hash", "--mesh-coverage", "--auto-surface-camera", "--force-generate",
"--clip-radius=1", "--max-clip-level=0", f"--camera={camera}",
"--far-horizon-lod8-step=0",
]
command = [
"taskset", "-c", "0-11", "prlimit", "--as=6442450944", "--",
"python3", str(MEASURE), *args,
]
with log_path.open("w") as log_file:
log_file.write("[SweepCommand] " + " ".join(command) + "\n")
log_file.flush()
try:
result = subprocess.run(
command, cwd=ROOT, stdout=log_file, stderr=subprocess.STDOUT,
timeout=min(900, max(1, remaining)), check=False,
)
exit_code = result.returncode
except subprocess.TimeoutExpired:
exit_code = 124
log_file.write("\n[SweepTimeout] row reached its allotted limit\n")
output = log_path.read_text(errors="replace")
hashes = HASH_RE.search(output)
mesh = MESH_RE.search(output)
placement = PLACEMENT_RE.search(output)
ready = READY_RE.search(output)
resources = RESOURCE_RE.search(output)
passed = bool(
exit_code == 0 and hashes and mesh and placement and ready and resources
and int(hashes.group(1)) == 27 and int(mesh.group(1)) == 27
and int(mesh.group(2)) > 0 and int(mesh.group(3)) > 0
and int(resources.group(1)) == 0
)
row = {
"seed": seed, "recipe": recipe, "compiler_setting": compiler, "workers": workers,
"tiles": mesh.group(1) if mesh else "",
"nonempty_mesh_tiles": mesh.group(2) if mesh else "",
"indexed_triangles": mesh.group(3) if mesh else "",
"camera_x_vox": placement.group(1) if placement else "",
"camera_y_vox": placement.group(2) if placement else "",
"camera_z_vox": placement.group(3) if placement else "",
"density_hash": "0x" + hashes.group(2) if hashes else "",
"mesh_hash": "0x" + hashes.group(3) if hashes else "",
"payload_hash": "0x" + hashes.group(4) if hashes else "",
"topology_hash": "0x" + hashes.group(5) if hashes else "",
"whole_view_ready_s": ready.group(1) if ready else "",
"wall_s": resources.group(2) if resources else "",
"peak_rss_kib": resources.group(3) if resources else "",
"exit_code": exit_code, "status": "PASS" if passed else "FAIL",
}
writer.writerow(row)
csv_file.flush()
completed += 1
print(
f"[{completed}/{total}] seed={seed} recipe={recipe} build={compiler} W{workers} "
f"nonempty={row['nonempty_mesh_tiles']}/27 triangles={row['indexed_triangles']} "
f"wall={row['wall_s']}s status={row['status']} elapsed={time.monotonic()-started:.1f}s",
flush=True,
)
if not passed:
print(f"Failed row log: {log_path}", file=sys.stderr, flush=True)
return exit_code or 1
rows = list(csv.DictReader(output_path.open(newline="")))
hash_columns = ("density_hash", "mesh_hash", "payload_hash", "topology_hash")
compiler_checks = []
worker_checks = []
for seed in seeds:
for recipe in CAMERAS:
for workers in (1, 12):
pair = [r for r in rows if int(r["seed"]) == seed and r["recipe"] == recipe
and int(r["workers"]) == workers]
compiler_checks.append(len(pair) == len(BINARIES)
and all(all(row[key] == pair[0][key] for key in hash_columns) for row in pair))
for compiler in BINARIES:
pair = [r for r in rows if int(r["seed"]) == seed and r["recipe"] == recipe
and r["compiler_setting"] == compiler]
worker_checks.append(len(pair) == 2
and all(all(row[key] == pair[0][key] for key in hash_columns) for row in pair))
elapsed = time.monotonic() - started
maximum_rss = max(int(row["peak_rss_kib"]) for row in rows)
empty_rows = sum(int(row["nonempty_mesh_tiles"]) == 0 or int(row["indexed_triangles"]) == 0 for row in rows)
summary = (
f"runs={len(rows)} seeds={len(seeds)} recipes={len(CAMERAS)} builds={len(BINARIES)} workers=1,12 "
f"cross_build_checks={len(compiler_checks)} cross_build_mismatches={sum(not x for x in compiler_checks)} "
f"worker_checks={len(worker_checks)} worker_mismatches={sum(not x for x in worker_checks)} "
f"empty_mesh_rows={empty_rows} max_peak_rss_kib={maximum_rss} elapsed_s={elapsed:.3f}\n"
)
(ROUND / "seed_mesh_coverage_summary.txt").write_text(summary)
print(summary, end="", flush=True)
return 0 if all(compiler_checks) and all(worker_checks) and empty_rows == 0 and elapsed <= budget else 3
if __name__ == "__main__":
raise SystemExit(main())
@@ -0,0 +1,577 @@
seed,recipe,compiler_setting,workers,tiles,nonempty_mesh_tiles,indexed_triangles,camera_x_vox,camera_y_vox,camera_z_vox,density_hash,mesh_hash,payload_hash,topology_hash,whole_view_ready_s,wall_s,peak_rss_kib,exit_code,status
-1990830953,surface-world,clang19-off,1,27,9,26366,0.000000,-140.000000,-2021.785156,0x125d085ff63ece8a,0x3f219420ffe76ceb,0x386c66f61f66fde5,0x9fc08404031eb99b,0.162,0.180221,84360,0,PASS
-1990830953,surface-world,clang19-off,12,27,9,26366,0.000000,-140.000000,-2021.785156,0x125d085ff63ece8a,0x3f219420ffe76ceb,0x386c66f61f66fde5,0x9fc08404031eb99b,0.397,0.424425,294988,0,PASS
-1990830953,surface-world,clang19-on,1,27,9,26366,0.000000,-140.000000,-2021.785156,0x125d085ff63ece8a,0x3f219420ffe76ceb,0x386c66f61f66fde5,0x9fc08404031eb99b,0.163,0.180433,84540,0,PASS
-1990830953,surface-world,clang19-on,12,27,9,26366,0.000000,-140.000000,-2021.785156,0x125d085ff63ece8a,0x3f219420ffe76ceb,0x386c66f61f66fde5,0x9fc08404031eb99b,0.401,0.427873,294656,0,PASS
-1990830953,surface-world,gcc14-default,1,27,9,26366,0.000000,-140.000000,-2021.785156,0x125d085ff63ece8a,0x3f219420ffe76ceb,0x386c66f61f66fde5,0x9fc08404031eb99b,0.152,0.167928,84996,0,PASS
-1990830953,surface-world,gcc14-default,12,27,9,26366,0.000000,-140.000000,-2021.785156,0x125d085ff63ece8a,0x3f219420ffe76ceb,0x386c66f61f66fde5,0x9fc08404031eb99b,0.398,0.424793,295392,0,PASS
-1990830953,floating-islands,clang19-off,1,27,12,23386,-39.199219,16.363281,-121.039062,0xc04ef8acd44d8736,0x00e92c97d841dfe5,0xb57496fb3be7da11,0x64b0c5c3655299c2,0.872,0.887909,85248,0,PASS
-1990830953,floating-islands,clang19-off,12,27,12,23386,-39.199219,16.363281,-121.039062,0xc04ef8acd44d8736,0x00e92c97d841dfe5,0xb57496fb3be7da11,0x64b0c5c3655299c2,0.549,0.575731,300132,0,PASS
-1990830953,floating-islands,clang19-on,1,27,12,23386,-39.199219,16.363281,-121.039062,0xc04ef8acd44d8736,0x00e92c97d841dfe5,0xb57496fb3be7da11,0x64b0c5c3655299c2,0.884,0.901147,85000,0,PASS
-1990830953,floating-islands,clang19-on,12,27,12,23386,-39.199219,16.363281,-121.039062,0xc04ef8acd44d8736,0x00e92c97d841dfe5,0xb57496fb3be7da11,0x64b0c5c3655299c2,0.578,0.605578,299564,0,PASS
-1990830953,floating-islands,gcc14-default,1,27,12,23386,-39.199219,16.363281,-121.039062,0xc04ef8acd44d8736,0x00e92c97d841dfe5,0xb57496fb3be7da11,0x64b0c5c3655299c2,0.943,0.959068,85752,0,PASS
-1990830953,floating-islands,gcc14-default,12,27,12,23386,-39.199219,16.363281,-121.039062,0xc04ef8acd44d8736,0x00e92c97d841dfe5,0xb57496fb3be7da11,0x64b0c5c3655299c2,0.588,0.614935,300548,0,PASS
-1900684165,surface-world,clang19-off,1,27,10,27890,0.000000,-140.000000,-2011.214844,0xcc9819b02bd2f880,0x8cbe19f740d2b408,0xbe822577766381d4,0x69b6a50c6286fdf7,0.185,0.202214,89956,0,PASS
-1900684165,surface-world,clang19-off,12,27,10,27890,0.000000,-140.000000,-2011.214844,0xcc9819b02bd2f880,0x8cbe19f740d2b408,0xbe822577766381d4,0x69b6a50c6286fdf7,0.418,0.446199,301944,0,PASS
-1900684165,surface-world,clang19-on,1,27,10,27890,0.000000,-140.000000,-2011.214844,0xcc9819b02bd2f880,0x8cbe19f740d2b408,0xbe822577766381d4,0x69b6a50c6286fdf7,0.177,0.193134,89684,0,PASS
-1900684165,surface-world,clang19-on,12,27,10,27890,0.000000,-140.000000,-2011.214844,0xcc9819b02bd2f880,0x8cbe19f740d2b408,0xbe822577766381d4,0x69b6a50c6286fdf7,0.438,0.466528,301656,0,PASS
-1900684165,surface-world,gcc14-default,1,27,10,27890,0.000000,-140.000000,-2011.214844,0xcc9819b02bd2f880,0x8cbe19f740d2b408,0xbe822577766381d4,0x69b6a50c6286fdf7,0.180,0.196807,90492,0,PASS
-1900684165,surface-world,gcc14-default,12,27,10,27890,0.000000,-140.000000,-2011.214844,0xcc9819b02bd2f880,0x8cbe19f740d2b408,0xbe822577766381d4,0x69b6a50c6286fdf7,0.442,0.468384,300628,0,PASS
-1900684165,floating-islands,clang19-off,1,27,10,23186,39.199219,17.675781,-116.339844,0xfc7386c15431e2e1,0x46ce25dfb3745f53,0x97c9ffd0022012ad,0x64303145c5cc6d24,1.558,1.574129,89380,0,PASS
-1900684165,floating-islands,clang19-off,12,27,10,23186,39.199219,17.675781,-116.339844,0xfc7386c15431e2e1,0x46ce25dfb3745f53,0x97c9ffd0022012ad,0x64303145c5cc6d24,0.699,0.726109,303932,0,PASS
-1900684165,floating-islands,clang19-on,1,27,10,23186,39.199219,17.675781,-116.339844,0xfc7386c15431e2e1,0x46ce25dfb3745f53,0x97c9ffd0022012ad,0x64303145c5cc6d24,1.599,1.615516,89308,0,PASS
-1900684165,floating-islands,clang19-on,12,27,10,23186,39.199219,17.675781,-116.339844,0xfc7386c15431e2e1,0x46ce25dfb3745f53,0x97c9ffd0022012ad,0x64303145c5cc6d24,0.727,0.755017,303964,0,PASS
-1900684165,floating-islands,gcc14-default,1,27,10,23186,39.199219,17.675781,-116.339844,0xfc7386c15431e2e1,0x46ce25dfb3745f53,0x97c9ffd0022012ad,0x64303145c5cc6d24,1.692,1.708073,89664,0,PASS
-1900684165,floating-islands,gcc14-default,12,27,10,23186,39.199219,17.675781,-116.339844,0xfc7386c15431e2e1,0x46ce25dfb3745f53,0x97c9ffd0022012ad,0x64303145c5cc6d24,0.763,0.790272,304528,0,PASS
-1766412538,surface-world,clang19-off,1,27,9,27572,0.000000,-140.000000,-2004.851562,0x4d04ec633754c4ec,0xca8833dcfe9639d3,0x0a4008899d91f10e,0x2d6116327735df9a,0.181,0.196881,84084,0,PASS
-1766412538,surface-world,clang19-off,12,27,9,27572,0.000000,-140.000000,-2004.851562,0x4d04ec633754c4ec,0xca8833dcfe9639d3,0x0a4008899d91f10e,0x2d6116327735df9a,0.414,0.439405,294580,0,PASS
-1766412538,surface-world,clang19-on,1,27,9,27572,0.000000,-140.000000,-2004.851562,0x4d04ec633754c4ec,0xca8833dcfe9639d3,0x0a4008899d91f10e,0x2d6116327735df9a,0.181,0.196772,84172,0,PASS
-1766412538,surface-world,clang19-on,12,27,9,27572,0.000000,-140.000000,-2004.851562,0x4d04ec633754c4ec,0xca8833dcfe9639d3,0x0a4008899d91f10e,0x2d6116327735df9a,0.412,0.438983,294880,0,PASS
-1766412538,surface-world,gcc14-default,1,27,9,27572,0.000000,-140.000000,-2004.851562,0x4d04ec633754c4ec,0xca8833dcfe9639d3,0x0a4008899d91f10e,0x2d6116327735df9a,0.175,0.192855,84688,0,PASS
-1766412538,surface-world,gcc14-default,12,27,9,27572,0.000000,-140.000000,-2004.851562,0x4d04ec633754c4ec,0xca8833dcfe9639d3,0x0a4008899d91f10e,0x2d6116327735df9a,0.430,0.455090,295516,0,PASS
-1766412538,floating-islands,clang19-off,1,27,12,23618,-25.199219,-73.816406,-135.394531,0xdb6557b98f29060e,0x3b3147a1d020ca02,0x010127525a940a1e,0xc9563575ca60b627,1.542,1.556645,86260,0,PASS
-1766412538,floating-islands,clang19-off,12,27,12,23618,-25.199219,-73.816406,-135.394531,0xdb6557b98f29060e,0x3b3147a1d020ca02,0x010127525a940a1e,0xc9563575ca60b627,0.673,0.699377,300448,0,PASS
-1766412538,floating-islands,clang19-on,1,27,12,23618,-25.199219,-73.816406,-135.394531,0xdb6557b98f29060e,0x3b3147a1d020ca02,0x010127525a940a1e,0xc9563575ca60b627,1.587,1.602433,86588,0,PASS
-1766412538,floating-islands,clang19-on,12,27,12,23618,-25.199219,-73.816406,-135.394531,0xdb6557b98f29060e,0x3b3147a1d020ca02,0x010127525a940a1e,0xc9563575ca60b627,0.702,0.728925,300536,0,PASS
-1766412538,floating-islands,gcc14-default,1,27,12,23618,-25.199219,-73.816406,-135.394531,0xdb6557b98f29060e,0x3b3147a1d020ca02,0x010127525a940a1e,0xc9563575ca60b627,1.744,1.760677,87052,0,PASS
-1766412538,floating-islands,gcc14-default,12,27,12,23618,-25.199219,-73.816406,-135.394531,0xdb6557b98f29060e,0x3b3147a1d020ca02,0x010127525a940a1e,0xc9563575ca60b627,0.741,0.770803,301248,0,PASS
-1721984596,surface-world,clang19-off,1,27,9,27374,0.000000,-140.000000,-2006.878906,0x65b6ae0a3a1fdd35,0x117d40e403c960bc,0x9bc7a92591e7d7e3,0x988675caf5879337,0.172,0.187451,84428,0,PASS
-1721984596,surface-world,clang19-off,12,27,9,27374,0.000000,-140.000000,-2006.878906,0x65b6ae0a3a1fdd35,0x117d40e403c960bc,0x9bc7a92591e7d7e3,0x988675caf5879337,0.424,0.450959,294996,0,PASS
-1721984596,surface-world,clang19-on,1,27,9,27374,0.000000,-140.000000,-2006.878906,0x65b6ae0a3a1fdd35,0x117d40e403c960bc,0x9bc7a92591e7d7e3,0x988675caf5879337,0.183,0.199333,84536,0,PASS
-1721984596,surface-world,clang19-on,12,27,9,27374,0.000000,-140.000000,-2006.878906,0x65b6ae0a3a1fdd35,0x117d40e403c960bc,0x9bc7a92591e7d7e3,0x988675caf5879337,0.426,0.452557,294916,0,PASS
-1721984596,surface-world,gcc14-default,1,27,9,27374,0.000000,-140.000000,-2006.878906,0x65b6ae0a3a1fdd35,0x117d40e403c960bc,0x9bc7a92591e7d7e3,0x988675caf5879337,0.178,0.193728,85196,0,PASS
-1721984596,surface-world,gcc14-default,12,27,9,27374,0.000000,-140.000000,-2006.878906,0x65b6ae0a3a1fdd35,0x117d40e403c960bc,0x9bc7a92591e7d7e3,0x988675caf5879337,0.427,0.454505,295184,0,PASS
-1721984596,floating-islands,clang19-off,1,27,10,23728,64.398438,74.085938,-128.433594,0xbb7777932cd3328a,0x5d7243f5afb8902a,0xdb6cef72728d0d64,0x625882823c87a40b,1.554,1.570584,85220,0,PASS
-1721984596,floating-islands,clang19-off,12,27,10,23728,64.398438,74.085938,-128.433594,0xbb7777932cd3328a,0x5d7243f5afb8902a,0xdb6cef72728d0d64,0x625882823c87a40b,0.718,0.745795,300772,0,PASS
-1721984596,floating-islands,clang19-on,1,27,10,23728,64.398438,74.085938,-128.433594,0xbb7777932cd3328a,0x5d7243f5afb8902a,0xdb6cef72728d0d64,0x625882823c87a40b,1.578,1.593432,85580,0,PASS
-1721984596,floating-islands,clang19-on,12,27,10,23728,64.398438,74.085938,-128.433594,0xbb7777932cd3328a,0x5d7243f5afb8902a,0xdb6cef72728d0d64,0x625882823c87a40b,0.708,0.734658,299780,0,PASS
-1721984596,floating-islands,gcc14-default,1,27,10,23728,64.398438,74.085938,-128.433594,0xbb7777932cd3328a,0x5d7243f5afb8902a,0xdb6cef72728d0d64,0x625882823c87a40b,1.714,1.730034,85816,0,PASS
-1721984596,floating-islands,gcc14-default,12,27,10,23728,64.398438,74.085938,-128.433594,0xbb7777932cd3328a,0x5d7243f5afb8902a,0xdb6cef72728d0d64,0x625882823c87a40b,0.757,0.784127,301460,0,PASS
-1239598758,surface-world,clang19-off,1,27,15,38978,0.000000,-140.000000,-2001.816406,0x8aaf7c7c610e550f,0xeaa948233176c456,0x32c71b1231361cd2,0xecd43272e8d589a7,0.269,0.284560,84356,0,PASS
-1239598758,surface-world,clang19-off,12,27,15,38978,0.000000,-140.000000,-2001.816406,0x8aaf7c7c610e550f,0xeaa948233176c456,0x32c71b1231361cd2,0xecd43272e8d589a7,0.447,0.473801,299712,0,PASS
-1239598758,surface-world,clang19-on,1,27,15,38978,0.000000,-140.000000,-2001.816406,0x8aaf7c7c610e550f,0xeaa948233176c456,0x32c71b1231361cd2,0xecd43272e8d589a7,0.277,0.293296,84584,0,PASS
-1239598758,surface-world,clang19-on,12,27,15,38978,0.000000,-140.000000,-2001.816406,0x8aaf7c7c610e550f,0xeaa948233176c456,0x32c71b1231361cd2,0xecd43272e8d589a7,0.460,0.486378,298388,0,PASS
-1239598758,surface-world,gcc14-default,1,27,15,38978,0.000000,-140.000000,-2001.816406,0x8aaf7c7c610e550f,0xeaa948233176c456,0x32c71b1231361cd2,0xecd43272e8d589a7,0.261,0.276573,84996,0,PASS
-1239598758,surface-world,gcc14-default,12,27,15,38978,0.000000,-140.000000,-2001.816406,0x8aaf7c7c610e550f,0xeaa948233176c456,0x32c71b1231361cd2,0xecd43272e8d589a7,0.464,0.492223,300696,0,PASS
-1239598758,floating-islands,clang19-off,1,27,12,28162,39.199219,19.425781,-116.691406,0x9ee03f2326224bbc,0x0ea03da61381b41a,0x4b658d0bd4e527e6,0x402b075c754192e3,1.280,1.297085,85588,0,PASS
-1239598758,floating-islands,clang19-off,12,27,12,28162,39.199219,19.425781,-116.691406,0x9ee03f2326224bbc,0x0ea03da61381b41a,0x4b658d0bd4e527e6,0x402b075c754192e3,0.642,0.669720,300940,0,PASS
-1239598758,floating-islands,clang19-on,1,27,12,28162,39.199219,19.425781,-116.691406,0x9ee03f2326224bbc,0x0ea03da61381b41a,0x4b658d0bd4e527e6,0x402b075c754192e3,1.324,1.342774,85712,0,PASS
-1239598758,floating-islands,clang19-on,12,27,12,28162,39.199219,19.425781,-116.691406,0x9ee03f2326224bbc,0x0ea03da61381b41a,0x4b658d0bd4e527e6,0x402b075c754192e3,0.637,0.664175,300712,0,PASS
-1239598758,floating-islands,gcc14-default,1,27,12,28162,39.199219,19.425781,-116.691406,0x9ee03f2326224bbc,0x0ea03da61381b41a,0x4b658d0bd4e527e6,0x402b075c754192e3,1.465,1.480710,85820,0,PASS
-1239598758,floating-islands,gcc14-default,12,27,12,28162,39.199219,19.425781,-116.691406,0x9ee03f2326224bbc,0x0ea03da61381b41a,0x4b658d0bd4e527e6,0x402b075c754192e3,0.678,0.706467,301428,0,PASS
-1085993262,surface-world,clang19-off,1,27,13,30779,0.000000,-140.000000,-2018.355469,0x6dd63983ab04ee63,0x606e6964e1b2bfa0,0x30f2ccb9c65750ff,0x72fb3b77904151b8,0.203,0.219019,84900,0,PASS
-1085993262,surface-world,clang19-off,12,27,13,30779,0.000000,-140.000000,-2018.355469,0x6dd63983ab04ee63,0x606e6964e1b2bfa0,0x30f2ccb9c65750ff,0x72fb3b77904151b8,0.442,0.468936,300076,0,PASS
-1085993262,surface-world,clang19-on,1,27,13,30779,0.000000,-140.000000,-2018.355469,0x6dd63983ab04ee63,0x606e6964e1b2bfa0,0x30f2ccb9c65750ff,0x72fb3b77904151b8,0.209,0.226037,84848,0,PASS
-1085993262,surface-world,clang19-on,12,27,13,30779,0.000000,-140.000000,-2018.355469,0x6dd63983ab04ee63,0x606e6964e1b2bfa0,0x30f2ccb9c65750ff,0x72fb3b77904151b8,0.434,0.461038,299916,0,PASS
-1085993262,surface-world,gcc14-default,1,27,13,30779,0.000000,-140.000000,-2018.355469,0x6dd63983ab04ee63,0x606e6964e1b2bfa0,0x30f2ccb9c65750ff,0x72fb3b77904151b8,0.194,0.212574,85588,0,PASS
-1085993262,surface-world,gcc14-default,12,27,13,30779,0.000000,-140.000000,-2018.355469,0x6dd63983ab04ee63,0x606e6964e1b2bfa0,0x30f2ccb9c65750ff,0x72fb3b77904151b8,0.421,0.449569,300836,0,PASS
-1085993262,floating-islands,clang19-off,1,27,11,25186,-39.199219,16.968750,-116.531250,0x8dec867557d4e27c,0x13de3a8f9465573d,0x2e2ca36cfff2558a,0x42ad0d371549e563,1.085,1.101264,86672,0,PASS
-1085993262,floating-islands,clang19-off,12,27,11,25186,-39.199219,16.968750,-116.531250,0x8dec867557d4e27c,0x13de3a8f9465573d,0x2e2ca36cfff2558a,0x42ad0d371549e563,0.573,0.602307,301496,0,PASS
-1085993262,floating-islands,clang19-on,1,27,11,25186,-39.199219,16.968750,-116.531250,0x8dec867557d4e27c,0x13de3a8f9465573d,0x2e2ca36cfff2558a,0x42ad0d371549e563,1.085,1.100702,86848,0,PASS
-1085993262,floating-islands,clang19-on,12,27,11,25186,-39.199219,16.968750,-116.531250,0x8dec867557d4e27c,0x13de3a8f9465573d,0x2e2ca36cfff2558a,0x42ad0d371549e563,0.576,0.603241,301652,0,PASS
-1085993262,floating-islands,gcc14-default,1,27,11,25186,-39.199219,16.968750,-116.531250,0x8dec867557d4e27c,0x13de3a8f9465573d,0x2e2ca36cfff2558a,0x42ad0d371549e563,1.195,1.210876,87352,0,PASS
-1085993262,floating-islands,gcc14-default,12,27,11,25186,-39.199219,16.968750,-116.531250,0x8dec867557d4e27c,0x13de3a8f9465573d,0x2e2ca36cfff2558a,0x42ad0d371549e563,0.617,0.646640,302080,0,PASS
-1033703345,surface-world,clang19-off,1,27,16,50890,0.000000,-140.000000,-1585.519531,0xe2f8c4b421a9402a,0x730fd7c4692eaff3,0xacf64857ef930634,0x86e7853e9d0b4a35,0.342,0.358880,85076,0,PASS
-1033703345,surface-world,clang19-off,12,27,16,50890,0.000000,-140.000000,-1585.519531,0xe2f8c4b421a9402a,0x730fd7c4692eaff3,0xacf64857ef930634,0x86e7853e9d0b4a35,0.451,0.477876,301748,0,PASS
-1033703345,surface-world,clang19-on,1,27,16,50890,0.000000,-140.000000,-1585.519531,0xe2f8c4b421a9402a,0x730fd7c4692eaff3,0xacf64857ef930634,0x86e7853e9d0b4a35,0.318,0.334873,84996,0,PASS
-1033703345,surface-world,clang19-on,12,27,16,50890,0.000000,-140.000000,-1585.519531,0xe2f8c4b421a9402a,0x730fd7c4692eaff3,0xacf64857ef930634,0x86e7853e9d0b4a35,0.461,0.490652,301616,0,PASS
-1033703345,surface-world,gcc14-default,1,27,16,50890,0.000000,-140.000000,-1585.519531,0xe2f8c4b421a9402a,0x730fd7c4692eaff3,0xacf64857ef930634,0x86e7853e9d0b4a35,0.305,0.322211,85560,0,PASS
-1033703345,surface-world,gcc14-default,12,27,16,50890,0.000000,-140.000000,-1585.519531,0xe2f8c4b421a9402a,0x730fd7c4692eaff3,0xacf64857ef930634,0x86e7853e9d0b4a35,0.476,0.502916,302484,0,PASS
-1033703345,floating-islands,clang19-off,1,27,10,17406,-25.199219,-75.605469,-128.097656,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590,0x570a869c76c15846,0x8139f7fb5146e402,2.065,2.083040,86192,0,PASS
-1033703345,floating-islands,clang19-off,12,27,10,17406,-25.199219,-75.605469,-128.097656,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590,0x570a869c76c15846,0x8139f7fb5146e402,0.776,0.804394,299624,0,PASS
-1033703345,floating-islands,clang19-on,1,27,10,17406,-25.199219,-75.605469,-128.097656,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590,0x570a869c76c15846,0x8139f7fb5146e402,1.996,2.016862,86136,0,PASS
-1033703345,floating-islands,clang19-on,12,27,10,17406,-25.199219,-75.605469,-128.097656,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590,0x570a869c76c15846,0x8139f7fb5146e402,0.841,0.879778,299580,0,PASS
-1033703345,floating-islands,gcc14-default,1,27,10,17406,-25.199219,-75.605469,-128.097656,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590,0x570a869c76c15846,0x8139f7fb5146e402,1.997,2.013598,86416,0,PASS
-1033703345,floating-islands,gcc14-default,12,27,10,17406,-25.199219,-75.605469,-128.097656,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590,0x570a869c76c15846,0x8139f7fb5146e402,0.820,0.848116,300464,0,PASS
-854671705,surface-world,clang19-off,1,27,10,26198,0.000000,-140.000000,-2018.242188,0x0a9e017447ffff3d,0x807299923966d5be,0xdd97f14916c8157a,0x95313b997ff55c26,0.216,0.232793,83632,0,PASS
-854671705,surface-world,clang19-off,12,27,10,26198,0.000000,-140.000000,-2018.242188,0x0a9e017447ffff3d,0x807299923966d5be,0xdd97f14916c8157a,0x95313b997ff55c26,0.462,0.492727,295640,0,PASS
-854671705,surface-world,clang19-on,1,27,10,26198,0.000000,-140.000000,-2018.242188,0x0a9e017447ffff3d,0x807299923966d5be,0xdd97f14916c8157a,0x95313b997ff55c26,0.210,0.225523,83756,0,PASS
-854671705,surface-world,clang19-on,12,27,10,26198,0.000000,-140.000000,-2018.242188,0x0a9e017447ffff3d,0x807299923966d5be,0xdd97f14916c8157a,0x95313b997ff55c26,0.460,0.486882,295460,0,PASS
-854671705,surface-world,gcc14-default,1,27,10,26198,0.000000,-140.000000,-2018.242188,0x0a9e017447ffff3d,0x807299923966d5be,0xdd97f14916c8157a,0x95313b997ff55c26,0.204,0.220779,84224,0,PASS
-854671705,surface-world,gcc14-default,12,27,10,26198,0.000000,-140.000000,-2018.242188,0x0a9e017447ffff3d,0x807299923966d5be,0xdd97f14916c8157a,0x95313b997ff55c26,0.447,0.476285,295724,0,PASS
-854671705,floating-islands,clang19-off,1,27,13,39000,0.000000,-19.800781,-116.507812,0xbb5718ca3ad4c181,0x3250d2591365d443,0xec60f80b7f67216b,0xfe710427da53178b,1.858,1.873454,84868,0,PASS
-854671705,floating-islands,clang19-off,12,27,13,39000,0.000000,-19.800781,-116.507812,0xbb5718ca3ad4c181,0x3250d2591365d443,0xec60f80b7f67216b,0xfe710427da53178b,0.769,0.797051,301256,0,PASS
-854671705,floating-islands,clang19-on,1,27,13,39000,0.000000,-19.800781,-116.507812,0xbb5718ca3ad4c181,0x3250d2591365d443,0xec60f80b7f67216b,0xfe710427da53178b,1.927,1.944057,84916,0,PASS
-854671705,floating-islands,clang19-on,12,27,13,39000,0.000000,-19.800781,-116.507812,0xbb5718ca3ad4c181,0x3250d2591365d443,0xec60f80b7f67216b,0xfe710427da53178b,0.798,0.826241,300776,0,PASS
-854671705,floating-islands,gcc14-default,1,27,13,39000,0.000000,-19.800781,-116.507812,0xbb5718ca3ad4c181,0x3250d2591365d443,0xec60f80b7f67216b,0xfe710427da53178b,1.908,1.924264,85304,0,PASS
-854671705,floating-islands,gcc14-default,12,27,13,39000,0.000000,-19.800781,-116.507812,0xbb5718ca3ad4c181,0x3250d2591365d443,0xec60f80b7f67216b,0xfe710427da53178b,0.804,0.831547,301148,0,PASS
-713963806,surface-world,clang19-off,1,27,16,30292,0.000000,-140.000000,-2018.582031,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6,0x3f6ba7ffdf385024,0x7183d3025a48e8ea,0.211,0.228046,85784,0,PASS
-713963806,surface-world,clang19-off,12,27,16,30292,0.000000,-140.000000,-2018.582031,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6,0x3f6ba7ffdf385024,0x7183d3025a48e8ea,0.443,0.470682,300976,0,PASS
-713963806,surface-world,clang19-on,1,27,16,30292,0.000000,-140.000000,-2018.582031,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6,0x3f6ba7ffdf385024,0x7183d3025a48e8ea,0.210,0.226264,86008,0,PASS
-713963806,surface-world,clang19-on,12,27,16,30292,0.000000,-140.000000,-2018.582031,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6,0x3f6ba7ffdf385024,0x7183d3025a48e8ea,0.416,0.444035,300924,0,PASS
-713963806,surface-world,gcc14-default,1,27,16,30292,0.000000,-140.000000,-2018.582031,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6,0x3f6ba7ffdf385024,0x7183d3025a48e8ea,0.214,0.230669,86420,0,PASS
-713963806,surface-world,gcc14-default,12,27,16,30292,0.000000,-140.000000,-2018.582031,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6,0x3f6ba7ffdf385024,0x7183d3025a48e8ea,0.417,0.445410,301040,0,PASS
-713963806,floating-islands,clang19-off,1,27,8,16002,64.398438,74.308594,-120.453125,0xd590c16395cc515f,0x3a62d63b76bdd260,0x9424147669e1808f,0x137dd286dcedcad6,1.356,1.372073,84768,0,PASS
-713963806,floating-islands,clang19-off,12,27,8,16002,64.398438,74.308594,-120.453125,0xd590c16395cc515f,0x3a62d63b76bdd260,0x9424147669e1808f,0x137dd286dcedcad6,0.676,0.703891,297840,0,PASS
-713963806,floating-islands,clang19-on,1,27,8,16002,64.398438,74.308594,-120.453125,0xd590c16395cc515f,0x3a62d63b76bdd260,0x9424147669e1808f,0x137dd286dcedcad6,1.360,1.376357,84572,0,PASS
-713963806,floating-islands,clang19-on,12,27,8,16002,64.398438,74.308594,-120.453125,0xd590c16395cc515f,0x3a62d63b76bdd260,0x9424147669e1808f,0x137dd286dcedcad6,0.655,0.682658,297928,0,PASS
-713963806,floating-islands,gcc14-default,1,27,8,16002,64.398438,74.308594,-120.453125,0xd590c16395cc515f,0x3a62d63b76bdd260,0x9424147669e1808f,0x137dd286dcedcad6,1.293,1.309713,85500,0,PASS
-713963806,floating-islands,gcc14-default,12,27,8,16002,64.398438,74.308594,-120.453125,0xd590c16395cc515f,0x3a62d63b76bdd260,0x9424147669e1808f,0x137dd286dcedcad6,0.656,0.682912,298628,0,PASS
-621039221,surface-world,clang19-off,1,27,17,30168,0.000000,-140.000000,-2015.613281,0xa27c25107de22a4d,0xde2ffe789eb7fb05,0x966dae7a483679d3,0xf608770036c256a5,0.195,0.211023,85856,0,PASS
-621039221,surface-world,clang19-off,12,27,17,30168,0.000000,-140.000000,-2015.613281,0xa27c25107de22a4d,0xde2ffe789eb7fb05,0x966dae7a483679d3,0xf608770036c256a5,0.426,0.453981,301240,0,PASS
-621039221,surface-world,clang19-on,1,27,17,30168,0.000000,-140.000000,-2015.613281,0xa27c25107de22a4d,0xde2ffe789eb7fb05,0x966dae7a483679d3,0xf608770036c256a5,0.192,0.208197,86544,0,PASS
-621039221,surface-world,clang19-on,12,27,17,30168,0.000000,-140.000000,-2015.613281,0xa27c25107de22a4d,0xde2ffe789eb7fb05,0x966dae7a483679d3,0xf608770036c256a5,0.427,0.454462,301016,0,PASS
-621039221,surface-world,gcc14-default,1,27,17,30168,0.000000,-140.000000,-2015.613281,0xa27c25107de22a4d,0xde2ffe789eb7fb05,0x966dae7a483679d3,0xf608770036c256a5,0.194,0.212277,86740,0,PASS
-621039221,surface-world,gcc14-default,12,27,17,30168,0.000000,-140.000000,-2015.613281,0xa27c25107de22a4d,0xde2ffe789eb7fb05,0x966dae7a483679d3,0xf608770036c256a5,0.407,0.437082,301508,0,PASS
-621039221,floating-islands,clang19-off,1,27,15,46224,0.000000,-18.796875,-116.769531,0x8bf4ceae8c1ddbf6,0x61557967c37529fe,0xbe41280640aaac59,0xd511ae5cd4a47551,1.622,1.638054,87236,0,PASS
-621039221,floating-islands,clang19-off,12,27,15,46224,0.000000,-18.796875,-116.769531,0x8bf4ceae8c1ddbf6,0x61557967c37529fe,0xbe41280640aaac59,0xd511ae5cd4a47551,0.688,0.715350,304400,0,PASS
-621039221,floating-islands,clang19-on,1,27,15,46224,0.000000,-18.796875,-116.769531,0x8bf4ceae8c1ddbf6,0x61557967c37529fe,0xbe41280640aaac59,0xd511ae5cd4a47551,1.623,1.638541,87444,0,PASS
-621039221,floating-islands,clang19-on,12,27,15,46224,0.000000,-18.796875,-116.769531,0x8bf4ceae8c1ddbf6,0x61557967c37529fe,0xbe41280640aaac59,0xd511ae5cd4a47551,0.717,0.744065,303692,0,PASS
-621039221,floating-islands,gcc14-default,1,27,15,46224,0.000000,-18.796875,-116.769531,0x8bf4ceae8c1ddbf6,0x61557967c37529fe,0xbe41280640aaac59,0xd511ae5cd4a47551,1.757,1.775436,87644,0,PASS
-621039221,floating-islands,gcc14-default,12,27,15,46224,0.000000,-18.796875,-116.769531,0x8bf4ceae8c1ddbf6,0x61557967c37529fe,0xbe41280640aaac59,0xd511ae5cd4a47551,0.731,0.760059,304508,0,PASS
-474448608,surface-world,clang19-off,1,27,11,28424,0.000000,-140.000000,-2020.160156,0x0d40ad842a0123ea,0x273fb800c1246cac,0x7a8c602b445dc956,0xd0584f94b9e78e65,0.169,0.185724,84116,0,PASS
-474448608,surface-world,clang19-off,12,27,11,28424,0.000000,-140.000000,-2020.160156,0x0d40ad842a0123ea,0x273fb800c1246cac,0x7a8c602b445dc956,0xd0584f94b9e78e65,0.407,0.433876,297484,0,PASS
-474448608,surface-world,clang19-on,1,27,11,28424,0.000000,-140.000000,-2020.160156,0x0d40ad842a0123ea,0x273fb800c1246cac,0x7a8c602b445dc956,0xd0584f94b9e78e65,0.171,0.188006,84236,0,PASS
-474448608,surface-world,clang19-on,12,27,11,28424,0.000000,-140.000000,-2020.160156,0x0d40ad842a0123ea,0x273fb800c1246cac,0x7a8c602b445dc956,0xd0584f94b9e78e65,0.435,0.461874,296040,0,PASS
-474448608,surface-world,gcc14-default,1,27,11,28424,0.000000,-140.000000,-2020.160156,0x0d40ad842a0123ea,0x273fb800c1246cac,0x7a8c602b445dc956,0xd0584f94b9e78e65,0.165,0.180445,84884,0,PASS
-474448608,surface-world,gcc14-default,12,27,11,28424,0.000000,-140.000000,-2020.160156,0x0d40ad842a0123ea,0x273fb800c1246cac,0x7a8c602b445dc956,0xd0584f94b9e78e65,0.426,0.453272,298176,0,PASS
-474448608,floating-islands,clang19-off,1,27,12,26122,-39.199219,20.921875,-121.671875,0x2a634b2a3d2e38ef,0x52d2036bf1406614,0x0f3ab05afb9043d4,0x47b6e01bb7fbb7ba,1.629,1.645685,86612,0,PASS
-474448608,floating-islands,clang19-off,12,27,12,26122,-39.199219,20.921875,-121.671875,0x2a634b2a3d2e38ef,0x52d2036bf1406614,0x0f3ab05afb9043d4,0x47b6e01bb7fbb7ba,0.726,0.754007,301436,0,PASS
-474448608,floating-islands,clang19-on,1,27,12,26122,-39.199219,20.921875,-121.671875,0x2a634b2a3d2e38ef,0x52d2036bf1406614,0x0f3ab05afb9043d4,0x47b6e01bb7fbb7ba,1.622,1.638207,86372,0,PASS
-474448608,floating-islands,clang19-on,12,27,12,26122,-39.199219,20.921875,-121.671875,0x2a634b2a3d2e38ef,0x52d2036bf1406614,0x0f3ab05afb9043d4,0x47b6e01bb7fbb7ba,0.718,0.747095,301408,0,PASS
-474448608,floating-islands,gcc14-default,1,27,12,26122,-39.199219,20.921875,-121.671875,0x2a634b2a3d2e38ef,0x52d2036bf1406614,0x0f3ab05afb9043d4,0x47b6e01bb7fbb7ba,1.768,1.787964,87120,0,PASS
-474448608,floating-islands,gcc14-default,12,27,12,26122,-39.199219,20.921875,-121.671875,0x2a634b2a3d2e38ef,0x52d2036bf1406614,0x0f3ab05afb9043d4,0x47b6e01bb7fbb7ba,0.743,0.770994,301472,0,PASS
-432690581,surface-world,clang19-off,1,27,16,44640,0.000000,-140.000000,-1699.710938,0x3a23c958501ee719,0x45e154a2ee8b0f36,0x9077f2c785e84257,0x14d8bfb36426cbc5,0.306,0.322544,84304,0,PASS
-432690581,surface-world,clang19-off,12,27,16,44640,0.000000,-140.000000,-1699.710938,0x3a23c958501ee719,0x45e154a2ee8b0f36,0x9077f2c785e84257,0x14d8bfb36426cbc5,0.459,0.485418,300580,0,PASS
-432690581,surface-world,clang19-on,1,27,16,44640,0.000000,-140.000000,-1699.710938,0x3a23c958501ee719,0x45e154a2ee8b0f36,0x9077f2c785e84257,0x14d8bfb36426cbc5,0.306,0.321647,84076,0,PASS
-432690581,surface-world,clang19-on,12,27,16,44640,0.000000,-140.000000,-1699.710938,0x3a23c958501ee719,0x45e154a2ee8b0f36,0x9077f2c785e84257,0x14d8bfb36426cbc5,0.474,0.502246,300440,0,PASS
-432690581,surface-world,gcc14-default,1,27,16,44640,0.000000,-140.000000,-1699.710938,0x3a23c958501ee719,0x45e154a2ee8b0f36,0x9077f2c785e84257,0x14d8bfb36426cbc5,0.305,0.321094,85004,0,PASS
-432690581,surface-world,gcc14-default,12,27,16,44640,0.000000,-140.000000,-1699.710938,0x3a23c958501ee719,0x45e154a2ee8b0f36,0x9077f2c785e84257,0x14d8bfb36426cbc5,0.479,0.507033,301668,0,PASS
-432690581,floating-islands,clang19-off,1,27,7,20532,-39.199219,16.421875,-114.292969,0xd8b65942bf1c005c,0xe6557b8cadfb3356,0x446eeeb1e1fec3de,0x829b06ef76e4306d,1.352,1.368398,86148,0,PASS
-432690581,floating-islands,clang19-off,12,27,7,20532,-39.199219,16.421875,-114.292969,0xd8b65942bf1c005c,0xe6557b8cadfb3356,0x446eeeb1e1fec3de,0x829b06ef76e4306d,0.661,0.690096,300352,0,PASS
-432690581,floating-islands,clang19-on,1,27,7,20532,-39.199219,16.421875,-114.292969,0xd8b65942bf1c005c,0xe6557b8cadfb3356,0x446eeeb1e1fec3de,0x829b06ef76e4306d,1.354,1.371146,86172,0,PASS
-432690581,floating-islands,clang19-on,12,27,7,20532,-39.199219,16.421875,-114.292969,0xd8b65942bf1c005c,0xe6557b8cadfb3356,0x446eeeb1e1fec3de,0x829b06ef76e4306d,0.657,0.685687,300432,0,PASS
-432690581,floating-islands,gcc14-default,1,27,7,20532,-39.199219,16.421875,-114.292969,0xd8b65942bf1c005c,0xe6557b8cadfb3356,0x446eeeb1e1fec3de,0x829b06ef76e4306d,1.460,1.475496,86412,0,PASS
-432690581,floating-islands,gcc14-default,12,27,7,20532,-39.199219,16.421875,-114.292969,0xd8b65942bf1c005c,0xe6557b8cadfb3356,0x446eeeb1e1fec3de,0x829b06ef76e4306d,0.665,0.692459,301076,0,PASS
-380556572,surface-world,clang19-off,1,27,15,27832,0.000000,-140.000000,-2015.980469,0x54c47dd125294a9d,0x6e95e2a4fb185b89,0xdf1ac7f070338e53,0xe8b65412d19b0872,0.207,0.221590,85812,0,PASS
-380556572,surface-world,clang19-off,12,27,15,27832,0.000000,-140.000000,-2015.980469,0x54c47dd125294a9d,0x6e95e2a4fb185b89,0xdf1ac7f070338e53,0xe8b65412d19b0872,0.437,0.466566,300296,0,PASS
-380556572,surface-world,clang19-on,1,27,15,27832,0.000000,-140.000000,-2015.980469,0x54c47dd125294a9d,0x6e95e2a4fb185b89,0xdf1ac7f070338e53,0xe8b65412d19b0872,0.202,0.218609,85576,0,PASS
-380556572,surface-world,clang19-on,12,27,15,27832,0.000000,-140.000000,-2015.980469,0x54c47dd125294a9d,0x6e95e2a4fb185b89,0xdf1ac7f070338e53,0xe8b65412d19b0872,0.440,0.468031,300284,0,PASS
-380556572,surface-world,gcc14-default,1,27,15,27832,0.000000,-140.000000,-2015.980469,0x54c47dd125294a9d,0x6e95e2a4fb185b89,0xdf1ac7f070338e53,0xe8b65412d19b0872,0.190,0.205873,86136,0,PASS
-380556572,surface-world,gcc14-default,12,27,15,27832,0.000000,-140.000000,-2015.980469,0x54c47dd125294a9d,0x6e95e2a4fb185b89,0xdf1ac7f070338e53,0xe8b65412d19b0872,0.432,0.460376,300688,0,PASS
-380556572,floating-islands,clang19-off,1,27,10,25334,39.199219,17.386719,-117.285156,0x118f50002e1af1b1,0x57d82fed86d7545c,0xe6196a35a7e64fb8,0x094fe80cdf7fda78,0.839,0.855823,86260,0,PASS
-380556572,floating-islands,clang19-off,12,27,10,25334,39.199219,17.386719,-117.285156,0x118f50002e1af1b1,0x57d82fed86d7545c,0xe6196a35a7e64fb8,0x094fe80cdf7fda78,0.572,0.600560,301428,0,PASS
-380556572,floating-islands,clang19-on,1,27,10,25334,39.199219,17.386719,-117.285156,0x118f50002e1af1b1,0x57d82fed86d7545c,0xe6196a35a7e64fb8,0x094fe80cdf7fda78,0.875,0.890833,86184,0,PASS
-380556572,floating-islands,clang19-on,12,27,10,25334,39.199219,17.386719,-117.285156,0x118f50002e1af1b1,0x57d82fed86d7545c,0xe6196a35a7e64fb8,0x094fe80cdf7fda78,0.551,0.578834,300960,0,PASS
-380556572,floating-islands,gcc14-default,1,27,10,25334,39.199219,17.386719,-117.285156,0x118f50002e1af1b1,0x57d82fed86d7545c,0xe6196a35a7e64fb8,0x094fe80cdf7fda78,0.916,0.932667,86836,0,PASS
-380556572,floating-islands,gcc14-default,12,27,10,25334,39.199219,17.386719,-117.285156,0x118f50002e1af1b1,0x57d82fed86d7545c,0xe6196a35a7e64fb8,0x094fe80cdf7fda78,0.606,0.635544,301708,0,PASS
-238925630,surface-world,clang19-off,1,27,9,26908,0.000000,-140.000000,-2021.289062,0x01debb25b2642a4d,0xd316a4d6bbbdceee,0xba64591c42277c82,0x80e23990f3cb20b9,0.163,0.178003,84112,0,PASS
-238925630,surface-world,clang19-off,12,27,9,26908,0.000000,-140.000000,-2021.289062,0x01debb25b2642a4d,0xd316a4d6bbbdceee,0xba64591c42277c82,0x80e23990f3cb20b9,0.405,0.433901,294484,0,PASS
-238925630,surface-world,clang19-on,1,27,9,26908,0.000000,-140.000000,-2021.289062,0x01debb25b2642a4d,0xd316a4d6bbbdceee,0xba64591c42277c82,0x80e23990f3cb20b9,0.155,0.170979,84116,0,PASS
-238925630,surface-world,clang19-on,12,27,9,26908,0.000000,-140.000000,-2021.289062,0x01debb25b2642a4d,0xd316a4d6bbbdceee,0xba64591c42277c82,0x80e23990f3cb20b9,0.424,0.450283,294552,0,PASS
-238925630,surface-world,gcc14-default,1,27,9,26908,0.000000,-140.000000,-2021.289062,0x01debb25b2642a4d,0xd316a4d6bbbdceee,0xba64591c42277c82,0x80e23990f3cb20b9,0.157,0.173793,84632,0,PASS
-238925630,surface-world,gcc14-default,12,27,9,26908,0.000000,-140.000000,-2021.289062,0x01debb25b2642a4d,0xd316a4d6bbbdceee,0xba64591c42277c82,0x80e23990f3cb20b9,0.418,0.444259,295140,0,PASS
-238925630,floating-islands,clang19-off,1,27,10,20680,-39.199219,16.394531,-123.812500,0x36a07bf8d4383533,0x12f59de7f06e5270,0x327832e51af1db70,0xff0a971f18b6b590,2.096,2.113022,86240,0,PASS
-238925630,floating-islands,clang19-off,12,27,10,20680,-39.199219,16.394531,-123.812500,0x36a07bf8d4383533,0x12f59de7f06e5270,0x327832e51af1db70,0xff0a971f18b6b590,0.812,0.839647,299904,0,PASS
-238925630,floating-islands,clang19-on,1,27,10,20680,-39.199219,16.394531,-123.812500,0x36a07bf8d4383533,0x12f59de7f06e5270,0x327832e51af1db70,0xff0a971f18b6b590,2.107,2.123614,86584,0,PASS
-238925630,floating-islands,clang19-on,12,27,10,20680,-39.199219,16.394531,-123.812500,0x36a07bf8d4383533,0x12f59de7f06e5270,0x327832e51af1db70,0xff0a971f18b6b590,0.795,0.823151,299740,0,PASS
-238925630,floating-islands,gcc14-default,1,27,10,20680,-39.199219,16.394531,-123.812500,0x36a07bf8d4383533,0x12f59de7f06e5270,0x327832e51af1db70,0xff0a971f18b6b590,2.122,2.139698,87080,0,PASS
-238925630,floating-islands,gcc14-default,12,27,10,20680,-39.199219,16.394531,-123.812500,0x36a07bf8d4383533,0x12f59de7f06e5270,0x327832e51af1db70,0xff0a971f18b6b590,0.807,0.834762,300372,0,PASS
-216679974,surface-world,clang19-off,1,27,9,26538,0.000000,-140.000000,-2025.835938,0x04339f7c537f8920,0xb6d8dab4a5cd82ca,0x5bdc85d7f66eed92,0xac3b586f9be3e44e,0.168,0.185930,86460,0,PASS
-216679974,surface-world,clang19-off,12,27,9,26538,0.000000,-140.000000,-2025.835938,0x04339f7c537f8920,0xb6d8dab4a5cd82ca,0x5bdc85d7f66eed92,0xac3b586f9be3e44e,0.408,0.433793,296948,0,PASS
-216679974,surface-world,clang19-on,1,27,9,26538,0.000000,-140.000000,-2025.835938,0x04339f7c537f8920,0xb6d8dab4a5cd82ca,0x5bdc85d7f66eed92,0xac3b586f9be3e44e,0.160,0.176766,86712,0,PASS
-216679974,surface-world,clang19-on,12,27,9,26538,0.000000,-140.000000,-2025.835938,0x04339f7c537f8920,0xb6d8dab4a5cd82ca,0x5bdc85d7f66eed92,0xac3b586f9be3e44e,0.426,0.453535,296576,0,PASS
-216679974,surface-world,gcc14-default,1,27,9,26538,0.000000,-140.000000,-2025.835938,0x04339f7c537f8920,0xb6d8dab4a5cd82ca,0x5bdc85d7f66eed92,0xac3b586f9be3e44e,0.156,0.172641,87192,0,PASS
-216679974,surface-world,gcc14-default,12,27,9,26538,0.000000,-140.000000,-2025.835938,0x04339f7c537f8920,0xb6d8dab4a5cd82ca,0x5bdc85d7f66eed92,0xac3b586f9be3e44e,0.431,0.459265,297424,0,PASS
-216679974,floating-islands,clang19-off,1,27,9,25284,39.199219,20.230469,-108.953125,0x79bb86763243b67e,0x7fd748d3021d506d,0x83442fd7561cbb4e,0x5a36191d75130d85,1.202,1.219265,88692,0,PASS
-216679974,floating-islands,clang19-off,12,27,9,25284,39.199219,20.230469,-108.953125,0x79bb86763243b67e,0x7fd748d3021d506d,0x83442fd7561cbb4e,0x5a36191d75130d85,0.652,0.679940,303236,0,PASS
-216679974,floating-islands,clang19-on,1,27,9,25284,39.199219,20.230469,-108.953125,0x79bb86763243b67e,0x7fd748d3021d506d,0x83442fd7561cbb4e,0x5a36191d75130d85,1.221,1.237304,88612,0,PASS
-216679974,floating-islands,clang19-on,12,27,9,25284,39.199219,20.230469,-108.953125,0x79bb86763243b67e,0x7fd748d3021d506d,0x83442fd7561cbb4e,0x5a36191d75130d85,0.613,0.640836,303412,0,PASS
-216679974,floating-islands,gcc14-default,1,27,9,25284,39.199219,20.230469,-108.953125,0x79bb86763243b67e,0x7fd748d3021d506d,0x83442fd7561cbb4e,0x5a36191d75130d85,1.322,1.339480,89104,0,PASS
-216679974,floating-islands,gcc14-default,12,27,9,25284,39.199219,20.230469,-108.953125,0x79bb86763243b67e,0x7fd748d3021d506d,0x83442fd7561cbb4e,0x5a36191d75130d85,0.655,0.683872,303612,0,PASS
-133096164,surface-world,clang19-off,1,27,9,26182,0.000000,-140.000000,-2023.140625,0x1dadb5c6440181c0,0x4681d673371781ba,0x7b8f2bafde1628a9,0xf8f07e5a6d4f38f9,0.169,0.184384,85324,0,PASS
-133096164,surface-world,clang19-off,12,27,9,26182,0.000000,-140.000000,-2023.140625,0x1dadb5c6440181c0,0x4681d673371781ba,0x7b8f2bafde1628a9,0xf8f07e5a6d4f38f9,0.417,0.443885,295568,0,PASS
-133096164,surface-world,clang19-on,1,27,9,26182,0.000000,-140.000000,-2023.140625,0x1dadb5c6440181c0,0x4681d673371781ba,0x7b8f2bafde1628a9,0xf8f07e5a6d4f38f9,0.170,0.186315,85648,0,PASS
-133096164,surface-world,clang19-on,12,27,9,26182,0.000000,-140.000000,-2023.140625,0x1dadb5c6440181c0,0x4681d673371781ba,0x7b8f2bafde1628a9,0xf8f07e5a6d4f38f9,0.429,0.457985,295652,0,PASS
-133096164,surface-world,gcc14-default,1,27,9,26182,0.000000,-140.000000,-2023.140625,0x1dadb5c6440181c0,0x4681d673371781ba,0x7b8f2bafde1628a9,0xf8f07e5a6d4f38f9,0.162,0.178058,86036,0,PASS
-133096164,surface-world,gcc14-default,12,27,9,26182,0.000000,-140.000000,-2023.140625,0x1dadb5c6440181c0,0x4681d673371781ba,0x7b8f2bafde1628a9,0xf8f07e5a6d4f38f9,0.424,0.454505,296144,0,PASS
-133096164,floating-islands,clang19-off,1,27,11,26248,-39.199219,16.050781,-118.000000,0xad7be7cd6b0dbffc,0x06d2caf87f019f22,0xbede324e7af07e61,0xf2eff51f24bf458a,0.872,0.891001,85524,0,PASS
-133096164,floating-islands,clang19-off,12,27,11,26248,-39.199219,16.050781,-118.000000,0xad7be7cd6b0dbffc,0x06d2caf87f019f22,0xbede324e7af07e61,0xf2eff51f24bf458a,0.563,0.589920,300908,0,PASS
-133096164,floating-islands,clang19-on,1,27,11,26248,-39.199219,16.050781,-118.000000,0xad7be7cd6b0dbffc,0x06d2caf87f019f22,0xbede324e7af07e61,0xf2eff51f24bf458a,0.877,0.892147,85604,0,PASS
-133096164,floating-islands,clang19-on,12,27,11,26248,-39.199219,16.050781,-118.000000,0xad7be7cd6b0dbffc,0x06d2caf87f019f22,0xbede324e7af07e61,0xf2eff51f24bf458a,0.561,0.587310,300416,0,PASS
-133096164,floating-islands,gcc14-default,1,27,11,26248,-39.199219,16.050781,-118.000000,0xad7be7cd6b0dbffc,0x06d2caf87f019f22,0xbede324e7af07e61,0xf2eff51f24bf458a,0.936,0.951685,86128,0,PASS
-133096164,floating-islands,gcc14-default,12,27,11,26248,-39.199219,16.050781,-118.000000,0xad7be7cd6b0dbffc,0x06d2caf87f019f22,0xbede324e7af07e61,0xf2eff51f24bf458a,0.581,0.608952,301120,0,PASS
-112366806,surface-world,clang19-off,1,27,16,46567,0.000000,-140.000000,-1699.476562,0x7aafaa55fce58f77,0x84c7d73393ccdb09,0x46a53de4a9e7617c,0xc79fcc56dd0181c2,0.324,0.340848,85804,0,PASS
-112366806,surface-world,clang19-off,12,27,16,46567,0.000000,-140.000000,-1699.476562,0x7aafaa55fce58f77,0x84c7d73393ccdb09,0x46a53de4a9e7617c,0xc79fcc56dd0181c2,0.487,0.514033,302296,0,PASS
-112366806,surface-world,clang19-on,1,27,16,46567,0.000000,-140.000000,-1699.476562,0x7aafaa55fce58f77,0x84c7d73393ccdb09,0x46a53de4a9e7617c,0xc79fcc56dd0181c2,0.326,0.343022,85380,0,PASS
-112366806,surface-world,clang19-on,12,27,16,46567,0.000000,-140.000000,-1699.476562,0x7aafaa55fce58f77,0x84c7d73393ccdb09,0x46a53de4a9e7617c,0xc79fcc56dd0181c2,0.482,0.509381,302920,0,PASS
-112366806,surface-world,gcc14-default,1,27,16,46567,0.000000,-140.000000,-1699.476562,0x7aafaa55fce58f77,0x84c7d73393ccdb09,0x46a53de4a9e7617c,0xc79fcc56dd0181c2,0.308,0.323509,86516,0,PASS
-112366806,surface-world,gcc14-default,12,27,16,46567,0.000000,-140.000000,-1699.476562,0x7aafaa55fce58f77,0x84c7d73393ccdb09,0x46a53de4a9e7617c,0xc79fcc56dd0181c2,0.480,0.507907,301052,0,PASS
-112366806,floating-islands,clang19-off,1,27,9,21148,39.199219,16.867188,-114.605469,0xda065c33dc944d23,0x3c27d1ee8688fec9,0xa497259af00952cf,0x8697ac7f0567f069,1.266,1.282382,85796,0,PASS
-112366806,floating-islands,clang19-off,12,27,9,21148,39.199219,16.867188,-114.605469,0xda065c33dc944d23,0x3c27d1ee8688fec9,0xa497259af00952cf,0x8697ac7f0567f069,0.681,0.717905,299852,0,PASS
-112366806,floating-islands,clang19-on,1,27,9,21148,39.199219,16.867188,-114.605469,0xda065c33dc944d23,0x3c27d1ee8688fec9,0xa497259af00952cf,0x8697ac7f0567f069,1.340,1.364175,85696,0,PASS
-112366806,floating-islands,clang19-on,12,27,9,21148,39.199219,16.867188,-114.605469,0xda065c33dc944d23,0x3c27d1ee8688fec9,0xa497259af00952cf,0x8697ac7f0567f069,0.705,0.732861,299840,0,PASS
-112366806,floating-islands,gcc14-default,1,27,9,21148,39.199219,16.867188,-114.605469,0xda065c33dc944d23,0x3c27d1ee8688fec9,0xa497259af00952cf,0x8697ac7f0567f069,1.379,1.395616,86172,0,PASS
-112366806,floating-islands,gcc14-default,12,27,9,21148,39.199219,16.867188,-114.605469,0xda065c33dc944d23,0x3c27d1ee8688fec9,0xa497259af00952cf,0x8697ac7f0567f069,0.744,0.770938,300416,0,PASS
0,surface-world,clang19-off,1,27,9,27910,0.000000,-140.000000,-2003.089844,0x2339a02328c5ffa6,0x83d31e15bf9161b0,0xc056f0c0987d79b6,0x435c44ce6ca8e4ea,0.180,0.198233,86824,0,PASS
0,surface-world,clang19-off,12,27,9,27910,0.000000,-140.000000,-2003.089844,0x2339a02328c5ffa6,0x83d31e15bf9161b0,0xc056f0c0987d79b6,0x435c44ce6ca8e4ea,0.422,0.449664,297060,0,PASS
0,surface-world,clang19-on,1,27,9,27910,0.000000,-140.000000,-2003.089844,0x2339a02328c5ffa6,0x83d31e15bf9161b0,0xc056f0c0987d79b6,0x435c44ce6ca8e4ea,0.173,0.188744,86728,0,PASS
0,surface-world,clang19-on,12,27,9,27910,0.000000,-140.000000,-2003.089844,0x2339a02328c5ffa6,0x83d31e15bf9161b0,0xc056f0c0987d79b6,0x435c44ce6ca8e4ea,0.450,0.477889,296820,0,PASS
0,surface-world,gcc14-default,1,27,9,27910,0.000000,-140.000000,-2003.089844,0x2339a02328c5ffa6,0x83d31e15bf9161b0,0xc056f0c0987d79b6,0x435c44ce6ca8e4ea,0.165,0.181852,87064,0,PASS
0,surface-world,gcc14-default,12,27,9,27910,0.000000,-140.000000,-2003.089844,0x2339a02328c5ffa6,0x83d31e15bf9161b0,0xc056f0c0987d79b6,0x435c44ce6ca8e4ea,0.435,0.462262,297640,0,PASS
0,floating-islands,clang19-off,1,27,9,20740,-25.199219,-76.226562,-105.089844,0x7fd1e3389642e6f6,0x577e52a5ba8d96be,0x7c6ffe9f5bbbb450,0xb4d308de116f4657,1.761,1.778352,86204,0,PASS
0,floating-islands,clang19-off,12,27,9,20740,-25.199219,-76.226562,-105.089844,0x7fd1e3389642e6f6,0x577e52a5ba8d96be,0x7c6ffe9f5bbbb450,0xb4d308de116f4657,0.768,0.794881,299068,0,PASS
0,floating-islands,clang19-on,1,27,9,20740,-25.199219,-76.226562,-105.089844,0x7fd1e3389642e6f6,0x577e52a5ba8d96be,0x7c6ffe9f5bbbb450,0xb4d308de116f4657,1.765,1.781702,86056,0,PASS
0,floating-islands,clang19-on,12,27,9,20740,-25.199219,-76.226562,-105.089844,0x7fd1e3389642e6f6,0x577e52a5ba8d96be,0x7c6ffe9f5bbbb450,0xb4d308de116f4657,0.765,0.792583,298772,0,PASS
0,floating-islands,gcc14-default,1,27,9,20740,-25.199219,-76.226562,-105.089844,0x7fd1e3389642e6f6,0x577e52a5ba8d96be,0x7c6ffe9f5bbbb450,0xb4d308de116f4657,1.894,1.910737,86536,0,PASS
0,floating-islands,gcc14-default,12,27,9,20740,-25.199219,-76.226562,-105.089844,0x7fd1e3389642e6f6,0x577e52a5ba8d96be,0x7c6ffe9f5bbbb450,0xb4d308de116f4657,0.802,0.828791,299460,0,PASS
5808593,surface-world,clang19-off,1,27,14,29050,0.000000,-140.000000,-2014.406250,0x355972d90ab29593,0x563daf944391ab7c,0x8804eebac2acd898,0xc2b049b4f6426af0,0.209,0.225170,84472,0,PASS
5808593,surface-world,clang19-off,12,27,14,29050,0.000000,-140.000000,-2014.406250,0x355972d90ab29593,0x563daf944391ab7c,0x8804eebac2acd898,0xc2b049b4f6426af0,0.440,0.467263,299048,0,PASS
5808593,surface-world,clang19-on,1,27,14,29050,0.000000,-140.000000,-2014.406250,0x355972d90ab29593,0x563daf944391ab7c,0x8804eebac2acd898,0xc2b049b4f6426af0,0.214,0.230107,84720,0,PASS
5808593,surface-world,clang19-on,12,27,14,29050,0.000000,-140.000000,-2014.406250,0x355972d90ab29593,0x563daf944391ab7c,0x8804eebac2acd898,0xc2b049b4f6426af0,0.450,0.477642,299356,0,PASS
5808593,surface-world,gcc14-default,1,27,14,29050,0.000000,-140.000000,-2014.406250,0x355972d90ab29593,0x563daf944391ab7c,0x8804eebac2acd898,0xc2b049b4f6426af0,0.206,0.223073,85136,0,PASS
5808593,surface-world,gcc14-default,12,27,14,29050,0.000000,-140.000000,-2014.406250,0x355972d90ab29593,0x563daf944391ab7c,0x8804eebac2acd898,0xc2b049b4f6426af0,0.441,0.468922,299624,0,PASS
5808593,floating-islands,clang19-off,1,27,10,21000,39.199219,16.003906,-114.574219,0xb96bffb27bc457e0,0x1f867a2add682123,0xfd4c94fd6f9b5863,0x82dc1a7add5ea530,0.978,0.993595,85604,0,PASS
5808593,floating-islands,clang19-off,12,27,10,21000,39.199219,16.003906,-114.574219,0xb96bffb27bc457e0,0x1f867a2add682123,0xfd4c94fd6f9b5863,0x82dc1a7add5ea530,0.587,0.614676,299336,0,PASS
5808593,floating-islands,clang19-on,1,27,10,21000,39.199219,16.003906,-114.574219,0xb96bffb27bc457e0,0x1f867a2add682123,0xfd4c94fd6f9b5863,0x82dc1a7add5ea530,0.972,0.987363,85032,0,PASS
5808593,floating-islands,clang19-on,12,27,10,21000,39.199219,16.003906,-114.574219,0xb96bffb27bc457e0,0x1f867a2add682123,0xfd4c94fd6f9b5863,0x82dc1a7add5ea530,0.607,0.635950,299516,0,PASS
5808593,floating-islands,gcc14-default,1,27,10,21000,39.199219,16.003906,-114.574219,0xb96bffb27bc457e0,0x1f867a2add682123,0xfd4c94fd6f9b5863,0x82dc1a7add5ea530,1.060,1.076946,85540,0,PASS
5808593,floating-islands,gcc14-default,12,27,10,21000,39.199219,16.003906,-114.574219,0xb96bffb27bc457e0,0x1f867a2add682123,0xfd4c94fd6f9b5863,0x82dc1a7add5ea530,0.631,0.659995,299816,0,PASS
28573228,surface-world,clang19-off,1,27,13,27054,0.000000,-140.000000,-2016.695312,0x57cb2fe09976dc54,0x35ac4f38b432e8b7,0x7ed7b8d28bbb4ae8,0xe9bf4ba938198d73,0.183,0.198431,84548,0,PASS
28573228,surface-world,clang19-off,12,27,13,27054,0.000000,-140.000000,-2016.695312,0x57cb2fe09976dc54,0x35ac4f38b432e8b7,0x7ed7b8d28bbb4ae8,0xe9bf4ba938198d73,0.413,0.440062,299560,0,PASS
28573228,surface-world,clang19-on,1,27,13,27054,0.000000,-140.000000,-2016.695312,0x57cb2fe09976dc54,0x35ac4f38b432e8b7,0x7ed7b8d28bbb4ae8,0xe9bf4ba938198d73,0.188,0.203450,84968,0,PASS
28573228,surface-world,clang19-on,12,27,13,27054,0.000000,-140.000000,-2016.695312,0x57cb2fe09976dc54,0x35ac4f38b432e8b7,0x7ed7b8d28bbb4ae8,0xe9bf4ba938198d73,0.409,0.435356,299552,0,PASS
28573228,surface-world,gcc14-default,1,27,13,27054,0.000000,-140.000000,-2016.695312,0x57cb2fe09976dc54,0x35ac4f38b432e8b7,0x7ed7b8d28bbb4ae8,0xe9bf4ba938198d73,0.185,0.200823,85508,0,PASS
28573228,surface-world,gcc14-default,12,27,13,27054,0.000000,-140.000000,-2016.695312,0x57cb2fe09976dc54,0x35ac4f38b432e8b7,0x7ed7b8d28bbb4ae8,0xe9bf4ba938198d73,0.420,0.448033,299724,0,PASS
28573228,floating-islands,clang19-off,1,27,12,32456,0.000000,-18.683594,-116.187500,0x25ed5f499f9bf7ab,0x1c8e67c20374b473,0x786447fa7fb09cab,0x244fb7a45dc74437,1.396,1.413299,85492,0,PASS
28573228,floating-islands,clang19-off,12,27,12,32456,0.000000,-18.683594,-116.187500,0x25ed5f499f9bf7ab,0x1c8e67c20374b473,0x786447fa7fb09cab,0x244fb7a45dc74437,0.693,0.719023,300784,0,PASS
28573228,floating-islands,clang19-on,1,27,12,32456,0.000000,-18.683594,-116.187500,0x25ed5f499f9bf7ab,0x1c8e67c20374b473,0x786447fa7fb09cab,0x244fb7a45dc74437,1.354,1.373140,84808,0,PASS
28573228,floating-islands,clang19-on,12,27,12,32456,0.000000,-18.683594,-116.187500,0x25ed5f499f9bf7ab,0x1c8e67c20374b473,0x786447fa7fb09cab,0x244fb7a45dc74437,0.663,0.689391,300568,0,PASS
28573228,floating-islands,gcc14-default,1,27,12,32456,0.000000,-18.683594,-116.187500,0x25ed5f499f9bf7ab,0x1c8e67c20374b473,0x786447fa7fb09cab,0x244fb7a45dc74437,1.544,1.560291,85548,0,PASS
28573228,floating-islands,gcc14-default,12,27,12,32456,0.000000,-18.683594,-116.187500,0x25ed5f499f9bf7ab,0x1c8e67c20374b473,0x786447fa7fb09cab,0x244fb7a45dc74437,0.727,0.755835,300920,0,PASS
70955227,surface-world,clang19-off,1,27,13,29926,0.000000,-140.000000,-2047.484375,0xb205ad43941e41d8,0x722e775c7e0735bc,0x44a33dfc23ec62ed,0x39969012a7375b51,0.192,0.208106,85820,0,PASS
70955227,surface-world,clang19-off,12,27,13,29926,0.000000,-140.000000,-2047.484375,0xb205ad43941e41d8,0x722e775c7e0735bc,0x44a33dfc23ec62ed,0x39969012a7375b51,0.448,0.476411,300752,0,PASS
70955227,surface-world,clang19-on,1,27,13,29926,0.000000,-140.000000,-2047.484375,0xb205ad43941e41d8,0x722e775c7e0735bc,0x44a33dfc23ec62ed,0x39969012a7375b51,0.185,0.201218,85544,0,PASS
70955227,surface-world,clang19-on,12,27,13,29926,0.000000,-140.000000,-2047.484375,0xb205ad43941e41d8,0x722e775c7e0735bc,0x44a33dfc23ec62ed,0x39969012a7375b51,0.429,0.457766,300792,0,PASS
70955227,surface-world,gcc14-default,1,27,13,29926,0.000000,-140.000000,-2047.484375,0xb205ad43941e41d8,0x722e775c7e0735bc,0x44a33dfc23ec62ed,0x39969012a7375b51,0.183,0.198664,86928,0,PASS
70955227,surface-world,gcc14-default,12,27,13,29926,0.000000,-140.000000,-2047.484375,0xb205ad43941e41d8,0x722e775c7e0735bc,0x44a33dfc23ec62ed,0x39969012a7375b51,0.438,0.466791,301440,0,PASS
70955227,floating-islands,clang19-off,1,27,12,17426,-39.199219,18.582031,-121.785156,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23,0x6f301aefdb37973f,0xa38a1c2ec1a3b2f1,1.586,1.602163,87224,0,PASS
70955227,floating-islands,clang19-off,12,27,12,17426,-39.199219,18.582031,-121.785156,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23,0x6f301aefdb37973f,0xa38a1c2ec1a3b2f1,0.715,0.741331,300680,0,PASS
70955227,floating-islands,clang19-on,1,27,12,17426,-39.199219,18.582031,-121.785156,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23,0x6f301aefdb37973f,0xa38a1c2ec1a3b2f1,1.601,1.615814,87288,0,PASS
70955227,floating-islands,clang19-on,12,27,12,17426,-39.199219,18.582031,-121.785156,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23,0x6f301aefdb37973f,0xa38a1c2ec1a3b2f1,0.746,0.774349,301108,0,PASS
70955227,floating-islands,gcc14-default,1,27,12,17426,-39.199219,18.582031,-121.785156,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23,0x6f301aefdb37973f,0xa38a1c2ec1a3b2f1,1.718,1.733886,87436,0,PASS
70955227,floating-islands,gcc14-default,12,27,12,17426,-39.199219,18.582031,-121.785156,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23,0x6f301aefdb37973f,0xa38a1c2ec1a3b2f1,0.780,0.806995,301540,0,PASS
75274690,surface-world,clang19-off,1,27,15,28342,0.000000,-140.000000,-2019.648438,0x84af4380d33164a6,0xa18d6de0f9267e9f,0xe4bcbdc97074b806,0x5d71387401f96959,0.189,0.204204,85448,0,PASS
75274690,surface-world,clang19-off,12,27,15,28342,0.000000,-140.000000,-2019.648438,0x84af4380d33164a6,0xa18d6de0f9267e9f,0xe4bcbdc97074b806,0x5d71387401f96959,0.445,0.471446,300620,0,PASS
75274690,surface-world,clang19-on,1,27,15,28342,0.000000,-140.000000,-2019.648438,0x84af4380d33164a6,0xa18d6de0f9267e9f,0xe4bcbdc97074b806,0x5d71387401f96959,0.184,0.200607,85196,0,PASS
75274690,surface-world,clang19-on,12,27,15,28342,0.000000,-140.000000,-2019.648438,0x84af4380d33164a6,0xa18d6de0f9267e9f,0xe4bcbdc97074b806,0x5d71387401f96959,0.420,0.448852,300344,0,PASS
75274690,surface-world,gcc14-default,1,27,15,28342,0.000000,-140.000000,-2019.648438,0x84af4380d33164a6,0xa18d6de0f9267e9f,0xe4bcbdc97074b806,0x5d71387401f96959,0.192,0.207839,85924,0,PASS
75274690,surface-world,gcc14-default,12,27,15,28342,0.000000,-140.000000,-2019.648438,0x84af4380d33164a6,0xa18d6de0f9267e9f,0xe4bcbdc97074b806,0x5d71387401f96959,0.425,0.452205,300748,0,PASS
75274690,floating-islands,clang19-off,1,27,8,19760,64.398438,72.199219,-121.019531,0x045c98172a573800,0x86618a983d61425d,0x13523110d2e6a9b3,0x6f1ad87b335e3d3e,1.103,1.118954,86812,0,PASS
75274690,floating-islands,clang19-off,12,27,8,19760,64.398438,72.199219,-121.019531,0x045c98172a573800,0x86618a983d61425d,0x13523110d2e6a9b3,0x6f1ad87b335e3d3e,0.628,0.655461,300972,0,PASS
75274690,floating-islands,clang19-on,1,27,8,19760,64.398438,72.199219,-121.019531,0x045c98172a573800,0x86618a983d61425d,0x13523110d2e6a9b3,0x6f1ad87b335e3d3e,1.083,1.101596,86924,0,PASS
75274690,floating-islands,clang19-on,12,27,8,19760,64.398438,72.199219,-121.019531,0x045c98172a573800,0x86618a983d61425d,0x13523110d2e6a9b3,0x6f1ad87b335e3d3e,0.658,0.694786,300572,0,PASS
75274690,floating-islands,gcc14-default,1,27,8,19760,64.398438,72.199219,-121.019531,0x045c98172a573800,0x86618a983d61425d,0x13523110d2e6a9b3,0x6f1ad87b335e3d3e,1.176,1.192130,87488,0,PASS
75274690,floating-islands,gcc14-default,12,27,8,19760,64.398438,72.199219,-121.019531,0x045c98172a573800,0x86618a983d61425d,0x13523110d2e6a9b3,0x6f1ad87b335e3d3e,0.653,0.680432,301468,0,PASS
81375760,surface-world,clang19-off,1,27,18,48305,0.000000,-140.000000,-1894.296875,0x20c34733457b090d,0x9a6b57b63637db1f,0x2005693f7f6d7dcc,0xc5745d7ea096cff0,0.333,0.349470,85188,0,PASS
81375760,surface-world,clang19-off,12,27,18,48305,0.000000,-140.000000,-1894.296875,0x20c34733457b090d,0x9a6b57b63637db1f,0x2005693f7f6d7dcc,0xc5745d7ea096cff0,0.480,0.508631,302276,0,PASS
81375760,surface-world,clang19-on,1,27,18,48305,0.000000,-140.000000,-1894.296875,0x20c34733457b090d,0x9a6b57b63637db1f,0x2005693f7f6d7dcc,0xc5745d7ea096cff0,0.331,0.348279,85148,0,PASS
81375760,surface-world,clang19-on,12,27,18,48305,0.000000,-140.000000,-1894.296875,0x20c34733457b090d,0x9a6b57b63637db1f,0x2005693f7f6d7dcc,0xc5745d7ea096cff0,0.506,0.532790,302092,0,PASS
81375760,surface-world,gcc14-default,1,27,18,48305,0.000000,-140.000000,-1894.296875,0x20c34733457b090d,0x9a6b57b63637db1f,0x2005693f7f6d7dcc,0xc5745d7ea096cff0,0.340,0.357917,85568,0,PASS
81375760,surface-world,gcc14-default,12,27,18,48305,0.000000,-140.000000,-1894.296875,0x20c34733457b090d,0x9a6b57b63637db1f,0x2005693f7f6d7dcc,0xc5745d7ea096cff0,0.476,0.502072,302172,0,PASS
81375760,floating-islands,clang19-off,1,27,12,24146,-39.199219,20.589844,-119.359375,0x69b66261833e4676,0x75e6b0f427e7698a,0xcb222176f7352da7,0x20224eb0a8925b4d,1.592,1.607202,87600,0,PASS
81375760,floating-islands,clang19-off,12,27,12,24146,-39.199219,20.589844,-119.359375,0x69b66261833e4676,0x75e6b0f427e7698a,0xcb222176f7352da7,0x20224eb0a8925b4d,0.729,0.756249,301856,0,PASS
81375760,floating-islands,clang19-on,1,27,12,24146,-39.199219,20.589844,-119.359375,0x69b66261833e4676,0x75e6b0f427e7698a,0xcb222176f7352da7,0x20224eb0a8925b4d,1.678,1.694265,87328,0,PASS
81375760,floating-islands,clang19-on,12,27,12,24146,-39.199219,20.589844,-119.359375,0x69b66261833e4676,0x75e6b0f427e7698a,0xcb222176f7352da7,0x20224eb0a8925b4d,0.746,0.773941,302184,0,PASS
81375760,floating-islands,gcc14-default,1,27,12,24146,-39.199219,20.589844,-119.359375,0x69b66261833e4676,0x75e6b0f427e7698a,0xcb222176f7352da7,0x20224eb0a8925b4d,1.706,1.723259,87980,0,PASS
81375760,floating-islands,gcc14-default,12,27,12,24146,-39.199219,20.589844,-119.359375,0x69b66261833e4676,0x75e6b0f427e7698a,0xcb222176f7352da7,0x20224eb0a8925b4d,0.743,0.770492,302508,0,PASS
146979566,surface-world,clang19-off,1,27,14,31096,0.000000,-140.000000,-2014.601562,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53,0x6f23c17789836934,0x5063630f2a948856,0.242,0.259669,85944,0,PASS
146979566,surface-world,clang19-off,12,27,14,31096,0.000000,-140.000000,-2014.601562,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53,0x6f23c17789836934,0x5063630f2a948856,0.431,0.458617,301156,0,PASS
146979566,surface-world,clang19-on,1,27,14,31096,0.000000,-140.000000,-2014.601562,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53,0x6f23c17789836934,0x5063630f2a948856,0.237,0.254081,85952,0,PASS
146979566,surface-world,clang19-on,12,27,14,31096,0.000000,-140.000000,-2014.601562,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53,0x6f23c17789836934,0x5063630f2a948856,0.428,0.456566,301360,0,PASS
146979566,surface-world,gcc14-default,1,27,14,31096,0.000000,-140.000000,-2014.601562,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53,0x6f23c17789836934,0x5063630f2a948856,0.245,0.261764,86436,0,PASS
146979566,surface-world,gcc14-default,12,27,14,31096,0.000000,-140.000000,-2014.601562,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53,0x6f23c17789836934,0x5063630f2a948856,0.453,0.480241,301596,0,PASS
146979566,floating-islands,clang19-off,1,27,9,22370,39.199219,16.625000,-109.785156,0x93d0d67042bb05d2,0xe7f4981f907e316e,0x98081f3cf86e0b7f,0xa103fc9366460065,1.584,1.600638,87472,0,PASS
146979566,floating-islands,clang19-off,12,27,9,22370,39.199219,16.625000,-109.785156,0x93d0d67042bb05d2,0xe7f4981f907e316e,0x98081f3cf86e0b7f,0xa103fc9366460065,0.691,0.717956,301644,0,PASS
146979566,floating-islands,clang19-on,1,27,9,22370,39.199219,16.625000,-109.785156,0x93d0d67042bb05d2,0xe7f4981f907e316e,0x98081f3cf86e0b7f,0xa103fc9366460065,1.645,1.662341,87336,0,PASS
146979566,floating-islands,clang19-on,12,27,9,22370,39.199219,16.625000,-109.785156,0x93d0d67042bb05d2,0xe7f4981f907e316e,0x98081f3cf86e0b7f,0xa103fc9366460065,0.716,0.744086,301388,0,PASS
146979566,floating-islands,gcc14-default,1,27,9,22370,39.199219,16.625000,-109.785156,0x93d0d67042bb05d2,0xe7f4981f907e316e,0x98081f3cf86e0b7f,0xa103fc9366460065,1.743,1.760680,87812,0,PASS
146979566,floating-islands,gcc14-default,12,27,9,22370,39.199219,16.625000,-109.785156,0x93d0d67042bb05d2,0xe7f4981f907e316e,0x98081f3cf86e0b7f,0xa103fc9366460065,0.726,0.752868,302004,0,PASS
244951180,surface-world,clang19-off,1,27,18,52468,0.000000,-140.000000,-1798.816406,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd,0xcc6273def955b692,0x477e01281747a9c6,0.348,0.365147,87736,0,PASS
244951180,surface-world,clang19-off,12,27,18,52468,0.000000,-140.000000,-1798.816406,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd,0xcc6273def955b692,0x477e01281747a9c6,0.475,0.502857,304536,0,PASS
244951180,surface-world,clang19-on,1,27,18,52468,0.000000,-140.000000,-1798.816406,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd,0xcc6273def955b692,0x477e01281747a9c6,0.345,0.361096,87652,0,PASS
244951180,surface-world,clang19-on,12,27,18,52468,0.000000,-140.000000,-1798.816406,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd,0xcc6273def955b692,0x477e01281747a9c6,0.462,0.489379,305156,0,PASS
244951180,surface-world,gcc14-default,1,27,18,52468,0.000000,-140.000000,-1798.816406,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd,0xcc6273def955b692,0x477e01281747a9c6,0.319,0.334168,87880,0,PASS
244951180,surface-world,gcc14-default,12,27,18,52468,0.000000,-140.000000,-1798.816406,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd,0xcc6273def955b692,0x477e01281747a9c6,0.468,0.496037,305128,0,PASS
244951180,floating-islands,clang19-off,1,27,13,32272,0.000000,-18.179688,-116.664062,0x0b22965681c5b482,0x582ef8c1d263bedb,0x00179a81f23dbeee,0x5ea7d2a08ba7a249,1.132,1.147425,87072,0,PASS
244951180,floating-islands,clang19-off,12,27,13,32272,0.000000,-18.179688,-116.664062,0x0b22965681c5b482,0x582ef8c1d263bedb,0x00179a81f23dbeee,0x5ea7d2a08ba7a249,0.586,0.615574,303052,0,PASS
244951180,floating-islands,clang19-on,1,27,13,32272,0.000000,-18.179688,-116.664062,0x0b22965681c5b482,0x582ef8c1d263bedb,0x00179a81f23dbeee,0x5ea7d2a08ba7a249,1.099,1.116192,87252,0,PASS
244951180,floating-islands,clang19-on,12,27,13,32272,0.000000,-18.179688,-116.664062,0x0b22965681c5b482,0x582ef8c1d263bedb,0x00179a81f23dbeee,0x5ea7d2a08ba7a249,0.588,0.615818,303076,0,PASS
244951180,floating-islands,gcc14-default,1,27,13,32272,0.000000,-18.179688,-116.664062,0x0b22965681c5b482,0x582ef8c1d263bedb,0x00179a81f23dbeee,0x5ea7d2a08ba7a249,1.201,1.217254,87804,0,PASS
244951180,floating-islands,gcc14-default,12,27,13,32272,0.000000,-18.179688,-116.664062,0x0b22965681c5b482,0x582ef8c1d263bedb,0x00179a81f23dbeee,0x5ea7d2a08ba7a249,0.615,0.643461,303388,0,PASS
245433414,surface-world,clang19-off,1,27,14,32860,0.000000,-140.000000,-2022.468750,0xcc51a567f61f812d,0xc59dc3105dd493b2,0x03b8f1a7d0eac0d7,0x22f468a7d1585605,0.183,0.199554,84260,0,PASS
245433414,surface-world,clang19-off,12,27,14,32860,0.000000,-140.000000,-2022.468750,0xcc51a567f61f812d,0xc59dc3105dd493b2,0x03b8f1a7d0eac0d7,0x22f468a7d1585605,0.528,0.554834,299804,0,PASS
245433414,surface-world,clang19-on,1,27,14,32860,0.000000,-140.000000,-2022.468750,0xcc51a567f61f812d,0xc59dc3105dd493b2,0x03b8f1a7d0eac0d7,0x22f468a7d1585605,0.190,0.205364,84668,0,PASS
245433414,surface-world,clang19-on,12,27,14,32860,0.000000,-140.000000,-2022.468750,0xcc51a567f61f812d,0xc59dc3105dd493b2,0x03b8f1a7d0eac0d7,0x22f468a7d1585605,0.424,0.450563,299552,0,PASS
245433414,surface-world,gcc14-default,1,27,14,32860,0.000000,-140.000000,-2022.468750,0xcc51a567f61f812d,0xc59dc3105dd493b2,0x03b8f1a7d0eac0d7,0x22f468a7d1585605,0.182,0.197759,85244,0,PASS
245433414,surface-world,gcc14-default,12,27,14,32860,0.000000,-140.000000,-2022.468750,0xcc51a567f61f812d,0xc59dc3105dd493b2,0x03b8f1a7d0eac0d7,0x22f468a7d1585605,0.433,0.459733,300260,0,PASS
245433414,floating-islands,clang19-off,1,27,11,32838,0.000000,-17.574219,-116.296875,0x2e75a175d1005e4e,0x8f45449d7125c041,0x493909fdf6e5cba4,0x576100f342da3f02,1.138,1.154872,87048,0,PASS
245433414,floating-islands,clang19-off,12,27,11,32838,0.000000,-17.574219,-116.296875,0x2e75a175d1005e4e,0x8f45449d7125c041,0x493909fdf6e5cba4,0x576100f342da3f02,0.629,0.656026,302520,0,PASS
245433414,floating-islands,clang19-on,1,27,11,32838,0.000000,-17.574219,-116.296875,0x2e75a175d1005e4e,0x8f45449d7125c041,0x493909fdf6e5cba4,0x576100f342da3f02,1.112,1.129107,87048,0,PASS
245433414,floating-islands,clang19-on,12,27,11,32838,0.000000,-17.574219,-116.296875,0x2e75a175d1005e4e,0x8f45449d7125c041,0x493909fdf6e5cba4,0x576100f342da3f02,0.582,0.610645,302704,0,PASS
245433414,floating-islands,gcc14-default,1,27,11,32838,0.000000,-17.574219,-116.296875,0x2e75a175d1005e4e,0x8f45449d7125c041,0x493909fdf6e5cba4,0x576100f342da3f02,1.189,1.205364,87708,0,PASS
245433414,floating-islands,gcc14-default,12,27,11,32838,0.000000,-17.574219,-116.296875,0x2e75a175d1005e4e,0x8f45449d7125c041,0x493909fdf6e5cba4,0x576100f342da3f02,0.635,0.663132,303108,0,PASS
277442974,surface-world,clang19-off,1,27,9,27060,0.000000,-140.000000,-2004.875000,0x8bfa82ca5e492c37,0x1630487dbcc54469,0xb37b440b5f2b1c98,0xe296c565d2eb2ef0,0.274,0.290495,86336,0,PASS
277442974,surface-world,clang19-off,12,27,9,27060,0.000000,-140.000000,-2004.875000,0x8bfa82ca5e492c37,0x1630487dbcc54469,0xb37b440b5f2b1c98,0xe296c565d2eb2ef0,0.471,0.497591,296556,0,PASS
277442974,surface-world,clang19-on,1,27,9,27060,0.000000,-140.000000,-2004.875000,0x8bfa82ca5e492c37,0x1630487dbcc54469,0xb37b440b5f2b1c98,0xe296c565d2eb2ef0,0.264,0.280808,86376,0,PASS
277442974,surface-world,clang19-on,12,27,9,27060,0.000000,-140.000000,-2004.875000,0x8bfa82ca5e492c37,0x1630487dbcc54469,0xb37b440b5f2b1c98,0xe296c565d2eb2ef0,0.481,0.507069,296232,0,PASS
277442974,surface-world,gcc14-default,1,27,9,27060,0.000000,-140.000000,-2004.875000,0x8bfa82ca5e492c37,0x1630487dbcc54469,0xb37b440b5f2b1c98,0xe296c565d2eb2ef0,0.247,0.263402,86856,0,PASS
277442974,surface-world,gcc14-default,12,27,9,27060,0.000000,-140.000000,-2004.875000,0x8bfa82ca5e492c37,0x1630487dbcc54469,0xb37b440b5f2b1c98,0xe296c565d2eb2ef0,0.476,0.504203,297224,0,PASS
277442974,floating-islands,clang19-off,1,27,13,28088,39.199219,19.328125,-117.750000,0x8cb55c56b1629d42,0xc6532d9d3b8a987d,0x1a07243bd2c586c1,0x5d957c64ae620a5e,1.172,1.186572,88460,0,PASS
277442974,floating-islands,clang19-off,12,27,13,28088,39.199219,19.328125,-117.750000,0x8cb55c56b1629d42,0xc6532d9d3b8a987d,0x1a07243bd2c586c1,0x5d957c64ae620a5e,0.642,0.673081,303884,0,PASS
277442974,floating-islands,clang19-on,1,27,13,28088,39.199219,19.328125,-117.750000,0x8cb55c56b1629d42,0xc6532d9d3b8a987d,0x1a07243bd2c586c1,0x5d957c64ae620a5e,1.187,1.211616,88412,0,PASS
277442974,floating-islands,clang19-on,12,27,13,28088,39.199219,19.328125,-117.750000,0x8cb55c56b1629d42,0xc6532d9d3b8a987d,0x1a07243bd2c586c1,0x5d957c64ae620a5e,0.664,0.692926,303956,0,PASS
277442974,floating-islands,gcc14-default,1,27,13,28088,39.199219,19.328125,-117.750000,0x8cb55c56b1629d42,0xc6532d9d3b8a987d,0x1a07243bd2c586c1,0x5d957c64ae620a5e,1.210,1.225245,89264,0,PASS
277442974,floating-islands,gcc14-default,12,27,13,28088,39.199219,19.328125,-117.750000,0x8cb55c56b1629d42,0xc6532d9d3b8a987d,0x1a07243bd2c586c1,0x5d957c64ae620a5e,0.662,0.689572,304204,0,PASS
297746112,surface-world,clang19-off,1,27,13,38252,0.000000,-140.000000,-2010.195312,0x00c869b6875b7ef5,0x085684513feca8f2,0x118ce3a71b3a4b6d,0x5e5c8df181277ea2,0.266,0.281980,86512,0,PASS
297746112,surface-world,clang19-off,12,27,13,38252,0.000000,-140.000000,-2010.195312,0x00c869b6875b7ef5,0x085684513feca8f2,0x118ce3a71b3a4b6d,0x5e5c8df181277ea2,0.462,0.489317,300184,0,PASS
297746112,surface-world,clang19-on,1,27,13,38252,0.000000,-140.000000,-2010.195312,0x00c869b6875b7ef5,0x085684513feca8f2,0x118ce3a71b3a4b6d,0x5e5c8df181277ea2,0.265,0.281098,86148,0,PASS
297746112,surface-world,clang19-on,12,27,13,38252,0.000000,-140.000000,-2010.195312,0x00c869b6875b7ef5,0x085684513feca8f2,0x118ce3a71b3a4b6d,0x5e5c8df181277ea2,0.447,0.474064,300408,0,PASS
297746112,surface-world,gcc14-default,1,27,13,38252,0.000000,-140.000000,-2010.195312,0x00c869b6875b7ef5,0x085684513feca8f2,0x118ce3a71b3a4b6d,0x5e5c8df181277ea2,0.253,0.269185,87028,0,PASS
297746112,surface-world,gcc14-default,12,27,13,38252,0.000000,-140.000000,-2010.195312,0x00c869b6875b7ef5,0x085684513feca8f2,0x118ce3a71b3a4b6d,0x5e5c8df181277ea2,0.461,0.489903,300916,0,PASS
297746112,floating-islands,clang19-off,1,27,15,29396,39.199219,20.609375,-119.089844,0x2425273f1a174c04,0x204be5cda8d98412,0x0565960cfc012768,0x14faf071d204cf2c,1.471,1.486649,86560,0,PASS
297746112,floating-islands,clang19-off,12,27,15,29396,39.199219,20.609375,-119.089844,0x2425273f1a174c04,0x204be5cda8d98412,0x0565960cfc012768,0x14faf071d204cf2c,0.707,0.733259,301392,0,PASS
297746112,floating-islands,clang19-on,1,27,15,29396,39.199219,20.609375,-119.089844,0x2425273f1a174c04,0x204be5cda8d98412,0x0565960cfc012768,0x14faf071d204cf2c,1.476,1.492227,86404,0,PASS
297746112,floating-islands,clang19-on,12,27,15,29396,39.199219,20.609375,-119.089844,0x2425273f1a174c04,0x204be5cda8d98412,0x0565960cfc012768,0x14faf071d204cf2c,0.697,0.724120,301764,0,PASS
297746112,floating-islands,gcc14-default,1,27,15,29396,39.199219,20.609375,-119.089844,0x2425273f1a174c04,0x204be5cda8d98412,0x0565960cfc012768,0x14faf071d204cf2c,1.606,1.623971,87112,0,PASS
297746112,floating-islands,gcc14-default,12,27,15,29396,39.199219,20.609375,-119.089844,0x2425273f1a174c04,0x204be5cda8d98412,0x0565960cfc012768,0x14faf071d204cf2c,0.744,0.770764,301868,0,PASS
336768467,surface-world,clang19-off,1,27,15,29748,0.000000,-140.000000,-2014.343750,0x2756e6dc388ddf57,0x66344082236c5630,0x8d1456f1c9c5391d,0x8c5dafb1129150a4,0.193,0.210861,84432,0,PASS
336768467,surface-world,clang19-off,12,27,15,29748,0.000000,-140.000000,-2014.343750,0x2756e6dc388ddf57,0x66344082236c5630,0x8d1456f1c9c5391d,0x8c5dafb1129150a4,0.439,0.465773,299308,0,PASS
336768467,surface-world,clang19-on,1,27,15,29748,0.000000,-140.000000,-2014.343750,0x2756e6dc388ddf57,0x66344082236c5630,0x8d1456f1c9c5391d,0x8c5dafb1129150a4,0.203,0.220275,84220,0,PASS
336768467,surface-world,clang19-on,12,27,15,29748,0.000000,-140.000000,-2014.343750,0x2756e6dc388ddf57,0x66344082236c5630,0x8d1456f1c9c5391d,0x8c5dafb1129150a4,0.442,0.472005,298776,0,PASS
336768467,surface-world,gcc14-default,1,27,15,29748,0.000000,-140.000000,-2014.343750,0x2756e6dc388ddf57,0x66344082236c5630,0x8d1456f1c9c5391d,0x8c5dafb1129150a4,0.195,0.210295,84640,0,PASS
336768467,surface-world,gcc14-default,12,27,15,29748,0.000000,-140.000000,-2014.343750,0x2756e6dc388ddf57,0x66344082236c5630,0x8d1456f1c9c5391d,0x8c5dafb1129150a4,0.441,0.468001,299924,0,PASS
336768467,floating-islands,clang19-off,1,27,12,33652,0.000000,-20.933594,-116.355469,0xfa8249483c186760,0xc42acd7c93e1525c,0xdef1819f3ea0dfba,0xe7f844319ae479a5,1.560,1.576635,86384,0,PASS
336768467,floating-islands,clang19-off,12,27,12,33652,0.000000,-20.933594,-116.355469,0xfa8249483c186760,0xc42acd7c93e1525c,0xdef1819f3ea0dfba,0xe7f844319ae479a5,0.687,0.715116,302356,0,PASS
336768467,floating-islands,clang19-on,1,27,12,33652,0.000000,-20.933594,-116.355469,0xfa8249483c186760,0xc42acd7c93e1525c,0xdef1819f3ea0dfba,0xe7f844319ae479a5,1.607,1.622026,86512,0,PASS
336768467,floating-islands,clang19-on,12,27,12,33652,0.000000,-20.933594,-116.355469,0xfa8249483c186760,0xc42acd7c93e1525c,0xdef1819f3ea0dfba,0xe7f844319ae479a5,0.756,0.786103,301928,0,PASS
336768467,floating-islands,gcc14-default,1,27,12,33652,0.000000,-20.933594,-116.355469,0xfa8249483c186760,0xc42acd7c93e1525c,0xdef1819f3ea0dfba,0xe7f844319ae479a5,1.659,1.676423,87116,0,PASS
336768467,floating-islands,gcc14-default,12,27,12,33652,0.000000,-20.933594,-116.355469,0xfa8249483c186760,0xc42acd7c93e1525c,0xdef1819f3ea0dfba,0xe7f844319ae479a5,0.745,0.770547,302312,0,PASS
512532080,surface-world,clang19-off,1,27,14,28800,0.000000,-140.000000,-2011.875000,0xa5ad29a27d991d10,0x060bc1fca8569368,0x726e34d2232e7e04,0x2cfa7c1af8ec4ee4,0.238,0.255841,84384,0,PASS
512532080,surface-world,clang19-off,12,27,14,28800,0.000000,-140.000000,-2011.875000,0xa5ad29a27d991d10,0x060bc1fca8569368,0x726e34d2232e7e04,0x2cfa7c1af8ec4ee4,0.472,0.498432,298872,0,PASS
512532080,surface-world,clang19-on,1,27,14,28800,0.000000,-140.000000,-2011.875000,0xa5ad29a27d991d10,0x060bc1fca8569368,0x726e34d2232e7e04,0x2cfa7c1af8ec4ee4,0.224,0.240126,84544,0,PASS
512532080,surface-world,clang19-on,12,27,14,28800,0.000000,-140.000000,-2011.875000,0xa5ad29a27d991d10,0x060bc1fca8569368,0x726e34d2232e7e04,0x2cfa7c1af8ec4ee4,0.456,0.482429,299344,0,PASS
512532080,surface-world,gcc14-default,1,27,14,28800,0.000000,-140.000000,-2011.875000,0xa5ad29a27d991d10,0x060bc1fca8569368,0x726e34d2232e7e04,0x2cfa7c1af8ec4ee4,0.219,0.236902,84712,0,PASS
512532080,surface-world,gcc14-default,12,27,14,28800,0.000000,-140.000000,-2011.875000,0xa5ad29a27d991d10,0x060bc1fca8569368,0x726e34d2232e7e04,0x2cfa7c1af8ec4ee4,0.468,0.494269,299636,0,PASS
512532080,floating-islands,clang19-off,1,27,14,34900,0.000000,-20.355469,-116.640625,0xb098abe6a38cfe3a,0x436a6541192ed00e,0x75e2b7c9004349c2,0x534923147812f216,1.231,1.246649,86052,0,PASS
512532080,floating-islands,clang19-off,12,27,14,34900,0.000000,-20.355469,-116.640625,0xb098abe6a38cfe3a,0x436a6541192ed00e,0x75e2b7c9004349c2,0x534923147812f216,0.615,0.641439,301628,0,PASS
512532080,floating-islands,clang19-on,1,27,14,34900,0.000000,-20.355469,-116.640625,0xb098abe6a38cfe3a,0x436a6541192ed00e,0x75e2b7c9004349c2,0x534923147812f216,1.228,1.242805,85768,0,PASS
512532080,floating-islands,clang19-on,12,27,14,34900,0.000000,-20.355469,-116.640625,0xb098abe6a38cfe3a,0x436a6541192ed00e,0x75e2b7c9004349c2,0x534923147812f216,0.627,0.655211,301628,0,PASS
512532080,floating-islands,gcc14-default,1,27,14,34900,0.000000,-20.355469,-116.640625,0xb098abe6a38cfe3a,0x436a6541192ed00e,0x75e2b7c9004349c2,0x534923147812f216,1.359,1.374927,86224,0,PASS
512532080,floating-islands,gcc14-default,12,27,14,34900,0.000000,-20.355469,-116.640625,0xb098abe6a38cfe3a,0x436a6541192ed00e,0x75e2b7c9004349c2,0x534923147812f216,0.653,0.684763,302532,0,PASS
821120640,surface-world,clang19-off,1,27,17,29100,0.000000,-140.000000,-2017.054688,0xb6424f19c272b61c,0xe4f7308d87cb3bc2,0x3f43e313583419b6,0xe7bf900c0a18e037,0.235,0.252205,84088,0,PASS
821120640,surface-world,clang19-off,12,27,17,29100,0.000000,-140.000000,-2017.054688,0xb6424f19c272b61c,0xe4f7308d87cb3bc2,0x3f43e313583419b6,0xe7bf900c0a18e037,0.471,0.497535,298356,0,PASS
821120640,surface-world,clang19-on,1,27,17,29100,0.000000,-140.000000,-2017.054688,0xb6424f19c272b61c,0xe4f7308d87cb3bc2,0x3f43e313583419b6,0xe7bf900c0a18e037,0.232,0.246887,84276,0,PASS
821120640,surface-world,clang19-on,12,27,17,29100,0.000000,-140.000000,-2017.054688,0xb6424f19c272b61c,0xe4f7308d87cb3bc2,0x3f43e313583419b6,0xe7bf900c0a18e037,0.444,0.469734,298640,0,PASS
821120640,surface-world,gcc14-default,1,27,17,29100,0.000000,-140.000000,-2017.054688,0xb6424f19c272b61c,0xe4f7308d87cb3bc2,0x3f43e313583419b6,0xe7bf900c0a18e037,0.227,0.242379,84848,0,PASS
821120640,surface-world,gcc14-default,12,27,17,29100,0.000000,-140.000000,-2017.054688,0xb6424f19c272b61c,0xe4f7308d87cb3bc2,0x3f43e313583419b6,0xe7bf900c0a18e037,0.446,0.472509,299120,0,PASS
821120640,floating-islands,clang19-off,1,27,11,27034,39.199219,18.121094,-108.417969,0x3db9226404527944,0xb3328f1c88e96c70,0x1e9434cf277c52f2,0x7623a6394f56d6bc,1.593,1.609040,86048,0,PASS
821120640,floating-islands,clang19-off,12,27,11,27034,39.199219,18.121094,-108.417969,0x3db9226404527944,0xb3328f1c88e96c70,0x1e9434cf277c52f2,0x7623a6394f56d6bc,0.771,0.798393,300532,0,PASS
821120640,floating-islands,clang19-on,1,27,11,27034,39.199219,18.121094,-108.417969,0x3db9226404527944,0xb3328f1c88e96c70,0x1e9434cf277c52f2,0x7623a6394f56d6bc,1.647,1.661841,85752,0,PASS
821120640,floating-islands,clang19-on,12,27,11,27034,39.199219,18.121094,-108.417969,0x3db9226404527944,0xb3328f1c88e96c70,0x1e9434cf277c52f2,0x7623a6394f56d6bc,0.731,0.757095,300348,0,PASS
821120640,floating-islands,gcc14-default,1,27,11,27034,39.199219,18.121094,-108.417969,0x3db9226404527944,0xb3328f1c88e96c70,0x1e9434cf277c52f2,0x7623a6394f56d6bc,1.791,1.807593,86356,0,PASS
821120640,floating-islands,gcc14-default,12,27,11,27034,39.199219,18.121094,-108.417969,0x3db9226404527944,0xb3328f1c88e96c70,0x1e9434cf277c52f2,0x7623a6394f56d6bc,0.778,0.806980,301348,0,PASS
853538490,surface-world,clang19-off,1,27,13,41529,0.000000,-140.000000,-2000.957031,0xbe1224f297dc7ad0,0x7e10918947195940,0xac9466d520e8d24d,0xd4a8b472e9b12049,0.325,0.340334,84252,0,PASS
853538490,surface-world,clang19-off,12,27,13,41529,0.000000,-140.000000,-2000.957031,0xbe1224f297dc7ad0,0x7e10918947195940,0xac9466d520e8d24d,0xd4a8b472e9b12049,0.490,0.517745,297932,0,PASS
853538490,surface-world,clang19-on,1,27,13,41529,0.000000,-140.000000,-2000.957031,0xbe1224f297dc7ad0,0x7e10918947195940,0xac9466d520e8d24d,0xd4a8b472e9b12049,0.307,0.324074,84504,0,PASS
853538490,surface-world,clang19-on,12,27,13,41529,0.000000,-140.000000,-2000.957031,0xbe1224f297dc7ad0,0x7e10918947195940,0xac9466d520e8d24d,0xd4a8b472e9b12049,0.484,0.510395,297860,0,PASS
853538490,surface-world,gcc14-default,1,27,13,41529,0.000000,-140.000000,-2000.957031,0xbe1224f297dc7ad0,0x7e10918947195940,0xac9466d520e8d24d,0xd4a8b472e9b12049,0.292,0.309051,85156,0,PASS
853538490,surface-world,gcc14-default,12,27,13,41529,0.000000,-140.000000,-2000.957031,0xbe1224f297dc7ad0,0x7e10918947195940,0xac9466d520e8d24d,0xd4a8b472e9b12049,0.487,0.516413,300220,0,PASS
853538490,floating-islands,clang19-off,1,27,12,21100,64.398438,75.593750,-125.132812,0x7e568fc03c907914,0x6a9fc36512216056,0x42911f340bd75887,0x9a884d5fe3bc3a9f,1.502,1.518453,85300,0,PASS
853538490,floating-islands,clang19-off,12,27,12,21100,64.398438,75.593750,-125.132812,0x7e568fc03c907914,0x6a9fc36512216056,0x42911f340bd75887,0x9a884d5fe3bc3a9f,0.752,0.778760,299572,0,PASS
853538490,floating-islands,clang19-on,1,27,12,21100,64.398438,75.593750,-125.132812,0x7e568fc03c907914,0x6a9fc36512216056,0x42911f340bd75887,0x9a884d5fe3bc3a9f,1.511,1.527571,85176,0,PASS
853538490,floating-islands,clang19-on,12,27,12,21100,64.398438,75.593750,-125.132812,0x7e568fc03c907914,0x6a9fc36512216056,0x42911f340bd75887,0x9a884d5fe3bc3a9f,0.743,0.771772,299476,0,PASS
853538490,floating-islands,gcc14-default,1,27,12,21100,64.398438,75.593750,-125.132812,0x7e568fc03c907914,0x6a9fc36512216056,0x42911f340bd75887,0x9a884d5fe3bc3a9f,1.490,1.506165,86100,0,PASS
853538490,floating-islands,gcc14-default,12,27,12,21100,64.398438,75.593750,-125.132812,0x7e568fc03c907914,0x6a9fc36512216056,0x42911f340bd75887,0x9a884d5fe3bc3a9f,0.733,0.759420,300016,0,PASS
861026696,surface-world,clang19-off,1,27,14,29214,0.000000,-140.000000,-2015.378906,0xb04a05c6e8c488dc,0x28706d092bd82c9a,0xcdcd6eb7219ba860,0x713552a70402ee90,0.206,0.222328,85820,0,PASS
861026696,surface-world,clang19-off,12,27,14,29214,0.000000,-140.000000,-2015.378906,0xb04a05c6e8c488dc,0x28706d092bd82c9a,0xcdcd6eb7219ba860,0x713552a70402ee90,0.442,0.469511,301112,0,PASS
861026696,surface-world,clang19-on,1,27,14,29214,0.000000,-140.000000,-2015.378906,0xb04a05c6e8c488dc,0x28706d092bd82c9a,0xcdcd6eb7219ba860,0x713552a70402ee90,0.198,0.218476,86120,0,PASS
861026696,surface-world,clang19-on,12,27,14,29214,0.000000,-140.000000,-2015.378906,0xb04a05c6e8c488dc,0x28706d092bd82c9a,0xcdcd6eb7219ba860,0x713552a70402ee90,0.420,0.449855,300708,0,PASS
861026696,surface-world,gcc14-default,1,27,14,29214,0.000000,-140.000000,-2015.378906,0xb04a05c6e8c488dc,0x28706d092bd82c9a,0xcdcd6eb7219ba860,0x713552a70402ee90,0.198,0.213825,86600,0,PASS
861026696,surface-world,gcc14-default,12,27,14,29214,0.000000,-140.000000,-2015.378906,0xb04a05c6e8c488dc,0x28706d092bd82c9a,0xcdcd6eb7219ba860,0x713552a70402ee90,0.425,0.451908,301600,0,PASS
861026696,floating-islands,clang19-off,1,27,12,20194,-39.199219,16.035156,-124.882812,0xcb6792ec32335dc5,0x195efb6c80156e4a,0x99d2394c065c7d84,0xa650d8cc28f6ca8c,1.205,1.221248,86916,0,PASS
861026696,floating-islands,clang19-off,12,27,12,20194,-39.199219,16.035156,-124.882812,0xcb6792ec32335dc5,0x195efb6c80156e4a,0x99d2394c065c7d84,0xa650d8cc28f6ca8c,0.626,0.656240,301180,0,PASS
861026696,floating-islands,clang19-on,1,27,12,20194,-39.199219,16.035156,-124.882812,0xcb6792ec32335dc5,0x195efb6c80156e4a,0x99d2394c065c7d84,0xa650d8cc28f6ca8c,1.204,1.220794,86292,0,PASS
861026696,floating-islands,clang19-on,12,27,12,20194,-39.199219,16.035156,-124.882812,0xcb6792ec32335dc5,0x195efb6c80156e4a,0x99d2394c065c7d84,0xa650d8cc28f6ca8c,0.629,0.656007,300976,0,PASS
861026696,floating-islands,gcc14-default,1,27,12,20194,-39.199219,16.035156,-124.882812,0xcb6792ec32335dc5,0x195efb6c80156e4a,0x99d2394c065c7d84,0xa650d8cc28f6ca8c,1.304,1.320997,87184,0,PASS
861026696,floating-islands,gcc14-default,12,27,12,20194,-39.199219,16.035156,-124.882812,0xcb6792ec32335dc5,0x195efb6c80156e4a,0x99d2394c065c7d84,0xa650d8cc28f6ca8c,0.661,0.688252,301512,0,PASS
1026251636,surface-world,clang19-off,1,27,9,28584,0.000000,-140.000000,-2001.500000,0xf6bb5ab0a9e2307d,0x4767f425e56543f4,0x7d07264eb771e914,0x4c10ed20b1feb752,0.181,0.196873,89468,0,PASS
1026251636,surface-world,clang19-off,12,27,9,28584,0.000000,-140.000000,-2001.500000,0xf6bb5ab0a9e2307d,0x4767f425e56543f4,0x7d07264eb771e914,0x4c10ed20b1feb752,0.429,0.455273,299856,0,PASS
1026251636,surface-world,clang19-on,1,27,9,28584,0.000000,-140.000000,-2001.500000,0xf6bb5ab0a9e2307d,0x4767f425e56543f4,0x7d07264eb771e914,0x4c10ed20b1feb752,0.175,0.191878,88936,0,PASS
1026251636,surface-world,clang19-on,12,27,9,28584,0.000000,-140.000000,-2001.500000,0xf6bb5ab0a9e2307d,0x4767f425e56543f4,0x7d07264eb771e914,0x4c10ed20b1feb752,0.421,0.446342,300064,0,PASS
1026251636,surface-world,gcc14-default,1,27,9,28584,0.000000,-140.000000,-2001.500000,0xf6bb5ab0a9e2307d,0x4767f425e56543f4,0x7d07264eb771e914,0x4c10ed20b1feb752,0.186,0.201393,89824,0,PASS
1026251636,surface-world,gcc14-default,12,27,9,28584,0.000000,-140.000000,-2001.500000,0xf6bb5ab0a9e2307d,0x4767f425e56543f4,0x7d07264eb771e914,0x4c10ed20b1feb752,0.440,0.465684,300752,0,PASS
1026251636,floating-islands,clang19-off,1,27,8,19958,-25.199219,-74.664062,-109.117188,0xe62d0a684fcd1398,0xca0e1740a58cafbd,0xb28adbbe9f346438,0xaeddcc5189ee4f9c,2.014,2.030369,89720,0,PASS
1026251636,floating-islands,clang19-off,12,27,8,19958,-25.199219,-74.664062,-109.117188,0xe62d0a684fcd1398,0xca0e1740a58cafbd,0xb28adbbe9f346438,0xaeddcc5189ee4f9c,0.784,0.811497,304088,0,PASS
1026251636,floating-islands,clang19-on,1,27,8,19958,-25.199219,-74.664062,-109.117188,0xe62d0a684fcd1398,0xca0e1740a58cafbd,0xb28adbbe9f346438,0xaeddcc5189ee4f9c,2.037,2.053588,90148,0,PASS
1026251636,floating-islands,clang19-on,12,27,8,19958,-25.199219,-74.664062,-109.117188,0xe62d0a684fcd1398,0xca0e1740a58cafbd,0xb28adbbe9f346438,0xaeddcc5189ee4f9c,0.805,0.831833,303992,0,PASS
1026251636,floating-islands,gcc14-default,1,27,8,19958,-25.199219,-74.664062,-109.117188,0xe62d0a684fcd1398,0xca0e1740a58cafbd,0xb28adbbe9f346438,0xaeddcc5189ee4f9c,2.030,2.046181,90280,0,PASS
1026251636,floating-islands,gcc14-default,12,27,8,19958,-25.199219,-74.664062,-109.117188,0xe62d0a684fcd1398,0xca0e1740a58cafbd,0xb28adbbe9f346438,0xaeddcc5189ee4f9c,0.829,0.855747,304588,0,PASS
1077415394,surface-world,clang19-off,1,27,12,27666,0.000000,-140.000000,-2018.636719,0xb65f4acca21a93d8,0x0a3cddad02604438,0xe1cc5b39a1d20a9c,0xba1d3df14ef1dbc1,0.193,0.208931,87732,0,PASS
1077415394,surface-world,clang19-off,12,27,12,27666,0.000000,-140.000000,-2018.636719,0xb65f4acca21a93d8,0x0a3cddad02604438,0xe1cc5b39a1d20a9c,0xba1d3df14ef1dbc1,0.436,0.463397,302684,0,PASS
1077415394,surface-world,clang19-on,1,27,12,27666,0.000000,-140.000000,-2018.636719,0xb65f4acca21a93d8,0x0a3cddad02604438,0xe1cc5b39a1d20a9c,0xba1d3df14ef1dbc1,0.193,0.210262,87604,0,PASS
1077415394,surface-world,clang19-on,12,27,12,27666,0.000000,-140.000000,-2018.636719,0xb65f4acca21a93d8,0x0a3cddad02604438,0xe1cc5b39a1d20a9c,0xba1d3df14ef1dbc1,0.420,0.447388,300700,0,PASS
1077415394,surface-world,gcc14-default,1,27,12,27666,0.000000,-140.000000,-2018.636719,0xb65f4acca21a93d8,0x0a3cddad02604438,0xe1cc5b39a1d20a9c,0xba1d3df14ef1dbc1,0.190,0.205810,88040,0,PASS
1077415394,surface-world,gcc14-default,12,27,12,27666,0.000000,-140.000000,-2018.636719,0xb65f4acca21a93d8,0x0a3cddad02604438,0xe1cc5b39a1d20a9c,0xba1d3df14ef1dbc1,0.423,0.451176,302760,0,PASS
1077415394,floating-islands,clang19-off,1,27,9,25992,39.199219,20.472656,-109.757812,0x76ffc67a9d410089,0x712f9bef468c36e1,0xd15add3c403cf9d2,0x1f98a205464ab093,1.607,1.623777,88912,0,PASS
1077415394,floating-islands,clang19-off,12,27,9,25992,39.199219,20.472656,-109.757812,0x76ffc67a9d410089,0x712f9bef468c36e1,0xd15add3c403cf9d2,0x1f98a205464ab093,0.714,0.740654,303924,0,PASS
1077415394,floating-islands,clang19-on,1,27,9,25992,39.199219,20.472656,-109.757812,0x76ffc67a9d410089,0x712f9bef468c36e1,0xd15add3c403cf9d2,0x1f98a205464ab093,1.587,1.603589,89156,0,PASS
1077415394,floating-islands,clang19-on,12,27,9,25992,39.199219,20.472656,-109.757812,0x76ffc67a9d410089,0x712f9bef468c36e1,0xd15add3c403cf9d2,0x1f98a205464ab093,0.678,0.704362,303820,0,PASS
1077415394,floating-islands,gcc14-default,1,27,9,25992,39.199219,20.472656,-109.757812,0x76ffc67a9d410089,0x712f9bef468c36e1,0xd15add3c403cf9d2,0x1f98a205464ab093,1.751,1.766817,89248,0,PASS
1077415394,floating-islands,gcc14-default,12,27,9,25992,39.199219,20.472656,-109.757812,0x76ffc67a9d410089,0x712f9bef468c36e1,0xd15add3c403cf9d2,0x1f98a205464ab093,0.726,0.753263,304336,0,PASS
1130999017,surface-world,clang19-off,1,27,15,38852,0.000000,-140.000000,-1885.390625,0xd4fee006d89064ec,0xc2e722815c510b8d,0xaee1e5e204213289,0x6107884769e6196b,0.258,0.275630,85440,0,PASS
1130999017,surface-world,clang19-off,12,27,15,38852,0.000000,-140.000000,-1885.390625,0xd4fee006d89064ec,0xc2e722815c510b8d,0xaee1e5e204213289,0x6107884769e6196b,0.452,0.478967,301608,0,PASS
1130999017,surface-world,clang19-on,1,27,15,38852,0.000000,-140.000000,-1885.390625,0xd4fee006d89064ec,0xc2e722815c510b8d,0xaee1e5e204213289,0x6107884769e6196b,0.251,0.266976,85864,0,PASS
1130999017,surface-world,clang19-on,12,27,15,38852,0.000000,-140.000000,-1885.390625,0xd4fee006d89064ec,0xc2e722815c510b8d,0xaee1e5e204213289,0x6107884769e6196b,0.443,0.472895,299580,0,PASS
1130999017,surface-world,gcc14-default,1,27,15,38852,0.000000,-140.000000,-1885.390625,0xd4fee006d89064ec,0xc2e722815c510b8d,0xaee1e5e204213289,0x6107884769e6196b,0.243,0.258360,86216,0,PASS
1130999017,surface-world,gcc14-default,12,27,15,38852,0.000000,-140.000000,-1885.390625,0xd4fee006d89064ec,0xc2e722815c510b8d,0xaee1e5e204213289,0x6107884769e6196b,0.430,0.459582,300604,0,PASS
1130999017,floating-islands,clang19-off,1,27,14,25686,-39.199219,19.199219,-119.304688,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1,0x24ac0b621165dc1c,0x3e15c5e91f7d7e46,1.116,1.133283,84856,0,PASS
1130999017,floating-islands,clang19-off,12,27,14,25686,-39.199219,19.199219,-119.304688,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1,0x24ac0b621165dc1c,0x3e15c5e91f7d7e46,0.608,0.635013,299952,0,PASS
1130999017,floating-islands,clang19-on,1,27,14,25686,-39.199219,19.199219,-119.304688,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1,0x24ac0b621165dc1c,0x3e15c5e91f7d7e46,1.131,1.147307,84968,0,PASS
1130999017,floating-islands,clang19-on,12,27,14,25686,-39.199219,19.199219,-119.304688,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1,0x24ac0b621165dc1c,0x3e15c5e91f7d7e46,0.600,0.627582,299320,0,PASS
1130999017,floating-islands,gcc14-default,1,27,14,25686,-39.199219,19.199219,-119.304688,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1,0x24ac0b621165dc1c,0x3e15c5e91f7d7e46,1.180,1.196907,85352,0,PASS
1130999017,floating-islands,gcc14-default,12,27,14,25686,-39.199219,19.199219,-119.304688,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1,0x24ac0b621165dc1c,0x3e15c5e91f7d7e46,0.653,0.679477,300280,0,PASS
1156488597,surface-world,clang19-off,1,27,10,26660,0.000000,-140.000000,-2012.031250,0xf918cd1d254bf5ad,0x93e291c7e8ab3281,0x115d528201ee55de,0x8282368945b9aa39,0.169,0.185411,84912,0,PASS
1156488597,surface-world,clang19-off,12,27,10,26660,0.000000,-140.000000,-2012.031250,0xf918cd1d254bf5ad,0x93e291c7e8ab3281,0x115d528201ee55de,0x8282368945b9aa39,0.415,0.440950,296868,0,PASS
1156488597,surface-world,clang19-on,1,27,10,26660,0.000000,-140.000000,-2012.031250,0xf918cd1d254bf5ad,0x93e291c7e8ab3281,0x115d528201ee55de,0x8282368945b9aa39,0.170,0.185517,85336,0,PASS
1156488597,surface-world,clang19-on,12,27,10,26660,0.000000,-140.000000,-2012.031250,0xf918cd1d254bf5ad,0x93e291c7e8ab3281,0x115d528201ee55de,0x8282368945b9aa39,0.458,0.494970,296900,0,PASS
1156488597,surface-world,gcc14-default,1,27,10,26660,0.000000,-140.000000,-2012.031250,0xf918cd1d254bf5ad,0x93e291c7e8ab3281,0x115d528201ee55de,0x8282368945b9aa39,0.178,0.205454,85672,0,PASS
1156488597,surface-world,gcc14-default,12,27,10,26660,0.000000,-140.000000,-2012.031250,0xf918cd1d254bf5ad,0x93e291c7e8ab3281,0x115d528201ee55de,0x8282368945b9aa39,0.454,0.483690,297532,0,PASS
1156488597,floating-islands,clang19-off,1,27,14,22928,-39.199219,16.464844,-121.550781,0x080c04f591e988da,0x7d2e52b446efd9d1,0x6dccf350fe593410,0x97ae318aaff326ae,1.464,1.480495,87092,0,PASS
1156488597,floating-islands,clang19-off,12,27,14,22928,-39.199219,16.464844,-121.550781,0x080c04f591e988da,0x7d2e52b446efd9d1,0x6dccf350fe593410,0x97ae318aaff326ae,0.684,0.710558,301280,0,PASS
1156488597,floating-islands,clang19-on,1,27,14,22928,-39.199219,16.464844,-121.550781,0x080c04f591e988da,0x7d2e52b446efd9d1,0x6dccf350fe593410,0x97ae318aaff326ae,1.481,1.498290,87056,0,PASS
1156488597,floating-islands,clang19-on,12,27,14,22928,-39.199219,16.464844,-121.550781,0x080c04f591e988da,0x7d2e52b446efd9d1,0x6dccf350fe593410,0x97ae318aaff326ae,0.707,0.737492,301040,0,PASS
1156488597,floating-islands,gcc14-default,1,27,14,22928,-39.199219,16.464844,-121.550781,0x080c04f591e988da,0x7d2e52b446efd9d1,0x6dccf350fe593410,0x97ae318aaff326ae,1.635,1.652170,87388,0,PASS
1156488597,floating-islands,gcc14-default,12,27,14,22928,-39.199219,16.464844,-121.550781,0x080c04f591e988da,0x7d2e52b446efd9d1,0x6dccf350fe593410,0x97ae318aaff326ae,0.730,0.758962,301644,0,PASS
1172304228,surface-world,clang19-off,1,27,9,28078,0.000000,-140.000000,-2030.214844,0x466d74beb6a3c43f,0x935c08e020dbe116,0x495814a08ffe3b6e,0xa3a7e103fe545c77,0.159,0.176089,84448,0,PASS
1172304228,surface-world,clang19-off,12,27,9,28078,0.000000,-140.000000,-2030.214844,0x466d74beb6a3c43f,0x935c08e020dbe116,0x495814a08ffe3b6e,0xa3a7e103fe545c77,0.416,0.444129,294644,0,PASS
1172304228,surface-world,clang19-on,1,27,9,28078,0.000000,-140.000000,-2030.214844,0x466d74beb6a3c43f,0x935c08e020dbe116,0x495814a08ffe3b6e,0xa3a7e103fe545c77,0.159,0.174634,84268,0,PASS
1172304228,surface-world,clang19-on,12,27,9,28078,0.000000,-140.000000,-2030.214844,0x466d74beb6a3c43f,0x935c08e020dbe116,0x495814a08ffe3b6e,0xa3a7e103fe545c77,0.409,0.435936,294684,0,PASS
1172304228,surface-world,gcc14-default,1,27,9,28078,0.000000,-140.000000,-2030.214844,0x466d74beb6a3c43f,0x935c08e020dbe116,0x495814a08ffe3b6e,0xa3a7e103fe545c77,0.161,0.177733,84864,0,PASS
1172304228,surface-world,gcc14-default,12,27,9,28078,0.000000,-140.000000,-2030.214844,0x466d74beb6a3c43f,0x935c08e020dbe116,0x495814a08ffe3b6e,0xa3a7e103fe545c77,0.407,0.433961,295552,0,PASS
1172304228,floating-islands,clang19-off,1,27,12,25280,-39.199219,16.859375,-120.363281,0xa4ceaef6289c2778,0xac854a5846adc6cb,0xc79cc3dcf8aa7882,0x2a36a844bc640838,0.855,0.871675,86436,0,PASS
1172304228,floating-islands,clang19-off,12,27,12,25280,-39.199219,16.859375,-120.363281,0xa4ceaef6289c2778,0xac854a5846adc6cb,0xc79cc3dcf8aa7882,0x2a36a844bc640838,0.566,0.594146,300964,0,PASS
1172304228,floating-islands,clang19-on,1,27,12,25280,-39.199219,16.859375,-120.363281,0xa4ceaef6289c2778,0xac854a5846adc6cb,0xc79cc3dcf8aa7882,0x2a36a844bc640838,0.866,0.882396,86372,0,PASS
1172304228,floating-islands,clang19-on,12,27,12,25280,-39.199219,16.859375,-120.363281,0xa4ceaef6289c2778,0xac854a5846adc6cb,0xc79cc3dcf8aa7882,0x2a36a844bc640838,0.576,0.603920,301252,0,PASS
1172304228,floating-islands,gcc14-default,1,27,12,25280,-39.199219,16.859375,-120.363281,0xa4ceaef6289c2778,0xac854a5846adc6cb,0xc79cc3dcf8aa7882,0x2a36a844bc640838,0.938,0.954134,86620,0,PASS
1172304228,floating-islands,gcc14-default,12,27,12,25280,-39.199219,16.859375,-120.363281,0xa4ceaef6289c2778,0xac854a5846adc6cb,0xc79cc3dcf8aa7882,0x2a36a844bc640838,0.586,0.615590,301852,0,PASS
1370340570,surface-world,clang19-off,1,27,9,26888,0.000000,-140.000000,-2026.738281,0xb71aa861999e9064,0x5e6eb187fe7aa3d1,0xdbd2bf3e112249bb,0xbb50eff77e4ba5a7,0.159,0.175263,84752,0,PASS
1370340570,surface-world,clang19-off,12,27,9,26888,0.000000,-140.000000,-2026.738281,0xb71aa861999e9064,0x5e6eb187fe7aa3d1,0xdbd2bf3e112249bb,0xbb50eff77e4ba5a7,0.416,0.441389,295492,0,PASS
1370340570,surface-world,clang19-on,1,27,9,26888,0.000000,-140.000000,-2026.738281,0xb71aa861999e9064,0x5e6eb187fe7aa3d1,0xdbd2bf3e112249bb,0xbb50eff77e4ba5a7,0.153,0.168519,84744,0,PASS
1370340570,surface-world,clang19-on,12,27,9,26888,0.000000,-140.000000,-2026.738281,0xb71aa861999e9064,0x5e6eb187fe7aa3d1,0xdbd2bf3e112249bb,0xbb50eff77e4ba5a7,0.409,0.438368,295092,0,PASS
1370340570,surface-world,gcc14-default,1,27,9,26888,0.000000,-140.000000,-2026.738281,0xb71aa861999e9064,0x5e6eb187fe7aa3d1,0xdbd2bf3e112249bb,0xbb50eff77e4ba5a7,0.155,0.170254,85124,0,PASS
1370340570,surface-world,gcc14-default,12,27,9,26888,0.000000,-140.000000,-2026.738281,0xb71aa861999e9064,0x5e6eb187fe7aa3d1,0xdbd2bf3e112249bb,0xbb50eff77e4ba5a7,0.409,0.437481,296036,0,PASS
1370340570,floating-islands,clang19-off,1,27,8,20458,-39.199219,17.164062,-114.296875,0xfe631978312f065a,0xc41cdcb438a98b86,0xc2df8d535d4c97d9,0xe26e0e5cc9e21c14,1.581,1.599496,86948,0,PASS
1370340570,floating-islands,clang19-off,12,27,8,20458,-39.199219,17.164062,-114.296875,0xfe631978312f065a,0xc41cdcb438a98b86,0xc2df8d535d4c97d9,0xe26e0e5cc9e21c14,0.702,0.729410,301536,0,PASS
1370340570,floating-islands,clang19-on,1,27,8,20458,-39.199219,17.164062,-114.296875,0xfe631978312f065a,0xc41cdcb438a98b86,0xc2df8d535d4c97d9,0xe26e0e5cc9e21c14,1.595,1.611272,87072,0,PASS
1370340570,floating-islands,clang19-on,12,27,8,20458,-39.199219,17.164062,-114.296875,0xfe631978312f065a,0xc41cdcb438a98b86,0xc2df8d535d4c97d9,0xe26e0e5cc9e21c14,0.691,0.717960,301388,0,PASS
1370340570,floating-islands,gcc14-default,1,27,8,20458,-39.199219,17.164062,-114.296875,0xfe631978312f065a,0xc41cdcb438a98b86,0xc2df8d535d4c97d9,0xe26e0e5cc9e21c14,1.728,1.744814,87540,0,PASS
1370340570,floating-islands,gcc14-default,12,27,8,20458,-39.199219,17.164062,-114.296875,0xfe631978312f065a,0xc41cdcb438a98b86,0xc2df8d535d4c97d9,0xe26e0e5cc9e21c14,0.754,0.781424,302088,0,PASS
1383925073,surface-world,clang19-off,1,27,13,27826,0.000000,-140.000000,-2018.113281,0x564bb6a29953fc31,0x891c57b01dc509f8,0xf94dfef226e94ece,0xf277b25c2571f165,0.181,0.196556,83960,0,PASS
1383925073,surface-world,clang19-off,12,27,13,27826,0.000000,-140.000000,-2018.113281,0x564bb6a29953fc31,0x891c57b01dc509f8,0xf94dfef226e94ece,0xf277b25c2571f165,0.426,0.453780,298648,0,PASS
1383925073,surface-world,clang19-on,1,27,13,27826,0.000000,-140.000000,-2018.113281,0x564bb6a29953fc31,0x891c57b01dc509f8,0xf94dfef226e94ece,0xf277b25c2571f165,0.184,0.201221,84120,0,PASS
1383925073,surface-world,clang19-on,12,27,13,27826,0.000000,-140.000000,-2018.113281,0x564bb6a29953fc31,0x891c57b01dc509f8,0xf94dfef226e94ece,0xf277b25c2571f165,0.407,0.434497,298520,0,PASS
1383925073,surface-world,gcc14-default,1,27,13,27826,0.000000,-140.000000,-2018.113281,0x564bb6a29953fc31,0x891c57b01dc509f8,0xf94dfef226e94ece,0xf277b25c2571f165,0.175,0.191617,84528,0,PASS
1383925073,surface-world,gcc14-default,12,27,13,27826,0.000000,-140.000000,-2018.113281,0x564bb6a29953fc31,0x891c57b01dc509f8,0xf94dfef226e94ece,0xf277b25c2571f165,0.406,0.432371,299400,0,PASS
1383925073,floating-islands,clang19-off,1,27,8,17340,64.398438,76.132812,-101.687500,0x20a6d43f24557065,0xace78f99c63a90bc,0xba9503af152a1017,0xb09b522bed1b8c47,1.524,1.540376,85480,0,PASS
1383925073,floating-islands,clang19-off,12,27,8,17340,64.398438,76.132812,-101.687500,0x20a6d43f24557065,0xace78f99c63a90bc,0xba9503af152a1017,0xb09b522bed1b8c47,0.688,0.716589,299068,0,PASS
1383925073,floating-islands,clang19-on,1,27,8,17340,64.398438,76.132812,-101.687500,0x20a6d43f24557065,0xace78f99c63a90bc,0xba9503af152a1017,0xb09b522bed1b8c47,1.524,1.540170,85484,0,PASS
1383925073,floating-islands,clang19-on,12,27,8,17340,64.398438,76.132812,-101.687500,0x20a6d43f24557065,0xace78f99c63a90bc,0xba9503af152a1017,0xb09b522bed1b8c47,0.693,0.719692,299196,0,PASS
1383925073,floating-islands,gcc14-default,1,27,8,17340,64.398438,76.132812,-101.687500,0x20a6d43f24557065,0xace78f99c63a90bc,0xba9503af152a1017,0xb09b522bed1b8c47,1.661,1.676492,85764,0,PASS
1383925073,floating-islands,gcc14-default,12,27,8,17340,64.398438,76.132812,-101.687500,0x20a6d43f24557065,0xace78f99c63a90bc,0xba9503af152a1017,0xb09b522bed1b8c47,0.728,0.755271,299796,0,PASS
1401164998,surface-world,clang19-off,1,27,14,33671,0.000000,-140.000000,-1923.625000,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e,0xd87700809feafff4,0xc2e832153a03b5d7,0.286,0.301458,85156,0,PASS
1401164998,surface-world,clang19-off,12,27,14,33671,0.000000,-140.000000,-1923.625000,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e,0xd87700809feafff4,0xc2e832153a03b5d7,0.451,0.477156,300516,0,PASS
1401164998,surface-world,clang19-on,1,27,14,33671,0.000000,-140.000000,-1923.625000,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e,0xd87700809feafff4,0xc2e832153a03b5d7,0.282,0.297994,85456,0,PASS
1401164998,surface-world,clang19-on,12,27,14,33671,0.000000,-140.000000,-1923.625000,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e,0xd87700809feafff4,0xc2e832153a03b5d7,0.448,0.476334,300584,0,PASS
1401164998,surface-world,gcc14-default,1,27,14,33671,0.000000,-140.000000,-1923.625000,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e,0xd87700809feafff4,0xc2e832153a03b5d7,0.278,0.294323,85820,0,PASS
1401164998,surface-world,gcc14-default,12,27,14,33671,0.000000,-140.000000,-1923.625000,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e,0xd87700809feafff4,0xc2e832153a03b5d7,0.463,0.489660,301300,0,PASS
1401164998,floating-islands,clang19-off,1,27,12,25478,-25.199219,-76.433594,-133.500000,0xa22b8a0f16d1cb98,0x85e184e7768795d1,0x29a6f8ac91d35e09,0xb778d52817341912,1.889,1.905353,86852,0,PASS
1401164998,floating-islands,clang19-off,12,27,12,25478,-25.199219,-76.433594,-133.500000,0xa22b8a0f16d1cb98,0x85e184e7768795d1,0x29a6f8ac91d35e09,0xb778d52817341912,0.755,0.783092,299600,0,PASS
1401164998,floating-islands,clang19-on,1,27,12,25478,-25.199219,-76.433594,-133.500000,0xa22b8a0f16d1cb98,0x85e184e7768795d1,0x29a6f8ac91d35e09,0xb778d52817341912,1.918,1.935211,87012,0,PASS
1401164998,floating-islands,clang19-on,12,27,12,25478,-25.199219,-76.433594,-133.500000,0xa22b8a0f16d1cb98,0x85e184e7768795d1,0x29a6f8ac91d35e09,0xb778d52817341912,0.747,0.774451,299876,0,PASS
1401164998,floating-islands,gcc14-default,1,27,12,25478,-25.199219,-76.433594,-133.500000,0xa22b8a0f16d1cb98,0x85e184e7768795d1,0x29a6f8ac91d35e09,0xb778d52817341912,1.962,1.978881,87376,0,PASS
1401164998,floating-islands,gcc14-default,12,27,12,25478,-25.199219,-76.433594,-133.500000,0xa22b8a0f16d1cb98,0x85e184e7768795d1,0x29a6f8ac91d35e09,0xb778d52817341912,0.773,0.800827,300436,0,PASS
1558879574,surface-world,clang19-off,1,27,12,30022,0.000000,-140.000000,-2026.257812,0x566bd8e41e9ce9de,0xd7344edfeac99334,0xffbfbdcc9b7796a9,0x0ab334df0eb60fd6,0.178,0.192933,83876,0,PASS
1558879574,surface-world,clang19-off,12,27,12,30022,0.000000,-140.000000,-2026.257812,0x566bd8e41e9ce9de,0xd7344edfeac99334,0xffbfbdcc9b7796a9,0x0ab334df0eb60fd6,0.430,0.457703,298956,0,PASS
1558879574,surface-world,clang19-on,1,27,12,30022,0.000000,-140.000000,-2026.257812,0x566bd8e41e9ce9de,0xd7344edfeac99334,0xffbfbdcc9b7796a9,0x0ab334df0eb60fd6,0.176,0.192307,83696,0,PASS
1558879574,surface-world,clang19-on,12,27,12,30022,0.000000,-140.000000,-2026.257812,0x566bd8e41e9ce9de,0xd7344edfeac99334,0xffbfbdcc9b7796a9,0x0ab334df0eb60fd6,0.413,0.440116,297112,0,PASS
1558879574,surface-world,gcc14-default,1,27,12,30022,0.000000,-140.000000,-2026.257812,0x566bd8e41e9ce9de,0xd7344edfeac99334,0xffbfbdcc9b7796a9,0x0ab334df0eb60fd6,0.182,0.197351,84408,0,PASS
1558879574,surface-world,gcc14-default,12,27,12,30022,0.000000,-140.000000,-2026.257812,0x566bd8e41e9ce9de,0xd7344edfeac99334,0xffbfbdcc9b7796a9,0x0ab334df0eb60fd6,0.425,0.451513,299728,0,PASS
1558879574,floating-islands,clang19-off,1,27,15,37078,0.000000,-15.878906,-116.753906,0x675134538e8ca09b,0x2e32a5444b8be6d7,0xa3945849da18e24a,0xda29fda6f39d36f9,0.864,0.880169,84868,0,PASS
1558879574,floating-islands,clang19-off,12,27,15,37078,0.000000,-15.878906,-116.753906,0x675134538e8ca09b,0x2e32a5444b8be6d7,0xa3945849da18e24a,0xda29fda6f39d36f9,0.595,0.623192,301320,0,PASS
1558879574,floating-islands,clang19-on,1,27,15,37078,0.000000,-15.878906,-116.753906,0x675134538e8ca09b,0x2e32a5444b8be6d7,0xa3945849da18e24a,0xda29fda6f39d36f9,0.898,0.914741,84904,0,PASS
1558879574,floating-islands,clang19-on,12,27,15,37078,0.000000,-15.878906,-116.753906,0x675134538e8ca09b,0x2e32a5444b8be6d7,0xa3945849da18e24a,0xda29fda6f39d36f9,0.576,0.602221,300580,0,PASS
1558879574,floating-islands,gcc14-default,1,27,15,37078,0.000000,-15.878906,-116.753906,0x675134538e8ca09b,0x2e32a5444b8be6d7,0xa3945849da18e24a,0xda29fda6f39d36f9,0.948,0.964253,85196,0,PASS
1558879574,floating-islands,gcc14-default,12,27,15,37078,0.000000,-15.878906,-116.753906,0x675134538e8ca09b,0x2e32a5444b8be6d7,0xa3945849da18e24a,0xda29fda6f39d36f9,0.596,0.625674,301684,0,PASS
1753015542,surface-world,clang19-off,1,27,9,27536,0.000000,-140.000000,-2004.562500,0x3557e0f7c1298c35,0x833da36dd2c02e13,0x656f82e69ccdecc2,0xac9935bb75fdb59c,0.157,0.174474,85136,0,PASS
1753015542,surface-world,clang19-off,12,27,9,27536,0.000000,-140.000000,-2004.562500,0x3557e0f7c1298c35,0x833da36dd2c02e13,0x656f82e69ccdecc2,0xac9935bb75fdb59c,0.400,0.426649,295468,0,PASS
1753015542,surface-world,clang19-on,1,27,9,27536,0.000000,-140.000000,-2004.562500,0x3557e0f7c1298c35,0x833da36dd2c02e13,0x656f82e69ccdecc2,0xac9935bb75fdb59c,0.157,0.173307,85120,0,PASS
1753015542,surface-world,clang19-on,12,27,9,27536,0.000000,-140.000000,-2004.562500,0x3557e0f7c1298c35,0x833da36dd2c02e13,0x656f82e69ccdecc2,0xac9935bb75fdb59c,0.426,0.452773,295640,0,PASS
1753015542,surface-world,gcc14-default,1,27,9,27536,0.000000,-140.000000,-2004.562500,0x3557e0f7c1298c35,0x833da36dd2c02e13,0x656f82e69ccdecc2,0xac9935bb75fdb59c,0.161,0.180130,85696,0,PASS
1753015542,surface-world,gcc14-default,12,27,9,27536,0.000000,-140.000000,-2004.562500,0x3557e0f7c1298c35,0x833da36dd2c02e13,0x656f82e69ccdecc2,0xac9935bb75fdb59c,0.404,0.430695,296144,0,PASS
1753015542,floating-islands,clang19-off,1,27,13,23050,-25.199219,-75.425781,-125.304688,0xd628ec790fd17bd2,0x5602b3e7ed3f852a,0x844b0f983d0a8dcb,0xdef4bef7bdf60b15,1.084,1.099925,85304,0,PASS
1753015542,floating-islands,clang19-off,12,27,13,23050,-25.199219,-75.425781,-125.304688,0xd628ec790fd17bd2,0x5602b3e7ed3f852a,0x844b0f983d0a8dcb,0xdef4bef7bdf60b15,0.611,0.636921,299408,0,PASS
1753015542,floating-islands,clang19-on,1,27,13,23050,-25.199219,-75.425781,-125.304688,0xd628ec790fd17bd2,0x5602b3e7ed3f852a,0x844b0f983d0a8dcb,0xdef4bef7bdf60b15,1.100,1.116086,85256,0,PASS
1753015542,floating-islands,clang19-on,12,27,13,23050,-25.199219,-75.425781,-125.304688,0xd628ec790fd17bd2,0x5602b3e7ed3f852a,0x844b0f983d0a8dcb,0xdef4bef7bdf60b15,0.615,0.646016,299692,0,PASS
1753015542,floating-islands,gcc14-default,1,27,13,23050,-25.199219,-75.425781,-125.304688,0xd628ec790fd17bd2,0x5602b3e7ed3f852a,0x844b0f983d0a8dcb,0xdef4bef7bdf60b15,1.222,1.237954,85648,0,PASS
1753015542,floating-islands,gcc14-default,12,27,13,23050,-25.199219,-75.425781,-125.304688,0xd628ec790fd17bd2,0x5602b3e7ed3f852a,0x844b0f983d0a8dcb,0xdef4bef7bdf60b15,0.638,0.665451,300048,0,PASS
1827697875,surface-world,clang19-off,1,27,12,29182,0.000000,-140.000000,-2018.507812,0xd945dc9d11f16156,0x59cd0f8103174807,0xbeae510e83e10bb9,0xe561cd4f1b5fc4a0,0.176,0.193003,86328,0,PASS
1827697875,surface-world,clang19-off,12,27,12,29182,0.000000,-140.000000,-2018.507812,0xd945dc9d11f16156,0x59cd0f8103174807,0xbeae510e83e10bb9,0xe561cd4f1b5fc4a0,0.404,0.432768,301456,0,PASS
1827697875,surface-world,clang19-on,1,27,12,29182,0.000000,-140.000000,-2018.507812,0xd945dc9d11f16156,0x59cd0f8103174807,0xbeae510e83e10bb9,0xe561cd4f1b5fc4a0,0.168,0.184638,86524,0,PASS
1827697875,surface-world,clang19-on,12,27,12,29182,0.000000,-140.000000,-2018.507812,0xd945dc9d11f16156,0x59cd0f8103174807,0xbeae510e83e10bb9,0xe561cd4f1b5fc4a0,0.403,0.430151,301156,0,PASS
1827697875,surface-world,gcc14-default,1,27,12,29182,0.000000,-140.000000,-2018.507812,0xd945dc9d11f16156,0x59cd0f8103174807,0xbeae510e83e10bb9,0xe561cd4f1b5fc4a0,0.171,0.187425,86968,0,PASS
1827697875,surface-world,gcc14-default,12,27,12,29182,0.000000,-140.000000,-2018.507812,0xd945dc9d11f16156,0x59cd0f8103174807,0xbeae510e83e10bb9,0xe561cd4f1b5fc4a0,0.404,0.431313,301904,0,PASS
1827697875,floating-islands,clang19-off,1,27,11,34624,0.000000,-19.441406,-116.312500,0x786671c16ae75f4f,0x2c0c94465b7da251,0x6bad3e5799515fde,0x7ff03f198fd07c37,1.637,1.653412,90444,0,PASS
1827697875,floating-islands,clang19-off,12,27,11,34624,0.000000,-19.441406,-116.312500,0x786671c16ae75f4f,0x2c0c94465b7da251,0x6bad3e5799515fde,0x7ff03f198fd07c37,0.721,0.749622,306368,0,PASS
1827697875,floating-islands,clang19-on,1,27,11,34624,0.000000,-19.441406,-116.312500,0x786671c16ae75f4f,0x2c0c94465b7da251,0x6bad3e5799515fde,0x7ff03f198fd07c37,1.650,1.665968,90588,0,PASS
1827697875,floating-islands,clang19-on,12,27,11,34624,0.000000,-19.441406,-116.312500,0x786671c16ae75f4f,0x2c0c94465b7da251,0x6bad3e5799515fde,0x7ff03f198fd07c37,0.694,0.721945,306148,0,PASS
1827697875,floating-islands,gcc14-default,1,27,11,34624,0.000000,-19.441406,-116.312500,0x786671c16ae75f4f,0x2c0c94465b7da251,0x6bad3e5799515fde,0x7ff03f198fd07c37,2.219,2.236609,90628,0,PASS
1827697875,floating-islands,gcc14-default,12,27,11,34624,0.000000,-19.441406,-116.312500,0x786671c16ae75f4f,0x2c0c94465b7da251,0x6bad3e5799515fde,0x7ff03f198fd07c37,0.725,0.753570,306580,0,PASS
1909311298,surface-world,clang19-off,1,27,13,28862,0.000000,-140.000000,-2007.000000,0x79cb6cf093ee2d27,0xa818f8c1904f73b0,0x529738f49021b6e2,0x22bd170f9b244b7c,0.181,0.196690,83948,0,PASS
1909311298,surface-world,clang19-off,12,27,13,28862,0.000000,-140.000000,-2007.000000,0x79cb6cf093ee2d27,0xa818f8c1904f73b0,0x529738f49021b6e2,0x22bd170f9b244b7c,0.414,0.439403,298828,0,PASS
1909311298,surface-world,clang19-on,1,27,13,28862,0.000000,-140.000000,-2007.000000,0x79cb6cf093ee2d27,0xa818f8c1904f73b0,0x529738f49021b6e2,0x22bd170f9b244b7c,0.183,0.197951,84020,0,PASS
1909311298,surface-world,clang19-on,12,27,13,28862,0.000000,-140.000000,-2007.000000,0x79cb6cf093ee2d27,0xa818f8c1904f73b0,0x529738f49021b6e2,0x22bd170f9b244b7c,0.418,0.445146,297192,0,PASS
1909311298,surface-world,gcc14-default,1,27,13,28862,0.000000,-140.000000,-2007.000000,0x79cb6cf093ee2d27,0xa818f8c1904f73b0,0x529738f49021b6e2,0x22bd170f9b244b7c,0.179,0.194761,84464,0,PASS
1909311298,surface-world,gcc14-default,12,27,13,28862,0.000000,-140.000000,-2007.000000,0x79cb6cf093ee2d27,0xa818f8c1904f73b0,0x529738f49021b6e2,0x22bd170f9b244b7c,0.414,0.441193,299492,0,PASS
1909311298,floating-islands,clang19-off,1,27,12,22040,-39.199219,18.164062,-122.738281,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543,0x9b01cc95b7b3358d,0xd049ccb5663e4449,1.229,1.245451,85180,0,PASS
1909311298,floating-islands,clang19-off,12,27,12,22040,-39.199219,18.164062,-122.738281,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543,0x9b01cc95b7b3358d,0xd049ccb5663e4449,0.658,0.685935,299900,0,PASS
1909311298,floating-islands,clang19-on,1,27,12,22040,-39.199219,18.164062,-122.738281,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543,0x9b01cc95b7b3358d,0xd049ccb5663e4449,1.261,1.277763,85712,0,PASS
1909311298,floating-islands,clang19-on,12,27,12,22040,-39.199219,18.164062,-122.738281,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543,0x9b01cc95b7b3358d,0xd049ccb5663e4449,0.650,0.678722,299884,0,PASS
1909311298,floating-islands,gcc14-default,1,27,12,22040,-39.199219,18.164062,-122.738281,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543,0x9b01cc95b7b3358d,0xd049ccb5663e4449,1.358,1.374066,86140,0,PASS
1909311298,floating-islands,gcc14-default,12,27,12,22040,-39.199219,18.164062,-122.738281,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543,0x9b01cc95b7b3358d,0xd049ccb5663e4449,0.694,0.722178,300560,0,PASS
2011898099,surface-world,clang19-off,1,27,9,28654,0.000000,-140.000000,-2005.066406,0x95f389e603d74998,0xff02d8e0b112c865,0xd5d0a255cb1b18be,0x1138243eba6d47a9,0.171,0.187716,86176,0,PASS
2011898099,surface-world,clang19-off,12,27,9,28654,0.000000,-140.000000,-2005.066406,0x95f389e603d74998,0xff02d8e0b112c865,0xd5d0a255cb1b18be,0x1138243eba6d47a9,0.430,0.457289,296284,0,PASS
2011898099,surface-world,clang19-on,1,27,9,28654,0.000000,-140.000000,-2005.066406,0x95f389e603d74998,0xff02d8e0b112c865,0xd5d0a255cb1b18be,0x1138243eba6d47a9,0.164,0.180262,85708,0,PASS
2011898099,surface-world,clang19-on,12,27,9,28654,0.000000,-140.000000,-2005.066406,0x95f389e603d74998,0xff02d8e0b112c865,0xd5d0a255cb1b18be,0x1138243eba6d47a9,0.421,0.448994,296448,0,PASS
2011898099,surface-world,gcc14-default,1,27,9,28654,0.000000,-140.000000,-2005.066406,0x95f389e603d74998,0xff02d8e0b112c865,0xd5d0a255cb1b18be,0x1138243eba6d47a9,0.162,0.178213,86360,0,PASS
2011898099,surface-world,gcc14-default,12,27,9,28654,0.000000,-140.000000,-2005.066406,0x95f389e603d74998,0xff02d8e0b112c865,0xd5d0a255cb1b18be,0x1138243eba6d47a9,0.412,0.438827,296832,0,PASS
2011898099,floating-islands,clang19-off,1,27,9,21292,39.199219,18.968750,-106.898438,0xb3ad433a09a0d127,0xdea39968a98e0861,0x53948649c6b2beee,0x908898f1ffc5bd9b,1.189,1.205816,88312,0,PASS
2011898099,floating-islands,clang19-off,12,27,9,21292,39.199219,18.968750,-106.898438,0xb3ad433a09a0d127,0xdea39968a98e0861,0x53948649c6b2beee,0x908898f1ffc5bd9b,0.603,0.630257,302380,0,PASS
2011898099,floating-islands,clang19-on,1,27,9,21292,39.199219,18.968750,-106.898438,0xb3ad433a09a0d127,0xdea39968a98e0861,0x53948649c6b2beee,0x908898f1ffc5bd9b,1.159,1.174149,88360,0,PASS
2011898099,floating-islands,clang19-on,12,27,9,21292,39.199219,18.968750,-106.898438,0xb3ad433a09a0d127,0xdea39968a98e0861,0x53948649c6b2beee,0x908898f1ffc5bd9b,0.618,0.645079,302396,0,PASS
2011898099,floating-islands,gcc14-default,1,27,9,21292,39.199219,18.968750,-106.898438,0xb3ad433a09a0d127,0xdea39968a98e0861,0x53948649c6b2beee,0x908898f1ffc5bd9b,1.289,1.305695,88604,0,PASS
2011898099,floating-islands,gcc14-default,12,27,9,21292,39.199219,18.968750,-106.898438,0xb3ad433a09a0d127,0xdea39968a98e0861,0x53948649c6b2beee,0x908898f1ffc5bd9b,0.656,0.682775,302628,0,PASS
2015768509,surface-world,clang19-off,1,27,18,51706,0.000000,-140.000000,-1918.304688,0x9506739f358ba5c5,0xaba43fe9407d51fb,0xb75c6eb38dcff774,0x76ccbd695880c541,0.325,0.339879,84052,0,PASS
2015768509,surface-world,clang19-off,12,27,18,51706,0.000000,-140.000000,-1918.304688,0x9506739f358ba5c5,0xaba43fe9407d51fb,0xb75c6eb38dcff774,0x76ccbd695880c541,0.462,0.488815,300564,0,PASS
2015768509,surface-world,clang19-on,1,27,18,51706,0.000000,-140.000000,-1918.304688,0x9506739f358ba5c5,0xaba43fe9407d51fb,0xb75c6eb38dcff774,0x76ccbd695880c541,0.327,0.342810,84232,0,PASS
2015768509,surface-world,clang19-on,12,27,18,51706,0.000000,-140.000000,-1918.304688,0x9506739f358ba5c5,0xaba43fe9407d51fb,0xb75c6eb38dcff774,0x76ccbd695880c541,0.463,0.489510,300696,0,PASS
2015768509,surface-world,gcc14-default,1,27,18,51706,0.000000,-140.000000,-1918.304688,0x9506739f358ba5c5,0xaba43fe9407d51fb,0xb75c6eb38dcff774,0x76ccbd695880c541,0.316,0.332179,84352,0,PASS
2015768509,surface-world,gcc14-default,12,27,18,51706,0.000000,-140.000000,-1918.304688,0x9506739f358ba5c5,0xaba43fe9407d51fb,0xb75c6eb38dcff774,0x76ccbd695880c541,0.461,0.488549,301088,0,PASS
2015768509,floating-islands,clang19-off,1,27,11,29426,39.199219,20.148438,-111.468750,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094,0xc520e4594055d037,0x1f0f86bd23a0ade4,1.597,1.614573,85204,0,PASS
2015768509,floating-islands,clang19-off,12,27,11,29426,39.199219,20.148438,-111.468750,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094,0xc520e4594055d037,0x1f0f86bd23a0ade4,0.755,0.784367,300176,0,PASS
2015768509,floating-islands,clang19-on,1,27,11,29426,39.199219,20.148438,-111.468750,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094,0xc520e4594055d037,0x1f0f86bd23a0ade4,1.623,1.646497,85312,0,PASS
2015768509,floating-islands,clang19-on,12,27,11,29426,39.199219,20.148438,-111.468750,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094,0xc520e4594055d037,0x1f0f86bd23a0ade4,0.734,0.761770,300316,0,PASS
2015768509,floating-islands,gcc14-default,1,27,11,29426,39.199219,20.148438,-111.468750,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094,0xc520e4594055d037,0x1f0f86bd23a0ade4,1.884,1.901163,85704,0,PASS
2015768509,floating-islands,gcc14-default,12,27,11,29426,39.199219,20.148438,-111.468750,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094,0xc520e4594055d037,0x1f0f86bd23a0ade4,0.782,0.808616,300972,0,PASS
2070776516,surface-world,clang19-off,1,27,10,26952,0.000000,-140.000000,-2010.421875,0x28df1e26bab2140f,0x4af65af7af7045c3,0x9832cc0f7fef9416,0xcc5b3fd5040e7c87,0.192,0.206509,84096,0,PASS
2070776516,surface-world,clang19-off,12,27,10,26952,0.000000,-140.000000,-2010.421875,0x28df1e26bab2140f,0x4af65af7af7045c3,0x9832cc0f7fef9416,0xcc5b3fd5040e7c87,0.437,0.465311,295796,0,PASS
2070776516,surface-world,clang19-on,1,27,10,26952,0.000000,-140.000000,-2010.421875,0x28df1e26bab2140f,0x4af65af7af7045c3,0x9832cc0f7fef9416,0xcc5b3fd5040e7c87,0.193,0.209540,83692,0,PASS
2070776516,surface-world,clang19-on,12,27,10,26952,0.000000,-140.000000,-2010.421875,0x28df1e26bab2140f,0x4af65af7af7045c3,0x9832cc0f7fef9416,0xcc5b3fd5040e7c87,0.456,0.482411,295584,0,PASS
2070776516,surface-world,gcc14-default,1,27,10,26952,0.000000,-140.000000,-2010.421875,0x28df1e26bab2140f,0x4af65af7af7045c3,0x9832cc0f7fef9416,0xcc5b3fd5040e7c87,0.190,0.206251,84608,0,PASS
2070776516,surface-world,gcc14-default,12,27,10,26952,0.000000,-140.000000,-2010.421875,0x28df1e26bab2140f,0x4af65af7af7045c3,0x9832cc0f7fef9416,0xcc5b3fd5040e7c87,0.453,0.479961,296012,0,PASS
2070776516,floating-islands,clang19-off,1,27,8,15728,39.199219,16.496094,-110.636719,0x486603470bf1e852,0xaa6022efbc268013,0xd3227a7e0b6e8b9e,0xefb848cb7eb47d5c,1.112,1.128854,86188,0,PASS
2070776516,floating-islands,clang19-off,12,27,8,15728,39.199219,16.496094,-110.636719,0x486603470bf1e852,0xaa6022efbc268013,0xd3227a7e0b6e8b9e,0xefb848cb7eb47d5c,0.567,0.594910,299448,0,PASS
2070776516,floating-islands,clang19-on,1,27,8,15728,39.199219,16.496094,-110.636719,0x486603470bf1e852,0xaa6022efbc268013,0xd3227a7e0b6e8b9e,0xefb848cb7eb47d5c,1.115,1.131163,86004,0,PASS
2070776516,floating-islands,clang19-on,12,27,8,15728,39.199219,16.496094,-110.636719,0x486603470bf1e852,0xaa6022efbc268013,0xd3227a7e0b6e8b9e,0xefb848cb7eb47d5c,0.613,0.639860,299736,0,PASS
2070776516,floating-islands,gcc14-default,1,27,8,15728,39.199219,16.496094,-110.636719,0x486603470bf1e852,0xaa6022efbc268013,0xd3227a7e0b6e8b9e,0xefb848cb7eb47d5c,1.167,1.183633,86500,0,PASS
2070776516,floating-islands,gcc14-default,12,27,8,15728,39.199219,16.496094,-110.636719,0x486603470bf1e852,0xaa6022efbc268013,0xd3227a7e0b6e8b9e,0xefb848cb7eb47d5c,0.637,0.663327,300240,0,PASS
1 seed recipe compiler_setting workers tiles nonempty_mesh_tiles indexed_triangles camera_x_vox camera_y_vox camera_z_vox density_hash mesh_hash payload_hash topology_hash whole_view_ready_s wall_s peak_rss_kib exit_code status
2 -1990830953 surface-world clang19-off 1 27 9 26366 0.000000 -140.000000 -2021.785156 0x125d085ff63ece8a 0x3f219420ffe76ceb 0x386c66f61f66fde5 0x9fc08404031eb99b 0.162 0.180221 84360 0 PASS
3 -1990830953 surface-world clang19-off 12 27 9 26366 0.000000 -140.000000 -2021.785156 0x125d085ff63ece8a 0x3f219420ffe76ceb 0x386c66f61f66fde5 0x9fc08404031eb99b 0.397 0.424425 294988 0 PASS
4 -1990830953 surface-world clang19-on 1 27 9 26366 0.000000 -140.000000 -2021.785156 0x125d085ff63ece8a 0x3f219420ffe76ceb 0x386c66f61f66fde5 0x9fc08404031eb99b 0.163 0.180433 84540 0 PASS
5 -1990830953 surface-world clang19-on 12 27 9 26366 0.000000 -140.000000 -2021.785156 0x125d085ff63ece8a 0x3f219420ffe76ceb 0x386c66f61f66fde5 0x9fc08404031eb99b 0.401 0.427873 294656 0 PASS
6 -1990830953 surface-world gcc14-default 1 27 9 26366 0.000000 -140.000000 -2021.785156 0x125d085ff63ece8a 0x3f219420ffe76ceb 0x386c66f61f66fde5 0x9fc08404031eb99b 0.152 0.167928 84996 0 PASS
7 -1990830953 surface-world gcc14-default 12 27 9 26366 0.000000 -140.000000 -2021.785156 0x125d085ff63ece8a 0x3f219420ffe76ceb 0x386c66f61f66fde5 0x9fc08404031eb99b 0.398 0.424793 295392 0 PASS
8 -1990830953 floating-islands clang19-off 1 27 12 23386 -39.199219 16.363281 -121.039062 0xc04ef8acd44d8736 0x00e92c97d841dfe5 0xb57496fb3be7da11 0x64b0c5c3655299c2 0.872 0.887909 85248 0 PASS
9 -1990830953 floating-islands clang19-off 12 27 12 23386 -39.199219 16.363281 -121.039062 0xc04ef8acd44d8736 0x00e92c97d841dfe5 0xb57496fb3be7da11 0x64b0c5c3655299c2 0.549 0.575731 300132 0 PASS
10 -1990830953 floating-islands clang19-on 1 27 12 23386 -39.199219 16.363281 -121.039062 0xc04ef8acd44d8736 0x00e92c97d841dfe5 0xb57496fb3be7da11 0x64b0c5c3655299c2 0.884 0.901147 85000 0 PASS
11 -1990830953 floating-islands clang19-on 12 27 12 23386 -39.199219 16.363281 -121.039062 0xc04ef8acd44d8736 0x00e92c97d841dfe5 0xb57496fb3be7da11 0x64b0c5c3655299c2 0.578 0.605578 299564 0 PASS
12 -1990830953 floating-islands gcc14-default 1 27 12 23386 -39.199219 16.363281 -121.039062 0xc04ef8acd44d8736 0x00e92c97d841dfe5 0xb57496fb3be7da11 0x64b0c5c3655299c2 0.943 0.959068 85752 0 PASS
13 -1990830953 floating-islands gcc14-default 12 27 12 23386 -39.199219 16.363281 -121.039062 0xc04ef8acd44d8736 0x00e92c97d841dfe5 0xb57496fb3be7da11 0x64b0c5c3655299c2 0.588 0.614935 300548 0 PASS
14 -1900684165 surface-world clang19-off 1 27 10 27890 0.000000 -140.000000 -2011.214844 0xcc9819b02bd2f880 0x8cbe19f740d2b408 0xbe822577766381d4 0x69b6a50c6286fdf7 0.185 0.202214 89956 0 PASS
15 -1900684165 surface-world clang19-off 12 27 10 27890 0.000000 -140.000000 -2011.214844 0xcc9819b02bd2f880 0x8cbe19f740d2b408 0xbe822577766381d4 0x69b6a50c6286fdf7 0.418 0.446199 301944 0 PASS
16 -1900684165 surface-world clang19-on 1 27 10 27890 0.000000 -140.000000 -2011.214844 0xcc9819b02bd2f880 0x8cbe19f740d2b408 0xbe822577766381d4 0x69b6a50c6286fdf7 0.177 0.193134 89684 0 PASS
17 -1900684165 surface-world clang19-on 12 27 10 27890 0.000000 -140.000000 -2011.214844 0xcc9819b02bd2f880 0x8cbe19f740d2b408 0xbe822577766381d4 0x69b6a50c6286fdf7 0.438 0.466528 301656 0 PASS
18 -1900684165 surface-world gcc14-default 1 27 10 27890 0.000000 -140.000000 -2011.214844 0xcc9819b02bd2f880 0x8cbe19f740d2b408 0xbe822577766381d4 0x69b6a50c6286fdf7 0.180 0.196807 90492 0 PASS
19 -1900684165 surface-world gcc14-default 12 27 10 27890 0.000000 -140.000000 -2011.214844 0xcc9819b02bd2f880 0x8cbe19f740d2b408 0xbe822577766381d4 0x69b6a50c6286fdf7 0.442 0.468384 300628 0 PASS
20 -1900684165 floating-islands clang19-off 1 27 10 23186 39.199219 17.675781 -116.339844 0xfc7386c15431e2e1 0x46ce25dfb3745f53 0x97c9ffd0022012ad 0x64303145c5cc6d24 1.558 1.574129 89380 0 PASS
21 -1900684165 floating-islands clang19-off 12 27 10 23186 39.199219 17.675781 -116.339844 0xfc7386c15431e2e1 0x46ce25dfb3745f53 0x97c9ffd0022012ad 0x64303145c5cc6d24 0.699 0.726109 303932 0 PASS
22 -1900684165 floating-islands clang19-on 1 27 10 23186 39.199219 17.675781 -116.339844 0xfc7386c15431e2e1 0x46ce25dfb3745f53 0x97c9ffd0022012ad 0x64303145c5cc6d24 1.599 1.615516 89308 0 PASS
23 -1900684165 floating-islands clang19-on 12 27 10 23186 39.199219 17.675781 -116.339844 0xfc7386c15431e2e1 0x46ce25dfb3745f53 0x97c9ffd0022012ad 0x64303145c5cc6d24 0.727 0.755017 303964 0 PASS
24 -1900684165 floating-islands gcc14-default 1 27 10 23186 39.199219 17.675781 -116.339844 0xfc7386c15431e2e1 0x46ce25dfb3745f53 0x97c9ffd0022012ad 0x64303145c5cc6d24 1.692 1.708073 89664 0 PASS
25 -1900684165 floating-islands gcc14-default 12 27 10 23186 39.199219 17.675781 -116.339844 0xfc7386c15431e2e1 0x46ce25dfb3745f53 0x97c9ffd0022012ad 0x64303145c5cc6d24 0.763 0.790272 304528 0 PASS
26 -1766412538 surface-world clang19-off 1 27 9 27572 0.000000 -140.000000 -2004.851562 0x4d04ec633754c4ec 0xca8833dcfe9639d3 0x0a4008899d91f10e 0x2d6116327735df9a 0.181 0.196881 84084 0 PASS
27 -1766412538 surface-world clang19-off 12 27 9 27572 0.000000 -140.000000 -2004.851562 0x4d04ec633754c4ec 0xca8833dcfe9639d3 0x0a4008899d91f10e 0x2d6116327735df9a 0.414 0.439405 294580 0 PASS
28 -1766412538 surface-world clang19-on 1 27 9 27572 0.000000 -140.000000 -2004.851562 0x4d04ec633754c4ec 0xca8833dcfe9639d3 0x0a4008899d91f10e 0x2d6116327735df9a 0.181 0.196772 84172 0 PASS
29 -1766412538 surface-world clang19-on 12 27 9 27572 0.000000 -140.000000 -2004.851562 0x4d04ec633754c4ec 0xca8833dcfe9639d3 0x0a4008899d91f10e 0x2d6116327735df9a 0.412 0.438983 294880 0 PASS
30 -1766412538 surface-world gcc14-default 1 27 9 27572 0.000000 -140.000000 -2004.851562 0x4d04ec633754c4ec 0xca8833dcfe9639d3 0x0a4008899d91f10e 0x2d6116327735df9a 0.175 0.192855 84688 0 PASS
31 -1766412538 surface-world gcc14-default 12 27 9 27572 0.000000 -140.000000 -2004.851562 0x4d04ec633754c4ec 0xca8833dcfe9639d3 0x0a4008899d91f10e 0x2d6116327735df9a 0.430 0.455090 295516 0 PASS
32 -1766412538 floating-islands clang19-off 1 27 12 23618 -25.199219 -73.816406 -135.394531 0xdb6557b98f29060e 0x3b3147a1d020ca02 0x010127525a940a1e 0xc9563575ca60b627 1.542 1.556645 86260 0 PASS
33 -1766412538 floating-islands clang19-off 12 27 12 23618 -25.199219 -73.816406 -135.394531 0xdb6557b98f29060e 0x3b3147a1d020ca02 0x010127525a940a1e 0xc9563575ca60b627 0.673 0.699377 300448 0 PASS
34 -1766412538 floating-islands clang19-on 1 27 12 23618 -25.199219 -73.816406 -135.394531 0xdb6557b98f29060e 0x3b3147a1d020ca02 0x010127525a940a1e 0xc9563575ca60b627 1.587 1.602433 86588 0 PASS
35 -1766412538 floating-islands clang19-on 12 27 12 23618 -25.199219 -73.816406 -135.394531 0xdb6557b98f29060e 0x3b3147a1d020ca02 0x010127525a940a1e 0xc9563575ca60b627 0.702 0.728925 300536 0 PASS
36 -1766412538 floating-islands gcc14-default 1 27 12 23618 -25.199219 -73.816406 -135.394531 0xdb6557b98f29060e 0x3b3147a1d020ca02 0x010127525a940a1e 0xc9563575ca60b627 1.744 1.760677 87052 0 PASS
37 -1766412538 floating-islands gcc14-default 12 27 12 23618 -25.199219 -73.816406 -135.394531 0xdb6557b98f29060e 0x3b3147a1d020ca02 0x010127525a940a1e 0xc9563575ca60b627 0.741 0.770803 301248 0 PASS
38 -1721984596 surface-world clang19-off 1 27 9 27374 0.000000 -140.000000 -2006.878906 0x65b6ae0a3a1fdd35 0x117d40e403c960bc 0x9bc7a92591e7d7e3 0x988675caf5879337 0.172 0.187451 84428 0 PASS
39 -1721984596 surface-world clang19-off 12 27 9 27374 0.000000 -140.000000 -2006.878906 0x65b6ae0a3a1fdd35 0x117d40e403c960bc 0x9bc7a92591e7d7e3 0x988675caf5879337 0.424 0.450959 294996 0 PASS
40 -1721984596 surface-world clang19-on 1 27 9 27374 0.000000 -140.000000 -2006.878906 0x65b6ae0a3a1fdd35 0x117d40e403c960bc 0x9bc7a92591e7d7e3 0x988675caf5879337 0.183 0.199333 84536 0 PASS
41 -1721984596 surface-world clang19-on 12 27 9 27374 0.000000 -140.000000 -2006.878906 0x65b6ae0a3a1fdd35 0x117d40e403c960bc 0x9bc7a92591e7d7e3 0x988675caf5879337 0.426 0.452557 294916 0 PASS
42 -1721984596 surface-world gcc14-default 1 27 9 27374 0.000000 -140.000000 -2006.878906 0x65b6ae0a3a1fdd35 0x117d40e403c960bc 0x9bc7a92591e7d7e3 0x988675caf5879337 0.178 0.193728 85196 0 PASS
43 -1721984596 surface-world gcc14-default 12 27 9 27374 0.000000 -140.000000 -2006.878906 0x65b6ae0a3a1fdd35 0x117d40e403c960bc 0x9bc7a92591e7d7e3 0x988675caf5879337 0.427 0.454505 295184 0 PASS
44 -1721984596 floating-islands clang19-off 1 27 10 23728 64.398438 74.085938 -128.433594 0xbb7777932cd3328a 0x5d7243f5afb8902a 0xdb6cef72728d0d64 0x625882823c87a40b 1.554 1.570584 85220 0 PASS
45 -1721984596 floating-islands clang19-off 12 27 10 23728 64.398438 74.085938 -128.433594 0xbb7777932cd3328a 0x5d7243f5afb8902a 0xdb6cef72728d0d64 0x625882823c87a40b 0.718 0.745795 300772 0 PASS
46 -1721984596 floating-islands clang19-on 1 27 10 23728 64.398438 74.085938 -128.433594 0xbb7777932cd3328a 0x5d7243f5afb8902a 0xdb6cef72728d0d64 0x625882823c87a40b 1.578 1.593432 85580 0 PASS
47 -1721984596 floating-islands clang19-on 12 27 10 23728 64.398438 74.085938 -128.433594 0xbb7777932cd3328a 0x5d7243f5afb8902a 0xdb6cef72728d0d64 0x625882823c87a40b 0.708 0.734658 299780 0 PASS
48 -1721984596 floating-islands gcc14-default 1 27 10 23728 64.398438 74.085938 -128.433594 0xbb7777932cd3328a 0x5d7243f5afb8902a 0xdb6cef72728d0d64 0x625882823c87a40b 1.714 1.730034 85816 0 PASS
49 -1721984596 floating-islands gcc14-default 12 27 10 23728 64.398438 74.085938 -128.433594 0xbb7777932cd3328a 0x5d7243f5afb8902a 0xdb6cef72728d0d64 0x625882823c87a40b 0.757 0.784127 301460 0 PASS
50 -1239598758 surface-world clang19-off 1 27 15 38978 0.000000 -140.000000 -2001.816406 0x8aaf7c7c610e550f 0xeaa948233176c456 0x32c71b1231361cd2 0xecd43272e8d589a7 0.269 0.284560 84356 0 PASS
51 -1239598758 surface-world clang19-off 12 27 15 38978 0.000000 -140.000000 -2001.816406 0x8aaf7c7c610e550f 0xeaa948233176c456 0x32c71b1231361cd2 0xecd43272e8d589a7 0.447 0.473801 299712 0 PASS
52 -1239598758 surface-world clang19-on 1 27 15 38978 0.000000 -140.000000 -2001.816406 0x8aaf7c7c610e550f 0xeaa948233176c456 0x32c71b1231361cd2 0xecd43272e8d589a7 0.277 0.293296 84584 0 PASS
53 -1239598758 surface-world clang19-on 12 27 15 38978 0.000000 -140.000000 -2001.816406 0x8aaf7c7c610e550f 0xeaa948233176c456 0x32c71b1231361cd2 0xecd43272e8d589a7 0.460 0.486378 298388 0 PASS
54 -1239598758 surface-world gcc14-default 1 27 15 38978 0.000000 -140.000000 -2001.816406 0x8aaf7c7c610e550f 0xeaa948233176c456 0x32c71b1231361cd2 0xecd43272e8d589a7 0.261 0.276573 84996 0 PASS
55 -1239598758 surface-world gcc14-default 12 27 15 38978 0.000000 -140.000000 -2001.816406 0x8aaf7c7c610e550f 0xeaa948233176c456 0x32c71b1231361cd2 0xecd43272e8d589a7 0.464 0.492223 300696 0 PASS
56 -1239598758 floating-islands clang19-off 1 27 12 28162 39.199219 19.425781 -116.691406 0x9ee03f2326224bbc 0x0ea03da61381b41a 0x4b658d0bd4e527e6 0x402b075c754192e3 1.280 1.297085 85588 0 PASS
57 -1239598758 floating-islands clang19-off 12 27 12 28162 39.199219 19.425781 -116.691406 0x9ee03f2326224bbc 0x0ea03da61381b41a 0x4b658d0bd4e527e6 0x402b075c754192e3 0.642 0.669720 300940 0 PASS
58 -1239598758 floating-islands clang19-on 1 27 12 28162 39.199219 19.425781 -116.691406 0x9ee03f2326224bbc 0x0ea03da61381b41a 0x4b658d0bd4e527e6 0x402b075c754192e3 1.324 1.342774 85712 0 PASS
59 -1239598758 floating-islands clang19-on 12 27 12 28162 39.199219 19.425781 -116.691406 0x9ee03f2326224bbc 0x0ea03da61381b41a 0x4b658d0bd4e527e6 0x402b075c754192e3 0.637 0.664175 300712 0 PASS
60 -1239598758 floating-islands gcc14-default 1 27 12 28162 39.199219 19.425781 -116.691406 0x9ee03f2326224bbc 0x0ea03da61381b41a 0x4b658d0bd4e527e6 0x402b075c754192e3 1.465 1.480710 85820 0 PASS
61 -1239598758 floating-islands gcc14-default 12 27 12 28162 39.199219 19.425781 -116.691406 0x9ee03f2326224bbc 0x0ea03da61381b41a 0x4b658d0bd4e527e6 0x402b075c754192e3 0.678 0.706467 301428 0 PASS
62 -1085993262 surface-world clang19-off 1 27 13 30779 0.000000 -140.000000 -2018.355469 0x6dd63983ab04ee63 0x606e6964e1b2bfa0 0x30f2ccb9c65750ff 0x72fb3b77904151b8 0.203 0.219019 84900 0 PASS
63 -1085993262 surface-world clang19-off 12 27 13 30779 0.000000 -140.000000 -2018.355469 0x6dd63983ab04ee63 0x606e6964e1b2bfa0 0x30f2ccb9c65750ff 0x72fb3b77904151b8 0.442 0.468936 300076 0 PASS
64 -1085993262 surface-world clang19-on 1 27 13 30779 0.000000 -140.000000 -2018.355469 0x6dd63983ab04ee63 0x606e6964e1b2bfa0 0x30f2ccb9c65750ff 0x72fb3b77904151b8 0.209 0.226037 84848 0 PASS
65 -1085993262 surface-world clang19-on 12 27 13 30779 0.000000 -140.000000 -2018.355469 0x6dd63983ab04ee63 0x606e6964e1b2bfa0 0x30f2ccb9c65750ff 0x72fb3b77904151b8 0.434 0.461038 299916 0 PASS
66 -1085993262 surface-world gcc14-default 1 27 13 30779 0.000000 -140.000000 -2018.355469 0x6dd63983ab04ee63 0x606e6964e1b2bfa0 0x30f2ccb9c65750ff 0x72fb3b77904151b8 0.194 0.212574 85588 0 PASS
67 -1085993262 surface-world gcc14-default 12 27 13 30779 0.000000 -140.000000 -2018.355469 0x6dd63983ab04ee63 0x606e6964e1b2bfa0 0x30f2ccb9c65750ff 0x72fb3b77904151b8 0.421 0.449569 300836 0 PASS
68 -1085993262 floating-islands clang19-off 1 27 11 25186 -39.199219 16.968750 -116.531250 0x8dec867557d4e27c 0x13de3a8f9465573d 0x2e2ca36cfff2558a 0x42ad0d371549e563 1.085 1.101264 86672 0 PASS
69 -1085993262 floating-islands clang19-off 12 27 11 25186 -39.199219 16.968750 -116.531250 0x8dec867557d4e27c 0x13de3a8f9465573d 0x2e2ca36cfff2558a 0x42ad0d371549e563 0.573 0.602307 301496 0 PASS
70 -1085993262 floating-islands clang19-on 1 27 11 25186 -39.199219 16.968750 -116.531250 0x8dec867557d4e27c 0x13de3a8f9465573d 0x2e2ca36cfff2558a 0x42ad0d371549e563 1.085 1.100702 86848 0 PASS
71 -1085993262 floating-islands clang19-on 12 27 11 25186 -39.199219 16.968750 -116.531250 0x8dec867557d4e27c 0x13de3a8f9465573d 0x2e2ca36cfff2558a 0x42ad0d371549e563 0.576 0.603241 301652 0 PASS
72 -1085993262 floating-islands gcc14-default 1 27 11 25186 -39.199219 16.968750 -116.531250 0x8dec867557d4e27c 0x13de3a8f9465573d 0x2e2ca36cfff2558a 0x42ad0d371549e563 1.195 1.210876 87352 0 PASS
73 -1085993262 floating-islands gcc14-default 12 27 11 25186 -39.199219 16.968750 -116.531250 0x8dec867557d4e27c 0x13de3a8f9465573d 0x2e2ca36cfff2558a 0x42ad0d371549e563 0.617 0.646640 302080 0 PASS
74 -1033703345 surface-world clang19-off 1 27 16 50890 0.000000 -140.000000 -1585.519531 0xe2f8c4b421a9402a 0x730fd7c4692eaff3 0xacf64857ef930634 0x86e7853e9d0b4a35 0.342 0.358880 85076 0 PASS
75 -1033703345 surface-world clang19-off 12 27 16 50890 0.000000 -140.000000 -1585.519531 0xe2f8c4b421a9402a 0x730fd7c4692eaff3 0xacf64857ef930634 0x86e7853e9d0b4a35 0.451 0.477876 301748 0 PASS
76 -1033703345 surface-world clang19-on 1 27 16 50890 0.000000 -140.000000 -1585.519531 0xe2f8c4b421a9402a 0x730fd7c4692eaff3 0xacf64857ef930634 0x86e7853e9d0b4a35 0.318 0.334873 84996 0 PASS
77 -1033703345 surface-world clang19-on 12 27 16 50890 0.000000 -140.000000 -1585.519531 0xe2f8c4b421a9402a 0x730fd7c4692eaff3 0xacf64857ef930634 0x86e7853e9d0b4a35 0.461 0.490652 301616 0 PASS
78 -1033703345 surface-world gcc14-default 1 27 16 50890 0.000000 -140.000000 -1585.519531 0xe2f8c4b421a9402a 0x730fd7c4692eaff3 0xacf64857ef930634 0x86e7853e9d0b4a35 0.305 0.322211 85560 0 PASS
79 -1033703345 surface-world gcc14-default 12 27 16 50890 0.000000 -140.000000 -1585.519531 0xe2f8c4b421a9402a 0x730fd7c4692eaff3 0xacf64857ef930634 0x86e7853e9d0b4a35 0.476 0.502916 302484 0 PASS
80 -1033703345 floating-islands clang19-off 1 27 10 17406 -25.199219 -75.605469 -128.097656 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590 0x570a869c76c15846 0x8139f7fb5146e402 2.065 2.083040 86192 0 PASS
81 -1033703345 floating-islands clang19-off 12 27 10 17406 -25.199219 -75.605469 -128.097656 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590 0x570a869c76c15846 0x8139f7fb5146e402 0.776 0.804394 299624 0 PASS
82 -1033703345 floating-islands clang19-on 1 27 10 17406 -25.199219 -75.605469 -128.097656 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590 0x570a869c76c15846 0x8139f7fb5146e402 1.996 2.016862 86136 0 PASS
83 -1033703345 floating-islands clang19-on 12 27 10 17406 -25.199219 -75.605469 -128.097656 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590 0x570a869c76c15846 0x8139f7fb5146e402 0.841 0.879778 299580 0 PASS
84 -1033703345 floating-islands gcc14-default 1 27 10 17406 -25.199219 -75.605469 -128.097656 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590 0x570a869c76c15846 0x8139f7fb5146e402 1.997 2.013598 86416 0 PASS
85 -1033703345 floating-islands gcc14-default 12 27 10 17406 -25.199219 -75.605469 -128.097656 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590 0x570a869c76c15846 0x8139f7fb5146e402 0.820 0.848116 300464 0 PASS
86 -854671705 surface-world clang19-off 1 27 10 26198 0.000000 -140.000000 -2018.242188 0x0a9e017447ffff3d 0x807299923966d5be 0xdd97f14916c8157a 0x95313b997ff55c26 0.216 0.232793 83632 0 PASS
87 -854671705 surface-world clang19-off 12 27 10 26198 0.000000 -140.000000 -2018.242188 0x0a9e017447ffff3d 0x807299923966d5be 0xdd97f14916c8157a 0x95313b997ff55c26 0.462 0.492727 295640 0 PASS
88 -854671705 surface-world clang19-on 1 27 10 26198 0.000000 -140.000000 -2018.242188 0x0a9e017447ffff3d 0x807299923966d5be 0xdd97f14916c8157a 0x95313b997ff55c26 0.210 0.225523 83756 0 PASS
89 -854671705 surface-world clang19-on 12 27 10 26198 0.000000 -140.000000 -2018.242188 0x0a9e017447ffff3d 0x807299923966d5be 0xdd97f14916c8157a 0x95313b997ff55c26 0.460 0.486882 295460 0 PASS
90 -854671705 surface-world gcc14-default 1 27 10 26198 0.000000 -140.000000 -2018.242188 0x0a9e017447ffff3d 0x807299923966d5be 0xdd97f14916c8157a 0x95313b997ff55c26 0.204 0.220779 84224 0 PASS
91 -854671705 surface-world gcc14-default 12 27 10 26198 0.000000 -140.000000 -2018.242188 0x0a9e017447ffff3d 0x807299923966d5be 0xdd97f14916c8157a 0x95313b997ff55c26 0.447 0.476285 295724 0 PASS
92 -854671705 floating-islands clang19-off 1 27 13 39000 0.000000 -19.800781 -116.507812 0xbb5718ca3ad4c181 0x3250d2591365d443 0xec60f80b7f67216b 0xfe710427da53178b 1.858 1.873454 84868 0 PASS
93 -854671705 floating-islands clang19-off 12 27 13 39000 0.000000 -19.800781 -116.507812 0xbb5718ca3ad4c181 0x3250d2591365d443 0xec60f80b7f67216b 0xfe710427da53178b 0.769 0.797051 301256 0 PASS
94 -854671705 floating-islands clang19-on 1 27 13 39000 0.000000 -19.800781 -116.507812 0xbb5718ca3ad4c181 0x3250d2591365d443 0xec60f80b7f67216b 0xfe710427da53178b 1.927 1.944057 84916 0 PASS
95 -854671705 floating-islands clang19-on 12 27 13 39000 0.000000 -19.800781 -116.507812 0xbb5718ca3ad4c181 0x3250d2591365d443 0xec60f80b7f67216b 0xfe710427da53178b 0.798 0.826241 300776 0 PASS
96 -854671705 floating-islands gcc14-default 1 27 13 39000 0.000000 -19.800781 -116.507812 0xbb5718ca3ad4c181 0x3250d2591365d443 0xec60f80b7f67216b 0xfe710427da53178b 1.908 1.924264 85304 0 PASS
97 -854671705 floating-islands gcc14-default 12 27 13 39000 0.000000 -19.800781 -116.507812 0xbb5718ca3ad4c181 0x3250d2591365d443 0xec60f80b7f67216b 0xfe710427da53178b 0.804 0.831547 301148 0 PASS
98 -713963806 surface-world clang19-off 1 27 16 30292 0.000000 -140.000000 -2018.582031 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6 0x3f6ba7ffdf385024 0x7183d3025a48e8ea 0.211 0.228046 85784 0 PASS
99 -713963806 surface-world clang19-off 12 27 16 30292 0.000000 -140.000000 -2018.582031 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6 0x3f6ba7ffdf385024 0x7183d3025a48e8ea 0.443 0.470682 300976 0 PASS
100 -713963806 surface-world clang19-on 1 27 16 30292 0.000000 -140.000000 -2018.582031 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6 0x3f6ba7ffdf385024 0x7183d3025a48e8ea 0.210 0.226264 86008 0 PASS
101 -713963806 surface-world clang19-on 12 27 16 30292 0.000000 -140.000000 -2018.582031 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6 0x3f6ba7ffdf385024 0x7183d3025a48e8ea 0.416 0.444035 300924 0 PASS
102 -713963806 surface-world gcc14-default 1 27 16 30292 0.000000 -140.000000 -2018.582031 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6 0x3f6ba7ffdf385024 0x7183d3025a48e8ea 0.214 0.230669 86420 0 PASS
103 -713963806 surface-world gcc14-default 12 27 16 30292 0.000000 -140.000000 -2018.582031 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6 0x3f6ba7ffdf385024 0x7183d3025a48e8ea 0.417 0.445410 301040 0 PASS
104 -713963806 floating-islands clang19-off 1 27 8 16002 64.398438 74.308594 -120.453125 0xd590c16395cc515f 0x3a62d63b76bdd260 0x9424147669e1808f 0x137dd286dcedcad6 1.356 1.372073 84768 0 PASS
105 -713963806 floating-islands clang19-off 12 27 8 16002 64.398438 74.308594 -120.453125 0xd590c16395cc515f 0x3a62d63b76bdd260 0x9424147669e1808f 0x137dd286dcedcad6 0.676 0.703891 297840 0 PASS
106 -713963806 floating-islands clang19-on 1 27 8 16002 64.398438 74.308594 -120.453125 0xd590c16395cc515f 0x3a62d63b76bdd260 0x9424147669e1808f 0x137dd286dcedcad6 1.360 1.376357 84572 0 PASS
107 -713963806 floating-islands clang19-on 12 27 8 16002 64.398438 74.308594 -120.453125 0xd590c16395cc515f 0x3a62d63b76bdd260 0x9424147669e1808f 0x137dd286dcedcad6 0.655 0.682658 297928 0 PASS
108 -713963806 floating-islands gcc14-default 1 27 8 16002 64.398438 74.308594 -120.453125 0xd590c16395cc515f 0x3a62d63b76bdd260 0x9424147669e1808f 0x137dd286dcedcad6 1.293 1.309713 85500 0 PASS
109 -713963806 floating-islands gcc14-default 12 27 8 16002 64.398438 74.308594 -120.453125 0xd590c16395cc515f 0x3a62d63b76bdd260 0x9424147669e1808f 0x137dd286dcedcad6 0.656 0.682912 298628 0 PASS
110 -621039221 surface-world clang19-off 1 27 17 30168 0.000000 -140.000000 -2015.613281 0xa27c25107de22a4d 0xde2ffe789eb7fb05 0x966dae7a483679d3 0xf608770036c256a5 0.195 0.211023 85856 0 PASS
111 -621039221 surface-world clang19-off 12 27 17 30168 0.000000 -140.000000 -2015.613281 0xa27c25107de22a4d 0xde2ffe789eb7fb05 0x966dae7a483679d3 0xf608770036c256a5 0.426 0.453981 301240 0 PASS
112 -621039221 surface-world clang19-on 1 27 17 30168 0.000000 -140.000000 -2015.613281 0xa27c25107de22a4d 0xde2ffe789eb7fb05 0x966dae7a483679d3 0xf608770036c256a5 0.192 0.208197 86544 0 PASS
113 -621039221 surface-world clang19-on 12 27 17 30168 0.000000 -140.000000 -2015.613281 0xa27c25107de22a4d 0xde2ffe789eb7fb05 0x966dae7a483679d3 0xf608770036c256a5 0.427 0.454462 301016 0 PASS
114 -621039221 surface-world gcc14-default 1 27 17 30168 0.000000 -140.000000 -2015.613281 0xa27c25107de22a4d 0xde2ffe789eb7fb05 0x966dae7a483679d3 0xf608770036c256a5 0.194 0.212277 86740 0 PASS
115 -621039221 surface-world gcc14-default 12 27 17 30168 0.000000 -140.000000 -2015.613281 0xa27c25107de22a4d 0xde2ffe789eb7fb05 0x966dae7a483679d3 0xf608770036c256a5 0.407 0.437082 301508 0 PASS
116 -621039221 floating-islands clang19-off 1 27 15 46224 0.000000 -18.796875 -116.769531 0x8bf4ceae8c1ddbf6 0x61557967c37529fe 0xbe41280640aaac59 0xd511ae5cd4a47551 1.622 1.638054 87236 0 PASS
117 -621039221 floating-islands clang19-off 12 27 15 46224 0.000000 -18.796875 -116.769531 0x8bf4ceae8c1ddbf6 0x61557967c37529fe 0xbe41280640aaac59 0xd511ae5cd4a47551 0.688 0.715350 304400 0 PASS
118 -621039221 floating-islands clang19-on 1 27 15 46224 0.000000 -18.796875 -116.769531 0x8bf4ceae8c1ddbf6 0x61557967c37529fe 0xbe41280640aaac59 0xd511ae5cd4a47551 1.623 1.638541 87444 0 PASS
119 -621039221 floating-islands clang19-on 12 27 15 46224 0.000000 -18.796875 -116.769531 0x8bf4ceae8c1ddbf6 0x61557967c37529fe 0xbe41280640aaac59 0xd511ae5cd4a47551 0.717 0.744065 303692 0 PASS
120 -621039221 floating-islands gcc14-default 1 27 15 46224 0.000000 -18.796875 -116.769531 0x8bf4ceae8c1ddbf6 0x61557967c37529fe 0xbe41280640aaac59 0xd511ae5cd4a47551 1.757 1.775436 87644 0 PASS
121 -621039221 floating-islands gcc14-default 12 27 15 46224 0.000000 -18.796875 -116.769531 0x8bf4ceae8c1ddbf6 0x61557967c37529fe 0xbe41280640aaac59 0xd511ae5cd4a47551 0.731 0.760059 304508 0 PASS
122 -474448608 surface-world clang19-off 1 27 11 28424 0.000000 -140.000000 -2020.160156 0x0d40ad842a0123ea 0x273fb800c1246cac 0x7a8c602b445dc956 0xd0584f94b9e78e65 0.169 0.185724 84116 0 PASS
123 -474448608 surface-world clang19-off 12 27 11 28424 0.000000 -140.000000 -2020.160156 0x0d40ad842a0123ea 0x273fb800c1246cac 0x7a8c602b445dc956 0xd0584f94b9e78e65 0.407 0.433876 297484 0 PASS
124 -474448608 surface-world clang19-on 1 27 11 28424 0.000000 -140.000000 -2020.160156 0x0d40ad842a0123ea 0x273fb800c1246cac 0x7a8c602b445dc956 0xd0584f94b9e78e65 0.171 0.188006 84236 0 PASS
125 -474448608 surface-world clang19-on 12 27 11 28424 0.000000 -140.000000 -2020.160156 0x0d40ad842a0123ea 0x273fb800c1246cac 0x7a8c602b445dc956 0xd0584f94b9e78e65 0.435 0.461874 296040 0 PASS
126 -474448608 surface-world gcc14-default 1 27 11 28424 0.000000 -140.000000 -2020.160156 0x0d40ad842a0123ea 0x273fb800c1246cac 0x7a8c602b445dc956 0xd0584f94b9e78e65 0.165 0.180445 84884 0 PASS
127 -474448608 surface-world gcc14-default 12 27 11 28424 0.000000 -140.000000 -2020.160156 0x0d40ad842a0123ea 0x273fb800c1246cac 0x7a8c602b445dc956 0xd0584f94b9e78e65 0.426 0.453272 298176 0 PASS
128 -474448608 floating-islands clang19-off 1 27 12 26122 -39.199219 20.921875 -121.671875 0x2a634b2a3d2e38ef 0x52d2036bf1406614 0x0f3ab05afb9043d4 0x47b6e01bb7fbb7ba 1.629 1.645685 86612 0 PASS
129 -474448608 floating-islands clang19-off 12 27 12 26122 -39.199219 20.921875 -121.671875 0x2a634b2a3d2e38ef 0x52d2036bf1406614 0x0f3ab05afb9043d4 0x47b6e01bb7fbb7ba 0.726 0.754007 301436 0 PASS
130 -474448608 floating-islands clang19-on 1 27 12 26122 -39.199219 20.921875 -121.671875 0x2a634b2a3d2e38ef 0x52d2036bf1406614 0x0f3ab05afb9043d4 0x47b6e01bb7fbb7ba 1.622 1.638207 86372 0 PASS
131 -474448608 floating-islands clang19-on 12 27 12 26122 -39.199219 20.921875 -121.671875 0x2a634b2a3d2e38ef 0x52d2036bf1406614 0x0f3ab05afb9043d4 0x47b6e01bb7fbb7ba 0.718 0.747095 301408 0 PASS
132 -474448608 floating-islands gcc14-default 1 27 12 26122 -39.199219 20.921875 -121.671875 0x2a634b2a3d2e38ef 0x52d2036bf1406614 0x0f3ab05afb9043d4 0x47b6e01bb7fbb7ba 1.768 1.787964 87120 0 PASS
133 -474448608 floating-islands gcc14-default 12 27 12 26122 -39.199219 20.921875 -121.671875 0x2a634b2a3d2e38ef 0x52d2036bf1406614 0x0f3ab05afb9043d4 0x47b6e01bb7fbb7ba 0.743 0.770994 301472 0 PASS
134 -432690581 surface-world clang19-off 1 27 16 44640 0.000000 -140.000000 -1699.710938 0x3a23c958501ee719 0x45e154a2ee8b0f36 0x9077f2c785e84257 0x14d8bfb36426cbc5 0.306 0.322544 84304 0 PASS
135 -432690581 surface-world clang19-off 12 27 16 44640 0.000000 -140.000000 -1699.710938 0x3a23c958501ee719 0x45e154a2ee8b0f36 0x9077f2c785e84257 0x14d8bfb36426cbc5 0.459 0.485418 300580 0 PASS
136 -432690581 surface-world clang19-on 1 27 16 44640 0.000000 -140.000000 -1699.710938 0x3a23c958501ee719 0x45e154a2ee8b0f36 0x9077f2c785e84257 0x14d8bfb36426cbc5 0.306 0.321647 84076 0 PASS
137 -432690581 surface-world clang19-on 12 27 16 44640 0.000000 -140.000000 -1699.710938 0x3a23c958501ee719 0x45e154a2ee8b0f36 0x9077f2c785e84257 0x14d8bfb36426cbc5 0.474 0.502246 300440 0 PASS
138 -432690581 surface-world gcc14-default 1 27 16 44640 0.000000 -140.000000 -1699.710938 0x3a23c958501ee719 0x45e154a2ee8b0f36 0x9077f2c785e84257 0x14d8bfb36426cbc5 0.305 0.321094 85004 0 PASS
139 -432690581 surface-world gcc14-default 12 27 16 44640 0.000000 -140.000000 -1699.710938 0x3a23c958501ee719 0x45e154a2ee8b0f36 0x9077f2c785e84257 0x14d8bfb36426cbc5 0.479 0.507033 301668 0 PASS
140 -432690581 floating-islands clang19-off 1 27 7 20532 -39.199219 16.421875 -114.292969 0xd8b65942bf1c005c 0xe6557b8cadfb3356 0x446eeeb1e1fec3de 0x829b06ef76e4306d 1.352 1.368398 86148 0 PASS
141 -432690581 floating-islands clang19-off 12 27 7 20532 -39.199219 16.421875 -114.292969 0xd8b65942bf1c005c 0xe6557b8cadfb3356 0x446eeeb1e1fec3de 0x829b06ef76e4306d 0.661 0.690096 300352 0 PASS
142 -432690581 floating-islands clang19-on 1 27 7 20532 -39.199219 16.421875 -114.292969 0xd8b65942bf1c005c 0xe6557b8cadfb3356 0x446eeeb1e1fec3de 0x829b06ef76e4306d 1.354 1.371146 86172 0 PASS
143 -432690581 floating-islands clang19-on 12 27 7 20532 -39.199219 16.421875 -114.292969 0xd8b65942bf1c005c 0xe6557b8cadfb3356 0x446eeeb1e1fec3de 0x829b06ef76e4306d 0.657 0.685687 300432 0 PASS
144 -432690581 floating-islands gcc14-default 1 27 7 20532 -39.199219 16.421875 -114.292969 0xd8b65942bf1c005c 0xe6557b8cadfb3356 0x446eeeb1e1fec3de 0x829b06ef76e4306d 1.460 1.475496 86412 0 PASS
145 -432690581 floating-islands gcc14-default 12 27 7 20532 -39.199219 16.421875 -114.292969 0xd8b65942bf1c005c 0xe6557b8cadfb3356 0x446eeeb1e1fec3de 0x829b06ef76e4306d 0.665 0.692459 301076 0 PASS
146 -380556572 surface-world clang19-off 1 27 15 27832 0.000000 -140.000000 -2015.980469 0x54c47dd125294a9d 0x6e95e2a4fb185b89 0xdf1ac7f070338e53 0xe8b65412d19b0872 0.207 0.221590 85812 0 PASS
147 -380556572 surface-world clang19-off 12 27 15 27832 0.000000 -140.000000 -2015.980469 0x54c47dd125294a9d 0x6e95e2a4fb185b89 0xdf1ac7f070338e53 0xe8b65412d19b0872 0.437 0.466566 300296 0 PASS
148 -380556572 surface-world clang19-on 1 27 15 27832 0.000000 -140.000000 -2015.980469 0x54c47dd125294a9d 0x6e95e2a4fb185b89 0xdf1ac7f070338e53 0xe8b65412d19b0872 0.202 0.218609 85576 0 PASS
149 -380556572 surface-world clang19-on 12 27 15 27832 0.000000 -140.000000 -2015.980469 0x54c47dd125294a9d 0x6e95e2a4fb185b89 0xdf1ac7f070338e53 0xe8b65412d19b0872 0.440 0.468031 300284 0 PASS
150 -380556572 surface-world gcc14-default 1 27 15 27832 0.000000 -140.000000 -2015.980469 0x54c47dd125294a9d 0x6e95e2a4fb185b89 0xdf1ac7f070338e53 0xe8b65412d19b0872 0.190 0.205873 86136 0 PASS
151 -380556572 surface-world gcc14-default 12 27 15 27832 0.000000 -140.000000 -2015.980469 0x54c47dd125294a9d 0x6e95e2a4fb185b89 0xdf1ac7f070338e53 0xe8b65412d19b0872 0.432 0.460376 300688 0 PASS
152 -380556572 floating-islands clang19-off 1 27 10 25334 39.199219 17.386719 -117.285156 0x118f50002e1af1b1 0x57d82fed86d7545c 0xe6196a35a7e64fb8 0x094fe80cdf7fda78 0.839 0.855823 86260 0 PASS
153 -380556572 floating-islands clang19-off 12 27 10 25334 39.199219 17.386719 -117.285156 0x118f50002e1af1b1 0x57d82fed86d7545c 0xe6196a35a7e64fb8 0x094fe80cdf7fda78 0.572 0.600560 301428 0 PASS
154 -380556572 floating-islands clang19-on 1 27 10 25334 39.199219 17.386719 -117.285156 0x118f50002e1af1b1 0x57d82fed86d7545c 0xe6196a35a7e64fb8 0x094fe80cdf7fda78 0.875 0.890833 86184 0 PASS
155 -380556572 floating-islands clang19-on 12 27 10 25334 39.199219 17.386719 -117.285156 0x118f50002e1af1b1 0x57d82fed86d7545c 0xe6196a35a7e64fb8 0x094fe80cdf7fda78 0.551 0.578834 300960 0 PASS
156 -380556572 floating-islands gcc14-default 1 27 10 25334 39.199219 17.386719 -117.285156 0x118f50002e1af1b1 0x57d82fed86d7545c 0xe6196a35a7e64fb8 0x094fe80cdf7fda78 0.916 0.932667 86836 0 PASS
157 -380556572 floating-islands gcc14-default 12 27 10 25334 39.199219 17.386719 -117.285156 0x118f50002e1af1b1 0x57d82fed86d7545c 0xe6196a35a7e64fb8 0x094fe80cdf7fda78 0.606 0.635544 301708 0 PASS
158 -238925630 surface-world clang19-off 1 27 9 26908 0.000000 -140.000000 -2021.289062 0x01debb25b2642a4d 0xd316a4d6bbbdceee 0xba64591c42277c82 0x80e23990f3cb20b9 0.163 0.178003 84112 0 PASS
159 -238925630 surface-world clang19-off 12 27 9 26908 0.000000 -140.000000 -2021.289062 0x01debb25b2642a4d 0xd316a4d6bbbdceee 0xba64591c42277c82 0x80e23990f3cb20b9 0.405 0.433901 294484 0 PASS
160 -238925630 surface-world clang19-on 1 27 9 26908 0.000000 -140.000000 -2021.289062 0x01debb25b2642a4d 0xd316a4d6bbbdceee 0xba64591c42277c82 0x80e23990f3cb20b9 0.155 0.170979 84116 0 PASS
161 -238925630 surface-world clang19-on 12 27 9 26908 0.000000 -140.000000 -2021.289062 0x01debb25b2642a4d 0xd316a4d6bbbdceee 0xba64591c42277c82 0x80e23990f3cb20b9 0.424 0.450283 294552 0 PASS
162 -238925630 surface-world gcc14-default 1 27 9 26908 0.000000 -140.000000 -2021.289062 0x01debb25b2642a4d 0xd316a4d6bbbdceee 0xba64591c42277c82 0x80e23990f3cb20b9 0.157 0.173793 84632 0 PASS
163 -238925630 surface-world gcc14-default 12 27 9 26908 0.000000 -140.000000 -2021.289062 0x01debb25b2642a4d 0xd316a4d6bbbdceee 0xba64591c42277c82 0x80e23990f3cb20b9 0.418 0.444259 295140 0 PASS
164 -238925630 floating-islands clang19-off 1 27 10 20680 -39.199219 16.394531 -123.812500 0x36a07bf8d4383533 0x12f59de7f06e5270 0x327832e51af1db70 0xff0a971f18b6b590 2.096 2.113022 86240 0 PASS
165 -238925630 floating-islands clang19-off 12 27 10 20680 -39.199219 16.394531 -123.812500 0x36a07bf8d4383533 0x12f59de7f06e5270 0x327832e51af1db70 0xff0a971f18b6b590 0.812 0.839647 299904 0 PASS
166 -238925630 floating-islands clang19-on 1 27 10 20680 -39.199219 16.394531 -123.812500 0x36a07bf8d4383533 0x12f59de7f06e5270 0x327832e51af1db70 0xff0a971f18b6b590 2.107 2.123614 86584 0 PASS
167 -238925630 floating-islands clang19-on 12 27 10 20680 -39.199219 16.394531 -123.812500 0x36a07bf8d4383533 0x12f59de7f06e5270 0x327832e51af1db70 0xff0a971f18b6b590 0.795 0.823151 299740 0 PASS
168 -238925630 floating-islands gcc14-default 1 27 10 20680 -39.199219 16.394531 -123.812500 0x36a07bf8d4383533 0x12f59de7f06e5270 0x327832e51af1db70 0xff0a971f18b6b590 2.122 2.139698 87080 0 PASS
169 -238925630 floating-islands gcc14-default 12 27 10 20680 -39.199219 16.394531 -123.812500 0x36a07bf8d4383533 0x12f59de7f06e5270 0x327832e51af1db70 0xff0a971f18b6b590 0.807 0.834762 300372 0 PASS
170 -216679974 surface-world clang19-off 1 27 9 26538 0.000000 -140.000000 -2025.835938 0x04339f7c537f8920 0xb6d8dab4a5cd82ca 0x5bdc85d7f66eed92 0xac3b586f9be3e44e 0.168 0.185930 86460 0 PASS
171 -216679974 surface-world clang19-off 12 27 9 26538 0.000000 -140.000000 -2025.835938 0x04339f7c537f8920 0xb6d8dab4a5cd82ca 0x5bdc85d7f66eed92 0xac3b586f9be3e44e 0.408 0.433793 296948 0 PASS
172 -216679974 surface-world clang19-on 1 27 9 26538 0.000000 -140.000000 -2025.835938 0x04339f7c537f8920 0xb6d8dab4a5cd82ca 0x5bdc85d7f66eed92 0xac3b586f9be3e44e 0.160 0.176766 86712 0 PASS
173 -216679974 surface-world clang19-on 12 27 9 26538 0.000000 -140.000000 -2025.835938 0x04339f7c537f8920 0xb6d8dab4a5cd82ca 0x5bdc85d7f66eed92 0xac3b586f9be3e44e 0.426 0.453535 296576 0 PASS
174 -216679974 surface-world gcc14-default 1 27 9 26538 0.000000 -140.000000 -2025.835938 0x04339f7c537f8920 0xb6d8dab4a5cd82ca 0x5bdc85d7f66eed92 0xac3b586f9be3e44e 0.156 0.172641 87192 0 PASS
175 -216679974 surface-world gcc14-default 12 27 9 26538 0.000000 -140.000000 -2025.835938 0x04339f7c537f8920 0xb6d8dab4a5cd82ca 0x5bdc85d7f66eed92 0xac3b586f9be3e44e 0.431 0.459265 297424 0 PASS
176 -216679974 floating-islands clang19-off 1 27 9 25284 39.199219 20.230469 -108.953125 0x79bb86763243b67e 0x7fd748d3021d506d 0x83442fd7561cbb4e 0x5a36191d75130d85 1.202 1.219265 88692 0 PASS
177 -216679974 floating-islands clang19-off 12 27 9 25284 39.199219 20.230469 -108.953125 0x79bb86763243b67e 0x7fd748d3021d506d 0x83442fd7561cbb4e 0x5a36191d75130d85 0.652 0.679940 303236 0 PASS
178 -216679974 floating-islands clang19-on 1 27 9 25284 39.199219 20.230469 -108.953125 0x79bb86763243b67e 0x7fd748d3021d506d 0x83442fd7561cbb4e 0x5a36191d75130d85 1.221 1.237304 88612 0 PASS
179 -216679974 floating-islands clang19-on 12 27 9 25284 39.199219 20.230469 -108.953125 0x79bb86763243b67e 0x7fd748d3021d506d 0x83442fd7561cbb4e 0x5a36191d75130d85 0.613 0.640836 303412 0 PASS
180 -216679974 floating-islands gcc14-default 1 27 9 25284 39.199219 20.230469 -108.953125 0x79bb86763243b67e 0x7fd748d3021d506d 0x83442fd7561cbb4e 0x5a36191d75130d85 1.322 1.339480 89104 0 PASS
181 -216679974 floating-islands gcc14-default 12 27 9 25284 39.199219 20.230469 -108.953125 0x79bb86763243b67e 0x7fd748d3021d506d 0x83442fd7561cbb4e 0x5a36191d75130d85 0.655 0.683872 303612 0 PASS
182 -133096164 surface-world clang19-off 1 27 9 26182 0.000000 -140.000000 -2023.140625 0x1dadb5c6440181c0 0x4681d673371781ba 0x7b8f2bafde1628a9 0xf8f07e5a6d4f38f9 0.169 0.184384 85324 0 PASS
183 -133096164 surface-world clang19-off 12 27 9 26182 0.000000 -140.000000 -2023.140625 0x1dadb5c6440181c0 0x4681d673371781ba 0x7b8f2bafde1628a9 0xf8f07e5a6d4f38f9 0.417 0.443885 295568 0 PASS
184 -133096164 surface-world clang19-on 1 27 9 26182 0.000000 -140.000000 -2023.140625 0x1dadb5c6440181c0 0x4681d673371781ba 0x7b8f2bafde1628a9 0xf8f07e5a6d4f38f9 0.170 0.186315 85648 0 PASS
185 -133096164 surface-world clang19-on 12 27 9 26182 0.000000 -140.000000 -2023.140625 0x1dadb5c6440181c0 0x4681d673371781ba 0x7b8f2bafde1628a9 0xf8f07e5a6d4f38f9 0.429 0.457985 295652 0 PASS
186 -133096164 surface-world gcc14-default 1 27 9 26182 0.000000 -140.000000 -2023.140625 0x1dadb5c6440181c0 0x4681d673371781ba 0x7b8f2bafde1628a9 0xf8f07e5a6d4f38f9 0.162 0.178058 86036 0 PASS
187 -133096164 surface-world gcc14-default 12 27 9 26182 0.000000 -140.000000 -2023.140625 0x1dadb5c6440181c0 0x4681d673371781ba 0x7b8f2bafde1628a9 0xf8f07e5a6d4f38f9 0.424 0.454505 296144 0 PASS
188 -133096164 floating-islands clang19-off 1 27 11 26248 -39.199219 16.050781 -118.000000 0xad7be7cd6b0dbffc 0x06d2caf87f019f22 0xbede324e7af07e61 0xf2eff51f24bf458a 0.872 0.891001 85524 0 PASS
189 -133096164 floating-islands clang19-off 12 27 11 26248 -39.199219 16.050781 -118.000000 0xad7be7cd6b0dbffc 0x06d2caf87f019f22 0xbede324e7af07e61 0xf2eff51f24bf458a 0.563 0.589920 300908 0 PASS
190 -133096164 floating-islands clang19-on 1 27 11 26248 -39.199219 16.050781 -118.000000 0xad7be7cd6b0dbffc 0x06d2caf87f019f22 0xbede324e7af07e61 0xf2eff51f24bf458a 0.877 0.892147 85604 0 PASS
191 -133096164 floating-islands clang19-on 12 27 11 26248 -39.199219 16.050781 -118.000000 0xad7be7cd6b0dbffc 0x06d2caf87f019f22 0xbede324e7af07e61 0xf2eff51f24bf458a 0.561 0.587310 300416 0 PASS
192 -133096164 floating-islands gcc14-default 1 27 11 26248 -39.199219 16.050781 -118.000000 0xad7be7cd6b0dbffc 0x06d2caf87f019f22 0xbede324e7af07e61 0xf2eff51f24bf458a 0.936 0.951685 86128 0 PASS
193 -133096164 floating-islands gcc14-default 12 27 11 26248 -39.199219 16.050781 -118.000000 0xad7be7cd6b0dbffc 0x06d2caf87f019f22 0xbede324e7af07e61 0xf2eff51f24bf458a 0.581 0.608952 301120 0 PASS
194 -112366806 surface-world clang19-off 1 27 16 46567 0.000000 -140.000000 -1699.476562 0x7aafaa55fce58f77 0x84c7d73393ccdb09 0x46a53de4a9e7617c 0xc79fcc56dd0181c2 0.324 0.340848 85804 0 PASS
195 -112366806 surface-world clang19-off 12 27 16 46567 0.000000 -140.000000 -1699.476562 0x7aafaa55fce58f77 0x84c7d73393ccdb09 0x46a53de4a9e7617c 0xc79fcc56dd0181c2 0.487 0.514033 302296 0 PASS
196 -112366806 surface-world clang19-on 1 27 16 46567 0.000000 -140.000000 -1699.476562 0x7aafaa55fce58f77 0x84c7d73393ccdb09 0x46a53de4a9e7617c 0xc79fcc56dd0181c2 0.326 0.343022 85380 0 PASS
197 -112366806 surface-world clang19-on 12 27 16 46567 0.000000 -140.000000 -1699.476562 0x7aafaa55fce58f77 0x84c7d73393ccdb09 0x46a53de4a9e7617c 0xc79fcc56dd0181c2 0.482 0.509381 302920 0 PASS
198 -112366806 surface-world gcc14-default 1 27 16 46567 0.000000 -140.000000 -1699.476562 0x7aafaa55fce58f77 0x84c7d73393ccdb09 0x46a53de4a9e7617c 0xc79fcc56dd0181c2 0.308 0.323509 86516 0 PASS
199 -112366806 surface-world gcc14-default 12 27 16 46567 0.000000 -140.000000 -1699.476562 0x7aafaa55fce58f77 0x84c7d73393ccdb09 0x46a53de4a9e7617c 0xc79fcc56dd0181c2 0.480 0.507907 301052 0 PASS
200 -112366806 floating-islands clang19-off 1 27 9 21148 39.199219 16.867188 -114.605469 0xda065c33dc944d23 0x3c27d1ee8688fec9 0xa497259af00952cf 0x8697ac7f0567f069 1.266 1.282382 85796 0 PASS
201 -112366806 floating-islands clang19-off 12 27 9 21148 39.199219 16.867188 -114.605469 0xda065c33dc944d23 0x3c27d1ee8688fec9 0xa497259af00952cf 0x8697ac7f0567f069 0.681 0.717905 299852 0 PASS
202 -112366806 floating-islands clang19-on 1 27 9 21148 39.199219 16.867188 -114.605469 0xda065c33dc944d23 0x3c27d1ee8688fec9 0xa497259af00952cf 0x8697ac7f0567f069 1.340 1.364175 85696 0 PASS
203 -112366806 floating-islands clang19-on 12 27 9 21148 39.199219 16.867188 -114.605469 0xda065c33dc944d23 0x3c27d1ee8688fec9 0xa497259af00952cf 0x8697ac7f0567f069 0.705 0.732861 299840 0 PASS
204 -112366806 floating-islands gcc14-default 1 27 9 21148 39.199219 16.867188 -114.605469 0xda065c33dc944d23 0x3c27d1ee8688fec9 0xa497259af00952cf 0x8697ac7f0567f069 1.379 1.395616 86172 0 PASS
205 -112366806 floating-islands gcc14-default 12 27 9 21148 39.199219 16.867188 -114.605469 0xda065c33dc944d23 0x3c27d1ee8688fec9 0xa497259af00952cf 0x8697ac7f0567f069 0.744 0.770938 300416 0 PASS
206 0 surface-world clang19-off 1 27 9 27910 0.000000 -140.000000 -2003.089844 0x2339a02328c5ffa6 0x83d31e15bf9161b0 0xc056f0c0987d79b6 0x435c44ce6ca8e4ea 0.180 0.198233 86824 0 PASS
207 0 surface-world clang19-off 12 27 9 27910 0.000000 -140.000000 -2003.089844 0x2339a02328c5ffa6 0x83d31e15bf9161b0 0xc056f0c0987d79b6 0x435c44ce6ca8e4ea 0.422 0.449664 297060 0 PASS
208 0 surface-world clang19-on 1 27 9 27910 0.000000 -140.000000 -2003.089844 0x2339a02328c5ffa6 0x83d31e15bf9161b0 0xc056f0c0987d79b6 0x435c44ce6ca8e4ea 0.173 0.188744 86728 0 PASS
209 0 surface-world clang19-on 12 27 9 27910 0.000000 -140.000000 -2003.089844 0x2339a02328c5ffa6 0x83d31e15bf9161b0 0xc056f0c0987d79b6 0x435c44ce6ca8e4ea 0.450 0.477889 296820 0 PASS
210 0 surface-world gcc14-default 1 27 9 27910 0.000000 -140.000000 -2003.089844 0x2339a02328c5ffa6 0x83d31e15bf9161b0 0xc056f0c0987d79b6 0x435c44ce6ca8e4ea 0.165 0.181852 87064 0 PASS
211 0 surface-world gcc14-default 12 27 9 27910 0.000000 -140.000000 -2003.089844 0x2339a02328c5ffa6 0x83d31e15bf9161b0 0xc056f0c0987d79b6 0x435c44ce6ca8e4ea 0.435 0.462262 297640 0 PASS
212 0 floating-islands clang19-off 1 27 9 20740 -25.199219 -76.226562 -105.089844 0x7fd1e3389642e6f6 0x577e52a5ba8d96be 0x7c6ffe9f5bbbb450 0xb4d308de116f4657 1.761 1.778352 86204 0 PASS
213 0 floating-islands clang19-off 12 27 9 20740 -25.199219 -76.226562 -105.089844 0x7fd1e3389642e6f6 0x577e52a5ba8d96be 0x7c6ffe9f5bbbb450 0xb4d308de116f4657 0.768 0.794881 299068 0 PASS
214 0 floating-islands clang19-on 1 27 9 20740 -25.199219 -76.226562 -105.089844 0x7fd1e3389642e6f6 0x577e52a5ba8d96be 0x7c6ffe9f5bbbb450 0xb4d308de116f4657 1.765 1.781702 86056 0 PASS
215 0 floating-islands clang19-on 12 27 9 20740 -25.199219 -76.226562 -105.089844 0x7fd1e3389642e6f6 0x577e52a5ba8d96be 0x7c6ffe9f5bbbb450 0xb4d308de116f4657 0.765 0.792583 298772 0 PASS
216 0 floating-islands gcc14-default 1 27 9 20740 -25.199219 -76.226562 -105.089844 0x7fd1e3389642e6f6 0x577e52a5ba8d96be 0x7c6ffe9f5bbbb450 0xb4d308de116f4657 1.894 1.910737 86536 0 PASS
217 0 floating-islands gcc14-default 12 27 9 20740 -25.199219 -76.226562 -105.089844 0x7fd1e3389642e6f6 0x577e52a5ba8d96be 0x7c6ffe9f5bbbb450 0xb4d308de116f4657 0.802 0.828791 299460 0 PASS
218 5808593 surface-world clang19-off 1 27 14 29050 0.000000 -140.000000 -2014.406250 0x355972d90ab29593 0x563daf944391ab7c 0x8804eebac2acd898 0xc2b049b4f6426af0 0.209 0.225170 84472 0 PASS
219 5808593 surface-world clang19-off 12 27 14 29050 0.000000 -140.000000 -2014.406250 0x355972d90ab29593 0x563daf944391ab7c 0x8804eebac2acd898 0xc2b049b4f6426af0 0.440 0.467263 299048 0 PASS
220 5808593 surface-world clang19-on 1 27 14 29050 0.000000 -140.000000 -2014.406250 0x355972d90ab29593 0x563daf944391ab7c 0x8804eebac2acd898 0xc2b049b4f6426af0 0.214 0.230107 84720 0 PASS
221 5808593 surface-world clang19-on 12 27 14 29050 0.000000 -140.000000 -2014.406250 0x355972d90ab29593 0x563daf944391ab7c 0x8804eebac2acd898 0xc2b049b4f6426af0 0.450 0.477642 299356 0 PASS
222 5808593 surface-world gcc14-default 1 27 14 29050 0.000000 -140.000000 -2014.406250 0x355972d90ab29593 0x563daf944391ab7c 0x8804eebac2acd898 0xc2b049b4f6426af0 0.206 0.223073 85136 0 PASS
223 5808593 surface-world gcc14-default 12 27 14 29050 0.000000 -140.000000 -2014.406250 0x355972d90ab29593 0x563daf944391ab7c 0x8804eebac2acd898 0xc2b049b4f6426af0 0.441 0.468922 299624 0 PASS
224 5808593 floating-islands clang19-off 1 27 10 21000 39.199219 16.003906 -114.574219 0xb96bffb27bc457e0 0x1f867a2add682123 0xfd4c94fd6f9b5863 0x82dc1a7add5ea530 0.978 0.993595 85604 0 PASS
225 5808593 floating-islands clang19-off 12 27 10 21000 39.199219 16.003906 -114.574219 0xb96bffb27bc457e0 0x1f867a2add682123 0xfd4c94fd6f9b5863 0x82dc1a7add5ea530 0.587 0.614676 299336 0 PASS
226 5808593 floating-islands clang19-on 1 27 10 21000 39.199219 16.003906 -114.574219 0xb96bffb27bc457e0 0x1f867a2add682123 0xfd4c94fd6f9b5863 0x82dc1a7add5ea530 0.972 0.987363 85032 0 PASS
227 5808593 floating-islands clang19-on 12 27 10 21000 39.199219 16.003906 -114.574219 0xb96bffb27bc457e0 0x1f867a2add682123 0xfd4c94fd6f9b5863 0x82dc1a7add5ea530 0.607 0.635950 299516 0 PASS
228 5808593 floating-islands gcc14-default 1 27 10 21000 39.199219 16.003906 -114.574219 0xb96bffb27bc457e0 0x1f867a2add682123 0xfd4c94fd6f9b5863 0x82dc1a7add5ea530 1.060 1.076946 85540 0 PASS
229 5808593 floating-islands gcc14-default 12 27 10 21000 39.199219 16.003906 -114.574219 0xb96bffb27bc457e0 0x1f867a2add682123 0xfd4c94fd6f9b5863 0x82dc1a7add5ea530 0.631 0.659995 299816 0 PASS
230 28573228 surface-world clang19-off 1 27 13 27054 0.000000 -140.000000 -2016.695312 0x57cb2fe09976dc54 0x35ac4f38b432e8b7 0x7ed7b8d28bbb4ae8 0xe9bf4ba938198d73 0.183 0.198431 84548 0 PASS
231 28573228 surface-world clang19-off 12 27 13 27054 0.000000 -140.000000 -2016.695312 0x57cb2fe09976dc54 0x35ac4f38b432e8b7 0x7ed7b8d28bbb4ae8 0xe9bf4ba938198d73 0.413 0.440062 299560 0 PASS
232 28573228 surface-world clang19-on 1 27 13 27054 0.000000 -140.000000 -2016.695312 0x57cb2fe09976dc54 0x35ac4f38b432e8b7 0x7ed7b8d28bbb4ae8 0xe9bf4ba938198d73 0.188 0.203450 84968 0 PASS
233 28573228 surface-world clang19-on 12 27 13 27054 0.000000 -140.000000 -2016.695312 0x57cb2fe09976dc54 0x35ac4f38b432e8b7 0x7ed7b8d28bbb4ae8 0xe9bf4ba938198d73 0.409 0.435356 299552 0 PASS
234 28573228 surface-world gcc14-default 1 27 13 27054 0.000000 -140.000000 -2016.695312 0x57cb2fe09976dc54 0x35ac4f38b432e8b7 0x7ed7b8d28bbb4ae8 0xe9bf4ba938198d73 0.185 0.200823 85508 0 PASS
235 28573228 surface-world gcc14-default 12 27 13 27054 0.000000 -140.000000 -2016.695312 0x57cb2fe09976dc54 0x35ac4f38b432e8b7 0x7ed7b8d28bbb4ae8 0xe9bf4ba938198d73 0.420 0.448033 299724 0 PASS
236 28573228 floating-islands clang19-off 1 27 12 32456 0.000000 -18.683594 -116.187500 0x25ed5f499f9bf7ab 0x1c8e67c20374b473 0x786447fa7fb09cab 0x244fb7a45dc74437 1.396 1.413299 85492 0 PASS
237 28573228 floating-islands clang19-off 12 27 12 32456 0.000000 -18.683594 -116.187500 0x25ed5f499f9bf7ab 0x1c8e67c20374b473 0x786447fa7fb09cab 0x244fb7a45dc74437 0.693 0.719023 300784 0 PASS
238 28573228 floating-islands clang19-on 1 27 12 32456 0.000000 -18.683594 -116.187500 0x25ed5f499f9bf7ab 0x1c8e67c20374b473 0x786447fa7fb09cab 0x244fb7a45dc74437 1.354 1.373140 84808 0 PASS
239 28573228 floating-islands clang19-on 12 27 12 32456 0.000000 -18.683594 -116.187500 0x25ed5f499f9bf7ab 0x1c8e67c20374b473 0x786447fa7fb09cab 0x244fb7a45dc74437 0.663 0.689391 300568 0 PASS
240 28573228 floating-islands gcc14-default 1 27 12 32456 0.000000 -18.683594 -116.187500 0x25ed5f499f9bf7ab 0x1c8e67c20374b473 0x786447fa7fb09cab 0x244fb7a45dc74437 1.544 1.560291 85548 0 PASS
241 28573228 floating-islands gcc14-default 12 27 12 32456 0.000000 -18.683594 -116.187500 0x25ed5f499f9bf7ab 0x1c8e67c20374b473 0x786447fa7fb09cab 0x244fb7a45dc74437 0.727 0.755835 300920 0 PASS
242 70955227 surface-world clang19-off 1 27 13 29926 0.000000 -140.000000 -2047.484375 0xb205ad43941e41d8 0x722e775c7e0735bc 0x44a33dfc23ec62ed 0x39969012a7375b51 0.192 0.208106 85820 0 PASS
243 70955227 surface-world clang19-off 12 27 13 29926 0.000000 -140.000000 -2047.484375 0xb205ad43941e41d8 0x722e775c7e0735bc 0x44a33dfc23ec62ed 0x39969012a7375b51 0.448 0.476411 300752 0 PASS
244 70955227 surface-world clang19-on 1 27 13 29926 0.000000 -140.000000 -2047.484375 0xb205ad43941e41d8 0x722e775c7e0735bc 0x44a33dfc23ec62ed 0x39969012a7375b51 0.185 0.201218 85544 0 PASS
245 70955227 surface-world clang19-on 12 27 13 29926 0.000000 -140.000000 -2047.484375 0xb205ad43941e41d8 0x722e775c7e0735bc 0x44a33dfc23ec62ed 0x39969012a7375b51 0.429 0.457766 300792 0 PASS
246 70955227 surface-world gcc14-default 1 27 13 29926 0.000000 -140.000000 -2047.484375 0xb205ad43941e41d8 0x722e775c7e0735bc 0x44a33dfc23ec62ed 0x39969012a7375b51 0.183 0.198664 86928 0 PASS
247 70955227 surface-world gcc14-default 12 27 13 29926 0.000000 -140.000000 -2047.484375 0xb205ad43941e41d8 0x722e775c7e0735bc 0x44a33dfc23ec62ed 0x39969012a7375b51 0.438 0.466791 301440 0 PASS
248 70955227 floating-islands clang19-off 1 27 12 17426 -39.199219 18.582031 -121.785156 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23 0x6f301aefdb37973f 0xa38a1c2ec1a3b2f1 1.586 1.602163 87224 0 PASS
249 70955227 floating-islands clang19-off 12 27 12 17426 -39.199219 18.582031 -121.785156 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23 0x6f301aefdb37973f 0xa38a1c2ec1a3b2f1 0.715 0.741331 300680 0 PASS
250 70955227 floating-islands clang19-on 1 27 12 17426 -39.199219 18.582031 -121.785156 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23 0x6f301aefdb37973f 0xa38a1c2ec1a3b2f1 1.601 1.615814 87288 0 PASS
251 70955227 floating-islands clang19-on 12 27 12 17426 -39.199219 18.582031 -121.785156 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23 0x6f301aefdb37973f 0xa38a1c2ec1a3b2f1 0.746 0.774349 301108 0 PASS
252 70955227 floating-islands gcc14-default 1 27 12 17426 -39.199219 18.582031 -121.785156 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23 0x6f301aefdb37973f 0xa38a1c2ec1a3b2f1 1.718 1.733886 87436 0 PASS
253 70955227 floating-islands gcc14-default 12 27 12 17426 -39.199219 18.582031 -121.785156 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23 0x6f301aefdb37973f 0xa38a1c2ec1a3b2f1 0.780 0.806995 301540 0 PASS
254 75274690 surface-world clang19-off 1 27 15 28342 0.000000 -140.000000 -2019.648438 0x84af4380d33164a6 0xa18d6de0f9267e9f 0xe4bcbdc97074b806 0x5d71387401f96959 0.189 0.204204 85448 0 PASS
255 75274690 surface-world clang19-off 12 27 15 28342 0.000000 -140.000000 -2019.648438 0x84af4380d33164a6 0xa18d6de0f9267e9f 0xe4bcbdc97074b806 0x5d71387401f96959 0.445 0.471446 300620 0 PASS
256 75274690 surface-world clang19-on 1 27 15 28342 0.000000 -140.000000 -2019.648438 0x84af4380d33164a6 0xa18d6de0f9267e9f 0xe4bcbdc97074b806 0x5d71387401f96959 0.184 0.200607 85196 0 PASS
257 75274690 surface-world clang19-on 12 27 15 28342 0.000000 -140.000000 -2019.648438 0x84af4380d33164a6 0xa18d6de0f9267e9f 0xe4bcbdc97074b806 0x5d71387401f96959 0.420 0.448852 300344 0 PASS
258 75274690 surface-world gcc14-default 1 27 15 28342 0.000000 -140.000000 -2019.648438 0x84af4380d33164a6 0xa18d6de0f9267e9f 0xe4bcbdc97074b806 0x5d71387401f96959 0.192 0.207839 85924 0 PASS
259 75274690 surface-world gcc14-default 12 27 15 28342 0.000000 -140.000000 -2019.648438 0x84af4380d33164a6 0xa18d6de0f9267e9f 0xe4bcbdc97074b806 0x5d71387401f96959 0.425 0.452205 300748 0 PASS
260 75274690 floating-islands clang19-off 1 27 8 19760 64.398438 72.199219 -121.019531 0x045c98172a573800 0x86618a983d61425d 0x13523110d2e6a9b3 0x6f1ad87b335e3d3e 1.103 1.118954 86812 0 PASS
261 75274690 floating-islands clang19-off 12 27 8 19760 64.398438 72.199219 -121.019531 0x045c98172a573800 0x86618a983d61425d 0x13523110d2e6a9b3 0x6f1ad87b335e3d3e 0.628 0.655461 300972 0 PASS
262 75274690 floating-islands clang19-on 1 27 8 19760 64.398438 72.199219 -121.019531 0x045c98172a573800 0x86618a983d61425d 0x13523110d2e6a9b3 0x6f1ad87b335e3d3e 1.083 1.101596 86924 0 PASS
263 75274690 floating-islands clang19-on 12 27 8 19760 64.398438 72.199219 -121.019531 0x045c98172a573800 0x86618a983d61425d 0x13523110d2e6a9b3 0x6f1ad87b335e3d3e 0.658 0.694786 300572 0 PASS
264 75274690 floating-islands gcc14-default 1 27 8 19760 64.398438 72.199219 -121.019531 0x045c98172a573800 0x86618a983d61425d 0x13523110d2e6a9b3 0x6f1ad87b335e3d3e 1.176 1.192130 87488 0 PASS
265 75274690 floating-islands gcc14-default 12 27 8 19760 64.398438 72.199219 -121.019531 0x045c98172a573800 0x86618a983d61425d 0x13523110d2e6a9b3 0x6f1ad87b335e3d3e 0.653 0.680432 301468 0 PASS
266 81375760 surface-world clang19-off 1 27 18 48305 0.000000 -140.000000 -1894.296875 0x20c34733457b090d 0x9a6b57b63637db1f 0x2005693f7f6d7dcc 0xc5745d7ea096cff0 0.333 0.349470 85188 0 PASS
267 81375760 surface-world clang19-off 12 27 18 48305 0.000000 -140.000000 -1894.296875 0x20c34733457b090d 0x9a6b57b63637db1f 0x2005693f7f6d7dcc 0xc5745d7ea096cff0 0.480 0.508631 302276 0 PASS
268 81375760 surface-world clang19-on 1 27 18 48305 0.000000 -140.000000 -1894.296875 0x20c34733457b090d 0x9a6b57b63637db1f 0x2005693f7f6d7dcc 0xc5745d7ea096cff0 0.331 0.348279 85148 0 PASS
269 81375760 surface-world clang19-on 12 27 18 48305 0.000000 -140.000000 -1894.296875 0x20c34733457b090d 0x9a6b57b63637db1f 0x2005693f7f6d7dcc 0xc5745d7ea096cff0 0.506 0.532790 302092 0 PASS
270 81375760 surface-world gcc14-default 1 27 18 48305 0.000000 -140.000000 -1894.296875 0x20c34733457b090d 0x9a6b57b63637db1f 0x2005693f7f6d7dcc 0xc5745d7ea096cff0 0.340 0.357917 85568 0 PASS
271 81375760 surface-world gcc14-default 12 27 18 48305 0.000000 -140.000000 -1894.296875 0x20c34733457b090d 0x9a6b57b63637db1f 0x2005693f7f6d7dcc 0xc5745d7ea096cff0 0.476 0.502072 302172 0 PASS
272 81375760 floating-islands clang19-off 1 27 12 24146 -39.199219 20.589844 -119.359375 0x69b66261833e4676 0x75e6b0f427e7698a 0xcb222176f7352da7 0x20224eb0a8925b4d 1.592 1.607202 87600 0 PASS
273 81375760 floating-islands clang19-off 12 27 12 24146 -39.199219 20.589844 -119.359375 0x69b66261833e4676 0x75e6b0f427e7698a 0xcb222176f7352da7 0x20224eb0a8925b4d 0.729 0.756249 301856 0 PASS
274 81375760 floating-islands clang19-on 1 27 12 24146 -39.199219 20.589844 -119.359375 0x69b66261833e4676 0x75e6b0f427e7698a 0xcb222176f7352da7 0x20224eb0a8925b4d 1.678 1.694265 87328 0 PASS
275 81375760 floating-islands clang19-on 12 27 12 24146 -39.199219 20.589844 -119.359375 0x69b66261833e4676 0x75e6b0f427e7698a 0xcb222176f7352da7 0x20224eb0a8925b4d 0.746 0.773941 302184 0 PASS
276 81375760 floating-islands gcc14-default 1 27 12 24146 -39.199219 20.589844 -119.359375 0x69b66261833e4676 0x75e6b0f427e7698a 0xcb222176f7352da7 0x20224eb0a8925b4d 1.706 1.723259 87980 0 PASS
277 81375760 floating-islands gcc14-default 12 27 12 24146 -39.199219 20.589844 -119.359375 0x69b66261833e4676 0x75e6b0f427e7698a 0xcb222176f7352da7 0x20224eb0a8925b4d 0.743 0.770492 302508 0 PASS
278 146979566 surface-world clang19-off 1 27 14 31096 0.000000 -140.000000 -2014.601562 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53 0x6f23c17789836934 0x5063630f2a948856 0.242 0.259669 85944 0 PASS
279 146979566 surface-world clang19-off 12 27 14 31096 0.000000 -140.000000 -2014.601562 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53 0x6f23c17789836934 0x5063630f2a948856 0.431 0.458617 301156 0 PASS
280 146979566 surface-world clang19-on 1 27 14 31096 0.000000 -140.000000 -2014.601562 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53 0x6f23c17789836934 0x5063630f2a948856 0.237 0.254081 85952 0 PASS
281 146979566 surface-world clang19-on 12 27 14 31096 0.000000 -140.000000 -2014.601562 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53 0x6f23c17789836934 0x5063630f2a948856 0.428 0.456566 301360 0 PASS
282 146979566 surface-world gcc14-default 1 27 14 31096 0.000000 -140.000000 -2014.601562 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53 0x6f23c17789836934 0x5063630f2a948856 0.245 0.261764 86436 0 PASS
283 146979566 surface-world gcc14-default 12 27 14 31096 0.000000 -140.000000 -2014.601562 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53 0x6f23c17789836934 0x5063630f2a948856 0.453 0.480241 301596 0 PASS
284 146979566 floating-islands clang19-off 1 27 9 22370 39.199219 16.625000 -109.785156 0x93d0d67042bb05d2 0xe7f4981f907e316e 0x98081f3cf86e0b7f 0xa103fc9366460065 1.584 1.600638 87472 0 PASS
285 146979566 floating-islands clang19-off 12 27 9 22370 39.199219 16.625000 -109.785156 0x93d0d67042bb05d2 0xe7f4981f907e316e 0x98081f3cf86e0b7f 0xa103fc9366460065 0.691 0.717956 301644 0 PASS
286 146979566 floating-islands clang19-on 1 27 9 22370 39.199219 16.625000 -109.785156 0x93d0d67042bb05d2 0xe7f4981f907e316e 0x98081f3cf86e0b7f 0xa103fc9366460065 1.645 1.662341 87336 0 PASS
287 146979566 floating-islands clang19-on 12 27 9 22370 39.199219 16.625000 -109.785156 0x93d0d67042bb05d2 0xe7f4981f907e316e 0x98081f3cf86e0b7f 0xa103fc9366460065 0.716 0.744086 301388 0 PASS
288 146979566 floating-islands gcc14-default 1 27 9 22370 39.199219 16.625000 -109.785156 0x93d0d67042bb05d2 0xe7f4981f907e316e 0x98081f3cf86e0b7f 0xa103fc9366460065 1.743 1.760680 87812 0 PASS
289 146979566 floating-islands gcc14-default 12 27 9 22370 39.199219 16.625000 -109.785156 0x93d0d67042bb05d2 0xe7f4981f907e316e 0x98081f3cf86e0b7f 0xa103fc9366460065 0.726 0.752868 302004 0 PASS
290 244951180 surface-world clang19-off 1 27 18 52468 0.000000 -140.000000 -1798.816406 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd 0xcc6273def955b692 0x477e01281747a9c6 0.348 0.365147 87736 0 PASS
291 244951180 surface-world clang19-off 12 27 18 52468 0.000000 -140.000000 -1798.816406 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd 0xcc6273def955b692 0x477e01281747a9c6 0.475 0.502857 304536 0 PASS
292 244951180 surface-world clang19-on 1 27 18 52468 0.000000 -140.000000 -1798.816406 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd 0xcc6273def955b692 0x477e01281747a9c6 0.345 0.361096 87652 0 PASS
293 244951180 surface-world clang19-on 12 27 18 52468 0.000000 -140.000000 -1798.816406 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd 0xcc6273def955b692 0x477e01281747a9c6 0.462 0.489379 305156 0 PASS
294 244951180 surface-world gcc14-default 1 27 18 52468 0.000000 -140.000000 -1798.816406 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd 0xcc6273def955b692 0x477e01281747a9c6 0.319 0.334168 87880 0 PASS
295 244951180 surface-world gcc14-default 12 27 18 52468 0.000000 -140.000000 -1798.816406 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd 0xcc6273def955b692 0x477e01281747a9c6 0.468 0.496037 305128 0 PASS
296 244951180 floating-islands clang19-off 1 27 13 32272 0.000000 -18.179688 -116.664062 0x0b22965681c5b482 0x582ef8c1d263bedb 0x00179a81f23dbeee 0x5ea7d2a08ba7a249 1.132 1.147425 87072 0 PASS
297 244951180 floating-islands clang19-off 12 27 13 32272 0.000000 -18.179688 -116.664062 0x0b22965681c5b482 0x582ef8c1d263bedb 0x00179a81f23dbeee 0x5ea7d2a08ba7a249 0.586 0.615574 303052 0 PASS
298 244951180 floating-islands clang19-on 1 27 13 32272 0.000000 -18.179688 -116.664062 0x0b22965681c5b482 0x582ef8c1d263bedb 0x00179a81f23dbeee 0x5ea7d2a08ba7a249 1.099 1.116192 87252 0 PASS
299 244951180 floating-islands clang19-on 12 27 13 32272 0.000000 -18.179688 -116.664062 0x0b22965681c5b482 0x582ef8c1d263bedb 0x00179a81f23dbeee 0x5ea7d2a08ba7a249 0.588 0.615818 303076 0 PASS
300 244951180 floating-islands gcc14-default 1 27 13 32272 0.000000 -18.179688 -116.664062 0x0b22965681c5b482 0x582ef8c1d263bedb 0x00179a81f23dbeee 0x5ea7d2a08ba7a249 1.201 1.217254 87804 0 PASS
301 244951180 floating-islands gcc14-default 12 27 13 32272 0.000000 -18.179688 -116.664062 0x0b22965681c5b482 0x582ef8c1d263bedb 0x00179a81f23dbeee 0x5ea7d2a08ba7a249 0.615 0.643461 303388 0 PASS
302 245433414 surface-world clang19-off 1 27 14 32860 0.000000 -140.000000 -2022.468750 0xcc51a567f61f812d 0xc59dc3105dd493b2 0x03b8f1a7d0eac0d7 0x22f468a7d1585605 0.183 0.199554 84260 0 PASS
303 245433414 surface-world clang19-off 12 27 14 32860 0.000000 -140.000000 -2022.468750 0xcc51a567f61f812d 0xc59dc3105dd493b2 0x03b8f1a7d0eac0d7 0x22f468a7d1585605 0.528 0.554834 299804 0 PASS
304 245433414 surface-world clang19-on 1 27 14 32860 0.000000 -140.000000 -2022.468750 0xcc51a567f61f812d 0xc59dc3105dd493b2 0x03b8f1a7d0eac0d7 0x22f468a7d1585605 0.190 0.205364 84668 0 PASS
305 245433414 surface-world clang19-on 12 27 14 32860 0.000000 -140.000000 -2022.468750 0xcc51a567f61f812d 0xc59dc3105dd493b2 0x03b8f1a7d0eac0d7 0x22f468a7d1585605 0.424 0.450563 299552 0 PASS
306 245433414 surface-world gcc14-default 1 27 14 32860 0.000000 -140.000000 -2022.468750 0xcc51a567f61f812d 0xc59dc3105dd493b2 0x03b8f1a7d0eac0d7 0x22f468a7d1585605 0.182 0.197759 85244 0 PASS
307 245433414 surface-world gcc14-default 12 27 14 32860 0.000000 -140.000000 -2022.468750 0xcc51a567f61f812d 0xc59dc3105dd493b2 0x03b8f1a7d0eac0d7 0x22f468a7d1585605 0.433 0.459733 300260 0 PASS
308 245433414 floating-islands clang19-off 1 27 11 32838 0.000000 -17.574219 -116.296875 0x2e75a175d1005e4e 0x8f45449d7125c041 0x493909fdf6e5cba4 0x576100f342da3f02 1.138 1.154872 87048 0 PASS
309 245433414 floating-islands clang19-off 12 27 11 32838 0.000000 -17.574219 -116.296875 0x2e75a175d1005e4e 0x8f45449d7125c041 0x493909fdf6e5cba4 0x576100f342da3f02 0.629 0.656026 302520 0 PASS
310 245433414 floating-islands clang19-on 1 27 11 32838 0.000000 -17.574219 -116.296875 0x2e75a175d1005e4e 0x8f45449d7125c041 0x493909fdf6e5cba4 0x576100f342da3f02 1.112 1.129107 87048 0 PASS
311 245433414 floating-islands clang19-on 12 27 11 32838 0.000000 -17.574219 -116.296875 0x2e75a175d1005e4e 0x8f45449d7125c041 0x493909fdf6e5cba4 0x576100f342da3f02 0.582 0.610645 302704 0 PASS
312 245433414 floating-islands gcc14-default 1 27 11 32838 0.000000 -17.574219 -116.296875 0x2e75a175d1005e4e 0x8f45449d7125c041 0x493909fdf6e5cba4 0x576100f342da3f02 1.189 1.205364 87708 0 PASS
313 245433414 floating-islands gcc14-default 12 27 11 32838 0.000000 -17.574219 -116.296875 0x2e75a175d1005e4e 0x8f45449d7125c041 0x493909fdf6e5cba4 0x576100f342da3f02 0.635 0.663132 303108 0 PASS
314 277442974 surface-world clang19-off 1 27 9 27060 0.000000 -140.000000 -2004.875000 0x8bfa82ca5e492c37 0x1630487dbcc54469 0xb37b440b5f2b1c98 0xe296c565d2eb2ef0 0.274 0.290495 86336 0 PASS
315 277442974 surface-world clang19-off 12 27 9 27060 0.000000 -140.000000 -2004.875000 0x8bfa82ca5e492c37 0x1630487dbcc54469 0xb37b440b5f2b1c98 0xe296c565d2eb2ef0 0.471 0.497591 296556 0 PASS
316 277442974 surface-world clang19-on 1 27 9 27060 0.000000 -140.000000 -2004.875000 0x8bfa82ca5e492c37 0x1630487dbcc54469 0xb37b440b5f2b1c98 0xe296c565d2eb2ef0 0.264 0.280808 86376 0 PASS
317 277442974 surface-world clang19-on 12 27 9 27060 0.000000 -140.000000 -2004.875000 0x8bfa82ca5e492c37 0x1630487dbcc54469 0xb37b440b5f2b1c98 0xe296c565d2eb2ef0 0.481 0.507069 296232 0 PASS
318 277442974 surface-world gcc14-default 1 27 9 27060 0.000000 -140.000000 -2004.875000 0x8bfa82ca5e492c37 0x1630487dbcc54469 0xb37b440b5f2b1c98 0xe296c565d2eb2ef0 0.247 0.263402 86856 0 PASS
319 277442974 surface-world gcc14-default 12 27 9 27060 0.000000 -140.000000 -2004.875000 0x8bfa82ca5e492c37 0x1630487dbcc54469 0xb37b440b5f2b1c98 0xe296c565d2eb2ef0 0.476 0.504203 297224 0 PASS
320 277442974 floating-islands clang19-off 1 27 13 28088 39.199219 19.328125 -117.750000 0x8cb55c56b1629d42 0xc6532d9d3b8a987d 0x1a07243bd2c586c1 0x5d957c64ae620a5e 1.172 1.186572 88460 0 PASS
321 277442974 floating-islands clang19-off 12 27 13 28088 39.199219 19.328125 -117.750000 0x8cb55c56b1629d42 0xc6532d9d3b8a987d 0x1a07243bd2c586c1 0x5d957c64ae620a5e 0.642 0.673081 303884 0 PASS
322 277442974 floating-islands clang19-on 1 27 13 28088 39.199219 19.328125 -117.750000 0x8cb55c56b1629d42 0xc6532d9d3b8a987d 0x1a07243bd2c586c1 0x5d957c64ae620a5e 1.187 1.211616 88412 0 PASS
323 277442974 floating-islands clang19-on 12 27 13 28088 39.199219 19.328125 -117.750000 0x8cb55c56b1629d42 0xc6532d9d3b8a987d 0x1a07243bd2c586c1 0x5d957c64ae620a5e 0.664 0.692926 303956 0 PASS
324 277442974 floating-islands gcc14-default 1 27 13 28088 39.199219 19.328125 -117.750000 0x8cb55c56b1629d42 0xc6532d9d3b8a987d 0x1a07243bd2c586c1 0x5d957c64ae620a5e 1.210 1.225245 89264 0 PASS
325 277442974 floating-islands gcc14-default 12 27 13 28088 39.199219 19.328125 -117.750000 0x8cb55c56b1629d42 0xc6532d9d3b8a987d 0x1a07243bd2c586c1 0x5d957c64ae620a5e 0.662 0.689572 304204 0 PASS
326 297746112 surface-world clang19-off 1 27 13 38252 0.000000 -140.000000 -2010.195312 0x00c869b6875b7ef5 0x085684513feca8f2 0x118ce3a71b3a4b6d 0x5e5c8df181277ea2 0.266 0.281980 86512 0 PASS
327 297746112 surface-world clang19-off 12 27 13 38252 0.000000 -140.000000 -2010.195312 0x00c869b6875b7ef5 0x085684513feca8f2 0x118ce3a71b3a4b6d 0x5e5c8df181277ea2 0.462 0.489317 300184 0 PASS
328 297746112 surface-world clang19-on 1 27 13 38252 0.000000 -140.000000 -2010.195312 0x00c869b6875b7ef5 0x085684513feca8f2 0x118ce3a71b3a4b6d 0x5e5c8df181277ea2 0.265 0.281098 86148 0 PASS
329 297746112 surface-world clang19-on 12 27 13 38252 0.000000 -140.000000 -2010.195312 0x00c869b6875b7ef5 0x085684513feca8f2 0x118ce3a71b3a4b6d 0x5e5c8df181277ea2 0.447 0.474064 300408 0 PASS
330 297746112 surface-world gcc14-default 1 27 13 38252 0.000000 -140.000000 -2010.195312 0x00c869b6875b7ef5 0x085684513feca8f2 0x118ce3a71b3a4b6d 0x5e5c8df181277ea2 0.253 0.269185 87028 0 PASS
331 297746112 surface-world gcc14-default 12 27 13 38252 0.000000 -140.000000 -2010.195312 0x00c869b6875b7ef5 0x085684513feca8f2 0x118ce3a71b3a4b6d 0x5e5c8df181277ea2 0.461 0.489903 300916 0 PASS
332 297746112 floating-islands clang19-off 1 27 15 29396 39.199219 20.609375 -119.089844 0x2425273f1a174c04 0x204be5cda8d98412 0x0565960cfc012768 0x14faf071d204cf2c 1.471 1.486649 86560 0 PASS
333 297746112 floating-islands clang19-off 12 27 15 29396 39.199219 20.609375 -119.089844 0x2425273f1a174c04 0x204be5cda8d98412 0x0565960cfc012768 0x14faf071d204cf2c 0.707 0.733259 301392 0 PASS
334 297746112 floating-islands clang19-on 1 27 15 29396 39.199219 20.609375 -119.089844 0x2425273f1a174c04 0x204be5cda8d98412 0x0565960cfc012768 0x14faf071d204cf2c 1.476 1.492227 86404 0 PASS
335 297746112 floating-islands clang19-on 12 27 15 29396 39.199219 20.609375 -119.089844 0x2425273f1a174c04 0x204be5cda8d98412 0x0565960cfc012768 0x14faf071d204cf2c 0.697 0.724120 301764 0 PASS
336 297746112 floating-islands gcc14-default 1 27 15 29396 39.199219 20.609375 -119.089844 0x2425273f1a174c04 0x204be5cda8d98412 0x0565960cfc012768 0x14faf071d204cf2c 1.606 1.623971 87112 0 PASS
337 297746112 floating-islands gcc14-default 12 27 15 29396 39.199219 20.609375 -119.089844 0x2425273f1a174c04 0x204be5cda8d98412 0x0565960cfc012768 0x14faf071d204cf2c 0.744 0.770764 301868 0 PASS
338 336768467 surface-world clang19-off 1 27 15 29748 0.000000 -140.000000 -2014.343750 0x2756e6dc388ddf57 0x66344082236c5630 0x8d1456f1c9c5391d 0x8c5dafb1129150a4 0.193 0.210861 84432 0 PASS
339 336768467 surface-world clang19-off 12 27 15 29748 0.000000 -140.000000 -2014.343750 0x2756e6dc388ddf57 0x66344082236c5630 0x8d1456f1c9c5391d 0x8c5dafb1129150a4 0.439 0.465773 299308 0 PASS
340 336768467 surface-world clang19-on 1 27 15 29748 0.000000 -140.000000 -2014.343750 0x2756e6dc388ddf57 0x66344082236c5630 0x8d1456f1c9c5391d 0x8c5dafb1129150a4 0.203 0.220275 84220 0 PASS
341 336768467 surface-world clang19-on 12 27 15 29748 0.000000 -140.000000 -2014.343750 0x2756e6dc388ddf57 0x66344082236c5630 0x8d1456f1c9c5391d 0x8c5dafb1129150a4 0.442 0.472005 298776 0 PASS
342 336768467 surface-world gcc14-default 1 27 15 29748 0.000000 -140.000000 -2014.343750 0x2756e6dc388ddf57 0x66344082236c5630 0x8d1456f1c9c5391d 0x8c5dafb1129150a4 0.195 0.210295 84640 0 PASS
343 336768467 surface-world gcc14-default 12 27 15 29748 0.000000 -140.000000 -2014.343750 0x2756e6dc388ddf57 0x66344082236c5630 0x8d1456f1c9c5391d 0x8c5dafb1129150a4 0.441 0.468001 299924 0 PASS
344 336768467 floating-islands clang19-off 1 27 12 33652 0.000000 -20.933594 -116.355469 0xfa8249483c186760 0xc42acd7c93e1525c 0xdef1819f3ea0dfba 0xe7f844319ae479a5 1.560 1.576635 86384 0 PASS
345 336768467 floating-islands clang19-off 12 27 12 33652 0.000000 -20.933594 -116.355469 0xfa8249483c186760 0xc42acd7c93e1525c 0xdef1819f3ea0dfba 0xe7f844319ae479a5 0.687 0.715116 302356 0 PASS
346 336768467 floating-islands clang19-on 1 27 12 33652 0.000000 -20.933594 -116.355469 0xfa8249483c186760 0xc42acd7c93e1525c 0xdef1819f3ea0dfba 0xe7f844319ae479a5 1.607 1.622026 86512 0 PASS
347 336768467 floating-islands clang19-on 12 27 12 33652 0.000000 -20.933594 -116.355469 0xfa8249483c186760 0xc42acd7c93e1525c 0xdef1819f3ea0dfba 0xe7f844319ae479a5 0.756 0.786103 301928 0 PASS
348 336768467 floating-islands gcc14-default 1 27 12 33652 0.000000 -20.933594 -116.355469 0xfa8249483c186760 0xc42acd7c93e1525c 0xdef1819f3ea0dfba 0xe7f844319ae479a5 1.659 1.676423 87116 0 PASS
349 336768467 floating-islands gcc14-default 12 27 12 33652 0.000000 -20.933594 -116.355469 0xfa8249483c186760 0xc42acd7c93e1525c 0xdef1819f3ea0dfba 0xe7f844319ae479a5 0.745 0.770547 302312 0 PASS
350 512532080 surface-world clang19-off 1 27 14 28800 0.000000 -140.000000 -2011.875000 0xa5ad29a27d991d10 0x060bc1fca8569368 0x726e34d2232e7e04 0x2cfa7c1af8ec4ee4 0.238 0.255841 84384 0 PASS
351 512532080 surface-world clang19-off 12 27 14 28800 0.000000 -140.000000 -2011.875000 0xa5ad29a27d991d10 0x060bc1fca8569368 0x726e34d2232e7e04 0x2cfa7c1af8ec4ee4 0.472 0.498432 298872 0 PASS
352 512532080 surface-world clang19-on 1 27 14 28800 0.000000 -140.000000 -2011.875000 0xa5ad29a27d991d10 0x060bc1fca8569368 0x726e34d2232e7e04 0x2cfa7c1af8ec4ee4 0.224 0.240126 84544 0 PASS
353 512532080 surface-world clang19-on 12 27 14 28800 0.000000 -140.000000 -2011.875000 0xa5ad29a27d991d10 0x060bc1fca8569368 0x726e34d2232e7e04 0x2cfa7c1af8ec4ee4 0.456 0.482429 299344 0 PASS
354 512532080 surface-world gcc14-default 1 27 14 28800 0.000000 -140.000000 -2011.875000 0xa5ad29a27d991d10 0x060bc1fca8569368 0x726e34d2232e7e04 0x2cfa7c1af8ec4ee4 0.219 0.236902 84712 0 PASS
355 512532080 surface-world gcc14-default 12 27 14 28800 0.000000 -140.000000 -2011.875000 0xa5ad29a27d991d10 0x060bc1fca8569368 0x726e34d2232e7e04 0x2cfa7c1af8ec4ee4 0.468 0.494269 299636 0 PASS
356 512532080 floating-islands clang19-off 1 27 14 34900 0.000000 -20.355469 -116.640625 0xb098abe6a38cfe3a 0x436a6541192ed00e 0x75e2b7c9004349c2 0x534923147812f216 1.231 1.246649 86052 0 PASS
357 512532080 floating-islands clang19-off 12 27 14 34900 0.000000 -20.355469 -116.640625 0xb098abe6a38cfe3a 0x436a6541192ed00e 0x75e2b7c9004349c2 0x534923147812f216 0.615 0.641439 301628 0 PASS
358 512532080 floating-islands clang19-on 1 27 14 34900 0.000000 -20.355469 -116.640625 0xb098abe6a38cfe3a 0x436a6541192ed00e 0x75e2b7c9004349c2 0x534923147812f216 1.228 1.242805 85768 0 PASS
359 512532080 floating-islands clang19-on 12 27 14 34900 0.000000 -20.355469 -116.640625 0xb098abe6a38cfe3a 0x436a6541192ed00e 0x75e2b7c9004349c2 0x534923147812f216 0.627 0.655211 301628 0 PASS
360 512532080 floating-islands gcc14-default 1 27 14 34900 0.000000 -20.355469 -116.640625 0xb098abe6a38cfe3a 0x436a6541192ed00e 0x75e2b7c9004349c2 0x534923147812f216 1.359 1.374927 86224 0 PASS
361 512532080 floating-islands gcc14-default 12 27 14 34900 0.000000 -20.355469 -116.640625 0xb098abe6a38cfe3a 0x436a6541192ed00e 0x75e2b7c9004349c2 0x534923147812f216 0.653 0.684763 302532 0 PASS
362 821120640 surface-world clang19-off 1 27 17 29100 0.000000 -140.000000 -2017.054688 0xb6424f19c272b61c 0xe4f7308d87cb3bc2 0x3f43e313583419b6 0xe7bf900c0a18e037 0.235 0.252205 84088 0 PASS
363 821120640 surface-world clang19-off 12 27 17 29100 0.000000 -140.000000 -2017.054688 0xb6424f19c272b61c 0xe4f7308d87cb3bc2 0x3f43e313583419b6 0xe7bf900c0a18e037 0.471 0.497535 298356 0 PASS
364 821120640 surface-world clang19-on 1 27 17 29100 0.000000 -140.000000 -2017.054688 0xb6424f19c272b61c 0xe4f7308d87cb3bc2 0x3f43e313583419b6 0xe7bf900c0a18e037 0.232 0.246887 84276 0 PASS
365 821120640 surface-world clang19-on 12 27 17 29100 0.000000 -140.000000 -2017.054688 0xb6424f19c272b61c 0xe4f7308d87cb3bc2 0x3f43e313583419b6 0xe7bf900c0a18e037 0.444 0.469734 298640 0 PASS
366 821120640 surface-world gcc14-default 1 27 17 29100 0.000000 -140.000000 -2017.054688 0xb6424f19c272b61c 0xe4f7308d87cb3bc2 0x3f43e313583419b6 0xe7bf900c0a18e037 0.227 0.242379 84848 0 PASS
367 821120640 surface-world gcc14-default 12 27 17 29100 0.000000 -140.000000 -2017.054688 0xb6424f19c272b61c 0xe4f7308d87cb3bc2 0x3f43e313583419b6 0xe7bf900c0a18e037 0.446 0.472509 299120 0 PASS
368 821120640 floating-islands clang19-off 1 27 11 27034 39.199219 18.121094 -108.417969 0x3db9226404527944 0xb3328f1c88e96c70 0x1e9434cf277c52f2 0x7623a6394f56d6bc 1.593 1.609040 86048 0 PASS
369 821120640 floating-islands clang19-off 12 27 11 27034 39.199219 18.121094 -108.417969 0x3db9226404527944 0xb3328f1c88e96c70 0x1e9434cf277c52f2 0x7623a6394f56d6bc 0.771 0.798393 300532 0 PASS
370 821120640 floating-islands clang19-on 1 27 11 27034 39.199219 18.121094 -108.417969 0x3db9226404527944 0xb3328f1c88e96c70 0x1e9434cf277c52f2 0x7623a6394f56d6bc 1.647 1.661841 85752 0 PASS
371 821120640 floating-islands clang19-on 12 27 11 27034 39.199219 18.121094 -108.417969 0x3db9226404527944 0xb3328f1c88e96c70 0x1e9434cf277c52f2 0x7623a6394f56d6bc 0.731 0.757095 300348 0 PASS
372 821120640 floating-islands gcc14-default 1 27 11 27034 39.199219 18.121094 -108.417969 0x3db9226404527944 0xb3328f1c88e96c70 0x1e9434cf277c52f2 0x7623a6394f56d6bc 1.791 1.807593 86356 0 PASS
373 821120640 floating-islands gcc14-default 12 27 11 27034 39.199219 18.121094 -108.417969 0x3db9226404527944 0xb3328f1c88e96c70 0x1e9434cf277c52f2 0x7623a6394f56d6bc 0.778 0.806980 301348 0 PASS
374 853538490 surface-world clang19-off 1 27 13 41529 0.000000 -140.000000 -2000.957031 0xbe1224f297dc7ad0 0x7e10918947195940 0xac9466d520e8d24d 0xd4a8b472e9b12049 0.325 0.340334 84252 0 PASS
375 853538490 surface-world clang19-off 12 27 13 41529 0.000000 -140.000000 -2000.957031 0xbe1224f297dc7ad0 0x7e10918947195940 0xac9466d520e8d24d 0xd4a8b472e9b12049 0.490 0.517745 297932 0 PASS
376 853538490 surface-world clang19-on 1 27 13 41529 0.000000 -140.000000 -2000.957031 0xbe1224f297dc7ad0 0x7e10918947195940 0xac9466d520e8d24d 0xd4a8b472e9b12049 0.307 0.324074 84504 0 PASS
377 853538490 surface-world clang19-on 12 27 13 41529 0.000000 -140.000000 -2000.957031 0xbe1224f297dc7ad0 0x7e10918947195940 0xac9466d520e8d24d 0xd4a8b472e9b12049 0.484 0.510395 297860 0 PASS
378 853538490 surface-world gcc14-default 1 27 13 41529 0.000000 -140.000000 -2000.957031 0xbe1224f297dc7ad0 0x7e10918947195940 0xac9466d520e8d24d 0xd4a8b472e9b12049 0.292 0.309051 85156 0 PASS
379 853538490 surface-world gcc14-default 12 27 13 41529 0.000000 -140.000000 -2000.957031 0xbe1224f297dc7ad0 0x7e10918947195940 0xac9466d520e8d24d 0xd4a8b472e9b12049 0.487 0.516413 300220 0 PASS
380 853538490 floating-islands clang19-off 1 27 12 21100 64.398438 75.593750 -125.132812 0x7e568fc03c907914 0x6a9fc36512216056 0x42911f340bd75887 0x9a884d5fe3bc3a9f 1.502 1.518453 85300 0 PASS
381 853538490 floating-islands clang19-off 12 27 12 21100 64.398438 75.593750 -125.132812 0x7e568fc03c907914 0x6a9fc36512216056 0x42911f340bd75887 0x9a884d5fe3bc3a9f 0.752 0.778760 299572 0 PASS
382 853538490 floating-islands clang19-on 1 27 12 21100 64.398438 75.593750 -125.132812 0x7e568fc03c907914 0x6a9fc36512216056 0x42911f340bd75887 0x9a884d5fe3bc3a9f 1.511 1.527571 85176 0 PASS
383 853538490 floating-islands clang19-on 12 27 12 21100 64.398438 75.593750 -125.132812 0x7e568fc03c907914 0x6a9fc36512216056 0x42911f340bd75887 0x9a884d5fe3bc3a9f 0.743 0.771772 299476 0 PASS
384 853538490 floating-islands gcc14-default 1 27 12 21100 64.398438 75.593750 -125.132812 0x7e568fc03c907914 0x6a9fc36512216056 0x42911f340bd75887 0x9a884d5fe3bc3a9f 1.490 1.506165 86100 0 PASS
385 853538490 floating-islands gcc14-default 12 27 12 21100 64.398438 75.593750 -125.132812 0x7e568fc03c907914 0x6a9fc36512216056 0x42911f340bd75887 0x9a884d5fe3bc3a9f 0.733 0.759420 300016 0 PASS
386 861026696 surface-world clang19-off 1 27 14 29214 0.000000 -140.000000 -2015.378906 0xb04a05c6e8c488dc 0x28706d092bd82c9a 0xcdcd6eb7219ba860 0x713552a70402ee90 0.206 0.222328 85820 0 PASS
387 861026696 surface-world clang19-off 12 27 14 29214 0.000000 -140.000000 -2015.378906 0xb04a05c6e8c488dc 0x28706d092bd82c9a 0xcdcd6eb7219ba860 0x713552a70402ee90 0.442 0.469511 301112 0 PASS
388 861026696 surface-world clang19-on 1 27 14 29214 0.000000 -140.000000 -2015.378906 0xb04a05c6e8c488dc 0x28706d092bd82c9a 0xcdcd6eb7219ba860 0x713552a70402ee90 0.198 0.218476 86120 0 PASS
389 861026696 surface-world clang19-on 12 27 14 29214 0.000000 -140.000000 -2015.378906 0xb04a05c6e8c488dc 0x28706d092bd82c9a 0xcdcd6eb7219ba860 0x713552a70402ee90 0.420 0.449855 300708 0 PASS
390 861026696 surface-world gcc14-default 1 27 14 29214 0.000000 -140.000000 -2015.378906 0xb04a05c6e8c488dc 0x28706d092bd82c9a 0xcdcd6eb7219ba860 0x713552a70402ee90 0.198 0.213825 86600 0 PASS
391 861026696 surface-world gcc14-default 12 27 14 29214 0.000000 -140.000000 -2015.378906 0xb04a05c6e8c488dc 0x28706d092bd82c9a 0xcdcd6eb7219ba860 0x713552a70402ee90 0.425 0.451908 301600 0 PASS
392 861026696 floating-islands clang19-off 1 27 12 20194 -39.199219 16.035156 -124.882812 0xcb6792ec32335dc5 0x195efb6c80156e4a 0x99d2394c065c7d84 0xa650d8cc28f6ca8c 1.205 1.221248 86916 0 PASS
393 861026696 floating-islands clang19-off 12 27 12 20194 -39.199219 16.035156 -124.882812 0xcb6792ec32335dc5 0x195efb6c80156e4a 0x99d2394c065c7d84 0xa650d8cc28f6ca8c 0.626 0.656240 301180 0 PASS
394 861026696 floating-islands clang19-on 1 27 12 20194 -39.199219 16.035156 -124.882812 0xcb6792ec32335dc5 0x195efb6c80156e4a 0x99d2394c065c7d84 0xa650d8cc28f6ca8c 1.204 1.220794 86292 0 PASS
395 861026696 floating-islands clang19-on 12 27 12 20194 -39.199219 16.035156 -124.882812 0xcb6792ec32335dc5 0x195efb6c80156e4a 0x99d2394c065c7d84 0xa650d8cc28f6ca8c 0.629 0.656007 300976 0 PASS
396 861026696 floating-islands gcc14-default 1 27 12 20194 -39.199219 16.035156 -124.882812 0xcb6792ec32335dc5 0x195efb6c80156e4a 0x99d2394c065c7d84 0xa650d8cc28f6ca8c 1.304 1.320997 87184 0 PASS
397 861026696 floating-islands gcc14-default 12 27 12 20194 -39.199219 16.035156 -124.882812 0xcb6792ec32335dc5 0x195efb6c80156e4a 0x99d2394c065c7d84 0xa650d8cc28f6ca8c 0.661 0.688252 301512 0 PASS
398 1026251636 surface-world clang19-off 1 27 9 28584 0.000000 -140.000000 -2001.500000 0xf6bb5ab0a9e2307d 0x4767f425e56543f4 0x7d07264eb771e914 0x4c10ed20b1feb752 0.181 0.196873 89468 0 PASS
399 1026251636 surface-world clang19-off 12 27 9 28584 0.000000 -140.000000 -2001.500000 0xf6bb5ab0a9e2307d 0x4767f425e56543f4 0x7d07264eb771e914 0x4c10ed20b1feb752 0.429 0.455273 299856 0 PASS
400 1026251636 surface-world clang19-on 1 27 9 28584 0.000000 -140.000000 -2001.500000 0xf6bb5ab0a9e2307d 0x4767f425e56543f4 0x7d07264eb771e914 0x4c10ed20b1feb752 0.175 0.191878 88936 0 PASS
401 1026251636 surface-world clang19-on 12 27 9 28584 0.000000 -140.000000 -2001.500000 0xf6bb5ab0a9e2307d 0x4767f425e56543f4 0x7d07264eb771e914 0x4c10ed20b1feb752 0.421 0.446342 300064 0 PASS
402 1026251636 surface-world gcc14-default 1 27 9 28584 0.000000 -140.000000 -2001.500000 0xf6bb5ab0a9e2307d 0x4767f425e56543f4 0x7d07264eb771e914 0x4c10ed20b1feb752 0.186 0.201393 89824 0 PASS
403 1026251636 surface-world gcc14-default 12 27 9 28584 0.000000 -140.000000 -2001.500000 0xf6bb5ab0a9e2307d 0x4767f425e56543f4 0x7d07264eb771e914 0x4c10ed20b1feb752 0.440 0.465684 300752 0 PASS
404 1026251636 floating-islands clang19-off 1 27 8 19958 -25.199219 -74.664062 -109.117188 0xe62d0a684fcd1398 0xca0e1740a58cafbd 0xb28adbbe9f346438 0xaeddcc5189ee4f9c 2.014 2.030369 89720 0 PASS
405 1026251636 floating-islands clang19-off 12 27 8 19958 -25.199219 -74.664062 -109.117188 0xe62d0a684fcd1398 0xca0e1740a58cafbd 0xb28adbbe9f346438 0xaeddcc5189ee4f9c 0.784 0.811497 304088 0 PASS
406 1026251636 floating-islands clang19-on 1 27 8 19958 -25.199219 -74.664062 -109.117188 0xe62d0a684fcd1398 0xca0e1740a58cafbd 0xb28adbbe9f346438 0xaeddcc5189ee4f9c 2.037 2.053588 90148 0 PASS
407 1026251636 floating-islands clang19-on 12 27 8 19958 -25.199219 -74.664062 -109.117188 0xe62d0a684fcd1398 0xca0e1740a58cafbd 0xb28adbbe9f346438 0xaeddcc5189ee4f9c 0.805 0.831833 303992 0 PASS
408 1026251636 floating-islands gcc14-default 1 27 8 19958 -25.199219 -74.664062 -109.117188 0xe62d0a684fcd1398 0xca0e1740a58cafbd 0xb28adbbe9f346438 0xaeddcc5189ee4f9c 2.030 2.046181 90280 0 PASS
409 1026251636 floating-islands gcc14-default 12 27 8 19958 -25.199219 -74.664062 -109.117188 0xe62d0a684fcd1398 0xca0e1740a58cafbd 0xb28adbbe9f346438 0xaeddcc5189ee4f9c 0.829 0.855747 304588 0 PASS
410 1077415394 surface-world clang19-off 1 27 12 27666 0.000000 -140.000000 -2018.636719 0xb65f4acca21a93d8 0x0a3cddad02604438 0xe1cc5b39a1d20a9c 0xba1d3df14ef1dbc1 0.193 0.208931 87732 0 PASS
411 1077415394 surface-world clang19-off 12 27 12 27666 0.000000 -140.000000 -2018.636719 0xb65f4acca21a93d8 0x0a3cddad02604438 0xe1cc5b39a1d20a9c 0xba1d3df14ef1dbc1 0.436 0.463397 302684 0 PASS
412 1077415394 surface-world clang19-on 1 27 12 27666 0.000000 -140.000000 -2018.636719 0xb65f4acca21a93d8 0x0a3cddad02604438 0xe1cc5b39a1d20a9c 0xba1d3df14ef1dbc1 0.193 0.210262 87604 0 PASS
413 1077415394 surface-world clang19-on 12 27 12 27666 0.000000 -140.000000 -2018.636719 0xb65f4acca21a93d8 0x0a3cddad02604438 0xe1cc5b39a1d20a9c 0xba1d3df14ef1dbc1 0.420 0.447388 300700 0 PASS
414 1077415394 surface-world gcc14-default 1 27 12 27666 0.000000 -140.000000 -2018.636719 0xb65f4acca21a93d8 0x0a3cddad02604438 0xe1cc5b39a1d20a9c 0xba1d3df14ef1dbc1 0.190 0.205810 88040 0 PASS
415 1077415394 surface-world gcc14-default 12 27 12 27666 0.000000 -140.000000 -2018.636719 0xb65f4acca21a93d8 0x0a3cddad02604438 0xe1cc5b39a1d20a9c 0xba1d3df14ef1dbc1 0.423 0.451176 302760 0 PASS
416 1077415394 floating-islands clang19-off 1 27 9 25992 39.199219 20.472656 -109.757812 0x76ffc67a9d410089 0x712f9bef468c36e1 0xd15add3c403cf9d2 0x1f98a205464ab093 1.607 1.623777 88912 0 PASS
417 1077415394 floating-islands clang19-off 12 27 9 25992 39.199219 20.472656 -109.757812 0x76ffc67a9d410089 0x712f9bef468c36e1 0xd15add3c403cf9d2 0x1f98a205464ab093 0.714 0.740654 303924 0 PASS
418 1077415394 floating-islands clang19-on 1 27 9 25992 39.199219 20.472656 -109.757812 0x76ffc67a9d410089 0x712f9bef468c36e1 0xd15add3c403cf9d2 0x1f98a205464ab093 1.587 1.603589 89156 0 PASS
419 1077415394 floating-islands clang19-on 12 27 9 25992 39.199219 20.472656 -109.757812 0x76ffc67a9d410089 0x712f9bef468c36e1 0xd15add3c403cf9d2 0x1f98a205464ab093 0.678 0.704362 303820 0 PASS
420 1077415394 floating-islands gcc14-default 1 27 9 25992 39.199219 20.472656 -109.757812 0x76ffc67a9d410089 0x712f9bef468c36e1 0xd15add3c403cf9d2 0x1f98a205464ab093 1.751 1.766817 89248 0 PASS
421 1077415394 floating-islands gcc14-default 12 27 9 25992 39.199219 20.472656 -109.757812 0x76ffc67a9d410089 0x712f9bef468c36e1 0xd15add3c403cf9d2 0x1f98a205464ab093 0.726 0.753263 304336 0 PASS
422 1130999017 surface-world clang19-off 1 27 15 38852 0.000000 -140.000000 -1885.390625 0xd4fee006d89064ec 0xc2e722815c510b8d 0xaee1e5e204213289 0x6107884769e6196b 0.258 0.275630 85440 0 PASS
423 1130999017 surface-world clang19-off 12 27 15 38852 0.000000 -140.000000 -1885.390625 0xd4fee006d89064ec 0xc2e722815c510b8d 0xaee1e5e204213289 0x6107884769e6196b 0.452 0.478967 301608 0 PASS
424 1130999017 surface-world clang19-on 1 27 15 38852 0.000000 -140.000000 -1885.390625 0xd4fee006d89064ec 0xc2e722815c510b8d 0xaee1e5e204213289 0x6107884769e6196b 0.251 0.266976 85864 0 PASS
425 1130999017 surface-world clang19-on 12 27 15 38852 0.000000 -140.000000 -1885.390625 0xd4fee006d89064ec 0xc2e722815c510b8d 0xaee1e5e204213289 0x6107884769e6196b 0.443 0.472895 299580 0 PASS
426 1130999017 surface-world gcc14-default 1 27 15 38852 0.000000 -140.000000 -1885.390625 0xd4fee006d89064ec 0xc2e722815c510b8d 0xaee1e5e204213289 0x6107884769e6196b 0.243 0.258360 86216 0 PASS
427 1130999017 surface-world gcc14-default 12 27 15 38852 0.000000 -140.000000 -1885.390625 0xd4fee006d89064ec 0xc2e722815c510b8d 0xaee1e5e204213289 0x6107884769e6196b 0.430 0.459582 300604 0 PASS
428 1130999017 floating-islands clang19-off 1 27 14 25686 -39.199219 19.199219 -119.304688 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1 0x24ac0b621165dc1c 0x3e15c5e91f7d7e46 1.116 1.133283 84856 0 PASS
429 1130999017 floating-islands clang19-off 12 27 14 25686 -39.199219 19.199219 -119.304688 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1 0x24ac0b621165dc1c 0x3e15c5e91f7d7e46 0.608 0.635013 299952 0 PASS
430 1130999017 floating-islands clang19-on 1 27 14 25686 -39.199219 19.199219 -119.304688 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1 0x24ac0b621165dc1c 0x3e15c5e91f7d7e46 1.131 1.147307 84968 0 PASS
431 1130999017 floating-islands clang19-on 12 27 14 25686 -39.199219 19.199219 -119.304688 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1 0x24ac0b621165dc1c 0x3e15c5e91f7d7e46 0.600 0.627582 299320 0 PASS
432 1130999017 floating-islands gcc14-default 1 27 14 25686 -39.199219 19.199219 -119.304688 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1 0x24ac0b621165dc1c 0x3e15c5e91f7d7e46 1.180 1.196907 85352 0 PASS
433 1130999017 floating-islands gcc14-default 12 27 14 25686 -39.199219 19.199219 -119.304688 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1 0x24ac0b621165dc1c 0x3e15c5e91f7d7e46 0.653 0.679477 300280 0 PASS
434 1156488597 surface-world clang19-off 1 27 10 26660 0.000000 -140.000000 -2012.031250 0xf918cd1d254bf5ad 0x93e291c7e8ab3281 0x115d528201ee55de 0x8282368945b9aa39 0.169 0.185411 84912 0 PASS
435 1156488597 surface-world clang19-off 12 27 10 26660 0.000000 -140.000000 -2012.031250 0xf918cd1d254bf5ad 0x93e291c7e8ab3281 0x115d528201ee55de 0x8282368945b9aa39 0.415 0.440950 296868 0 PASS
436 1156488597 surface-world clang19-on 1 27 10 26660 0.000000 -140.000000 -2012.031250 0xf918cd1d254bf5ad 0x93e291c7e8ab3281 0x115d528201ee55de 0x8282368945b9aa39 0.170 0.185517 85336 0 PASS
437 1156488597 surface-world clang19-on 12 27 10 26660 0.000000 -140.000000 -2012.031250 0xf918cd1d254bf5ad 0x93e291c7e8ab3281 0x115d528201ee55de 0x8282368945b9aa39 0.458 0.494970 296900 0 PASS
438 1156488597 surface-world gcc14-default 1 27 10 26660 0.000000 -140.000000 -2012.031250 0xf918cd1d254bf5ad 0x93e291c7e8ab3281 0x115d528201ee55de 0x8282368945b9aa39 0.178 0.205454 85672 0 PASS
439 1156488597 surface-world gcc14-default 12 27 10 26660 0.000000 -140.000000 -2012.031250 0xf918cd1d254bf5ad 0x93e291c7e8ab3281 0x115d528201ee55de 0x8282368945b9aa39 0.454 0.483690 297532 0 PASS
440 1156488597 floating-islands clang19-off 1 27 14 22928 -39.199219 16.464844 -121.550781 0x080c04f591e988da 0x7d2e52b446efd9d1 0x6dccf350fe593410 0x97ae318aaff326ae 1.464 1.480495 87092 0 PASS
441 1156488597 floating-islands clang19-off 12 27 14 22928 -39.199219 16.464844 -121.550781 0x080c04f591e988da 0x7d2e52b446efd9d1 0x6dccf350fe593410 0x97ae318aaff326ae 0.684 0.710558 301280 0 PASS
442 1156488597 floating-islands clang19-on 1 27 14 22928 -39.199219 16.464844 -121.550781 0x080c04f591e988da 0x7d2e52b446efd9d1 0x6dccf350fe593410 0x97ae318aaff326ae 1.481 1.498290 87056 0 PASS
443 1156488597 floating-islands clang19-on 12 27 14 22928 -39.199219 16.464844 -121.550781 0x080c04f591e988da 0x7d2e52b446efd9d1 0x6dccf350fe593410 0x97ae318aaff326ae 0.707 0.737492 301040 0 PASS
444 1156488597 floating-islands gcc14-default 1 27 14 22928 -39.199219 16.464844 -121.550781 0x080c04f591e988da 0x7d2e52b446efd9d1 0x6dccf350fe593410 0x97ae318aaff326ae 1.635 1.652170 87388 0 PASS
445 1156488597 floating-islands gcc14-default 12 27 14 22928 -39.199219 16.464844 -121.550781 0x080c04f591e988da 0x7d2e52b446efd9d1 0x6dccf350fe593410 0x97ae318aaff326ae 0.730 0.758962 301644 0 PASS
446 1172304228 surface-world clang19-off 1 27 9 28078 0.000000 -140.000000 -2030.214844 0x466d74beb6a3c43f 0x935c08e020dbe116 0x495814a08ffe3b6e 0xa3a7e103fe545c77 0.159 0.176089 84448 0 PASS
447 1172304228 surface-world clang19-off 12 27 9 28078 0.000000 -140.000000 -2030.214844 0x466d74beb6a3c43f 0x935c08e020dbe116 0x495814a08ffe3b6e 0xa3a7e103fe545c77 0.416 0.444129 294644 0 PASS
448 1172304228 surface-world clang19-on 1 27 9 28078 0.000000 -140.000000 -2030.214844 0x466d74beb6a3c43f 0x935c08e020dbe116 0x495814a08ffe3b6e 0xa3a7e103fe545c77 0.159 0.174634 84268 0 PASS
449 1172304228 surface-world clang19-on 12 27 9 28078 0.000000 -140.000000 -2030.214844 0x466d74beb6a3c43f 0x935c08e020dbe116 0x495814a08ffe3b6e 0xa3a7e103fe545c77 0.409 0.435936 294684 0 PASS
450 1172304228 surface-world gcc14-default 1 27 9 28078 0.000000 -140.000000 -2030.214844 0x466d74beb6a3c43f 0x935c08e020dbe116 0x495814a08ffe3b6e 0xa3a7e103fe545c77 0.161 0.177733 84864 0 PASS
451 1172304228 surface-world gcc14-default 12 27 9 28078 0.000000 -140.000000 -2030.214844 0x466d74beb6a3c43f 0x935c08e020dbe116 0x495814a08ffe3b6e 0xa3a7e103fe545c77 0.407 0.433961 295552 0 PASS
452 1172304228 floating-islands clang19-off 1 27 12 25280 -39.199219 16.859375 -120.363281 0xa4ceaef6289c2778 0xac854a5846adc6cb 0xc79cc3dcf8aa7882 0x2a36a844bc640838 0.855 0.871675 86436 0 PASS
453 1172304228 floating-islands clang19-off 12 27 12 25280 -39.199219 16.859375 -120.363281 0xa4ceaef6289c2778 0xac854a5846adc6cb 0xc79cc3dcf8aa7882 0x2a36a844bc640838 0.566 0.594146 300964 0 PASS
454 1172304228 floating-islands clang19-on 1 27 12 25280 -39.199219 16.859375 -120.363281 0xa4ceaef6289c2778 0xac854a5846adc6cb 0xc79cc3dcf8aa7882 0x2a36a844bc640838 0.866 0.882396 86372 0 PASS
455 1172304228 floating-islands clang19-on 12 27 12 25280 -39.199219 16.859375 -120.363281 0xa4ceaef6289c2778 0xac854a5846adc6cb 0xc79cc3dcf8aa7882 0x2a36a844bc640838 0.576 0.603920 301252 0 PASS
456 1172304228 floating-islands gcc14-default 1 27 12 25280 -39.199219 16.859375 -120.363281 0xa4ceaef6289c2778 0xac854a5846adc6cb 0xc79cc3dcf8aa7882 0x2a36a844bc640838 0.938 0.954134 86620 0 PASS
457 1172304228 floating-islands gcc14-default 12 27 12 25280 -39.199219 16.859375 -120.363281 0xa4ceaef6289c2778 0xac854a5846adc6cb 0xc79cc3dcf8aa7882 0x2a36a844bc640838 0.586 0.615590 301852 0 PASS
458 1370340570 surface-world clang19-off 1 27 9 26888 0.000000 -140.000000 -2026.738281 0xb71aa861999e9064 0x5e6eb187fe7aa3d1 0xdbd2bf3e112249bb 0xbb50eff77e4ba5a7 0.159 0.175263 84752 0 PASS
459 1370340570 surface-world clang19-off 12 27 9 26888 0.000000 -140.000000 -2026.738281 0xb71aa861999e9064 0x5e6eb187fe7aa3d1 0xdbd2bf3e112249bb 0xbb50eff77e4ba5a7 0.416 0.441389 295492 0 PASS
460 1370340570 surface-world clang19-on 1 27 9 26888 0.000000 -140.000000 -2026.738281 0xb71aa861999e9064 0x5e6eb187fe7aa3d1 0xdbd2bf3e112249bb 0xbb50eff77e4ba5a7 0.153 0.168519 84744 0 PASS
461 1370340570 surface-world clang19-on 12 27 9 26888 0.000000 -140.000000 -2026.738281 0xb71aa861999e9064 0x5e6eb187fe7aa3d1 0xdbd2bf3e112249bb 0xbb50eff77e4ba5a7 0.409 0.438368 295092 0 PASS
462 1370340570 surface-world gcc14-default 1 27 9 26888 0.000000 -140.000000 -2026.738281 0xb71aa861999e9064 0x5e6eb187fe7aa3d1 0xdbd2bf3e112249bb 0xbb50eff77e4ba5a7 0.155 0.170254 85124 0 PASS
463 1370340570 surface-world gcc14-default 12 27 9 26888 0.000000 -140.000000 -2026.738281 0xb71aa861999e9064 0x5e6eb187fe7aa3d1 0xdbd2bf3e112249bb 0xbb50eff77e4ba5a7 0.409 0.437481 296036 0 PASS
464 1370340570 floating-islands clang19-off 1 27 8 20458 -39.199219 17.164062 -114.296875 0xfe631978312f065a 0xc41cdcb438a98b86 0xc2df8d535d4c97d9 0xe26e0e5cc9e21c14 1.581 1.599496 86948 0 PASS
465 1370340570 floating-islands clang19-off 12 27 8 20458 -39.199219 17.164062 -114.296875 0xfe631978312f065a 0xc41cdcb438a98b86 0xc2df8d535d4c97d9 0xe26e0e5cc9e21c14 0.702 0.729410 301536 0 PASS
466 1370340570 floating-islands clang19-on 1 27 8 20458 -39.199219 17.164062 -114.296875 0xfe631978312f065a 0xc41cdcb438a98b86 0xc2df8d535d4c97d9 0xe26e0e5cc9e21c14 1.595 1.611272 87072 0 PASS
467 1370340570 floating-islands clang19-on 12 27 8 20458 -39.199219 17.164062 -114.296875 0xfe631978312f065a 0xc41cdcb438a98b86 0xc2df8d535d4c97d9 0xe26e0e5cc9e21c14 0.691 0.717960 301388 0 PASS
468 1370340570 floating-islands gcc14-default 1 27 8 20458 -39.199219 17.164062 -114.296875 0xfe631978312f065a 0xc41cdcb438a98b86 0xc2df8d535d4c97d9 0xe26e0e5cc9e21c14 1.728 1.744814 87540 0 PASS
469 1370340570 floating-islands gcc14-default 12 27 8 20458 -39.199219 17.164062 -114.296875 0xfe631978312f065a 0xc41cdcb438a98b86 0xc2df8d535d4c97d9 0xe26e0e5cc9e21c14 0.754 0.781424 302088 0 PASS
470 1383925073 surface-world clang19-off 1 27 13 27826 0.000000 -140.000000 -2018.113281 0x564bb6a29953fc31 0x891c57b01dc509f8 0xf94dfef226e94ece 0xf277b25c2571f165 0.181 0.196556 83960 0 PASS
471 1383925073 surface-world clang19-off 12 27 13 27826 0.000000 -140.000000 -2018.113281 0x564bb6a29953fc31 0x891c57b01dc509f8 0xf94dfef226e94ece 0xf277b25c2571f165 0.426 0.453780 298648 0 PASS
472 1383925073 surface-world clang19-on 1 27 13 27826 0.000000 -140.000000 -2018.113281 0x564bb6a29953fc31 0x891c57b01dc509f8 0xf94dfef226e94ece 0xf277b25c2571f165 0.184 0.201221 84120 0 PASS
473 1383925073 surface-world clang19-on 12 27 13 27826 0.000000 -140.000000 -2018.113281 0x564bb6a29953fc31 0x891c57b01dc509f8 0xf94dfef226e94ece 0xf277b25c2571f165 0.407 0.434497 298520 0 PASS
474 1383925073 surface-world gcc14-default 1 27 13 27826 0.000000 -140.000000 -2018.113281 0x564bb6a29953fc31 0x891c57b01dc509f8 0xf94dfef226e94ece 0xf277b25c2571f165 0.175 0.191617 84528 0 PASS
475 1383925073 surface-world gcc14-default 12 27 13 27826 0.000000 -140.000000 -2018.113281 0x564bb6a29953fc31 0x891c57b01dc509f8 0xf94dfef226e94ece 0xf277b25c2571f165 0.406 0.432371 299400 0 PASS
476 1383925073 floating-islands clang19-off 1 27 8 17340 64.398438 76.132812 -101.687500 0x20a6d43f24557065 0xace78f99c63a90bc 0xba9503af152a1017 0xb09b522bed1b8c47 1.524 1.540376 85480 0 PASS
477 1383925073 floating-islands clang19-off 12 27 8 17340 64.398438 76.132812 -101.687500 0x20a6d43f24557065 0xace78f99c63a90bc 0xba9503af152a1017 0xb09b522bed1b8c47 0.688 0.716589 299068 0 PASS
478 1383925073 floating-islands clang19-on 1 27 8 17340 64.398438 76.132812 -101.687500 0x20a6d43f24557065 0xace78f99c63a90bc 0xba9503af152a1017 0xb09b522bed1b8c47 1.524 1.540170 85484 0 PASS
479 1383925073 floating-islands clang19-on 12 27 8 17340 64.398438 76.132812 -101.687500 0x20a6d43f24557065 0xace78f99c63a90bc 0xba9503af152a1017 0xb09b522bed1b8c47 0.693 0.719692 299196 0 PASS
480 1383925073 floating-islands gcc14-default 1 27 8 17340 64.398438 76.132812 -101.687500 0x20a6d43f24557065 0xace78f99c63a90bc 0xba9503af152a1017 0xb09b522bed1b8c47 1.661 1.676492 85764 0 PASS
481 1383925073 floating-islands gcc14-default 12 27 8 17340 64.398438 76.132812 -101.687500 0x20a6d43f24557065 0xace78f99c63a90bc 0xba9503af152a1017 0xb09b522bed1b8c47 0.728 0.755271 299796 0 PASS
482 1401164998 surface-world clang19-off 1 27 14 33671 0.000000 -140.000000 -1923.625000 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e 0xd87700809feafff4 0xc2e832153a03b5d7 0.286 0.301458 85156 0 PASS
483 1401164998 surface-world clang19-off 12 27 14 33671 0.000000 -140.000000 -1923.625000 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e 0xd87700809feafff4 0xc2e832153a03b5d7 0.451 0.477156 300516 0 PASS
484 1401164998 surface-world clang19-on 1 27 14 33671 0.000000 -140.000000 -1923.625000 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e 0xd87700809feafff4 0xc2e832153a03b5d7 0.282 0.297994 85456 0 PASS
485 1401164998 surface-world clang19-on 12 27 14 33671 0.000000 -140.000000 -1923.625000 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e 0xd87700809feafff4 0xc2e832153a03b5d7 0.448 0.476334 300584 0 PASS
486 1401164998 surface-world gcc14-default 1 27 14 33671 0.000000 -140.000000 -1923.625000 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e 0xd87700809feafff4 0xc2e832153a03b5d7 0.278 0.294323 85820 0 PASS
487 1401164998 surface-world gcc14-default 12 27 14 33671 0.000000 -140.000000 -1923.625000 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e 0xd87700809feafff4 0xc2e832153a03b5d7 0.463 0.489660 301300 0 PASS
488 1401164998 floating-islands clang19-off 1 27 12 25478 -25.199219 -76.433594 -133.500000 0xa22b8a0f16d1cb98 0x85e184e7768795d1 0x29a6f8ac91d35e09 0xb778d52817341912 1.889 1.905353 86852 0 PASS
489 1401164998 floating-islands clang19-off 12 27 12 25478 -25.199219 -76.433594 -133.500000 0xa22b8a0f16d1cb98 0x85e184e7768795d1 0x29a6f8ac91d35e09 0xb778d52817341912 0.755 0.783092 299600 0 PASS
490 1401164998 floating-islands clang19-on 1 27 12 25478 -25.199219 -76.433594 -133.500000 0xa22b8a0f16d1cb98 0x85e184e7768795d1 0x29a6f8ac91d35e09 0xb778d52817341912 1.918 1.935211 87012 0 PASS
491 1401164998 floating-islands clang19-on 12 27 12 25478 -25.199219 -76.433594 -133.500000 0xa22b8a0f16d1cb98 0x85e184e7768795d1 0x29a6f8ac91d35e09 0xb778d52817341912 0.747 0.774451 299876 0 PASS
492 1401164998 floating-islands gcc14-default 1 27 12 25478 -25.199219 -76.433594 -133.500000 0xa22b8a0f16d1cb98 0x85e184e7768795d1 0x29a6f8ac91d35e09 0xb778d52817341912 1.962 1.978881 87376 0 PASS
493 1401164998 floating-islands gcc14-default 12 27 12 25478 -25.199219 -76.433594 -133.500000 0xa22b8a0f16d1cb98 0x85e184e7768795d1 0x29a6f8ac91d35e09 0xb778d52817341912 0.773 0.800827 300436 0 PASS
494 1558879574 surface-world clang19-off 1 27 12 30022 0.000000 -140.000000 -2026.257812 0x566bd8e41e9ce9de 0xd7344edfeac99334 0xffbfbdcc9b7796a9 0x0ab334df0eb60fd6 0.178 0.192933 83876 0 PASS
495 1558879574 surface-world clang19-off 12 27 12 30022 0.000000 -140.000000 -2026.257812 0x566bd8e41e9ce9de 0xd7344edfeac99334 0xffbfbdcc9b7796a9 0x0ab334df0eb60fd6 0.430 0.457703 298956 0 PASS
496 1558879574 surface-world clang19-on 1 27 12 30022 0.000000 -140.000000 -2026.257812 0x566bd8e41e9ce9de 0xd7344edfeac99334 0xffbfbdcc9b7796a9 0x0ab334df0eb60fd6 0.176 0.192307 83696 0 PASS
497 1558879574 surface-world clang19-on 12 27 12 30022 0.000000 -140.000000 -2026.257812 0x566bd8e41e9ce9de 0xd7344edfeac99334 0xffbfbdcc9b7796a9 0x0ab334df0eb60fd6 0.413 0.440116 297112 0 PASS
498 1558879574 surface-world gcc14-default 1 27 12 30022 0.000000 -140.000000 -2026.257812 0x566bd8e41e9ce9de 0xd7344edfeac99334 0xffbfbdcc9b7796a9 0x0ab334df0eb60fd6 0.182 0.197351 84408 0 PASS
499 1558879574 surface-world gcc14-default 12 27 12 30022 0.000000 -140.000000 -2026.257812 0x566bd8e41e9ce9de 0xd7344edfeac99334 0xffbfbdcc9b7796a9 0x0ab334df0eb60fd6 0.425 0.451513 299728 0 PASS
500 1558879574 floating-islands clang19-off 1 27 15 37078 0.000000 -15.878906 -116.753906 0x675134538e8ca09b 0x2e32a5444b8be6d7 0xa3945849da18e24a 0xda29fda6f39d36f9 0.864 0.880169 84868 0 PASS
501 1558879574 floating-islands clang19-off 12 27 15 37078 0.000000 -15.878906 -116.753906 0x675134538e8ca09b 0x2e32a5444b8be6d7 0xa3945849da18e24a 0xda29fda6f39d36f9 0.595 0.623192 301320 0 PASS
502 1558879574 floating-islands clang19-on 1 27 15 37078 0.000000 -15.878906 -116.753906 0x675134538e8ca09b 0x2e32a5444b8be6d7 0xa3945849da18e24a 0xda29fda6f39d36f9 0.898 0.914741 84904 0 PASS
503 1558879574 floating-islands clang19-on 12 27 15 37078 0.000000 -15.878906 -116.753906 0x675134538e8ca09b 0x2e32a5444b8be6d7 0xa3945849da18e24a 0xda29fda6f39d36f9 0.576 0.602221 300580 0 PASS
504 1558879574 floating-islands gcc14-default 1 27 15 37078 0.000000 -15.878906 -116.753906 0x675134538e8ca09b 0x2e32a5444b8be6d7 0xa3945849da18e24a 0xda29fda6f39d36f9 0.948 0.964253 85196 0 PASS
505 1558879574 floating-islands gcc14-default 12 27 15 37078 0.000000 -15.878906 -116.753906 0x675134538e8ca09b 0x2e32a5444b8be6d7 0xa3945849da18e24a 0xda29fda6f39d36f9 0.596 0.625674 301684 0 PASS
506 1753015542 surface-world clang19-off 1 27 9 27536 0.000000 -140.000000 -2004.562500 0x3557e0f7c1298c35 0x833da36dd2c02e13 0x656f82e69ccdecc2 0xac9935bb75fdb59c 0.157 0.174474 85136 0 PASS
507 1753015542 surface-world clang19-off 12 27 9 27536 0.000000 -140.000000 -2004.562500 0x3557e0f7c1298c35 0x833da36dd2c02e13 0x656f82e69ccdecc2 0xac9935bb75fdb59c 0.400 0.426649 295468 0 PASS
508 1753015542 surface-world clang19-on 1 27 9 27536 0.000000 -140.000000 -2004.562500 0x3557e0f7c1298c35 0x833da36dd2c02e13 0x656f82e69ccdecc2 0xac9935bb75fdb59c 0.157 0.173307 85120 0 PASS
509 1753015542 surface-world clang19-on 12 27 9 27536 0.000000 -140.000000 -2004.562500 0x3557e0f7c1298c35 0x833da36dd2c02e13 0x656f82e69ccdecc2 0xac9935bb75fdb59c 0.426 0.452773 295640 0 PASS
510 1753015542 surface-world gcc14-default 1 27 9 27536 0.000000 -140.000000 -2004.562500 0x3557e0f7c1298c35 0x833da36dd2c02e13 0x656f82e69ccdecc2 0xac9935bb75fdb59c 0.161 0.180130 85696 0 PASS
511 1753015542 surface-world gcc14-default 12 27 9 27536 0.000000 -140.000000 -2004.562500 0x3557e0f7c1298c35 0x833da36dd2c02e13 0x656f82e69ccdecc2 0xac9935bb75fdb59c 0.404 0.430695 296144 0 PASS
512 1753015542 floating-islands clang19-off 1 27 13 23050 -25.199219 -75.425781 -125.304688 0xd628ec790fd17bd2 0x5602b3e7ed3f852a 0x844b0f983d0a8dcb 0xdef4bef7bdf60b15 1.084 1.099925 85304 0 PASS
513 1753015542 floating-islands clang19-off 12 27 13 23050 -25.199219 -75.425781 -125.304688 0xd628ec790fd17bd2 0x5602b3e7ed3f852a 0x844b0f983d0a8dcb 0xdef4bef7bdf60b15 0.611 0.636921 299408 0 PASS
514 1753015542 floating-islands clang19-on 1 27 13 23050 -25.199219 -75.425781 -125.304688 0xd628ec790fd17bd2 0x5602b3e7ed3f852a 0x844b0f983d0a8dcb 0xdef4bef7bdf60b15 1.100 1.116086 85256 0 PASS
515 1753015542 floating-islands clang19-on 12 27 13 23050 -25.199219 -75.425781 -125.304688 0xd628ec790fd17bd2 0x5602b3e7ed3f852a 0x844b0f983d0a8dcb 0xdef4bef7bdf60b15 0.615 0.646016 299692 0 PASS
516 1753015542 floating-islands gcc14-default 1 27 13 23050 -25.199219 -75.425781 -125.304688 0xd628ec790fd17bd2 0x5602b3e7ed3f852a 0x844b0f983d0a8dcb 0xdef4bef7bdf60b15 1.222 1.237954 85648 0 PASS
517 1753015542 floating-islands gcc14-default 12 27 13 23050 -25.199219 -75.425781 -125.304688 0xd628ec790fd17bd2 0x5602b3e7ed3f852a 0x844b0f983d0a8dcb 0xdef4bef7bdf60b15 0.638 0.665451 300048 0 PASS
518 1827697875 surface-world clang19-off 1 27 12 29182 0.000000 -140.000000 -2018.507812 0xd945dc9d11f16156 0x59cd0f8103174807 0xbeae510e83e10bb9 0xe561cd4f1b5fc4a0 0.176 0.193003 86328 0 PASS
519 1827697875 surface-world clang19-off 12 27 12 29182 0.000000 -140.000000 -2018.507812 0xd945dc9d11f16156 0x59cd0f8103174807 0xbeae510e83e10bb9 0xe561cd4f1b5fc4a0 0.404 0.432768 301456 0 PASS
520 1827697875 surface-world clang19-on 1 27 12 29182 0.000000 -140.000000 -2018.507812 0xd945dc9d11f16156 0x59cd0f8103174807 0xbeae510e83e10bb9 0xe561cd4f1b5fc4a0 0.168 0.184638 86524 0 PASS
521 1827697875 surface-world clang19-on 12 27 12 29182 0.000000 -140.000000 -2018.507812 0xd945dc9d11f16156 0x59cd0f8103174807 0xbeae510e83e10bb9 0xe561cd4f1b5fc4a0 0.403 0.430151 301156 0 PASS
522 1827697875 surface-world gcc14-default 1 27 12 29182 0.000000 -140.000000 -2018.507812 0xd945dc9d11f16156 0x59cd0f8103174807 0xbeae510e83e10bb9 0xe561cd4f1b5fc4a0 0.171 0.187425 86968 0 PASS
523 1827697875 surface-world gcc14-default 12 27 12 29182 0.000000 -140.000000 -2018.507812 0xd945dc9d11f16156 0x59cd0f8103174807 0xbeae510e83e10bb9 0xe561cd4f1b5fc4a0 0.404 0.431313 301904 0 PASS
524 1827697875 floating-islands clang19-off 1 27 11 34624 0.000000 -19.441406 -116.312500 0x786671c16ae75f4f 0x2c0c94465b7da251 0x6bad3e5799515fde 0x7ff03f198fd07c37 1.637 1.653412 90444 0 PASS
525 1827697875 floating-islands clang19-off 12 27 11 34624 0.000000 -19.441406 -116.312500 0x786671c16ae75f4f 0x2c0c94465b7da251 0x6bad3e5799515fde 0x7ff03f198fd07c37 0.721 0.749622 306368 0 PASS
526 1827697875 floating-islands clang19-on 1 27 11 34624 0.000000 -19.441406 -116.312500 0x786671c16ae75f4f 0x2c0c94465b7da251 0x6bad3e5799515fde 0x7ff03f198fd07c37 1.650 1.665968 90588 0 PASS
527 1827697875 floating-islands clang19-on 12 27 11 34624 0.000000 -19.441406 -116.312500 0x786671c16ae75f4f 0x2c0c94465b7da251 0x6bad3e5799515fde 0x7ff03f198fd07c37 0.694 0.721945 306148 0 PASS
528 1827697875 floating-islands gcc14-default 1 27 11 34624 0.000000 -19.441406 -116.312500 0x786671c16ae75f4f 0x2c0c94465b7da251 0x6bad3e5799515fde 0x7ff03f198fd07c37 2.219 2.236609 90628 0 PASS
529 1827697875 floating-islands gcc14-default 12 27 11 34624 0.000000 -19.441406 -116.312500 0x786671c16ae75f4f 0x2c0c94465b7da251 0x6bad3e5799515fde 0x7ff03f198fd07c37 0.725 0.753570 306580 0 PASS
530 1909311298 surface-world clang19-off 1 27 13 28862 0.000000 -140.000000 -2007.000000 0x79cb6cf093ee2d27 0xa818f8c1904f73b0 0x529738f49021b6e2 0x22bd170f9b244b7c 0.181 0.196690 83948 0 PASS
531 1909311298 surface-world clang19-off 12 27 13 28862 0.000000 -140.000000 -2007.000000 0x79cb6cf093ee2d27 0xa818f8c1904f73b0 0x529738f49021b6e2 0x22bd170f9b244b7c 0.414 0.439403 298828 0 PASS
532 1909311298 surface-world clang19-on 1 27 13 28862 0.000000 -140.000000 -2007.000000 0x79cb6cf093ee2d27 0xa818f8c1904f73b0 0x529738f49021b6e2 0x22bd170f9b244b7c 0.183 0.197951 84020 0 PASS
533 1909311298 surface-world clang19-on 12 27 13 28862 0.000000 -140.000000 -2007.000000 0x79cb6cf093ee2d27 0xa818f8c1904f73b0 0x529738f49021b6e2 0x22bd170f9b244b7c 0.418 0.445146 297192 0 PASS
534 1909311298 surface-world gcc14-default 1 27 13 28862 0.000000 -140.000000 -2007.000000 0x79cb6cf093ee2d27 0xa818f8c1904f73b0 0x529738f49021b6e2 0x22bd170f9b244b7c 0.179 0.194761 84464 0 PASS
535 1909311298 surface-world gcc14-default 12 27 13 28862 0.000000 -140.000000 -2007.000000 0x79cb6cf093ee2d27 0xa818f8c1904f73b0 0x529738f49021b6e2 0x22bd170f9b244b7c 0.414 0.441193 299492 0 PASS
536 1909311298 floating-islands clang19-off 1 27 12 22040 -39.199219 18.164062 -122.738281 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543 0x9b01cc95b7b3358d 0xd049ccb5663e4449 1.229 1.245451 85180 0 PASS
537 1909311298 floating-islands clang19-off 12 27 12 22040 -39.199219 18.164062 -122.738281 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543 0x9b01cc95b7b3358d 0xd049ccb5663e4449 0.658 0.685935 299900 0 PASS
538 1909311298 floating-islands clang19-on 1 27 12 22040 -39.199219 18.164062 -122.738281 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543 0x9b01cc95b7b3358d 0xd049ccb5663e4449 1.261 1.277763 85712 0 PASS
539 1909311298 floating-islands clang19-on 12 27 12 22040 -39.199219 18.164062 -122.738281 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543 0x9b01cc95b7b3358d 0xd049ccb5663e4449 0.650 0.678722 299884 0 PASS
540 1909311298 floating-islands gcc14-default 1 27 12 22040 -39.199219 18.164062 -122.738281 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543 0x9b01cc95b7b3358d 0xd049ccb5663e4449 1.358 1.374066 86140 0 PASS
541 1909311298 floating-islands gcc14-default 12 27 12 22040 -39.199219 18.164062 -122.738281 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543 0x9b01cc95b7b3358d 0xd049ccb5663e4449 0.694 0.722178 300560 0 PASS
542 2011898099 surface-world clang19-off 1 27 9 28654 0.000000 -140.000000 -2005.066406 0x95f389e603d74998 0xff02d8e0b112c865 0xd5d0a255cb1b18be 0x1138243eba6d47a9 0.171 0.187716 86176 0 PASS
543 2011898099 surface-world clang19-off 12 27 9 28654 0.000000 -140.000000 -2005.066406 0x95f389e603d74998 0xff02d8e0b112c865 0xd5d0a255cb1b18be 0x1138243eba6d47a9 0.430 0.457289 296284 0 PASS
544 2011898099 surface-world clang19-on 1 27 9 28654 0.000000 -140.000000 -2005.066406 0x95f389e603d74998 0xff02d8e0b112c865 0xd5d0a255cb1b18be 0x1138243eba6d47a9 0.164 0.180262 85708 0 PASS
545 2011898099 surface-world clang19-on 12 27 9 28654 0.000000 -140.000000 -2005.066406 0x95f389e603d74998 0xff02d8e0b112c865 0xd5d0a255cb1b18be 0x1138243eba6d47a9 0.421 0.448994 296448 0 PASS
546 2011898099 surface-world gcc14-default 1 27 9 28654 0.000000 -140.000000 -2005.066406 0x95f389e603d74998 0xff02d8e0b112c865 0xd5d0a255cb1b18be 0x1138243eba6d47a9 0.162 0.178213 86360 0 PASS
547 2011898099 surface-world gcc14-default 12 27 9 28654 0.000000 -140.000000 -2005.066406 0x95f389e603d74998 0xff02d8e0b112c865 0xd5d0a255cb1b18be 0x1138243eba6d47a9 0.412 0.438827 296832 0 PASS
548 2011898099 floating-islands clang19-off 1 27 9 21292 39.199219 18.968750 -106.898438 0xb3ad433a09a0d127 0xdea39968a98e0861 0x53948649c6b2beee 0x908898f1ffc5bd9b 1.189 1.205816 88312 0 PASS
549 2011898099 floating-islands clang19-off 12 27 9 21292 39.199219 18.968750 -106.898438 0xb3ad433a09a0d127 0xdea39968a98e0861 0x53948649c6b2beee 0x908898f1ffc5bd9b 0.603 0.630257 302380 0 PASS
550 2011898099 floating-islands clang19-on 1 27 9 21292 39.199219 18.968750 -106.898438 0xb3ad433a09a0d127 0xdea39968a98e0861 0x53948649c6b2beee 0x908898f1ffc5bd9b 1.159 1.174149 88360 0 PASS
551 2011898099 floating-islands clang19-on 12 27 9 21292 39.199219 18.968750 -106.898438 0xb3ad433a09a0d127 0xdea39968a98e0861 0x53948649c6b2beee 0x908898f1ffc5bd9b 0.618 0.645079 302396 0 PASS
552 2011898099 floating-islands gcc14-default 1 27 9 21292 39.199219 18.968750 -106.898438 0xb3ad433a09a0d127 0xdea39968a98e0861 0x53948649c6b2beee 0x908898f1ffc5bd9b 1.289 1.305695 88604 0 PASS
553 2011898099 floating-islands gcc14-default 12 27 9 21292 39.199219 18.968750 -106.898438 0xb3ad433a09a0d127 0xdea39968a98e0861 0x53948649c6b2beee 0x908898f1ffc5bd9b 0.656 0.682775 302628 0 PASS
554 2015768509 surface-world clang19-off 1 27 18 51706 0.000000 -140.000000 -1918.304688 0x9506739f358ba5c5 0xaba43fe9407d51fb 0xb75c6eb38dcff774 0x76ccbd695880c541 0.325 0.339879 84052 0 PASS
555 2015768509 surface-world clang19-off 12 27 18 51706 0.000000 -140.000000 -1918.304688 0x9506739f358ba5c5 0xaba43fe9407d51fb 0xb75c6eb38dcff774 0x76ccbd695880c541 0.462 0.488815 300564 0 PASS
556 2015768509 surface-world clang19-on 1 27 18 51706 0.000000 -140.000000 -1918.304688 0x9506739f358ba5c5 0xaba43fe9407d51fb 0xb75c6eb38dcff774 0x76ccbd695880c541 0.327 0.342810 84232 0 PASS
557 2015768509 surface-world clang19-on 12 27 18 51706 0.000000 -140.000000 -1918.304688 0x9506739f358ba5c5 0xaba43fe9407d51fb 0xb75c6eb38dcff774 0x76ccbd695880c541 0.463 0.489510 300696 0 PASS
558 2015768509 surface-world gcc14-default 1 27 18 51706 0.000000 -140.000000 -1918.304688 0x9506739f358ba5c5 0xaba43fe9407d51fb 0xb75c6eb38dcff774 0x76ccbd695880c541 0.316 0.332179 84352 0 PASS
559 2015768509 surface-world gcc14-default 12 27 18 51706 0.000000 -140.000000 -1918.304688 0x9506739f358ba5c5 0xaba43fe9407d51fb 0xb75c6eb38dcff774 0x76ccbd695880c541 0.461 0.488549 301088 0 PASS
560 2015768509 floating-islands clang19-off 1 27 11 29426 39.199219 20.148438 -111.468750 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094 0xc520e4594055d037 0x1f0f86bd23a0ade4 1.597 1.614573 85204 0 PASS
561 2015768509 floating-islands clang19-off 12 27 11 29426 39.199219 20.148438 -111.468750 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094 0xc520e4594055d037 0x1f0f86bd23a0ade4 0.755 0.784367 300176 0 PASS
562 2015768509 floating-islands clang19-on 1 27 11 29426 39.199219 20.148438 -111.468750 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094 0xc520e4594055d037 0x1f0f86bd23a0ade4 1.623 1.646497 85312 0 PASS
563 2015768509 floating-islands clang19-on 12 27 11 29426 39.199219 20.148438 -111.468750 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094 0xc520e4594055d037 0x1f0f86bd23a0ade4 0.734 0.761770 300316 0 PASS
564 2015768509 floating-islands gcc14-default 1 27 11 29426 39.199219 20.148438 -111.468750 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094 0xc520e4594055d037 0x1f0f86bd23a0ade4 1.884 1.901163 85704 0 PASS
565 2015768509 floating-islands gcc14-default 12 27 11 29426 39.199219 20.148438 -111.468750 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094 0xc520e4594055d037 0x1f0f86bd23a0ade4 0.782 0.808616 300972 0 PASS
566 2070776516 surface-world clang19-off 1 27 10 26952 0.000000 -140.000000 -2010.421875 0x28df1e26bab2140f 0x4af65af7af7045c3 0x9832cc0f7fef9416 0xcc5b3fd5040e7c87 0.192 0.206509 84096 0 PASS
567 2070776516 surface-world clang19-off 12 27 10 26952 0.000000 -140.000000 -2010.421875 0x28df1e26bab2140f 0x4af65af7af7045c3 0x9832cc0f7fef9416 0xcc5b3fd5040e7c87 0.437 0.465311 295796 0 PASS
568 2070776516 surface-world clang19-on 1 27 10 26952 0.000000 -140.000000 -2010.421875 0x28df1e26bab2140f 0x4af65af7af7045c3 0x9832cc0f7fef9416 0xcc5b3fd5040e7c87 0.193 0.209540 83692 0 PASS
569 2070776516 surface-world clang19-on 12 27 10 26952 0.000000 -140.000000 -2010.421875 0x28df1e26bab2140f 0x4af65af7af7045c3 0x9832cc0f7fef9416 0xcc5b3fd5040e7c87 0.456 0.482411 295584 0 PASS
570 2070776516 surface-world gcc14-default 1 27 10 26952 0.000000 -140.000000 -2010.421875 0x28df1e26bab2140f 0x4af65af7af7045c3 0x9832cc0f7fef9416 0xcc5b3fd5040e7c87 0.190 0.206251 84608 0 PASS
571 2070776516 surface-world gcc14-default 12 27 10 26952 0.000000 -140.000000 -2010.421875 0x28df1e26bab2140f 0x4af65af7af7045c3 0x9832cc0f7fef9416 0xcc5b3fd5040e7c87 0.453 0.479961 296012 0 PASS
572 2070776516 floating-islands clang19-off 1 27 8 15728 39.199219 16.496094 -110.636719 0x486603470bf1e852 0xaa6022efbc268013 0xd3227a7e0b6e8b9e 0xefb848cb7eb47d5c 1.112 1.128854 86188 0 PASS
573 2070776516 floating-islands clang19-off 12 27 8 15728 39.199219 16.496094 -110.636719 0x486603470bf1e852 0xaa6022efbc268013 0xd3227a7e0b6e8b9e 0xefb848cb7eb47d5c 0.567 0.594910 299448 0 PASS
574 2070776516 floating-islands clang19-on 1 27 8 15728 39.199219 16.496094 -110.636719 0x486603470bf1e852 0xaa6022efbc268013 0xd3227a7e0b6e8b9e 0xefb848cb7eb47d5c 1.115 1.131163 86004 0 PASS
575 2070776516 floating-islands clang19-on 12 27 8 15728 39.199219 16.496094 -110.636719 0x486603470bf1e852 0xaa6022efbc268013 0xd3227a7e0b6e8b9e 0xefb848cb7eb47d5c 0.613 0.639860 299736 0 PASS
576 2070776516 floating-islands gcc14-default 1 27 8 15728 39.199219 16.496094 -110.636719 0x486603470bf1e852 0xaa6022efbc268013 0xd3227a7e0b6e8b9e 0xefb848cb7eb47d5c 1.167 1.183633 86500 0 PASS
577 2070776516 floating-islands gcc14-default 12 27 8 15728 39.199219 16.496094 -110.636719 0x486603470bf1e852 0xaa6022efbc268013 0xd3227a7e0b6e8b9e 0xefb848cb7eb47d5c 0.637 0.663327 300240 0 PASS
@@ -0,0 +1,97 @@
seed,recipe,camera_x_vox,camera_y_vox,camera_z_vox,nonempty_mesh_tiles,indexed_triangles,density_hash,mesh_hash
-1990830953,floating-islands,-39.199219,16.363281,-121.039062,12,23386,0xc04ef8acd44d8736,0x00e92c97d841dfe5
-1900684165,floating-islands,39.199219,17.675781,-116.339844,10,23186,0xfc7386c15431e2e1,0x46ce25dfb3745f53
-1766412538,floating-islands,-25.199219,-73.816406,-135.394531,12,23618,0xdb6557b98f29060e,0x3b3147a1d020ca02
-1721984596,floating-islands,64.398438,74.085938,-128.433594,10,23728,0xbb7777932cd3328a,0x5d7243f5afb8902a
-1239598758,floating-islands,39.199219,19.425781,-116.691406,12,28162,0x9ee03f2326224bbc,0x0ea03da61381b41a
-1085993262,floating-islands,-39.199219,16.968750,-116.531250,11,25186,0x8dec867557d4e27c,0x13de3a8f9465573d
-1033703345,floating-islands,-25.199219,-75.605469,-128.097656,10,17406,0x6edfcf6b89aee9cd,0xc7b92cd1b8a58590
-854671705,floating-islands,0.000000,-19.800781,-116.507812,13,39000,0xbb5718ca3ad4c181,0x3250d2591365d443
-713963806,floating-islands,64.398438,74.308594,-120.453125,8,16002,0xd590c16395cc515f,0x3a62d63b76bdd260
-621039221,floating-islands,0.000000,-18.796875,-116.769531,15,46224,0x8bf4ceae8c1ddbf6,0x61557967c37529fe
-474448608,floating-islands,-39.199219,20.921875,-121.671875,12,26122,0x2a634b2a3d2e38ef,0x52d2036bf1406614
-432690581,floating-islands,-39.199219,16.421875,-114.292969,7,20532,0xd8b65942bf1c005c,0xe6557b8cadfb3356
-380556572,floating-islands,39.199219,17.386719,-117.285156,10,25334,0x118f50002e1af1b1,0x57d82fed86d7545c
-238925630,floating-islands,-39.199219,16.394531,-123.812500,10,20680,0x36a07bf8d4383533,0x12f59de7f06e5270
-216679974,floating-islands,39.199219,20.230469,-108.953125,9,25284,0x79bb86763243b67e,0x7fd748d3021d506d
-133096164,floating-islands,-39.199219,16.050781,-118.000000,11,26248,0xad7be7cd6b0dbffc,0x06d2caf87f019f22
-112366806,floating-islands,39.199219,16.867188,-114.605469,9,21148,0xda065c33dc944d23,0x3c27d1ee8688fec9
0,floating-islands,-25.199219,-76.226562,-105.089844,9,20740,0x7fd1e3389642e6f6,0x577e52a5ba8d96be
5808593,floating-islands,39.199219,16.003906,-114.574219,10,21000,0xb96bffb27bc457e0,0x1f867a2add682123
28573228,floating-islands,0.000000,-18.683594,-116.187500,12,32456,0x25ed5f499f9bf7ab,0x1c8e67c20374b473
70955227,floating-islands,-39.199219,18.582031,-121.785156,12,17426,0xbe4b9c0ebadde344,0xa9a52cc49ade0f23
75274690,floating-islands,64.398438,72.199219,-121.019531,8,19760,0x045c98172a573800,0x86618a983d61425d
81375760,floating-islands,-39.199219,20.589844,-119.359375,12,24146,0x69b66261833e4676,0x75e6b0f427e7698a
146979566,floating-islands,39.199219,16.625000,-109.785156,9,22370,0x93d0d67042bb05d2,0xe7f4981f907e316e
244951180,floating-islands,0.000000,-18.179688,-116.664062,13,32272,0x0b22965681c5b482,0x582ef8c1d263bedb
245433414,floating-islands,0.000000,-17.574219,-116.296875,11,32838,0x2e75a175d1005e4e,0x8f45449d7125c041
277442974,floating-islands,39.199219,19.328125,-117.750000,13,28088,0x8cb55c56b1629d42,0xc6532d9d3b8a987d
297746112,floating-islands,39.199219,20.609375,-119.089844,15,29396,0x2425273f1a174c04,0x204be5cda8d98412
336768467,floating-islands,0.000000,-20.933594,-116.355469,12,33652,0xfa8249483c186760,0xc42acd7c93e1525c
512532080,floating-islands,0.000000,-20.355469,-116.640625,14,34900,0xb098abe6a38cfe3a,0x436a6541192ed00e
821120640,floating-islands,39.199219,18.121094,-108.417969,11,27034,0x3db9226404527944,0xb3328f1c88e96c70
853538490,floating-islands,64.398438,75.593750,-125.132812,12,21100,0x7e568fc03c907914,0x6a9fc36512216056
861026696,floating-islands,-39.199219,16.035156,-124.882812,12,20194,0xcb6792ec32335dc5,0x195efb6c80156e4a
1026251636,floating-islands,-25.199219,-74.664062,-109.117188,8,19958,0xe62d0a684fcd1398,0xca0e1740a58cafbd
1077415394,floating-islands,39.199219,20.472656,-109.757812,9,25992,0x76ffc67a9d410089,0x712f9bef468c36e1
1130999017,floating-islands,-39.199219,19.199219,-119.304688,14,25686,0x9fc0c1b33da03fc0,0xc0dafe8b2a4570f1
1156488597,floating-islands,-39.199219,16.464844,-121.550781,14,22928,0x080c04f591e988da,0x7d2e52b446efd9d1
1172304228,floating-islands,-39.199219,16.859375,-120.363281,12,25280,0xa4ceaef6289c2778,0xac854a5846adc6cb
1370340570,floating-islands,-39.199219,17.164062,-114.296875,8,20458,0xfe631978312f065a,0xc41cdcb438a98b86
1383925073,floating-islands,64.398438,76.132812,-101.687500,8,17340,0x20a6d43f24557065,0xace78f99c63a90bc
1401164998,floating-islands,-25.199219,-76.433594,-133.500000,12,25478,0xa22b8a0f16d1cb98,0x85e184e7768795d1
1558879574,floating-islands,0.000000,-15.878906,-116.753906,15,37078,0x675134538e8ca09b,0x2e32a5444b8be6d7
1753015542,floating-islands,-25.199219,-75.425781,-125.304688,13,23050,0xd628ec790fd17bd2,0x5602b3e7ed3f852a
1827697875,floating-islands,0.000000,-19.441406,-116.312500,11,34624,0x786671c16ae75f4f,0x2c0c94465b7da251
1909311298,floating-islands,-39.199219,18.164062,-122.738281,12,22040,0x7bdc9a6cccc15b70,0x14e5e1428a1a5543
2011898099,floating-islands,39.199219,18.968750,-106.898438,9,21292,0xb3ad433a09a0d127,0xdea39968a98e0861
2015768509,floating-islands,39.199219,20.148438,-111.468750,11,29426,0x92d4f0690eaa02fd,0x5cea2b8d8ae9a094
2070776516,floating-islands,39.199219,16.496094,-110.636719,8,15728,0x486603470bf1e852,0xaa6022efbc268013
-1990830953,surface-world,0.000000,-140.000000,-2021.785156,9,26366,0x125d085ff63ece8a,0x3f219420ffe76ceb
-1900684165,surface-world,0.000000,-140.000000,-2011.214844,10,27890,0xcc9819b02bd2f880,0x8cbe19f740d2b408
-1766412538,surface-world,0.000000,-140.000000,-2004.851562,9,27572,0x4d04ec633754c4ec,0xca8833dcfe9639d3
-1721984596,surface-world,0.000000,-140.000000,-2006.878906,9,27374,0x65b6ae0a3a1fdd35,0x117d40e403c960bc
-1239598758,surface-world,0.000000,-140.000000,-2001.816406,15,38978,0x8aaf7c7c610e550f,0xeaa948233176c456
-1085993262,surface-world,0.000000,-140.000000,-2018.355469,13,30779,0x6dd63983ab04ee63,0x606e6964e1b2bfa0
-1033703345,surface-world,0.000000,-140.000000,-1585.519531,16,50890,0xe2f8c4b421a9402a,0x730fd7c4692eaff3
-854671705,surface-world,0.000000,-140.000000,-2018.242188,10,26198,0x0a9e017447ffff3d,0x807299923966d5be
-713963806,surface-world,0.000000,-140.000000,-2018.582031,16,30292,0x0bdd79cefc1c4003,0x9807c528ec8ea0e6
-621039221,surface-world,0.000000,-140.000000,-2015.613281,17,30168,0xa27c25107de22a4d,0xde2ffe789eb7fb05
-474448608,surface-world,0.000000,-140.000000,-2020.160156,11,28424,0x0d40ad842a0123ea,0x273fb800c1246cac
-432690581,surface-world,0.000000,-140.000000,-1699.710938,16,44640,0x3a23c958501ee719,0x45e154a2ee8b0f36
-380556572,surface-world,0.000000,-140.000000,-2015.980469,15,27832,0x54c47dd125294a9d,0x6e95e2a4fb185b89
-238925630,surface-world,0.000000,-140.000000,-2021.289062,9,26908,0x01debb25b2642a4d,0xd316a4d6bbbdceee
-216679974,surface-world,0.000000,-140.000000,-2025.835938,9,26538,0x04339f7c537f8920,0xb6d8dab4a5cd82ca
-133096164,surface-world,0.000000,-140.000000,-2023.140625,9,26182,0x1dadb5c6440181c0,0x4681d673371781ba
-112366806,surface-world,0.000000,-140.000000,-1699.476562,16,46567,0x7aafaa55fce58f77,0x84c7d73393ccdb09
0,surface-world,0.000000,-140.000000,-2003.089844,9,27910,0x2339a02328c5ffa6,0x83d31e15bf9161b0
5808593,surface-world,0.000000,-140.000000,-2014.406250,14,29050,0x355972d90ab29593,0x563daf944391ab7c
28573228,surface-world,0.000000,-140.000000,-2016.695312,13,27054,0x57cb2fe09976dc54,0x35ac4f38b432e8b7
70955227,surface-world,0.000000,-140.000000,-2047.484375,13,29926,0xb205ad43941e41d8,0x722e775c7e0735bc
75274690,surface-world,0.000000,-140.000000,-2019.648438,15,28342,0x84af4380d33164a6,0xa18d6de0f9267e9f
81375760,surface-world,0.000000,-140.000000,-1894.296875,18,48305,0x20c34733457b090d,0x9a6b57b63637db1f
146979566,surface-world,0.000000,-140.000000,-2014.601562,14,31096,0x2d27daeb8c1c8b7c,0x2218ed732f71ca53
244951180,surface-world,0.000000,-140.000000,-1798.816406,18,52468,0xfb0ba5f3b28b306d,0x2d5f650a41b8b2bd
245433414,surface-world,0.000000,-140.000000,-2022.468750,14,32860,0xcc51a567f61f812d,0xc59dc3105dd493b2
277442974,surface-world,0.000000,-140.000000,-2004.875000,9,27060,0x8bfa82ca5e492c37,0x1630487dbcc54469
297746112,surface-world,0.000000,-140.000000,-2010.195312,13,38252,0x00c869b6875b7ef5,0x085684513feca8f2
336768467,surface-world,0.000000,-140.000000,-2014.343750,15,29748,0x2756e6dc388ddf57,0x66344082236c5630
512532080,surface-world,0.000000,-140.000000,-2011.875000,14,28800,0xa5ad29a27d991d10,0x060bc1fca8569368
821120640,surface-world,0.000000,-140.000000,-2017.054688,17,29100,0xb6424f19c272b61c,0xe4f7308d87cb3bc2
853538490,surface-world,0.000000,-140.000000,-2000.957031,13,41529,0xbe1224f297dc7ad0,0x7e10918947195940
861026696,surface-world,0.000000,-140.000000,-2015.378906,14,29214,0xb04a05c6e8c488dc,0x28706d092bd82c9a
1026251636,surface-world,0.000000,-140.000000,-2001.500000,9,28584,0xf6bb5ab0a9e2307d,0x4767f425e56543f4
1077415394,surface-world,0.000000,-140.000000,-2018.636719,12,27666,0xb65f4acca21a93d8,0x0a3cddad02604438
1130999017,surface-world,0.000000,-140.000000,-1885.390625,15,38852,0xd4fee006d89064ec,0xc2e722815c510b8d
1156488597,surface-world,0.000000,-140.000000,-2012.031250,10,26660,0xf918cd1d254bf5ad,0x93e291c7e8ab3281
1172304228,surface-world,0.000000,-140.000000,-2030.214844,9,28078,0x466d74beb6a3c43f,0x935c08e020dbe116
1370340570,surface-world,0.000000,-140.000000,-2026.738281,9,26888,0xb71aa861999e9064,0x5e6eb187fe7aa3d1
1383925073,surface-world,0.000000,-140.000000,-2018.113281,13,27826,0x564bb6a29953fc31,0x891c57b01dc509f8
1401164998,surface-world,0.000000,-140.000000,-1923.625000,14,33671,0x539b7c44ed2d40c4,0x2daa8cf5e08fb16e
1558879574,surface-world,0.000000,-140.000000,-2026.257812,12,30022,0x566bd8e41e9ce9de,0xd7344edfeac99334
1753015542,surface-world,0.000000,-140.000000,-2004.562500,9,27536,0x3557e0f7c1298c35,0x833da36dd2c02e13
1827697875,surface-world,0.000000,-140.000000,-2018.507812,12,29182,0xd945dc9d11f16156,0x59cd0f8103174807
1909311298,surface-world,0.000000,-140.000000,-2007.000000,13,28862,0x79cb6cf093ee2d27,0xa818f8c1904f73b0
2011898099,surface-world,0.000000,-140.000000,-2005.066406,9,28654,0x95f389e603d74998,0xff02d8e0b112c865
2015768509,surface-world,0.000000,-140.000000,-1918.304688,18,51706,0x9506739f358ba5c5,0xaba43fe9407d51fb
2070776516,surface-world,0.000000,-140.000000,-2010.421875,10,26952,0x28df1e26bab2140f,0x4af65af7af7045c3
1 seed recipe camera_x_vox camera_y_vox camera_z_vox nonempty_mesh_tiles indexed_triangles density_hash mesh_hash
2 -1990830953 floating-islands -39.199219 16.363281 -121.039062 12 23386 0xc04ef8acd44d8736 0x00e92c97d841dfe5
3 -1900684165 floating-islands 39.199219 17.675781 -116.339844 10 23186 0xfc7386c15431e2e1 0x46ce25dfb3745f53
4 -1766412538 floating-islands -25.199219 -73.816406 -135.394531 12 23618 0xdb6557b98f29060e 0x3b3147a1d020ca02
5 -1721984596 floating-islands 64.398438 74.085938 -128.433594 10 23728 0xbb7777932cd3328a 0x5d7243f5afb8902a
6 -1239598758 floating-islands 39.199219 19.425781 -116.691406 12 28162 0x9ee03f2326224bbc 0x0ea03da61381b41a
7 -1085993262 floating-islands -39.199219 16.968750 -116.531250 11 25186 0x8dec867557d4e27c 0x13de3a8f9465573d
8 -1033703345 floating-islands -25.199219 -75.605469 -128.097656 10 17406 0x6edfcf6b89aee9cd 0xc7b92cd1b8a58590
9 -854671705 floating-islands 0.000000 -19.800781 -116.507812 13 39000 0xbb5718ca3ad4c181 0x3250d2591365d443
10 -713963806 floating-islands 64.398438 74.308594 -120.453125 8 16002 0xd590c16395cc515f 0x3a62d63b76bdd260
11 -621039221 floating-islands 0.000000 -18.796875 -116.769531 15 46224 0x8bf4ceae8c1ddbf6 0x61557967c37529fe
12 -474448608 floating-islands -39.199219 20.921875 -121.671875 12 26122 0x2a634b2a3d2e38ef 0x52d2036bf1406614
13 -432690581 floating-islands -39.199219 16.421875 -114.292969 7 20532 0xd8b65942bf1c005c 0xe6557b8cadfb3356
14 -380556572 floating-islands 39.199219 17.386719 -117.285156 10 25334 0x118f50002e1af1b1 0x57d82fed86d7545c
15 -238925630 floating-islands -39.199219 16.394531 -123.812500 10 20680 0x36a07bf8d4383533 0x12f59de7f06e5270
16 -216679974 floating-islands 39.199219 20.230469 -108.953125 9 25284 0x79bb86763243b67e 0x7fd748d3021d506d
17 -133096164 floating-islands -39.199219 16.050781 -118.000000 11 26248 0xad7be7cd6b0dbffc 0x06d2caf87f019f22
18 -112366806 floating-islands 39.199219 16.867188 -114.605469 9 21148 0xda065c33dc944d23 0x3c27d1ee8688fec9
19 0 floating-islands -25.199219 -76.226562 -105.089844 9 20740 0x7fd1e3389642e6f6 0x577e52a5ba8d96be
20 5808593 floating-islands 39.199219 16.003906 -114.574219 10 21000 0xb96bffb27bc457e0 0x1f867a2add682123
21 28573228 floating-islands 0.000000 -18.683594 -116.187500 12 32456 0x25ed5f499f9bf7ab 0x1c8e67c20374b473
22 70955227 floating-islands -39.199219 18.582031 -121.785156 12 17426 0xbe4b9c0ebadde344 0xa9a52cc49ade0f23
23 75274690 floating-islands 64.398438 72.199219 -121.019531 8 19760 0x045c98172a573800 0x86618a983d61425d
24 81375760 floating-islands -39.199219 20.589844 -119.359375 12 24146 0x69b66261833e4676 0x75e6b0f427e7698a
25 146979566 floating-islands 39.199219 16.625000 -109.785156 9 22370 0x93d0d67042bb05d2 0xe7f4981f907e316e
26 244951180 floating-islands 0.000000 -18.179688 -116.664062 13 32272 0x0b22965681c5b482 0x582ef8c1d263bedb
27 245433414 floating-islands 0.000000 -17.574219 -116.296875 11 32838 0x2e75a175d1005e4e 0x8f45449d7125c041
28 277442974 floating-islands 39.199219 19.328125 -117.750000 13 28088 0x8cb55c56b1629d42 0xc6532d9d3b8a987d
29 297746112 floating-islands 39.199219 20.609375 -119.089844 15 29396 0x2425273f1a174c04 0x204be5cda8d98412
30 336768467 floating-islands 0.000000 -20.933594 -116.355469 12 33652 0xfa8249483c186760 0xc42acd7c93e1525c
31 512532080 floating-islands 0.000000 -20.355469 -116.640625 14 34900 0xb098abe6a38cfe3a 0x436a6541192ed00e
32 821120640 floating-islands 39.199219 18.121094 -108.417969 11 27034 0x3db9226404527944 0xb3328f1c88e96c70
33 853538490 floating-islands 64.398438 75.593750 -125.132812 12 21100 0x7e568fc03c907914 0x6a9fc36512216056
34 861026696 floating-islands -39.199219 16.035156 -124.882812 12 20194 0xcb6792ec32335dc5 0x195efb6c80156e4a
35 1026251636 floating-islands -25.199219 -74.664062 -109.117188 8 19958 0xe62d0a684fcd1398 0xca0e1740a58cafbd
36 1077415394 floating-islands 39.199219 20.472656 -109.757812 9 25992 0x76ffc67a9d410089 0x712f9bef468c36e1
37 1130999017 floating-islands -39.199219 19.199219 -119.304688 14 25686 0x9fc0c1b33da03fc0 0xc0dafe8b2a4570f1
38 1156488597 floating-islands -39.199219 16.464844 -121.550781 14 22928 0x080c04f591e988da 0x7d2e52b446efd9d1
39 1172304228 floating-islands -39.199219 16.859375 -120.363281 12 25280 0xa4ceaef6289c2778 0xac854a5846adc6cb
40 1370340570 floating-islands -39.199219 17.164062 -114.296875 8 20458 0xfe631978312f065a 0xc41cdcb438a98b86
41 1383925073 floating-islands 64.398438 76.132812 -101.687500 8 17340 0x20a6d43f24557065 0xace78f99c63a90bc
42 1401164998 floating-islands -25.199219 -76.433594 -133.500000 12 25478 0xa22b8a0f16d1cb98 0x85e184e7768795d1
43 1558879574 floating-islands 0.000000 -15.878906 -116.753906 15 37078 0x675134538e8ca09b 0x2e32a5444b8be6d7
44 1753015542 floating-islands -25.199219 -75.425781 -125.304688 13 23050 0xd628ec790fd17bd2 0x5602b3e7ed3f852a
45 1827697875 floating-islands 0.000000 -19.441406 -116.312500 11 34624 0x786671c16ae75f4f 0x2c0c94465b7da251
46 1909311298 floating-islands -39.199219 18.164062 -122.738281 12 22040 0x7bdc9a6cccc15b70 0x14e5e1428a1a5543
47 2011898099 floating-islands 39.199219 18.968750 -106.898438 9 21292 0xb3ad433a09a0d127 0xdea39968a98e0861
48 2015768509 floating-islands 39.199219 20.148438 -111.468750 11 29426 0x92d4f0690eaa02fd 0x5cea2b8d8ae9a094
49 2070776516 floating-islands 39.199219 16.496094 -110.636719 8 15728 0x486603470bf1e852 0xaa6022efbc268013
50 -1990830953 surface-world 0.000000 -140.000000 -2021.785156 9 26366 0x125d085ff63ece8a 0x3f219420ffe76ceb
51 -1900684165 surface-world 0.000000 -140.000000 -2011.214844 10 27890 0xcc9819b02bd2f880 0x8cbe19f740d2b408
52 -1766412538 surface-world 0.000000 -140.000000 -2004.851562 9 27572 0x4d04ec633754c4ec 0xca8833dcfe9639d3
53 -1721984596 surface-world 0.000000 -140.000000 -2006.878906 9 27374 0x65b6ae0a3a1fdd35 0x117d40e403c960bc
54 -1239598758 surface-world 0.000000 -140.000000 -2001.816406 15 38978 0x8aaf7c7c610e550f 0xeaa948233176c456
55 -1085993262 surface-world 0.000000 -140.000000 -2018.355469 13 30779 0x6dd63983ab04ee63 0x606e6964e1b2bfa0
56 -1033703345 surface-world 0.000000 -140.000000 -1585.519531 16 50890 0xe2f8c4b421a9402a 0x730fd7c4692eaff3
57 -854671705 surface-world 0.000000 -140.000000 -2018.242188 10 26198 0x0a9e017447ffff3d 0x807299923966d5be
58 -713963806 surface-world 0.000000 -140.000000 -2018.582031 16 30292 0x0bdd79cefc1c4003 0x9807c528ec8ea0e6
59 -621039221 surface-world 0.000000 -140.000000 -2015.613281 17 30168 0xa27c25107de22a4d 0xde2ffe789eb7fb05
60 -474448608 surface-world 0.000000 -140.000000 -2020.160156 11 28424 0x0d40ad842a0123ea 0x273fb800c1246cac
61 -432690581 surface-world 0.000000 -140.000000 -1699.710938 16 44640 0x3a23c958501ee719 0x45e154a2ee8b0f36
62 -380556572 surface-world 0.000000 -140.000000 -2015.980469 15 27832 0x54c47dd125294a9d 0x6e95e2a4fb185b89
63 -238925630 surface-world 0.000000 -140.000000 -2021.289062 9 26908 0x01debb25b2642a4d 0xd316a4d6bbbdceee
64 -216679974 surface-world 0.000000 -140.000000 -2025.835938 9 26538 0x04339f7c537f8920 0xb6d8dab4a5cd82ca
65 -133096164 surface-world 0.000000 -140.000000 -2023.140625 9 26182 0x1dadb5c6440181c0 0x4681d673371781ba
66 -112366806 surface-world 0.000000 -140.000000 -1699.476562 16 46567 0x7aafaa55fce58f77 0x84c7d73393ccdb09
67 0 surface-world 0.000000 -140.000000 -2003.089844 9 27910 0x2339a02328c5ffa6 0x83d31e15bf9161b0
68 5808593 surface-world 0.000000 -140.000000 -2014.406250 14 29050 0x355972d90ab29593 0x563daf944391ab7c
69 28573228 surface-world 0.000000 -140.000000 -2016.695312 13 27054 0x57cb2fe09976dc54 0x35ac4f38b432e8b7
70 70955227 surface-world 0.000000 -140.000000 -2047.484375 13 29926 0xb205ad43941e41d8 0x722e775c7e0735bc
71 75274690 surface-world 0.000000 -140.000000 -2019.648438 15 28342 0x84af4380d33164a6 0xa18d6de0f9267e9f
72 81375760 surface-world 0.000000 -140.000000 -1894.296875 18 48305 0x20c34733457b090d 0x9a6b57b63637db1f
73 146979566 surface-world 0.000000 -140.000000 -2014.601562 14 31096 0x2d27daeb8c1c8b7c 0x2218ed732f71ca53
74 244951180 surface-world 0.000000 -140.000000 -1798.816406 18 52468 0xfb0ba5f3b28b306d 0x2d5f650a41b8b2bd
75 245433414 surface-world 0.000000 -140.000000 -2022.468750 14 32860 0xcc51a567f61f812d 0xc59dc3105dd493b2
76 277442974 surface-world 0.000000 -140.000000 -2004.875000 9 27060 0x8bfa82ca5e492c37 0x1630487dbcc54469
77 297746112 surface-world 0.000000 -140.000000 -2010.195312 13 38252 0x00c869b6875b7ef5 0x085684513feca8f2
78 336768467 surface-world 0.000000 -140.000000 -2014.343750 15 29748 0x2756e6dc388ddf57 0x66344082236c5630
79 512532080 surface-world 0.000000 -140.000000 -2011.875000 14 28800 0xa5ad29a27d991d10 0x060bc1fca8569368
80 821120640 surface-world 0.000000 -140.000000 -2017.054688 17 29100 0xb6424f19c272b61c 0xe4f7308d87cb3bc2
81 853538490 surface-world 0.000000 -140.000000 -2000.957031 13 41529 0xbe1224f297dc7ad0 0x7e10918947195940
82 861026696 surface-world 0.000000 -140.000000 -2015.378906 14 29214 0xb04a05c6e8c488dc 0x28706d092bd82c9a
83 1026251636 surface-world 0.000000 -140.000000 -2001.500000 9 28584 0xf6bb5ab0a9e2307d 0x4767f425e56543f4
84 1077415394 surface-world 0.000000 -140.000000 -2018.636719 12 27666 0xb65f4acca21a93d8 0x0a3cddad02604438
85 1130999017 surface-world 0.000000 -140.000000 -1885.390625 15 38852 0xd4fee006d89064ec 0xc2e722815c510b8d
86 1156488597 surface-world 0.000000 -140.000000 -2012.031250 10 26660 0xf918cd1d254bf5ad 0x93e291c7e8ab3281
87 1172304228 surface-world 0.000000 -140.000000 -2030.214844 9 28078 0x466d74beb6a3c43f 0x935c08e020dbe116
88 1370340570 surface-world 0.000000 -140.000000 -2026.738281 9 26888 0xb71aa861999e9064 0x5e6eb187fe7aa3d1
89 1383925073 surface-world 0.000000 -140.000000 -2018.113281 13 27826 0x564bb6a29953fc31 0x891c57b01dc509f8
90 1401164998 surface-world 0.000000 -140.000000 -1923.625000 14 33671 0x539b7c44ed2d40c4 0x2daa8cf5e08fb16e
91 1558879574 surface-world 0.000000 -140.000000 -2026.257812 12 30022 0x566bd8e41e9ce9de 0xd7344edfeac99334
92 1753015542 surface-world 0.000000 -140.000000 -2004.562500 9 27536 0x3557e0f7c1298c35 0x833da36dd2c02e13
93 1827697875 surface-world 0.000000 -140.000000 -2018.507812 12 29182 0xd945dc9d11f16156 0x59cd0f8103174807
94 1909311298 surface-world 0.000000 -140.000000 -2007.000000 13 28862 0x79cb6cf093ee2d27 0xa818f8c1904f73b0
95 2011898099 surface-world 0.000000 -140.000000 -2005.066406 9 28654 0x95f389e603d74998 0xff02d8e0b112c865
96 2015768509 surface-world 0.000000 -140.000000 -1918.304688 18 51706 0x9506739f358ba5c5 0xaba43fe9407d51fb
97 2070776516 surface-world 0.000000 -140.000000 -2010.421875 10 26952 0x28df1e26bab2140f 0x4af65af7af7045c3
@@ -0,0 +1 @@
runs=576 seeds=48 recipes=2 builds=3 workers=1,12 cross_build_checks=192 cross_build_mismatches=0 worker_checks=288 worker_mismatches=0 empty_mesh_rows=0 max_peak_rss_kib=306580 elapsed_s=432.977
@@ -0,0 +1,114 @@
# WorldAssemblerM3 Linux4 — lazy worker caches
## Change
Added `VoxelForgeCoreThreadLocal::FLazy<T>`: each cache now has a thread-local pointer, allocates its private table on first use, and deletes it when that thread exits. The same helper is used by the namespaced Core and legacy source copies. No cache locks or cross-thread cache sharing were added. The L3 FP-contract preamble and self-test are unchanged.
The change covers the heightfield and island caches in Core, plus the large surface, relief, room-graph, tunnel-density, and diff caches in the shared generator sources. Tunnel-density lookup is now restricted to its `TunnelNetwork` and `Underwater` routes, which are the only routes that populate that table. The standalone TLS probe reports spawn time, RSS and per-thread minor faults, and can touch synthetic SurfaceWorld or FloatingIslands samples. Worker stacks are now 8 MiB.
## Where the baseline TLS came from
Sizes are from the S14 / `046f2af` Clang binary's TLS symbols. The two raw and namespaced source copies are both linked into the standalone executable; both occupy TLS even though a Core call uses the namespaced copy and the legacy/reference route uses the raw copy. The raw legacy cache is not used by the Core API route. `Standalone/Core/core_sources.txt` describes this dual build.
| Cache | Section | Bytes per copy | Copies | Total bytes | Route / use |
|---|---:|---:|---:|---:|---|
| `HeightfieldColumnCache` | `.tbss` | 6,815,744 | 1 | 6,815,744 | Core SurfaceWorld height samples; S14 hot path, any LOD that queries the heightfield |
| `GFloorReliefCache` | `.tdata` | 1,310,720 | 2 | 2,621,440 | Cave room/tunnel/landing floor-relief queries |
| `GRoomGraphCache` | `.tdata` | 970,752 | 2 | 1,941,504 | Room-graph SDF windows; fine/coarse region banks |
| `GSurfColCache` | `.tbss` | 827,000 | 2 | 1,654,000 | `ClassifyTile` surface-column pass; classifier is opt-in in runtime streaming |
| `FSurfaceColumnSource` column table | `.tbss` | 826,856 | 2 | 1,653,712 | Surface operator-stack integer XY columns |
| `PassageReliefCache` | `.tdata` | 655,360 | 2 | 1,310,720 | Passage-relief samples when that feature is queried |
| `IslandColumnCache` | `.tbss` | 1,114,112 | 1 | 1,114,112 | Core FloatingIslands column density, all LOD sample paths |
| `CP_TunnelDensityCache` | `.tbss` | 401,408 | 2 | 802,816 | Native TunnelNetwork/Underwater density chunks |
| `RootLobeCache` | `.tdata` | 155,648 | 1 | 155,648 | Core FloatingIslands root density |
| `HeightfieldColumnCacheNextWay` | `.tbss` | 16,384 | 1 | 16,384 | Heightfield cache replacement metadata |
| `DiffSlots` | `.tdata` | 10,752 | 2 | 21,504 | Only when a sampled chunk has player modifications |
| `RoomGraphCacheSlots` | `.tdata` | 10,240 | 2 | 20,480 | Room-graph generator route |
The listed `.tdata` cache symbols total 6,071,296 bytes of the 6,093,024-byte image; the remaining 21,728 bytes are small TLS state. Their nonzero defaults explain the initialized image: for example, room-graph keys start at `INT32_MIN` / `0xFFFFFFFF`, passage and floor-relief keys use `INDEX_NONE`, diff slots use `INT32_MAX` chunk coordinates, and root-lobe radii default to `1.0`. Zero-default large arrays such as the heightfield and island column tables account for the listed `.tbss` bytes. The listed `.tbss` symbols total 12,056,768 bytes; 21,997 bytes remain for small TLS state and alignment.
The caches have no universal per-LOD allocation: a thread allocates a table only if it reaches that route. Heightfield and island tables are keyed by recipe/plan or island identity and sampled coordinates; surface columns can be reused by repeated XY queries. Room-graph and classifier paths carry region/tile data in their keys, so coarse and fine requests can occupy distinct entries. Relief, tunnel and diff caches are likewise conditional on those features or modified chunks. All preserve the existing thread-local ownership and eviction behavior.
## TLS and per-thread cost
`PT_TLS` was read with `readelf -lW`. The baseline is the committed `046f2af` build; the after builds use this tree.
| Build | `PT_TLS` FileSiz (initialized) | `PT_TLS` MemSiz (per-thread block) |
|---|---:|---:|
| Clang 19 before | 6,093,024 B (5.81 MiB) | 18,171,789 B (17.33 MiB) |
| Clang 19 after | 21,728 B (21.2 KiB) | 43,977 B (42.95 KiB) |
| GCC 14 before | 6,060,396 B (5.78 MiB) | 18,172,504 B (17.33 MiB) |
| GCC 14 after | 9,580 B (9.36 KiB) | 44,696 B (43.65 KiB) |
Serial 12-worker no-touch, SurfaceWorld, and FloatingIslands probes compared baseline and L4. Spawn timing and resident delta use 32 MiB stacks on both sides to isolate TLS cost; the separately tested L4 tool uses 8 MiB stacks. Spawn medians/ranges use the per-worker samples; first-touch fault medians/ranges use each worker's `getrusage(RUSAGE_THREAD)` delta.
| Measurement | Before | After |
|---|---:|---:|
| Median time to start one worker | 5.175 ms | 0.119 ms |
| Median RSS added per new worker, no cache query | 17,756 KiB | 52 KiB |
| 12-worker no-touch probe peak RSS | 268,168 KiB | 32,328 KiB |
| First SurfaceWorld use: RSS increase per worker | 20 KiB | 6,691 KiB |
| First SurfaceWorld use: minor faults per worker | median 1 (range 1–4) | median 331 (range 8–649) |
| First FloatingIslands use: RSS increase per worker | 27–30 KiB | 1,283 KiB |
| First FloatingIslands use: minor faults per worker | median 0 (range 0–7) | median 314 (range 313–319) |
The baseline's first-use deltas are small because its large static TLS cost was already incurred at worker creation. After L4, a SurfaceWorld first use adds about 6.54 MiB per worker, while a FloatingIslands first use adds about 1.25 MiB. The no-touch worker increase is about 99.7% lower. These first-use probes call Core directly with four synthetic samples per worker; the full-view benchmark below measures the hot generation path.
The baseline binary's first `pthread_create` with an 8 MiB worker stack fails with `pthread_create: Invalid argument`; the 17.33 MiB static TLS block cannot fit that stack configuration. Baseline probes succeeded with 32 MiB stacks. L4 passed the 8 MiB worker-stack probe and the L1 checks, so the 32 MiB wrapper is no longer needed. Keep the normal 8 MiB worker stack; these runs provide no reason to retain 32 MiB as a safety margin.
## Generation speed and output
Three interleaved W12 whole-view runs per binary used the 2,553-tile L1 view. `Before` is the exact `046f2af` Clang-off executable.
| Build | Whole-view times | Median (range) |
|---|---|---:|
| `046f2af` baseline | 2.347, 2.399, 2.432 s | 2.399 s (2.347–2.432) |
| L4 Clang 19 off | 2.139, 2.197, 2.207 s | 2.197 s (2.139–2.207) |
L4 is 0.202 s (8.4%) faster at the median; no generation-speed regression was measured. The speed runs also changed the worker stack from 32 to 8 MiB, so the timing difference is not attributed solely to the cache indirection. Peak process RSS was 550,856 KiB before and 410,052 KiB after.
The L1 hashes match at W1 and W12 for both requested compiler settings:
| Build | Density / mesh / payload / topology |
|---|---|
| Clang 19 off, W1 and W12 | `c10697a8f48380c7 / e75c9119a1498cd5 / 49a9a8d1835a6c8c / edcb23288b5e8724` |
| GCC 14 default, W1 and W12 | same |
FloatingIslands seed 0 also matches at W1 and W12: `7fd1e3389642e6f6 / 577e52a5ba8d96be / 7c6ffe9f5bbbb450 / b4d308de116f4657` (density / mesh / payload / topology). It covers 27 tiles, with 9 nonempty mesh tiles and 20,740 indexed triangles; the existing L3 seed-0 hashes match.
## Unreal Linux TLS: documented and inferred
**Documented by glibc:** Its dynamic-linker guidance describes the `dlopen`/TLS compatibility issue and recommends global-dynamic TLS for general shared-object use. In glibc's current `dl-tls.c`, DTV slots for dynamically loaded TLS modules are marked for deferred allocation; `tls_get_addr_tail` performs the allocation when that thread first resolves the TLS address. The new-thread path calls `_dl_allocate_tls_init`, which also records deferred allocation for dynamically loaded modules. Thus, for the dynamic path, the large module block is allocated on first access, per thread that touches the module; a thread that never accesses it does not get that module's payload block. [glibc dynamic-linker guidance](https://www.sourceware.org/glibc/manual/latest/html_node/Dynamic-Linker-Hardening.html), [glibc TLS implementation](https://codebrowser.dev/glibc/glibc/elf/dl-tls.c.html#L599), [glibc thread creation path](https://codebrowser.dev/glibc/glibc/nptl/allocatestack.c.html#L141).
**Inference for Unreal:** This machine did not build or inspect the owner's UE `.so`, so the Core module's TLS model and load timing are unverified. GCC documents global-dynamic as the default model with `-fPIC`, but compiler/linker relaxation and UBT's exact flags can change the emitted access sequence. If Unreal loads Core after engine threads exist and the module uses general-dynamic TLS, any engine thread that first accesses a Core TLS symbol can incur the module's whole static TLS block once; it is not limited to generation workers. The L4 pointer handles reduce that block to about 43 KiB, with each large cache allocated only when its own route runs. Verify the actual `.so` `PT_TLS`, TLS relocations, and UBT compile commands on the owner's Linux build; `LD_DEBUG=tls` can show loader TLS activity. [GCC TLS model options](https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html#Code-Gen-Options).
## Windows/MSVC to-do
1. Build the updated standalone: `powershell -ExecutionPolicy Bypass -File Standalone\Build.ps1 -Target All -CompileWorkers 12`. Confirm the Core response file still carries `/fp:precise` and the shared header is included.
2. Run the L1 view at W1 and W12 with `--world-assembler-prototype --stream-benchmark --stream-pipeline --stream-hash --force-generate --clip-radius=3 --max-clip-level=8 --camera=0,-35,-487.94,0,-22 --far-horizon-lod8-step=0`. Require the four L1 hashes above and no self-test error.
3. Run the seed-0 FloatingIslands check at W1 and W12 with mesh coverage enabled; require matching density/mesh/payload/topology hashes and nonempty mesh coverage.
4. Build the owner's UE 5.7 Windows target with the plugin, inspect the actual `cl.exe` options, and exercise worker creation/use/shutdown. MSVC-specific risks are `/fp:precise` versus any `/fp:fast` or `/fp:contract` override, `thread_local` destructor handling on engine task threads, and allocator/container construction and destruction when a thread first touches or exits a cache. Linux ELF sizes do not predict Windows TLS costs.
## Machine and run record
Builds and benchmarks used CPUs 0–11, at most 12 build jobs, a 6 GiB address-space limit, and normal priority. Governor remained `powersave`; EPP remained `balance_performance`. Clang build: 29.06 s, peak RSS 431,732 KiB. GCC build: 46.14 s, peak RSS 896,076 KiB. Largest benchmark RSS was 550,856 KiB. Logs are in `Saved/Linux/linux4-*.log`; artifacts are under `Standalone/Build/linux-*` and `Standalone/bin/linux/`.
Failed or retried runs:
- The first baseline probes with an 8 MiB worker stack failed for `none`, `surface-world`, and `floating-islands` (`pthread_create: Invalid argument`, exit `-6`, three attempts each). They were rerun serially at 32 MiB and passed. L4 passed all three probes at 8 MiB.
- An early before/after probe batch ran the six probe types concurrently, so its timings and RSS were discarded. Each type was rerun serially; the final before/after comparison uses those serial logs. The discarded logs are retained with `linux4-discarded-parallel-` names.
- No build or world/hash run failed. Both Clang and GCC final builds succeeded.
## Note for the owner
The shared cache change reduces standalone static TLS from 17.33 MiB to about 43 KiB and preserves the L1 and FloatingIslands hashes; the W12 median moved from 2.399 s to 2.197 s. Please run the listed standalone and Unreal checks on Windows/MSVC before merging, especially worker-thread TLS destruction and the actual UBT FP/TLS options.
## Orchestrator review (Claude)
- Re-run by me: interleaved W12, L1 view: `046f2af` (L3) 2.212/2.256/2.307 s vs L4 2.063/2.091/2.125 s
(medians 2.256 → 2.091 s, -7%). Density `c10697a8f48380c7` throughout. L4 `PT_TLS` MemSiz 0xabc9 = 43,977 B.
- Checked the tunnel-cache route gate in `VoxelGenerator.cpp`: entries are only *stored* when `CP_GenType`
is TunnelNetwork/Underwater, so for any other route the old lookup could only miss. Gating skips
guaranteed misses, so no output change is possible. The legacy cave route is not exercised by the
headless tool, so this rests on code reading, not a hash.
- Windows: `thread_local` destructors on UE task threads are the MSVC risk. Luna's to-do list covers it.
@@ -0,0 +1,11 @@
#include "StandaloneTlsProbe.h"
#include <cstdlib>
#include <string_view>
int main(int argc,char** argv)
{
const int workers=argc>1?std::atoi(argv[1]):12;
const std::string_view touch=argc>2?argv[2]:"none";
return StandaloneTlsProbe::Run(workers,touch);
}
@@ -0,0 +1,80 @@
#!/usr/bin/env python3
import os
import signal
import subprocess
import sys
import time
if len(sys.argv) < 4 or sys.argv[2] != "--":
raise SystemExit("usage: MeasureProcess.py LOG -- COMMAND [ARGS...]")
log_path = sys.argv[1]
command = sys.argv[3:]
os.makedirs(os.path.dirname(log_path) or ".", exist_ok=True)
start = time.monotonic()
with open(log_path, "wb") as log_file:
process = subprocess.Popen(command, stdout=log_file, stderr=subprocess.STDOUT,
start_new_session=True)
max_hwm_kib = 0
max_rss_kib = 0
max_pid = process.pid
max_name = ""
deadline = start + 1800.0
while process.poll() is None:
if time.monotonic() >= deadline:
os.killpg(process.pid, signal.SIGTERM)
try:
process.wait(timeout=10)
except subprocess.TimeoutExpired:
os.killpg(process.pid, signal.SIGKILL)
process.wait()
print("MONITOR_TIMEOUT_SECONDS=1800", file=log_file, flush=True)
break
stat_by_pid = {}
for entry in os.scandir("/proc"):
if not entry.name.isdigit():
continue
pid = int(entry.name)
try:
with open(f"/proc/{pid}/stat", "r", encoding="ascii") as stat_file:
fields = stat_file.read().rsplit(")", 1)[1].split()
ppid = int(fields[1])
stat_by_pid[pid] = ppid
except (OSError, ValueError, IndexError):
continue
descendants = {process.pid}
changed = True
while changed:
changed = False
for pid, ppid in stat_by_pid.items():
if ppid in descendants and pid not in descendants:
descendants.add(pid)
changed = True
for pid in descendants:
try:
with open(f"/proc/{pid}/status", "r", encoding="ascii") as status_file:
status = status_file.read().splitlines()
values = {line.split(":", 1)[0]: line.split(":", 1)[1].strip()
for line in status if ":" in line}
hwm = int(values.get("VmHWM", "0 kB").split()[0])
rss = int(values.get("VmRSS", "0 kB").split()[0])
name = values.get("Name", "")
except (OSError, ValueError, IndexError):
continue
if hwm > max_hwm_kib:
max_hwm_kib, max_pid, max_name = hwm, pid, name
max_rss_kib = max(max_rss_kib, rss)
time.sleep(0.05)
result = process.wait()
elapsed = time.monotonic() - start
for line in (
f"MONITOR_EXIT_CODE={result}",
f"MONITOR_WALL_SECONDS={elapsed:.3f}",
f"MONITOR_PEAK_PROCESS_HWM_KIB={max_hwm_kib}",
f"MONITOR_PEAK_PROCESS_PID={max_pid}",
f"MONITOR_PEAK_PROCESS_NAME={max_name}",
f"MONITOR_MAX_SAMPLED_PROCESS_RSS_KIB={max_rss_kib}",
):
log_file.write((line + "\n").encode("utf-8"))
raise SystemExit(result)
@@ -0,0 +1,165 @@
# World Assembler M3 — Linux L5
**Result:** no octave tail is safely removable under the declared bounds. The exact far meshes already exceed the 1 px field-error and LOD-swap budgets, and the cutoff flag is 2.2% slower in the W12 view. The candidate therefore generated the exact same meshes; recipe version stays 1.
## Build and machine
Built `VoxelForgeCoreHeadless-linux5-l5-final7` and its capture target on `assembler/world` at `7770074` with Clang 19 `-ffp-contract=off`, then GCC 14 default contraction, both with 12 jobs. W1/W12 hashes match across both compilers; the L3 FP-contract preamble and runtime self-test remain active. Runs used CPUs 0–11, normal priority, and the 6 GiB process limit. Maximum process HWM was 898,692 KiB (GCC compile); the largest runtime process was 454,828 KiB. CPU governor stayed `powersave`. `/dev/dri/renderD128` was absent, so EGL used Mesa llvmpipe with `LP_NUM_THREADS=12`. No packages or system settings were changed.
## Capture and gate
`LinuxOffscreenCapture.cpp` reads the `.vfmesh` export from the headless streaming pipeline, creates a surfaceless EGL/GLES3 pbuffer, and writes 2560×1440 PNGs with libpng. `ffmpeg` made 1280×720 review JPEGs; the largest is 73,923 bytes. The shader combines surface normals and 80 m height bands. Only the small JPEGs were opened for review.
The gate samples a 65×65 XY grid on the closest native-surface tile at each LOD, excluding skirts. It reports two comparisons: displayed mesh against exact `Heightfield2D` ground/cap roots, and against a regenerated exact same-LOD mesh. The second is the zero-delta regression control; the first measures the actual field error. Swap error compares the coarse tile with its fine children at those same field roots. Full missing-surface, 2 m floating-surface, and missing fine-ring injections were rejected at every LOD3–8; so were both S13 controls.
This is a sampled heightfield gate, not a full camera-ray rasterizer. It can miss cracks narrower than one grid cell (1 m at LOD3, growing to 32 m at LOD8), and its direct-field row does not model tunnel walls or other non-heightfield faces. The same-LOD mesh comparison covers extra and missing mesh intersections at sampled points; a denser or full-screen geometry pass would be needed to certify sub-cell cracks and non-heightfield surfaces.
## Closest display distances and budgets
The code sweeps clipmap desired sets across X-boundary phases and measures tile AABB distance. The result matches the clipmap ring formula `3 × 32 chunks × 2^(LOD−1) × 0.25 m`; LOD0 is the player tile. The pixel angle is `90° / 2560 = 0.000613592 rad`.
| LOD | Closest display distance | 1 px at that distance | Active rule |
|---:|---:|---:|---:|
| 0 | 0 m | 0 cm | exact, 2 cm |
| 1 | 24.001 m | 1.473 cm | exact, 2 cm |
| 2 | 48.001 m | 2.945 cm | exact, 2 cm |
| 3 | 96.001 m | 5.891 cm | 1 px |
| 4 | 192.001 m | 11.781 cm | 1 px |
| 5 | 384.001 m | 23.562 cm | 1 px |
| 6 | 768.001 m | 47.124 cm | 1 px |
| 7 | 1,536.001 m | 94.248 cm | 1 px |
| 8 | 3,072.001 m | 188.496 cm | 1 px |
## Exact-field error and swap pop
Baseline and cutoff values are identical. The exact same-LOD regression control is 0.0000 px p50/p99/max at all LOD3–8, with no missing or floating samples. Against the continuous `Heightfield2D` roots, however, the current exact meshes already exceed 1 px at every LOD. The owner’s expected near-zero control holds for exact-versus-exact mesh output, not for the true-field comparison.
| LOD | Exact field p50 / p99 / max px (baseline → cutoff) | Swap p50 / p99 / max px | Swap cracks / floating |
|---:|---:|---:|---:|
| 3 → 2 | 0.9035 / 4.5839 / 7.3277 → same | 0.6714 / 4.1861 / 7.3277 | 0 / 0 |
| 4 → 3 | 1.1170 / 5.6056 / 8.3307 → same | 0.8269 / 5.1958 / 8.2105 | 0 / 0 |
| 5 → 4 | 1.5667 / 45.3010 / 126.2667 → same | 0.0000 / 20.7227 / 63.2266 | 0 / 0 |
| 6 → 5 | 0.5870 / 21.2445 / 82.3615 → same | 0.0000 / 21.2445 / 82.3615 | 0 / 0 |
| 7 → 6 | 0.3393 / 16.4341 / 47.9760 → same | 0.0000 / 16.4341 / 47.9760 | 0 / 0 |
| 8 → 7 | 0.9616 / 24.9479 / 50.0934 → same | 0.9616 / 24.9479 / 50.0934 | 0 / 0 |
The baseline gate rejects on the field row and every swap row. The cutoff run returns the same rejection. Fault injections also rejected: missing-surface samples were 4,225–13,642; floating-surface samples 4,225–13,641; missing fine-ring cracks 4,225–8,450.
| LOD | S13 octave-drop p99 / max px | Stride-2 column interpolation p99 / max px |
|---:|---:|---:|
| 3 | 960.2333 / 998.8654 | 9.3917 / 13.9093 |
| 4 | 3.7405 / 5.1103 | 9.2115 / 15.3435 |
| 5 | 105.7114 / 129.3089 | 125.1435 / 191.6424 |
| 6 | 218.7777 / 749.9535 | 82.1098 / 148.9485 |
| 7 | 95.1867 / 129.1796 | 40.6881 / 80.6012 |
| 8 | 38.1461 / 282.3288 | 28.8473 / 278.6236 |
Both controls were rejected at every LOD3–8. The octave-drop case produced missing samples at LOD3, 5–8 and floating samples at LOD5–8; stride-2 interpolation produced missing/floating samples at LOD5, 7 and 8.
## Cutoff contract and detail cost
The version-2 shared visual-detail contract declares stable octave terms with wavelength, octave count, displacement bound, and noise bound. A suffix is eligible only when its wavelengths are undersampled and its full displacement bound fits within one sixty-fourth of the tile’s pixel budget. Skipped zero-mean terms retain the original normalization denominator. Recipes with no terms keep the exact path; `FloatingIslandFieldV1` declares none, and its baseline/cutoff LOD hashes match. This is separate from content recipe version 1, which stays unchanged because output did not change.
SurfaceWorld declares 17 terms per LOD. No term or octave tail qualifies at LOD3–8. Sample steps are 16, 32, 64, 128, 256, and 512 voxels respectively. The bounds explain the result: even the smallest declared maximum displacement is 256 voxels, against a 0.2356-voxel 1 px budget at LOD3. The cutoff skips zero octaves, so eligible octave time is 0 ms.
| Octave | Terms | Wavelength range (voxels) | Max displacement range (voxels) |
|---:|---:|---:|---:|
| 0 | 17 | 25–10,000 | 1,024–640,000 |
| 1 | 17 | 12.5–5,000 | 512–320,000 |
| 2 | 15 | 6.25–1,250 | 256–160,000 |
| 3 | 4 | 41.664–250 | 3,968–24,800 |
W12 profile from the exact baseline; octave milliseconds are summed across evaluated calls/workers. They are all measured detail work, not removable work under the bound above.
| LOD | Worker sum s | Octave 0 ms | Octave 1 ms | Octave 2 ms | Octave 3 ms | Detail total ms (% worker sum) | Eligible ms |
|---:|---:|---:|---:|---:|---:|---:|---:|
| 3 | 1.660 | 71.585 | 69.911 | 68.535 | 15.407 | 225.437 (13.58%) | 0 |
| 4 | 3.321 | 135.512 | 131.224 | 128.645 | 26.506 | 421.887 (12.70%) | 0 |
| 5 | 2.283 | 82.131 | 80.450 | 77.545 | 16.262 | 256.388 (11.23%) | 0 |
| 6 | 3.587 | 153.409 | 148.854 | 144.175 | 29.984 | 476.422 (13.28%) | 0 |
| 7 | 1.447 | 35.301 | 34.493 | 33.138 | 7.069 | 110.001 (7.60%) | 0 |
| 8 | 2.685 | 58.763 | 57.751 | 56.277 | 11.848 | 184.638 (6.88%) | 0 |
The cutoff is recipe-generic, display-mesh-only, and activated only for LOD3+. Exact density, detail, collision, edit, and walkability paths remain outside it. LOD0–2 keep the 2 cm path. ARCHITECTURE §8.10 invariants remain: lazy thread-local caches, two-pass MC, SSE noise, and clipmap streaming. The cutoff state is scoped to mesh generation under the async-safety rules.
## W12 speed, interleaved with L4
Three L4/candidate pairs, all W12, measured on the L1 camera. The candidate is the final build with `--visual-detail-cutoff`.
| Measure (median) | L4 binary | Candidate | Change |
|---|---:|---:|---:|
| Whole-view ready | 2.183 s | 2.232 s | +2.2% |
| Stream wall | 1.895 s | 1.963 s | +3.6% |
| Far worker sum, LOD3–8 | 12.247 s | 12.458 s | +1.7% |
| LOD | L4 worker sum s | Candidate worker sum s |
|---:|---:|---:|
| 0 | 3.799 | 4.094 |
| 1 | 5.304 | 5.573 |
| 2 | 1.281 | 1.340 |
| 3 | 1.102 | 1.138 |
| 4 | 2.723 | 2.719 |
| 5 | 1.898 | 1.976 |
| 6 | 2.875 | 2.944 |
| 7 | 1.243 | 1.282 |
| 8 | 2.355 | 2.400 |
There is no speed benefit because nothing qualifies for skipping; the small regression is cutoff setup and bookkeeping.
## Hashes and captures
Baseline and cutoff hashes match for all LOD0–8. The old L4 binary’s aggregate hashes also match: whole view `c10697a8f48380c7 / e75c9119a1498cd5 / 49a9a8d1835a6c8c / edcb23288b5e8724` and full detail `0ee0579bd15cbbe4 / 32e5d4964d610fee / 1932b96ee4b1d910 / 69743c6bad3447dc`. The recipe stays version 1 because output did not change.
| LOD | Density | Mesh | Payload | Topology |
|---:|---|---|---|---|
| 0 | 769f2a706d585a72 | 33eeeb39fa443816 | 645621a1d968983f | c2457ed905036c9d |
| 1 | 69cc5a5c0a2c60af | b48335f5410c57d5 | d15c5480162ab8ba | feca1bd025823604 |
| 2 | 85deed5683a77202 | 53469895987aeea2 | e55f8ae7e1532033 | d5feb12a0e85c09b |
| 3 | 6518caefb3be7e7f | ec513c90b853a614 | f62fa1137ff17f82 | ccf1dcf681965816 |
| 4 | 62d4be96021992f4 | f1e4c6efcc2615a9 | 9dc5f9c88be02f33 | fe6f55125a07c3bf |
| 5 | 5e4a8c38b8cea6fc | 08ee56998aaf21e5 | 541eea8558f26cc8 | 6539374a8b3336d8 |
| 6 | e036e95b9006945b | 624a33f941a99b02 | 81b73e14f68bdf86 | 4de4c63ce1f80a56 |
| 7 | 8ee358af56a30d8d | 46ab3c6184048b7c | 0a6164b7e68e80c5 | 0c26b85bb03bc831 |
| 8 | c3458e1cbdb9c471 | 46c03d0994d75192 | 8f89fc5bde12d230 | d16dc0cf62031898 |
Nine direct-Core query probes also match baseline/cutoff and W1/W12 Clang/GCC: density and unclamped `e4d4a8eb95b35933`, detail `efcba20c0c70c415`, collision `e604823a249029bf`.
| Before / after pair | View |
|---|---|
| `before_l1.jpg` / `after_l1.jpg` | Exact L1 camera `0,-35,-487.94,0,-22` |
| `before_horizon.jpg` / `after_horizon.jpg` | Same position, pitch −2° |
| `before_boundary_lod2_3.jpg` / `after_boundary_lod2_3.jpg` | 20 m above local heightfield, aimed at the 96 m LOD3 entry band |
The boundary camera is `0,-35,-480.77246,0,-12`; the local heightfield is at −500.77246 m, placing the ground intersection about 96 m away.
The six review JPEGs are byte-identical within each pair. PNGs are in `Saved/Linux/captures/`; JPEGs are in `Linux5/captures/`.
## Failed and retried runs
- The first headless invocation omitted required streaming flags; the next used the default binary-relative data path and could not open the owner JSON. Both were retried with all flags and the explicit `Standalone/data/owner_world.json` path.
- The first process-monitor wrapper errored after its Clang build had completed; the run was repeated with `MeasureProcess.py` to record process HWM and duration.
- The first capture named a nonexistent mesh path and exited 2; the exported `.vfmesh` path was corrected.
- The first gate build failed on a duplicate `Distances` local; the corrected build passed. A first stride-2 control changed the MC lattice instead of reproducing S13’s every-second-column interpolation; the final control uses bilinear column interpolation.
- Initial comparison against only the continuous field mixed surface interpolation with unrelated tunnel intersections. The final instrument reports exact heightfield roots separately from the exact-mesh regression and ring checks.
- Early W12 cutoff candidates took 2.70–2.91 s. The zero-eligible path and distance setup were moved off the expensive profiling/phase-sweep path; the final interleaved candidate median is 2.232 s. It still does not improve L4.
- One final GCC W12 command omitted `--stream-pipeline` and exited 2; the corrected rerun passed. The initial −50° boundary capture mostly showed near ground; the final pair uses the camera listed above.
- The final baseline and cutoff gate commands exit 6 by design: both correctly reject the exact-field error and swap pops. No process exceeded 30 minutes or stalled for 15 minutes.
Core/API changes are in `VoxelForgeCore.h`, `WorldAssemblerInternal.h`, `FloatingIslandsInternal.h`, and `VoxelForgeCore.cpp`. Standalone changes are in `StreamingWorld.h`, `StreamBenchmarkPipeline.h`, `StreamBenchmarkHeadless.cpp`, `LinuxScreenSpaceGate.h`, `LinuxOffscreenCapture.cpp`, and `BuildLinux.sh`; process measurements are in `MeasureProcess.py`.
**For the owner:** Far terrain will look exactly as it does now because no octave tail met the bound. Existing far LOD swaps exceed the 1 px target, so the mesh sampling and transition error need attention before octave skipping can be used.
## Orchestrator review (Claude)
- **Not merged into `assembler/world`:** kept on side branch `wip/l5-far-cutoff`. With the cutoff flag OFF,
the L5 build is slower than L4. My interleaved W12 runs: L4 2.054/2.097/2.179 s vs L5 `final7`
2.127/2.193/2.208 s (medians 2.097 → 2.193, +4.6%), same world. Cost and no benefit.
- **Instrument caveat:** the gate prints `metric=vertical_height_error`. On steep slopes and cliffs, a
small horizontal offset becomes a large vertical error, so vertical error overstates screen
displacement. p50 is ~1 px but p99/max reach 20–126 px, the pattern such an artifact produces. The
claims "today's far meshes exceed 1 px" and "LOD swaps pop by up to 126 px" are therefore NOT yet
established. They need a screen-space measure: error along the surface normal or along camera rays,
projected at the display distance.
- The cutoff criterion (full displacement supremum ≤ 1/64 px) cannot pass for any SurfaceWorld octave
(smallest bound 256 voxels vs 0.24), so the null result was decided by the criterion, not measured.
- The capture path (EGL/GLES pbuffer; llvmpipe, since the sandbox hides `/dev/dri`) works and is worth keeping.
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

@@ -0,0 +1,102 @@
# Linux6 report
## Result
The screen-space gate rejects today’s far meshes at every sampled LOD3–8: the largest measured same-field error is 92.0 px, and the largest sampled swap pop is 70.3 px at LOD6→5. Same-LOD regeneration is exact, the reported swaps have no cracks or floaters, and no display mesh changed in this round.
Source base: `wip/l5-far-cutoff` at `b21a19d`; L4 reference: `7770074`.
## Screen-space method
For one surface tile nearest the L1 camera at each LOD, the gate rasterizes triangles on a 65×65 XY grid, excluding skirts. It compares the mesh hit to direct `Heightfield2D` ground/cap roots; slopes use ±1-voxel finite differences. For vertical residual `Δz` and slopes `sx,sy`, it computes normal distance `|Δz|/sqrt(1+sx²+sy²)`, projects that normal onto the camera’s screen plane, then divides by the one-pixel world distance at that LOD’s closest display distance. The view uses 90° horizontal FOV, 2560 px, yaw 0°, pitch −22°; one pixel is 0.000613592 rad. Same-LOD regeneration is the mesh reference for swaps; direct field roots are the reference for true surface error.
The known failure control is a 1 m cell on an 89.427° plane, shifted sideways by 5 mm (0.005 cell): its vertical metric says 8.488 px, while its true normal distance is 5 mm and projected screen error is 0.0849 px. This confirms that vertical height can badly overstate visible displacement.
| LOD | Closest distance (m) | Field error p50 / p99 / max (px) | Max normal distance (m) |
|---:|---:|---:|---:|
| 3 | 96 | 0.81 / 4.16 / 6.00 | 0.423 |
| 4 | 192 | 1.01 / 5.12 / 7.93 | 0.952 |
| 5 | 384 | 0.79 / 16.37 / 92.02 | 25.122 |
| 6 | 768 | 0.51 / 9.75 / 70.34 | 37.644 |
| 7 | 1,536 | 0.29 / 9.04 / 42.36 | 42.714 |
| 8 | 3,072 | 0.83 / 18.03 / 47.18 | 93.175 |
| Swap | Distance (m) | Pop p50 / p99 / max (px) | Max normal distance (m) |
|---|---:|---:|---:|
| 3→2 | 96 | 0.61 / 3.77 / 6.05 | 0.367 |
| 4→3 | 192 | 0.75 / 4.63 / 7.51 | 0.896 |
| 5→4 | 384 | 0.00 / 9.58 / 31.78 | 8.139 |
| 6→5 | 768 | 0.00 / 9.75 / 70.34 | 37.644 |
| 7→6 | 1,536 | 0.00 / 9.04 / 42.36 | 42.714 |
| 8→7 | 3,072 | 0.83 / 18.03 / 47.18 | 93.175 |
The tails are not confined to cliffs. The field maximum slopes at LOD5–8 are 8.34°, 14.09°, 6.76°, and 9.33°; LOD5’s p99 is 19.8 px below 30° and 21.1 px at 45–60°. The sampled LOD6→5 maximum is at `(-472, -1432, -463.151) m`; [the marked offscreen capture](captures/lod6_to_5_max_pop.jpg) shows that location at the 768 m swap distance. This is a sampled-tile result, not a whole-world supremum.
All same-LOD mesh comparisons at LOD3–8 pass with zero error. The S13 octave-drop and corrected stride-2 column-interpolation controls are rejected at every LOD3–8, as are missing displayed surface, 2 m floating surface, and missing fine-ring injections. The measured swap rows have zero cracks and floaters; they reject solely on displacement.
## Far worker time, W12
The L1 view has 2553 tiles. Clean-run phase totals for LOD3–8 are shown below. A separate temporary timer measured complete `FractalNoiseQ16` calls; “column outside” is clean column time minus that subtotal. The timer added 3–6% to worker time, so the split between those two column subphases is approximate; it has been removed from the final tree.
| LOD | Worker (s) | Column outside noise (ms) | Fractal/noise calls (ms) | MC (ms) | Ground refine (ms) | Cap refine (ms) | Skirts (ms) | Assembly (ms) |
|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| 3 | 1.084 | 171 | 276 | 473 | 0 | 0 | 118 | 33 |
| 4 | 2.581 | 1,000 | 534 | 440 | 0 | 304 | 196 | 102 |
| 5 | 1.829 | 658 | 358 | 100 | 464 | 22 | 161 | 70 |
| 6 | 2.761 | 1,608 | 284 | 59 | 385 | 58 | 162 | 70 |
| 7 | 1.192 | 234 | 198 | 32 | 275 | 202 | 153 | 96 |
| 8 | 2.224 | 264 | 469 | 256 | 424 | 299 | 333 | 177 |
| **Total** | **11.671** | **3,934** | **2,119** | **1,360** | **1,548** | **885** | **1,123** | **548** |
Column work outside the fractal calls is the largest single phase (33.7% of far worker time); all column work is 51.9%. Ground and cap refinement total 2.43 worker-s, skirts 1.12 worker-s, MC 1.36 worker-s, and assembly 0.55 worker-s. The earlier 7–13% profile timed individual Perlin calls; the L6 subtotal times complete fractal calls, including their octave accumulation.
The listed subphases total 11.52 worker-s; about 0.15 worker-s remains in timer and per-tile residuals.
The overlap scan counted about 411,000 cross-worker neighboring duplicate XY evaluations at LOD3–8 (about 166,000 at LOD4 alone). Exact column reuse is the largest plausible lever because it targets the largest phase. I did not build it: no candidate has yet shown a screen-gated, greater-than-3% whole-view win. Stride-2 interpolation is not a safe substitute; its control fails at every far LOD.
## Cost with the feature off
Three interleaved W12 runs per binary, same L1 camera and forced generation. `whole_view_ready` is the comparison metric; the six whole-view hashes matched exactly.
| Binary | Runs (s) | Median |
|---|---|---:|
| L4 reference | 2.082, 2.180, 2.183 | 2.180 s |
| L6 cleaned tree | 2.127, 2.185, 2.223 | 2.185 s (+0.2%) |
Run-to-run spread was about 0.10 s, so the 5 ms median difference is within noise. The no-op visual cutoff contract, plan, and CLI flag were removed. The opt-in research gate retains its negative controls; skirt timing uses the existing optional stage-timing pointer, which is null on the default path. Governor stayed `powersave`; runs used CPUs 0–11, W12, 6 GiB address-space limits, and normal priority. Peak runtime RSS was 403 MiB; peak build process RSS was 874 MiB (GCC).
## Determinism and hashes
Clang 19 `-ffp-contract=off` W1/W12 and GCC default W1/W12 produced the same hashes. LOD0–2, exact queries, and all whole-view hashes equal L4; no recipe bump is needed.
- Recipe / plan / manifest: `83b616a3f4fe781d` / `1ca84619c8600ee5` / `e55991385bf0ca29` (recipe version 1).
- Whole view (density / mesh / payload / topology): `c10697a8f48380c7` / `e75c9119a1498cd5` / `49a9a8d1835a6c8c` / `edcb23288b5e8724`.
- Full detail (density / mesh / payload / topology): `0ee0579bd15cbbe4` / `32e5d4964d610fee` / `1932b96ee4b1d910` / `69743c6bad3447dc`.
- Exact queries (density / unclamped / detail / collision): `e4d4a8eb95b35933` / `e4d4a8eb95b35933` / `efcba20c0c70c415` / `e604823a249029bf`.
- SHA-256 L4 binary / Clang L6 binary / GCC L6 binary: `6efb8f19a41ca3cd23aca9294ceee1e9cdd1d3dc8da23b3ee61ef8ae943aa763` / `3f5a4f88b0d911e8e66af9ef72e294926a5507a73d44fcfe868df27c666bf01e` / `de872e8fdaa9f40e8a6c096700fd998bcf35f232b06f2b4e35a374b4b0e9fa07`.
- Capture JPEG SHA-256: `483b434f3ad752dd09b82cd1c78fe81ee8cd31803ecf4dcd3c2918a8ae5d66b1` (156 KiB).
## Failed or retried runs
- First Clang build failed on a missing view argument in `LinuxScreenSpaceGate.h`; fixed and rebuilt successfully.
- First gate pass paired extra mesh hits incorrectly and reported same-LOD floaters at LOD5–8. The reference pairing was corrected; the final gate reports zero same-LOD displacement and no floaters.
- A `/usr/bin/time -v` wrapper attempt exited 127 because that binary is unavailable; the runs were retried with `/proc` RSS monitoring.
- The final quality gates exit 6 by design because measured displacement exceeds the 1 px rule. Builds, captures, determinism runs, and cost runs completed successfully. EGL could not write `~/.cache` in this environment, disabled shader caching, and rendered successfully on llvmpipe.
## Note for the owner
Today’s `assembler/world` remains at L4; this sampled view measures up to 92.0 px from the field and a 70.3 px LOD6→5 pop at the tested display distances, with the largest point marked in the capture. This round changes no default mesh or recipe output, removes the no-op cutoff, and leaves W12 cost within run-to-run noise.
## Orchestrator review (Claude)
- Cost re-run by me (interleaved W12, L1 view): L4 2.098/2.138/2.171 s vs L6 2.116/2.150/2.197 s
(median +0.6%, within noise), density `c10697a8f48380c7`; the L6 binary SHA matches the report.
Merged into `assembler/world` with L5 squashed in.
- The marked LOD6→5 maximum sits on the **rim of a flat-topped hill (mesa edge)**, not on open gentle
ground: the "8–14° slope" is the field slope at the sample, on the plateau top beside the drop. The
coarse mesh rounds the rim by about a cell (16–32 m at LOD5–6), so the pop is a real **silhouette snap
at sharp rims** (tens of px at 768 m), while p50 stays at 0 px. That is ordinary LOD-switch behaviour
without geomorphing or cross-fade, so a fix belongs in rendering (Unreal), not in generation. The
owner decides whether it is visible enough to matter.
- Next speed lever, per the far breakdown: exact cross-tile column reuse (column work outside noise is
34% of far worker time; ~411k duplicate XY evaluations at LOD3–8).
Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

+397
View File
@@ -0,0 +1,397 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <GLES3/gl3.h>
#include <png.h>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <filesystem>
#include <fstream>
#include <limits>
#include <string>
#include <string_view>
#include <vector>
namespace
{
struct FVertex
{
float Position[3];
float Normal[3];
float Height;
};
struct FScene
{
std::uint32_t VoxelSizeMicrons=0;
std::array<double,3> CameraMeters{};
double YawDegrees=0.0,PitchDegrees=0.0;
std::vector<FVertex> Vertices;
std::vector<std::uint32_t> Indices;
std::uint64_t Triangles=0,SkirtTriangles=0;
std::uint32_t TileCount=0;
};
template<typename T> bool Read(std::ifstream& File,T& Value)
{
File.read(reinterpret_cast<char*>(&Value),sizeof(Value));
return static_cast<bool>(File);
}
bool LoadScene(const std::filesystem::path& Path,FScene& Scene,std::string& Error)
{
std::ifstream File(Path,std::ios::binary);
if(!File){Error="cannot open mesh scene";return false;}
char Magic[8]{};
File.read(Magic,sizeof(Magic));
if(!File||std::memcmp(Magic,"VFMSH001",8)!=0)
{Error="mesh scene magic is invalid";return false;}
std::uint32_t Version=0,ExpectedTiles=0;
if(!Read(File,Version)||!Read(File,Scene.VoxelSizeMicrons)||!Read(File,ExpectedTiles)
||Version!=1||Scene.VoxelSizeMicrons==0||ExpectedTiles>1000000)
{Error="mesh scene header is malformed";return false;}
for(double& Value:Scene.CameraMeters)if(!Read(File,Value))
{Error="mesh scene camera is truncated";return false;}
if(!Read(File,Scene.YawDegrees)||!Read(File,Scene.PitchDegrees))
{Error="mesh scene camera orientation is truncated";return false;}
Scene.TileCount=ExpectedTiles;
std::uint64_t TotalVertices=0,TotalIndices=0;
for(std::uint32_t Tile=0;Tile<ExpectedTiles;++Tile)
{
std::int32_t Key[4]{};
std::uint32_t SurfaceVertices=0,SkirtCount=0,VertexCount=0,IndexCount=0,MaskCount=0;
for(auto& Value:Key)if(!Read(File,Value)){Error="tile key is truncated";return false;}
if(!Read(File,SurfaceVertices)||!Read(File,SkirtCount)||!Read(File,VertexCount)
||!Read(File,IndexCount)||!Read(File,MaskCount)
||VertexCount>10000000||IndexCount>60000000||MaskCount>20000000
||IndexCount%3!=0||(MaskCount!=0&&MaskCount!=IndexCount/3))
{Error="tile mesh header is malformed";return false;}
if(TotalVertices+VertexCount>std::numeric_limits<std::uint32_t>::max()
||TotalIndices+IndexCount>std::numeric_limits<std::size_t>::max())
{Error="mesh scene exceeds supported index space";return false;}
const std::size_t Base=Scene.Vertices.size();
Scene.Vertices.resize(Base+VertexCount);
Scene.Indices.reserve(Scene.Indices.size()+IndexCount);
for(std::size_t I=Base;I<Base+VertexCount;++I)
for(float& Value:Scene.Vertices[I].Position)if(!Read(File,Value))
{Error="tile positions are truncated";return false;}
for(std::size_t I=Base;I<Base+VertexCount;++I)
{
for(float& Value:Scene.Vertices[I].Normal)if(!Read(File,Value))
{Error="tile normals are truncated";return false;}
Scene.Vertices[I].Height=Scene.Vertices[I].Position[2];
}
const std::size_t IndexOffset=Scene.Indices.size();
Scene.Indices.resize(IndexOffset+IndexCount);
if(IndexCount)File.read(reinterpret_cast<char*>(Scene.Indices.data()+IndexOffset),
static_cast<std::streamsize>(sizeof(std::uint32_t)*IndexCount));
std::vector<std::uint8_t> Masks(MaskCount);
if(MaskCount)File.read(reinterpret_cast<char*>(Masks.data()),MaskCount);
if(!File){Error="tile index or skirt data is truncated";return false;}
for(std::size_t Index=IndexOffset;Index<Scene.Indices.size();++Index)
{
if(Scene.Indices[Index]>=VertexCount)
{Error="tile index points outside its vertex array";return false;}
Scene.Indices[Index]+=static_cast<std::uint32_t>(Base);
}
Scene.Triangles+=IndexCount/3;
Scene.SkirtTriangles+=SkirtCount;
TotalVertices+=VertexCount;TotalIndices+=IndexCount;
}
if(File.peek()!=std::char_traits<char>::eof())
{Error="mesh scene has trailing bytes";return false;}
if(Scene.Indices.empty()){Error="mesh scene contains no triangles";return false;}
return true;
}
EGLDisplay MakeDisplay()
{
using TGetPlatformDisplay=EGLDisplay(*)(EGLenum,void*,const EGLint*);
auto GetPlatformDisplay=reinterpret_cast<TGetPlatformDisplay>(
eglGetProcAddress("eglGetPlatformDisplayEXT"));
#ifdef EGL_PLATFORM_SURFACELESS_MESA
if(GetPlatformDisplay)
{
const EGLDisplay Display=GetPlatformDisplay(EGL_PLATFORM_SURFACELESS_MESA,
EGL_DEFAULT_DISPLAY,nullptr);
if(Display!=EGL_NO_DISPLAY)return Display;
}
#endif
return eglGetDisplay(EGL_DEFAULT_DISPLAY);
}
GLuint CompileShader(GLenum Type,const char* Source)
{
const GLuint Shader=glCreateShader(Type);
glShaderSource(Shader,1,&Source,nullptr);
glCompileShader(Shader);
GLint Success=GL_FALSE;
glGetShaderiv(Shader,GL_COMPILE_STATUS,&Success);
if(Success==GL_FALSE)
{
GLint Length=0;glGetShaderiv(Shader,GL_INFO_LOG_LENGTH,&Length);
std::string Log(static_cast<std::size_t>(std::max(Length,1)),0);
glGetShaderInfoLog(Shader,Length,nullptr,Log.data());
std::fprintf(stderr,"[OffscreenGL] shader compile failed: %s\n",Log.c_str());
glDeleteShader(Shader);return 0;
}
return Shader;
}
GLuint MakeProgram()
{
static constexpr char VertexSource[]=R"GLSL(#version 300 es
precision highp float;
layout(location=0) in vec3 inCameraPosition;
layout(location=1) in vec3 inNormal;
layout(location=2) in float inHeight;
out vec3 vNormal;
out float vHeight;
uniform float uTanHalfHorizontal;
uniform float uTanHalfVertical;
uniform float uNear;
uniform float uFar;
void main()
{
float z=max(inCameraPosition.z,0.0001);
float clipZ=((uFar+uNear)/(uFar-uNear))*z-(2.0*uFar*uNear)/(uFar-uNear);
gl_Position=vec4(inCameraPosition.x/uTanHalfHorizontal,
inCameraPosition.y/uTanHalfVertical,clipZ,z);
vNormal=normalize(inNormal);
vHeight=inHeight;
})GLSL";
static constexpr char FragmentSource[]=R"GLSL(#version 300 es
precision highp float;
in vec3 vNormal;
in float vHeight;
out vec4 outColor;
void main()
{
vec3 n=normalize(vNormal);
vec3 normalColor=abs(n)*0.78+vec3(0.12);
float band=mod(floor((vHeight+10000.0)/80.0),2.0);
vec3 bandColor=mix(vec3(0.24,0.31,0.37),vec3(0.39,0.42,0.35),band);
outColor=vec4(mix(bandColor,normalColor,0.68),1.0);
})GLSL";
const GLuint VS=CompileShader(GL_VERTEX_SHADER,VertexSource);
const GLuint FS=CompileShader(GL_FRAGMENT_SHADER,FragmentSource);
if(!VS||!FS)return 0;
const GLuint Program=glCreateProgram();
glAttachShader(Program,VS);glAttachShader(Program,FS);glLinkProgram(Program);
glDeleteShader(VS);glDeleteShader(FS);
GLint Success=GL_FALSE;glGetProgramiv(Program,GL_LINK_STATUS,&Success);
if(Success==GL_FALSE)
{
GLint Length=0;glGetProgramiv(Program,GL_INFO_LOG_LENGTH,&Length);
std::string Log(static_cast<std::size_t>(std::max(Length,1)),0);
glGetProgramInfoLog(Program,Length,nullptr,Log.data());
std::fprintf(stderr,"[OffscreenGL] program link failed: %s\n",Log.c_str());
glDeleteProgram(Program);return 0;
}
return Program;
}
bool WritePng(const std::filesystem::path& Path,int Width,int Height,
const std::vector<std::uint8_t>& Pixels)
{
std::error_code Error;
if(!Path.parent_path().empty())std::filesystem::create_directories(Path.parent_path(),Error);
if(Error)return false;
FILE* File=std::fopen(Path.c_str(),"wb");
if(!File)return false;
png_structp Png=png_create_write_struct(PNG_LIBPNG_VER_STRING,nullptr,nullptr,nullptr);
png_infop Info=Png?png_create_info_struct(Png):nullptr;
if(!Png||!Info){if(Png)png_destroy_write_struct(&Png,nullptr);std::fclose(File);return false;}
if(setjmp(png_jmpbuf(Png)))
{png_destroy_write_struct(&Png,&Info);std::fclose(File);return false;}
png_init_io(Png,File);
png_set_IHDR(Png,Info,static_cast<png_uint_32>(Width),static_cast<png_uint_32>(Height),
8,PNG_COLOR_TYPE_RGBA,PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT);
png_write_info(Png,Info);
const std::size_t Stride=static_cast<std::size_t>(Width)*4;
for(int Y=Height-1;Y>=0;--Y)
png_write_row(Png,const_cast<png_bytep>(Pixels.data()+static_cast<std::size_t>(Y)*Stride));
png_write_end(Png,nullptr);
png_destroy_write_struct(&Png,&Info);
const bool Good=std::fclose(File)==0;
return Good;
}
bool Render(FScene& Scene,const std::filesystem::path& Output,int Width,int Height,
double HorizontalFovDegrees)
{
EGLDisplay Display=MakeDisplay();
EGLint Major=0,Minor=0;
if(Display==EGL_NO_DISPLAY||eglInitialize(Display,&Major,&Minor)!=EGL_TRUE)
{std::fprintf(stderr,"[OffscreenEGL] eglInitialize failed (0x%x)\n",eglGetError());return false;}
if(eglBindAPI(EGL_OPENGL_ES_API)!=EGL_TRUE)
{std::fprintf(stderr,"[OffscreenEGL] eglBindAPI failed (0x%x)\n",eglGetError());eglTerminate(Display);return false;}
const EGLint ConfigAttributes[]={EGL_SURFACE_TYPE,EGL_PBUFFER_BIT,
EGL_RENDERABLE_TYPE,EGL_OPENGL_ES3_BIT,EGL_RED_SIZE,8,EGL_GREEN_SIZE,8,
EGL_BLUE_SIZE,8,EGL_ALPHA_SIZE,8,EGL_DEPTH_SIZE,24,EGL_NONE};
EGLConfig Config{};EGLint ConfigCount=0;
if(eglChooseConfig(Display,ConfigAttributes,&Config,1,&ConfigCount)!=EGL_TRUE||ConfigCount==0)
{std::fprintf(stderr,"[OffscreenEGL] no GLES3 pbuffer config (0x%x)\n",eglGetError());eglTerminate(Display);return false;}
const EGLint SurfaceAttributes[]={EGL_WIDTH,Width,EGL_HEIGHT,Height,EGL_NONE};
EGLSurface Surface=eglCreatePbufferSurface(Display,Config,SurfaceAttributes);
const EGLint ContextAttributes[]={EGL_CONTEXT_CLIENT_VERSION,3,EGL_NONE};
EGLContext Context=eglCreateContext(Display,Config,EGL_NO_CONTEXT,ContextAttributes);
if(Surface==EGL_NO_SURFACE||Context==EGL_NO_CONTEXT
||eglMakeCurrent(Display,Surface,Surface,Context)!=EGL_TRUE)
{std::fprintf(stderr,"[OffscreenEGL] context/surface creation failed (0x%x)\n",eglGetError());
if(Context!=EGL_NO_CONTEXT)eglDestroyContext(Display,Context);
if(Surface!=EGL_NO_SURFACE)eglDestroySurface(Display,Surface);
eglTerminate(Display);return false;}
const GLubyte* Renderer=glGetString(GL_RENDERER);
const GLubyte* GlVersion=glGetString(GL_VERSION);
std::printf("[OffscreenEGL] renderer=%s version=%s pbuffer=%dx%d\n",
Renderer?reinterpret_cast<const char*>(Renderer):"unknown",
GlVersion?reinterpret_cast<const char*>(GlVersion):"unknown",Width,Height);
GLuint ColorTexture=0,DepthBuffer=0,Framebuffer=0;
glGenTextures(1,&ColorTexture);glBindTexture(GL_TEXTURE_2D,ColorTexture);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,Width,Height,0,GL_RGBA,GL_UNSIGNED_BYTE,nullptr);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glGenRenderbuffers(1,&DepthBuffer);glBindRenderbuffer(GL_RENDERBUFFER,DepthBuffer);
glRenderbufferStorage(GL_RENDERBUFFER,GL_DEPTH_COMPONENT24,Width,Height);
glGenFramebuffers(1,&Framebuffer);glBindFramebuffer(GL_FRAMEBUFFER,Framebuffer);
glFramebufferTexture2D(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,GL_TEXTURE_2D,ColorTexture,0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER,GL_DEPTH_ATTACHMENT,GL_RENDERBUFFER,DepthBuffer);
if(glCheckFramebufferStatus(GL_FRAMEBUFFER)!=GL_FRAMEBUFFER_COMPLETE)
{std::fprintf(stderr,"[OffscreenGL] framebuffer is incomplete\n");return false;}
constexpr double Pi=3.14159265358979323846;
const double Yaw=Scene.YawDegrees*Pi/180.0,Pitch=Scene.PitchDegrees*Pi/180.0;
const std::array<double,3> Forward={std::sin(Yaw)*std::cos(Pitch),
std::cos(Yaw)*std::cos(Pitch),std::sin(Pitch)};
const std::array<double,3> Right={std::cos(Yaw),-std::sin(Yaw),0.0};
const std::array<double,3> Up={Right[1]*Forward[2]-Right[2]*Forward[1],
Right[2]*Forward[0]-Right[0]*Forward[2],Right[0]*Forward[1]-Right[1]*Forward[0]};
const double TanHalfHorizontal=std::tan(HorizontalFovDegrees*Pi/360.0);
const double Aspect=static_cast<double>(Width)/Height;
const double TanHalfVertical=TanHalfHorizontal/Aspect;
const double Near=0.1,Far=20000.0;
for(FVertex& Vertex:Scene.Vertices)
{
const double DX=Vertex.Position[0]-Scene.CameraMeters[0];
const double DY=Vertex.Position[1]-Scene.CameraMeters[1];
const double DZ=Vertex.Position[2]-Scene.CameraMeters[2];
const float CameraX=static_cast<float>(DX*Right[0]+DY*Right[1]+DZ*Right[2]);
const float CameraY=static_cast<float>(DX*Up[0]+DY*Up[1]+DZ*Up[2]);
const float CameraZ=static_cast<float>(DX*Forward[0]+DY*Forward[1]+DZ*Forward[2]);
Vertex.Position[0]=CameraX;Vertex.Position[1]=CameraY;Vertex.Position[2]=CameraZ;
}
const GLuint Program=MakeProgram();
if(!Program)return false;
GLuint Vao=0,Vbo=0,Ebo=0;
glGenVertexArrays(1,&Vao);glBindVertexArray(Vao);
glGenBuffers(1,&Vbo);glBindBuffer(GL_ARRAY_BUFFER,Vbo);
glBufferData(GL_ARRAY_BUFFER,static_cast<GLsizeiptr>(Scene.Vertices.size()*sizeof(FVertex)),
Scene.Vertices.data(),GL_STATIC_DRAW);
glGenBuffers(1,&Ebo);glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,Ebo);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,static_cast<GLsizeiptr>(Scene.Indices.size()*sizeof(std::uint32_t)),
Scene.Indices.data(),GL_STATIC_DRAW);
glEnableVertexAttribArray(0);glVertexAttribPointer(0,3,GL_FLOAT,GL_FALSE,sizeof(FVertex),
reinterpret_cast<void*>(offsetof(FVertex,Position)));
glEnableVertexAttribArray(1);glVertexAttribPointer(1,3,GL_FLOAT,GL_FALSE,sizeof(FVertex),
reinterpret_cast<void*>(offsetof(FVertex,Normal)));
glEnableVertexAttribArray(2);glVertexAttribPointer(2,1,GL_FLOAT,GL_FALSE,sizeof(FVertex),
reinterpret_cast<void*>(offsetof(FVertex,Height)));
glViewport(0,0,Width,Height);glDisable(GL_CULL_FACE);glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);glClearColor(0.035f,0.055f,0.075f,1.0f);
glClearDepthf(1.0f);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glUseProgram(Program);
glUniform1f(glGetUniformLocation(Program,"uTanHalfHorizontal"),static_cast<float>(TanHalfHorizontal));
glUniform1f(glGetUniformLocation(Program,"uTanHalfVertical"),static_cast<float>(TanHalfVertical));
glUniform1f(glGetUniformLocation(Program,"uNear"),static_cast<float>(Near));
glUniform1f(glGetUniformLocation(Program,"uFar"),static_cast<float>(Far));
glDrawElements(GL_TRIANGLES,static_cast<GLsizei>(Scene.Indices.size()),GL_UNSIGNED_INT,nullptr);
glFinish();
std::vector<std::uint8_t> Pixels(static_cast<std::size_t>(Width)*Height*4);
glReadPixels(0,0,Width,Height,GL_RGBA,GL_UNSIGNED_BYTE,Pixels.data());
const GLenum GlError=glGetError();
const bool PngGood=GlError==GL_NO_ERROR&&WritePng(Output,Width,Height,Pixels);
if(!PngGood)std::fprintf(stderr,"[OffscreenGL] render or PNG write failed (GL=0x%x)\n",GlError);
else
{
std::error_code SizeError;
const auto Bytes=std::filesystem::file_size(Output,SizeError);
std::printf("[OffscreenCapture] triangles=%llu tiles=%u skirts=%llu png_bytes=%llu status=PASS path=%s\n",
static_cast<unsigned long long>(Scene.Triangles),Scene.TileCount,
static_cast<unsigned long long>(Scene.SkirtTriangles),
static_cast<unsigned long long>(SizeError?0:Bytes),Output.string().c_str());
}
glDeleteProgram(Program);glDeleteBuffers(1,&Ebo);glDeleteBuffers(1,&Vbo);
glDeleteVertexArrays(1,&Vao);glDeleteFramebuffers(1,&Framebuffer);
glDeleteRenderbuffers(1,&DepthBuffer);glDeleteTextures(1,&ColorTexture);
eglMakeCurrent(Display,EGL_NO_SURFACE,EGL_NO_SURFACE,EGL_NO_CONTEXT);
eglDestroyContext(Display,Context);eglDestroySurface(Display,Surface);eglTerminate(Display);
return PngGood;
}
}
int main(int argc,char** argv)
{
if(argc<3)
{
std::fprintf(stderr,"Usage: %s scene.vfmesh output.png [--size=WIDTHxHEIGHT] [--fov-deg=90] [--camera-m=X,Y,Z] [--yaw-deg=N] [--pitch-deg=N]\n",argv[0]);
return 2;
}
int Width=2560,Height=1440;double Fov=90.0;
bool HasYaw=false,HasPitch=false;double Yaw=0.0,Pitch=0.0;
bool HasCamera=false;std::array<double,3> Camera{};
for(int I=3;I<argc;++I)
{
const std::string_view Arg(argv[I]);
if(Arg.starts_with("--size="))
{
const std::string Value(Arg.substr(7));
if(std::sscanf(Value.c_str(),"%dx%d",&Width,&Height)!=2||Width<=0||Height<=0)
{std::fprintf(stderr,"Invalid image size\n");return 2;}
}
else if(Arg.starts_with("--fov-deg="))
{
char* End=nullptr;const std::string Value(Arg.substr(10));Fov=std::strtod(Value.c_str(),&End);
if(End==Value.c_str()||*End!='\0'||Fov<=1.0||Fov>=179.0)
{std::fprintf(stderr,"Invalid horizontal FOV\n");return 2;}
}
else if(Arg.starts_with("--camera-m="))
{
const std::string Value(Arg.substr(11));
if(std::sscanf(Value.c_str(),"%lf,%lf,%lf",&Camera[0],&Camera[1],&Camera[2])!=3
||!std::isfinite(Camera[0])||!std::isfinite(Camera[1])||!std::isfinite(Camera[2]))
{std::fprintf(stderr,"Invalid camera position\n");return 2;}
HasCamera=true;
}
else if(Arg.starts_with("--yaw-deg=")||Arg.starts_with("--pitch-deg="))
{
const bool IsYaw=Arg.starts_with("--yaw-deg=");
const std::size_t Prefix=IsYaw?10:12;
const std::string Value(Arg.substr(Prefix));char* End=nullptr;
const double Parsed=std::strtod(Value.c_str(),&End);
if(End==Value.c_str()||*End!='\0'||!std::isfinite(Parsed))
{std::fprintf(stderr,"Invalid camera angle\n");return 2;}
if(IsYaw){Yaw=Parsed;HasYaw=true;}else{Pitch=Parsed;HasPitch=true;}
}
else {std::fprintf(stderr,"Unknown option: %.*s\n",static_cast<int>(Arg.size()),Arg.data());return 2;}
}
FScene Scene;std::string Error;
if(!LoadScene(argv[1],Scene,Error))
{std::fprintf(stderr,"[OffscreenCapture] FAIL: %s\n",Error.c_str());return 2;}
if(HasCamera)Scene.CameraMeters=Camera;
if(HasYaw)Scene.YawDegrees=Yaw;
if(HasPitch)Scene.PitchDegrees=Pitch;
std::printf("[OffscreenScene] voxels_per_meter=%.6f camera_m=(%.3f,%.3f,%.3f) yaw=%.2f pitch=%.2f vertices=%zu triangles=%llu\n",
1000000.0/Scene.VoxelSizeMicrons,Scene.CameraMeters[0],Scene.CameraMeters[1],Scene.CameraMeters[2],
Scene.YawDegrees,Scene.PitchDegrees,Scene.Vertices.size(),
static_cast<unsigned long long>(Scene.Triangles));
return Render(Scene,argv[2],Width,Height,Fov)?0:3;
}
+721
View File
@@ -0,0 +1,721 @@
#pragma once
#include "StreamingWorld.h"
#include <algorithm>
#include <array>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <limits>
#include <optional>
#include <span>
#include <utility>
#include <vector>
namespace StandaloneScreenSpaceGate
{
inline constexpr double OnePixelRadians=1.57079632679489661923/2560.0;
struct FErrorRow
{
int Lod=0;
std::uint64_t Samples=0,Missing=0,Floating=0;
double P50=0.0,P99=0.0,Maximum=0.0;
double VerticalP50=0.0,VerticalP99=0.0,VerticalMaximum=0.0;
double MaximumNormalDistanceMeters=0.0,MaximumX=0.0,MaximumY=0.0;
double MaximumReferenceZ=0.0,MaximumDisplayedZ=0.0;
double MaximumSlopeDegrees=0.0;
std::array<std::uint64_t,4> SlopeSamples{};
std::array<double,4> SlopeP99{},SlopeMaximum{};
bool Valid=false;
};
struct FPopRow
{
int CoarseLod=0;
std::uint64_t Samples=0,Cracks=0,Floating=0;
double P50=0.0,P99=0.0,Maximum=0.0;
double VerticalP50=0.0,VerticalP99=0.0,VerticalMaximum=0.0;
double MaximumNormalDistanceMeters=0.0,MaximumX=0.0,MaximumY=0.0;
double MaximumReferenceZ=0.0,MaximumDisplayedZ=0.0;
double MaximumSlopeDegrees=0.0;
std::array<std::uint64_t,4> SlopeSamples{};
std::array<double,4> SlopeP99{},SlopeMaximum{};
bool Valid=false;
};
struct FSurfaceRoot
{
double ZMeters=0.0;
double SlopeX=0.0;
double SlopeY=0.0;
};
struct FViewBasis
{
std::array<double,3> Right{};
std::array<double,3> Up{};
};
struct FErrorAccumulator
{
std::vector<double> Pixels,VerticalPixels;
std::array<std::vector<double>,4> BySlope;
double Maximum=-1.0,MaximumVertical=0.0,MaximumNormalDistanceMeters=0.0;
double MaximumX=0.0,MaximumY=0.0,MaximumSlopeDegrees=0.0;
double MaximumReferenceZ=0.0,MaximumDisplayedZ=0.0;
std::array<std::uint64_t,4> SlopeSamples{};
};
inline double Percentile(std::vector<double>& Values,double P);
inline FViewBasis MakeViewBasis(double YawDegrees,double PitchDegrees)
{
constexpr double Pi=3.14159265358979323846;
const double Yaw=YawDegrees*Pi/180.0,Pitch=PitchDegrees*Pi/180.0;
const std::array<double,3> Forward={std::sin(Yaw)*std::cos(Pitch),
std::cos(Yaw)*std::cos(Pitch),std::sin(Pitch)};
FViewBasis Basis;
Basis.Right={std::cos(Yaw),-std::sin(Yaw),0.0};
Basis.Up={Basis.Right[1]*Forward[2]-Basis.Right[2]*Forward[1],
Basis.Right[2]*Forward[0]-Basis.Right[0]*Forward[2],
Basis.Right[0]*Forward[1]-Basis.Right[1]*Forward[0]};
return Basis;
}
inline std::size_t SlopeBin(double Degrees)
{
if(Degrees<30.0)return 0;
if(Degrees<45.0)return 1;
if(Degrees<60.0)return 2;
return 3;
}
inline void AddError(FErrorAccumulator& Accumulator,double DeltaZMeters,
const FSurfaceRoot& Root,double PixelBudgetMeters,const FViewBasis& View,
double X,double Y)
{
constexpr double Pi=3.14159265358979323846;
const double GradientSquared=Root.SlopeX*Root.SlopeX+Root.SlopeY*Root.SlopeY;
const double NormalLength=std::sqrt(1.0+GradientSquared);
const double NormalX=-Root.SlopeX/NormalLength;
const double NormalY=-Root.SlopeY/NormalLength;
const double NormalZ=1.0/NormalLength;
const double NormalDistance=std::abs(DeltaZMeters)/NormalLength;
const double ProjectedNormal=std::hypot(
NormalX*View.Right[0]+NormalY*View.Right[1]+NormalZ*View.Right[2],
NormalX*View.Up[0]+NormalY*View.Up[1]+NormalZ*View.Up[2]);
const double ProjectedVertical=std::hypot(View.Right[2],View.Up[2]);
const double NormalPixels=NormalDistance*ProjectedNormal/PixelBudgetMeters;
const double VerticalPixels=std::abs(DeltaZMeters)*ProjectedVertical/PixelBudgetMeters;
const double SlopeDegrees=std::atan(std::sqrt(GradientSquared))*180.0/Pi;
Accumulator.Pixels.push_back(NormalPixels);
Accumulator.VerticalPixels.push_back(VerticalPixels);
const std::size_t Bin=SlopeBin(SlopeDegrees);
Accumulator.BySlope[Bin].push_back(NormalPixels);
++Accumulator.SlopeSamples[Bin];
if(NormalPixels>Accumulator.Maximum)
{
Accumulator.Maximum=NormalPixels;
Accumulator.MaximumVertical=VerticalPixels;
Accumulator.MaximumNormalDistanceMeters=NormalDistance;
Accumulator.MaximumX=X;Accumulator.MaximumY=Y;
Accumulator.MaximumSlopeDegrees=SlopeDegrees;
Accumulator.MaximumReferenceZ=Root.ZMeters;
Accumulator.MaximumDisplayedZ=Root.ZMeters+DeltaZMeters;
}
}
inline void AddMissing(FErrorAccumulator& Accumulator)
{
Accumulator.Pixels.push_back(2.0);
Accumulator.VerticalPixels.push_back(2.0);
}
inline void FinalizeError(FErrorRow& Row,FErrorAccumulator& Accumulator)
{
Row.Samples=Accumulator.Pixels.size();
Row.P50=Percentile(Accumulator.Pixels,0.50);
Row.P99=Percentile(Accumulator.Pixels,0.99);
Row.Maximum=Accumulator.Pixels.empty()?0.0
:*std::max_element(Accumulator.Pixels.begin(),Accumulator.Pixels.end());
Row.VerticalP50=Percentile(Accumulator.VerticalPixels,0.50);
Row.VerticalP99=Percentile(Accumulator.VerticalPixels,0.99);
Row.VerticalMaximum=Accumulator.VerticalPixels.empty()?0.0
:*std::max_element(Accumulator.VerticalPixels.begin(),Accumulator.VerticalPixels.end());
Row.MaximumNormalDistanceMeters=Accumulator.MaximumNormalDistanceMeters;
Row.MaximumX=Accumulator.MaximumX;Row.MaximumY=Accumulator.MaximumY;
Row.MaximumReferenceZ=Accumulator.MaximumReferenceZ;
Row.MaximumDisplayedZ=Accumulator.MaximumDisplayedZ;
Row.MaximumSlopeDegrees=Accumulator.MaximumSlopeDegrees;
Row.SlopeSamples=Accumulator.SlopeSamples;
for(std::size_t Bin=0;Bin<Accumulator.BySlope.size();++Bin)
{
Row.SlopeP99[Bin]=Percentile(Accumulator.BySlope[Bin],0.99);
Row.SlopeMaximum[Bin]=Accumulator.BySlope[Bin].empty()?0.0
:*std::max_element(Accumulator.BySlope[Bin].begin(),Accumulator.BySlope[Bin].end());
}
}
struct FHeightGrid
{
int Side=65;
double MinimumX=0.0,MaximumX=0.0,MinimumY=0.0,MaximumY=0.0;
std::vector<std::vector<double>> Hits;
FHeightGrid()=default;
FHeightGrid(int InSide,double MinX,double MaxX,double MinY,double MaxY)
:Side(InSide),MinimumX(MinX),MaximumX(MaxX),MinimumY(MinY),MaximumY(MaxY),
Hits(static_cast<std::size_t>(InSide)*InSide)
{}
double X(int Ix) const
{return MinimumX+(MaximumX-MinimumX)*Ix/(Side-1);}
double Y(int Iy) const
{return MinimumY+(MaximumY-MinimumY)*Iy/(Side-1);}
void Add(int Ix,int Iy,double Z)
{
auto& Values=Hits[static_cast<std::size_t>(Iy)*Side+Ix];
Values.push_back(Z);
}
const std::vector<double>& At(int Ix,int Iy) const
{return Hits[static_cast<std::size_t>(Iy)*Side+Ix];}
};
inline double Percentile(std::vector<double>& Values,double P)
{
if(Values.empty())return 0.0;
std::sort(Values.begin(),Values.end());
const std::size_t Index=std::min(Values.size()-1,
static_cast<std::size_t>(std::ceil(P*Values.size())-1));
return Values[Index];
}
inline double TileAabbDistanceMeters(const FVoxelTileKey& Key,
const FVector& CameraVoxels,double VoxelMeters)
{
const double Extent=static_cast<double>(Key.ExtentVoxels());
const double Min[3]={static_cast<double>(Key.OriginVoxels().X),
static_cast<double>(Key.OriginVoxels().Y),static_cast<double>(Key.OriginVoxels().Z)};
const double Cam[3]={CameraVoxels.X,CameraVoxels.Y,CameraVoxels.Z};
double Squared=0.0;
for(int Axis=0;Axis<3;++Axis)
{
const double Delta=Cam[Axis]<Min[Axis]?Min[Axis]-Cam[Axis]
:Cam[Axis]>Min[Axis]+Extent?Cam[Axis]-(Min[Axis]+Extent):0.0;
Squared+=Delta*Delta;
}
return std::sqrt(Squared)*VoxelMeters;
}
inline bool TileHasNativeSurface(const FVoxelTileKey& Key,
const VoxelForgeCore::WorldAssemblyManifest& Assembly,
double VoxelMeters)
{
const double Extent=static_cast<double>(Key.ExtentVoxels());
const double X=(static_cast<double>(Key.OriginVoxels().X)+Extent*0.5)*256.0;
const double Y=(static_cast<double>(Key.OriginVoxels().Y)+Extent*0.5)*256.0;
const double MinZ=static_cast<double>(Key.OriginVoxels().Z);
const double MaxZ=MinZ+Extent;
for(const auto& Plan:Assembly.plan.strates)
{
VoxelForgeCore::Heightfield2D Field(Assembly.recipe,Plan);
if(!Field.isValid())continue;
const auto Column=Field.point(static_cast<std::int64_t>(std::llround(X)),
static_cast<std::int64_t>(std::llround(Y)),0);
const double Ground=static_cast<double>(Column.groundHeightSubvoxels)/256.0;
const double Cap=static_cast<double>(Column.capHeightSubvoxels)/256.0;
const double Margin=std::max(2.0,0.25/VoxelMeters);
if(Ground<Cap&&((Ground>=MinZ-Margin&&Ground<=MaxZ+Margin)
||(Cap>=MinZ-Margin&&Cap<=MaxZ+Margin)))return true;
}
return false;
}
inline FHeightGrid Rasterize(std::span<const FStandaloneCpuTile* const> Tiles,
const FVoxelTileKey& Patch,double VoxelMeters,int Side=65)
{
const double Extent=static_cast<double>(Patch.ExtentVoxels())*VoxelMeters;
const double MinX=static_cast<double>(Patch.OriginVoxels().X)*VoxelMeters;
const double MinY=static_cast<double>(Patch.OriginVoxels().Y)*VoxelMeters;
FHeightGrid Grid(Side,MinX,MinX+Extent,MinY,MinY+Extent);
for(const FStandaloneCpuTile* Tile:Tiles)
{
if(!Tile||Tile->Indices.size()<3)continue;
const std::size_t TriangleCount=Tile->Indices.size()/3;
for(std::size_t Triangle=0;Triangle<TriangleCount;++Triangle)
{
if(Triangle<Tile->TriangleSkirtFaceMasks.size()
&&Tile->TriangleSkirtFaceMasks[Triangle]!=0)continue;
const std::uint32_t I0=Tile->Indices[Triangle*3];
const std::uint32_t I1=Tile->Indices[Triangle*3+1];
const std::uint32_t I2=Tile->Indices[Triangle*3+2];
if(I0>=Tile->Vertices.size()||I1>=Tile->Vertices.size()||I2>=Tile->Vertices.size())continue;
const auto& A=Tile->Vertices[I0].Position;
const auto& B=Tile->Vertices[I1].Position;
const auto& C=Tile->Vertices[I2].Position;
const double Denominator=(B[1]-C[1])*(A[0]-C[0])+(C[0]-B[0])*(A[1]-C[1]);
if(std::abs(Denominator)<1e-10)continue;
const double MinTriX=std::min({A[0],B[0],C[0]}),MaxTriX=std::max({A[0],B[0],C[0]});
const double MinTriY=std::min({A[1],B[1],C[1]}),MaxTriY=std::max({A[1],B[1],C[1]});
const double StepX=Extent/(Side-1),StepY=Extent/(Side-1);
const int Ix0=std::clamp(static_cast<int>(std::ceil((MinTriX-MinX)/StepX)),0,Side-1);
const int Ix1=std::clamp(static_cast<int>(std::floor((MaxTriX-MinX)/StepX)),0,Side-1);
const int Iy0=std::clamp(static_cast<int>(std::ceil((MinTriY-MinY)/StepY)),0,Side-1);
const int Iy1=std::clamp(static_cast<int>(std::floor((MaxTriY-MinY)/StepY)),0,Side-1);
for(int Iy=Iy0;Iy<=Iy1;++Iy)
for(int Ix=Ix0;Ix<=Ix1;++Ix)
{
const double X=Grid.X(Ix),Y=Grid.Y(Iy);
const double W0=((B[1]-C[1])*(X-C[0])+(C[0]-B[0])*(Y-C[1]))/Denominator;
const double W1=((C[1]-A[1])*(X-C[0])+(A[0]-C[0])*(Y-C[1]))/Denominator;
const double W2=1.0-W0-W1;
if(W0<-1e-6||W1<-1e-6||W2<-1e-6)continue;
Grid.Add(Ix,Iy,W0*A[2]+W1*B[2]+W2*C[2]);
}
}
}
for(auto& Values:Grid.Hits)
{
std::sort(Values.begin(),Values.end());
Values.erase(std::unique(Values.begin(),Values.end(),[](double A,double B)
{return std::abs(A-B)<0.02;}),Values.end());
}
return Grid;
}
inline std::vector<FSurfaceRoot> ExactHeightRoots(const FHeightGrid& Grid,int Ix,int Iy,
const FVoxelTileKey& Patch,double VoxelMeters,
const VoxelForgeCore::WorldAssemblyManifest& Assembly)
{
std::vector<FSurfaceRoot> Roots;
const double XSubvoxels=Grid.X(Ix)/VoxelMeters*256.0;
const double YSubvoxels=Grid.Y(Iy)/VoxelMeters*256.0;
const auto X=static_cast<std::int64_t>(std::llround(XSubvoxels));
const auto Y=static_cast<std::int64_t>(std::llround(YSubvoxels));
const double MinZ=static_cast<double>(Patch.OriginVoxels().Z);
const double MaxZ=MinZ+Patch.ExtentVoxels();
constexpr std::int64_t NormalProbeSubvoxels=256;
for(const auto& Plan:Assembly.plan.strates)
{
VoxelForgeCore::Heightfield2D Field(Assembly.recipe,Plan);
if(!Field.isValid())continue;
const auto Column=Field.point(X,Y,0);
if(Column.groundHeightSubvoxels>=Column.capHeightSubvoxels)continue;
const auto XMinus=Field.point(X-NormalProbeSubvoxels,Y,0);
const auto XPlus=Field.point(X+NormalProbeSubvoxels,Y,0);
const auto YMinus=Field.point(X,Y-NormalProbeSubvoxels,0);
const auto YPlus=Field.point(X,Y+NormalProbeSubvoxels,0);
const auto Slope=[&](std::int64_t Minus,std::int64_t Plus)
{return static_cast<double>(Plus-Minus)/(2.0*NormalProbeSubvoxels);};
const double Ground=static_cast<double>(Column.groundHeightSubvoxels)/256.0*VoxelMeters;
const double Cap=static_cast<double>(Column.capHeightSubvoxels)/256.0*VoxelMeters;
const double PlanMinZ=static_cast<double>(Plan.bottomChunkZ)*32.0*VoxelMeters;
const double PlanMaxZ=static_cast<double>(Plan.topChunkZ+1)*32.0*VoxelMeters;
if(Ground>=MinZ*VoxelMeters-0.25*VoxelMeters
&&Ground<=MaxZ*VoxelMeters+0.25*VoxelMeters
&&Ground>=PlanMinZ-0.25*VoxelMeters&&Ground<=PlanMaxZ+0.25*VoxelMeters)
Roots.push_back({Ground,Slope(XMinus.groundHeightSubvoxels,
XPlus.groundHeightSubvoxels),Slope(YMinus.groundHeightSubvoxels,
YPlus.groundHeightSubvoxels)});
if(Cap>=MinZ*VoxelMeters-0.25*VoxelMeters
&&Cap<=MaxZ*VoxelMeters+0.25*VoxelMeters
&&Cap>=PlanMinZ-0.25*VoxelMeters&&Cap<=PlanMaxZ+0.25*VoxelMeters)
Roots.push_back({Cap,Slope(XMinus.capHeightSubvoxels,
XPlus.capHeightSubvoxels),Slope(YMinus.capHeightSubvoxels,
YPlus.capHeightSubvoxels)});
}
std::sort(Roots.begin(),Roots.end(),[](const FSurfaceRoot& A,const FSurfaceRoot& B)
{return A.ZMeters<B.ZMeters;});
Roots.erase(std::unique(Roots.begin(),Roots.end(),[](const FSurfaceRoot& A,
const FSurfaceRoot& B){return std::abs(A.ZMeters-B.ZMeters)<0.01;}),Roots.end());
return Roots;
}
inline bool MatchNearest(const std::vector<double>& Hits,const std::vector<bool>& Used,
double Root,std::size_t& OutIndex,double& OutError)
{
double Best=std::numeric_limits<double>::infinity();std::size_t BestIndex=Hits.size();
for(std::size_t I=0;I<Hits.size();++I)
if(I>=Used.size()||!Used[I])
{
const double Error=std::abs(Hits[I]-Root);
if(Error<Best){Best=Error;BestIndex=I;}
}
if(BestIndex==Hits.size())return false;
OutIndex=BestIndex;OutError=Best;return true;
}
inline FErrorRow CompareToExact(const FHeightGrid& MeshGrid,const FVoxelTileKey& Patch,
double VoxelMeters,double PixelBudgetMeters,
const VoxelForgeCore::WorldAssemblyManifest& Assembly,const FViewBasis& View)
{
FErrorRow Row;Row.Lod=Patch.Level;Row.Valid=true;
FErrorAccumulator Accumulator;
for(int Iy=0;Iy<MeshGrid.Side;++Iy)
for(int Ix=0;Ix<MeshGrid.Side;++Ix)
{
const auto Roots=ExactHeightRoots(MeshGrid,Ix,Iy,Patch,VoxelMeters,Assembly);
if(Roots.empty()&&MeshGrid.At(Ix,Iy).empty())continue;
std::vector<bool> Used(MeshGrid.At(Ix,Iy).size(),false);
for(const FSurfaceRoot& Root:Roots)
{
std::size_t HitIndex=0;double ErrorMeters=0.0;
if(!MatchNearest(MeshGrid.At(Ix,Iy),Used,Root.ZMeters,HitIndex,ErrorMeters))
{
++Row.Missing;
AddMissing(Accumulator);
continue;
}
Used[HitIndex]=true;
AddError(Accumulator,MeshGrid.At(Ix,Iy)[HitIndex]-Root.ZMeters,
Root,PixelBudgetMeters,View,MeshGrid.X(Ix),MeshGrid.Y(Iy));
++Row.Samples;
}
// Heightfield2D declares ground and cap roots only. Other mesh intersections may
// be valid tunnel geometry; the exact-mesh comparison checks extra pieces.
}
FinalizeError(Row,Accumulator);
return Row;
}
inline FErrorRow CompareToReference(const FHeightGrid& MeshGrid,
const FHeightGrid& ReferenceGrid,const FVoxelTileKey& Patch,double VoxelMeters,
double PixelBudgetMeters,const VoxelForgeCore::WorldAssemblyManifest& Assembly,
const FViewBasis& View)
{
FErrorRow Row;Row.Lod=Patch.Level;Row.Valid=true;
FErrorAccumulator Accumulator;
for(int Iy=0;Iy<ReferenceGrid.Side;++Iy)
for(int Ix=0;Ix<ReferenceGrid.Side;++Ix)
{
const auto& Reference=ReferenceGrid.At(Ix,Iy);
const auto& Mesh=MeshGrid.At(Ix,Iy);
if(Reference.empty()&&Mesh.empty())continue;
const auto Roots=ExactHeightRoots(ReferenceGrid,Ix,Iy,Patch,VoxelMeters,Assembly);
std::vector<bool> UsedReference(Reference.size(),false),UsedMesh(Mesh.size(),false);
for(std::size_t ReferenceIndex=0;ReferenceIndex<Reference.size();++ReferenceIndex)
{
const double ReferenceZ=Reference[ReferenceIndex];
UsedReference[ReferenceIndex]=true;
std::size_t MeshIndex=0;double MeshError=0.0;
if(!MatchNearest(Mesh,UsedMesh,ReferenceZ,MeshIndex,MeshError))
{
++Row.Missing;AddMissing(Accumulator);continue;
}
UsedMesh[MeshIndex]=true;
FSurfaceRoot Root{ReferenceZ,0.0,0.0};
if(!Roots.empty())
{
const auto BestRoot=std::min_element(Roots.begin(),Roots.end(),
[ReferenceZ](const FSurfaceRoot& A,const FSurfaceRoot& B)
{return std::abs(A.ZMeters-ReferenceZ)<std::abs(B.ZMeters-ReferenceZ);});
if(BestRoot!=Roots.end()&&std::abs(BestRoot->ZMeters-ReferenceZ)<1.0)
Root=*BestRoot;
}
AddError(Accumulator,Mesh[MeshIndex]-Reference[ReferenceIndex],
Root,PixelBudgetMeters,View,ReferenceGrid.X(Ix),ReferenceGrid.Y(Iy));
}
for(std::size_t I=0;I<Mesh.size();++I)
if(!UsedMesh[I]){++Row.Floating;AddMissing(Accumulator);}
}
FinalizeError(Row,Accumulator);
return Row;
}
inline FPopRow ComparePop(const FHeightGrid& Coarse,const FHeightGrid& Fine,
const FVoxelTileKey& Patch,double VoxelMeters,double PixelBudgetMeters,
const VoxelForgeCore::WorldAssemblyManifest& Assembly,const FViewBasis& View)
{
FPopRow Row;Row.CoarseLod=Patch.Level;Row.Valid=true;
FErrorAccumulator Accumulator;
for(int Iy=0;Iy<Coarse.Side;++Iy)
for(int Ix=0;Ix<Coarse.Side;++Ix)
{
const auto& CoarseHits=Coarse.At(Ix,Iy);
const auto& FineHits=Fine.At(Ix,Iy);
const auto Roots=ExactHeightRoots(Coarse,Ix,Iy,Patch,VoxelMeters,Assembly);
if(Roots.empty()&&CoarseHits.empty()&&FineHits.empty())continue;
std::vector<bool> CoarseUsed(CoarseHits.size(),false);
std::vector<bool> FineUsed(FineHits.size(),false);
for(const FSurfaceRoot& Root:Roots)
{
std::size_t CoarseIndex=0,FineIndex=0;
double CoarseError=0.0,FineError=0.0;
if(!MatchNearest(CoarseHits,CoarseUsed,Root.ZMeters,CoarseIndex,CoarseError)
||!MatchNearest(FineHits,FineUsed,Root.ZMeters,FineIndex,FineError))
{
++Row.Cracks;AddMissing(Accumulator);continue;
}
CoarseUsed[CoarseIndex]=true;
FineUsed[FineIndex]=true;
AddError(Accumulator,CoarseHits[CoarseIndex]-FineHits[FineIndex],
Root,PixelBudgetMeters,View,Coarse.X(Ix),Coarse.Y(Iy));
++Row.Samples;
}
}
FErrorRow Stats;Stats.Lod=Patch.Level;Stats.Valid=true;
FinalizeError(Stats,Accumulator);
Row.Samples=Stats.Samples;Row.P50=Stats.P50;Row.P99=Stats.P99;Row.Maximum=Stats.Maximum;
Row.VerticalP50=Stats.VerticalP50;Row.VerticalP99=Stats.VerticalP99;
Row.VerticalMaximum=Stats.VerticalMaximum;
Row.MaximumNormalDistanceMeters=Stats.MaximumNormalDistanceMeters;
Row.MaximumX=Stats.MaximumX;Row.MaximumY=Stats.MaximumY;
Row.MaximumReferenceZ=Stats.MaximumReferenceZ;
Row.MaximumDisplayedZ=Stats.MaximumDisplayedZ;
Row.MaximumSlopeDegrees=Stats.MaximumSlopeDegrees;
Row.SlopeSamples=Stats.SlopeSamples;Row.SlopeP99=Stats.SlopeP99;
Row.SlopeMaximum=Stats.SlopeMaximum;
return Row;
}
inline std::array<double,9> ClosestDisplayedDistancesMeters(
const FStandaloneOwnerWorld& World,const FVector& CameraVoxels,
std::uint32_t VoxelSizeMicrons)
{
const double VoxelMeters=static_cast<double>(VoxelSizeMicrons)/1000000.0;
std::array<double,9> Minimums{};
Minimums.fill(std::numeric_limits<double>::infinity());
for(int Lod=0;Lod<=8;++Lod)
{
const int PhaseCount=1<<Lod;
for(int Phase=0;Phase<PhaseCount;++Phase)
{
FVector Probe=CameraVoxels;
Probe.X=static_cast<float>(Phase*32.0+32.0-1.0/256.0);
const FStandaloneDesiredTileSet Desired=StandaloneWorldMesher::BuildDesiredSet(World,Probe);
for(const FVoxelTileKey& Tile:Desired.Tiles)
{
if(Tile.Level!=Lod)continue;
Minimums[Lod]=std::min(Minimums[Lod],
TileAabbDistanceMeters(Tile,Probe,VoxelMeters));
}
}
}
for(double& Distance:Minimums)
if(!std::isfinite(Distance))Distance=0.0;
return Minimums;
}
inline std::array<double,9> ClipmapClosestDisplayedDistancesMeters(
const FStandaloneOwnerWorld& World,std::uint32_t VoxelSizeMicrons)
{
const double VoxelMeters=static_cast<double>(VoxelSizeMicrons)/1000000.0;
std::array<double,9> Distances{};
for(int Lod=1;Lod<=8;++Lod)
Distances[Lod]=static_cast<double>(World.ClipRadius)
*static_cast<double>(CHUNK_SIZE)*(1ull<<(Lod-1))*VoxelMeters;
return Distances;
}
inline void PrintSlopeTail(const char* Kind,int Lod,const std::array<std::uint64_t,4>& Counts,
const std::array<double,4>& P99,const std::array<double,4>& Maximum)
{
constexpr const char* Labels[4]={"lt30","30to45","45to60","ge60"};
for(std::size_t Bin=0;Bin<Counts.size();++Bin)
std::printf("[ScreenSpaceSlopeTail] kind=%s lod=%d slope_deg=%s samples=%llu p99_px=%.4f max_px=%.4f\n",
Kind,Lod,Labels[Bin],static_cast<unsigned long long>(Counts[Bin]),P99[Bin],Maximum[Bin]);
}
inline void PrintKnownFailureControl(double CellMeters,double DisplayDistanceMeters,
const FViewBasis& View)
{
constexpr double Slope=100.0;
const double LateralMeters=CellMeters/200.0;
const double VerticalMeters=Slope*LateralMeters;
const double NormalLength=std::sqrt(1.0+Slope*Slope);
const double NormalDistance=VerticalMeters/NormalLength;
const std::array<double,3> Normal={-Slope/NormalLength,0.0,1.0/NormalLength};
const double ProjectedNormal=std::hypot(
Normal[0]*View.Right[0]+Normal[1]*View.Right[1]+Normal[2]*View.Right[2],
Normal[0]*View.Up[0]+Normal[1]*View.Up[1]+Normal[2]*View.Up[2]);
const double PixelBudgetMeters=DisplayDistanceMeters*OnePixelRadians;
const double VerticalPixels=VerticalMeters/PixelBudgetMeters;
const double NormalPixels=NormalDistance*ProjectedNormal/PixelBudgetMeters;
const bool Passed=VerticalPixels>4.0&&NormalPixels<1.0;
std::printf("[ScreenSpaceKnownFailureControl] case=steep-plane-lateral-offset slope_deg=%.4f cell_m=%.6f lateral_m=%.6f cell_fraction=%.6f vertical_error_m=%.6f vertical_height_px=%.4f closest_normal_m=%.6f projected_normal_px=%.4f status=%s\n",
std::atan(Slope)*180.0/3.14159265358979323846,CellMeters,LateralMeters,
LateralMeters/CellMeters,VerticalMeters,VerticalPixels,NormalDistance,NormalPixels,
Passed?"EXPECTED_VERTICAL_FALSE_POSITIVE":"CONTROL_FAILED");
}
inline bool Run(const std::array<std::optional<FStandaloneCpuTile>,9>& SampleTiles,
FStandaloneStreamingGenerator& Streamer,
const VoxelForgeCore::WorldAssemblyManifest& Assembly,
const std::array<double,9>& Distances,std::uint32_t VoxelSizeMicrons,int MaxLod,
const std::array<std::int64_t,9>& PixelBudgetsSubvoxels,
double CameraYawDegrees,double CameraPitchDegrees)
{
const double VoxelMeters=static_cast<double>(VoxelSizeMicrons)/1000000.0;
const FViewBasis View=MakeViewBasis(CameraYawDegrees,CameraPitchDegrees);
std::array<double,9> Budgets{};
std::array<FErrorRow,9> ErrorRows{};
std::array<FPopRow,9> PopRows{};
bool GatePass=true;
std::printf("[ScreenSpaceGate] angular_pixel=%.9f rad (horizontal_fov=90deg,width=2560) lod>=3_limit=1.0px sampling=65x65 skirts=excluded metric=local_surface_normal_projected field_reference=direct-Heightfield2D-roots normal_probe_vox=1 view_yaw_deg=%.3f view_pitch_deg=%.3f\n",
OnePixelRadians,CameraYawDegrees,CameraPitchDegrees);
for(int Lod=0;Lod<=MaxLod&&Lod<9;++Lod)
{
Budgets[Lod]=Distances[Lod]*OnePixelRadians;
std::printf("[ScreenSpaceDistance] lod=%d closest_m=%.3f pixel_budget_m=%.6f pixel_budget_cm=%.3f pixel_budget_subvoxels=%lld rule=%s\n",
Lod,Distances[Lod],Budgets[Lod],Budgets[Lod]*100.0,
static_cast<long long>(PixelBudgetsSubvoxels[Lod]),Lod<3?"exact-2cm":"1px");
}
const double LOD3CellMeters=static_cast<double>(CHUNK_SIZE*(1<<3))*VoxelMeters/64.0;
PrintKnownFailureControl(LOD3CellMeters,Distances[3],View);
VoxelForgeCore::Heightfield2D::resetThreadColumnCacheStats(false,true,0);
for(int Lod=3;Lod<=MaxLod&&Lod<9;++Lod)
{
if(!SampleTiles[Lod]||SampleTiles[Lod]->Vertices.empty())
{
std::printf("[ScreenSpaceGateLOD] lod=%d status=NO_SURFACE_TILE\n",Lod);
GatePass=false;continue;
}
const FStandaloneCpuTile& CoarseTile=*SampleTiles[Lod];
const FStandaloneCpuTile* CoarsePtr=&CoarseTile;
const std::span<const FStandaloneCpuTile* const> CoarseSpan(&CoarsePtr,1);
const FHeightGrid CoarseGrid=Rasterize(CoarseSpan,CoarseTile.Key,VoxelMeters);
const FStandaloneCpuTile ExactTile=Streamer.GenerateDiagnostic(
CoarseTile.Key,0,1,true);
const FStandaloneCpuTile* ExactPointer=&ExactTile;
const std::span<const FStandaloneCpuTile* const> ExactSpan(&ExactPointer,1);
const FHeightGrid ExactGrid=Rasterize(ExactSpan,ExactTile.Key,VoxelMeters);
ErrorRows[Lod]=CompareToReference(CoarseGrid,ExactGrid,CoarseTile.Key,VoxelMeters,
Budgets[Lod],Assembly,View);
const FErrorRow& Error=ErrorRows[Lod];
const bool LodPass=Error.Valid&&Error.Missing==0&&Error.Floating==0
&&Error.Samples>=16&&Error.Maximum<=1.0;
GatePass=GatePass&&LodPass;
std::printf("[ScreenSpaceGateLOD] lod=%d key=(%d,%d,%d) samples=%llu normal_px_p50=%.4f p99=%.4f max=%.4f vertical_px_p50=%.4f p99=%.4f max=%.4f max_normal_m=%.6f max_xy_m=(%.3f,%.3f) max_slope_deg=%.2f missing=%llu floating=%llu status=%s\n",
Lod,CoarseTile.Key.Coord.X,CoarseTile.Key.Coord.Y,CoarseTile.Key.Coord.Z,
static_cast<unsigned long long>(Error.Samples),Error.P50,Error.P99,Error.Maximum,
Error.VerticalP50,Error.VerticalP99,Error.VerticalMaximum,
Error.MaximumNormalDistanceMeters,Error.MaximumX,Error.MaximumY,
Error.MaximumSlopeDegrees,
static_cast<unsigned long long>(Error.Missing),static_cast<unsigned long long>(Error.Floating),
LodPass?"PASS":"REJECT");
PrintSlopeTail("same_lod",Lod,Error.SlopeSamples,Error.SlopeP99,Error.SlopeMaximum);
const FErrorRow FieldError=CompareToExact(CoarseGrid,CoarseTile.Key,VoxelMeters,
Budgets[Lod],Assembly,View);
const bool FieldPass=FieldError.Valid&&FieldError.Missing==0&&FieldError.Floating==0
&&FieldError.Samples>=16&&FieldError.Maximum<=1.0;
GatePass=GatePass&&FieldPass;
std::printf("[ScreenSpaceGateFieldLOD] lod=%d samples=%llu normal_px_p50=%.4f p99=%.4f max=%.4f vertical_px_p50=%.4f p99=%.4f max=%.4f max_normal_m=%.6f max_xyz_m=(%.3f,%.3f,%.3f) max_slope_deg=%.2f missing=%llu floating=%llu status=%s\n",
Lod,static_cast<unsigned long long>(FieldError.Samples),FieldError.P50,
FieldError.P99,FieldError.Maximum,FieldError.VerticalP50,FieldError.VerticalP99,
FieldError.VerticalMaximum,FieldError.MaximumNormalDistanceMeters,
FieldError.MaximumX,FieldError.MaximumY,FieldError.MaximumDisplayedZ,
FieldError.MaximumSlopeDegrees,
static_cast<unsigned long long>(FieldError.Missing),
static_cast<unsigned long long>(FieldError.Floating),FieldPass?"PASS":"REJECT");
PrintSlopeTail("field",Lod,FieldError.SlopeSamples,FieldError.SlopeP99,
FieldError.SlopeMaximum);
bool FaultControlsPass=true;
const FHeightGrid MissingGrid(ExactGrid.Side,ExactGrid.MinimumX,ExactGrid.MaximumX,
ExactGrid.MinimumY,ExactGrid.MaximumY);
const FErrorRow MissingError=CompareToReference(MissingGrid,ExactGrid,
CoarseTile.Key,VoxelMeters,Budgets[Lod],Assembly,View);
const bool MissingRejected=MissingError.Missing>0&&MissingError.Maximum>1.0;
FaultControlsPass=FaultControlsPass&&MissingRejected;
std::printf("[ScreenSpaceFaultInjection] lod=%d case=missing-displayed-surface missing=%llu status=%s\n",
Lod,static_cast<unsigned long long>(MissingError.Missing),
MissingRejected?"REJECTED_AS_REQUIRED":"GATE_FALSE_NEGATIVE");
FStandaloneCpuTile FloatingTile=CoarseTile;
const std::uint32_t FloatingVertexBase=static_cast<std::uint32_t>(FloatingTile.Vertices.size());
for(FStandaloneCpuVertex Vertex:CoarseTile.Vertices)
{
Vertex.Position[2]+=2.0f;
FloatingTile.Vertices.push_back(Vertex);
}
for(const std::uint32_t Index:CoarseTile.Indices)
FloatingTile.Indices.push_back(FloatingVertexBase+Index);
FloatingTile.TriangleSkirtFaceMasks.insert(FloatingTile.TriangleSkirtFaceMasks.end(),
CoarseTile.TriangleSkirtFaceMasks.begin(),CoarseTile.TriangleSkirtFaceMasks.end());
const FStandaloneCpuTile* FloatingPointer=&FloatingTile;
const std::span<const FStandaloneCpuTile* const> FloatingSpan(&FloatingPointer,1);
const FHeightGrid FloatingGrid=Rasterize(FloatingSpan,CoarseTile.Key,VoxelMeters);
const FErrorRow FloatingError=CompareToReference(FloatingGrid,ExactGrid,
CoarseTile.Key,VoxelMeters,Budgets[Lod],Assembly,View);
const bool FloatingRejected=FloatingError.Floating>0||FloatingError.Maximum>1.0;
FaultControlsPass=FaultControlsPass&&FloatingRejected;
std::printf("[ScreenSpaceFaultInjection] lod=%d case=2m-floating-surface floating=%llu max_px=%.4f status=%s\n",
Lod,static_cast<unsigned long long>(FloatingError.Floating),FloatingError.Maximum,
FloatingRejected?"REJECTED_AS_REQUIRED":"GATE_FALSE_NEGATIVE");
std::vector<FStandaloneCpuTile> FineTiles;
FineTiles.reserve(8);
for(int Dz=0;Dz<=1;++Dz)
for(int Dy=0;Dy<=1;++Dy)
for(int Dx=0;Dx<=1;++Dx)
{
const FVoxelTileKey FineKey(FIntVector(2*CoarseTile.Key.Coord.X+Dx,
2*CoarseTile.Key.Coord.Y+Dy,2*CoarseTile.Key.Coord.Z+Dz),Lod-1);
FStandaloneCpuTile FineTile=Streamer.GenerateDiagnostic(FineKey);
if(!FineTile.Vertices.empty())FineTiles.push_back(std::move(FineTile));
}
std::vector<const FStandaloneCpuTile*> FinePointers;
FinePointers.reserve(FineTiles.size());
for(const auto& Tile:FineTiles)FinePointers.push_back(&Tile);
const auto FineSpan=std::span<const FStandaloneCpuTile* const>(
FinePointers.data(),FinePointers.size());
const FHeightGrid FineGrid=Rasterize(FineSpan,CoarseTile.Key,VoxelMeters);
PopRows[Lod]=ComparePop(CoarseGrid,FineGrid,CoarseTile.Key,VoxelMeters,
Budgets[Lod],Assembly,View);
const FPopRow& Pop=PopRows[Lod];
const bool PopPass=Pop.Valid&&Pop.Cracks==0&&Pop.Floating==0&&Pop.Maximum<=1.0;
GatePass=GatePass&&PopPass;
std::printf("[ScreenSpaceSwap] lod=%d_to_%d samples=%llu normal_px_p50=%.4f p99=%.4f max=%.4f vertical_px_p50=%.4f p99=%.4f max=%.4f max_normal_m=%.6f max_xyz_m=(%.3f,%.3f,%.3f) max_slope_deg=%.2f cracks=%llu floating=%llu status=%s\n",
Lod,Lod-1,static_cast<unsigned long long>(Pop.Samples),
Pop.P50,Pop.P99,Pop.Maximum,Pop.VerticalP50,Pop.VerticalP99,Pop.VerticalMaximum,
Pop.MaximumNormalDistanceMeters,Pop.MaximumX,Pop.MaximumY,
Pop.MaximumDisplayedZ,
Pop.MaximumSlopeDegrees,static_cast<unsigned long long>(Pop.Cracks),
static_cast<unsigned long long>(Pop.Floating),
PopPass?"PASS":"REJECT");
PrintSlopeTail("swap",Lod,Pop.SlopeSamples,Pop.SlopeP99,Pop.SlopeMaximum);
const FHeightGrid MissingFineGrid(CoarseGrid.Side,CoarseGrid.MinimumX,
CoarseGrid.MaximumX,CoarseGrid.MinimumY,CoarseGrid.MaximumY);
const FPopRow MissingFineError=ComparePop(CoarseGrid,MissingFineGrid,
CoarseTile.Key,VoxelMeters,Budgets[Lod],Assembly,View);
const bool CrackRejected=MissingFineError.Cracks>0&&MissingFineError.Maximum>1.0;
FaultControlsPass=FaultControlsPass&&CrackRejected;
GatePass=GatePass&&FaultControlsPass;
std::printf("[ScreenSpaceFaultInjection] lod=%d case=missing-fine-ring-surface cracks=%llu max_px=%.4f status=%s\n",
Lod,static_cast<unsigned long long>(MissingFineError.Cracks),
MissingFineError.Maximum,CrackRejected?"REJECTED_AS_REQUIRED":"GATE_FALSE_NEGATIVE");
bool NegativeControlsPass=true;
const auto CheckNegative=[&](const char* Name,std::uint32_t Drop,std::uint32_t Stride)
{
FStandaloneCpuTile Bad=Streamer.GenerateDiagnostic(
CoarseTile.Key,Drop,Stride,true);
const FStandaloneCpuTile* BadPointer=&Bad;
const std::span<const FStandaloneCpuTile* const> BadSpan(&BadPointer,1);
const FHeightGrid BadGrid=Rasterize(BadSpan,Bad.Key,VoxelMeters);
const FErrorRow BadError=CompareToReference(BadGrid,ExactGrid,
CoarseTile.Key,VoxelMeters,Budgets[Lod],Assembly,View);
const bool Rejected=BadError.Missing>0||BadError.Floating>0
||BadError.Samples<16||BadError.Maximum>1.0;
NegativeControlsPass=NegativeControlsPass&&Rejected;
std::printf("[ScreenSpaceNegative] lod=%d case=%s p50_px=%.4f p99_px=%.4f max_px=%.4f missing=%llu floating=%llu status=%s\n",
Lod,Name,BadError.P50,BadError.P99,BadError.Maximum,
static_cast<unsigned long long>(BadError.Missing),
static_cast<unsigned long long>(BadError.Floating),
Rejected?"REJECTED_AS_REQUIRED":"GATE_FALSE_NEGATIVE");
};
CheckNegative("s13-global-octave-drop",1,1);
CheckNegative("stride-2-column-interpolation",0,2);
GatePass=GatePass&&NegativeControlsPass;
}
std::printf("[ScreenSpaceGateResult] status=%s\n",GatePass?"PASS":"REJECT");
return GatePass;
}
}
+115 -3
View File
@@ -1,6 +1,7 @@
#pragma once
#include "StandaloneWorkerThread.h"
#include "VoxelForgeCore/VoxelForgeCore.h"
#include <algorithm>
#include <atomic>
@@ -10,12 +11,15 @@
#include <cstdint>
#include <fstream>
#include <mutex>
#include <numeric>
#include <string>
#include <string_view>
#include <thread>
#include <vector>
#if defined(__linux__)
#include <unistd.h>
#include <sys/resource.h>
#endif
namespace StandaloneTlsProbe
@@ -38,14 +42,58 @@ namespace StandaloneTlsProbe
residentPages*static_cast<std::uint64_t>(pageSize)/1024};
}
inline int Run(int workerCount)
inline int Run(int workerCount,std::string_view touchKind="none")
{
workerCount=std::clamp(workerCount,0,12);
VoxelForgeCore::WorldAssemblyRecipeV1 surfaceRecipe;
VoxelForgeCore::WorldAssemblyStratumPlanV1 surfacePlan;
VoxelForgeCore::Heightfield2D surfaceField(surfaceRecipe,surfacePlan);
if(touchKind=="surface-world")
{
VoxelForgeCore::WorldAssemblyBiomeProfileV1 biome;
biome.stableId=1;
surfaceRecipe.biomes.push_back(biome);
surfacePlan.strateIndex=0;
surfacePlan.topChunkZ=1;
surfacePlan.bottomChunkZ=-1;
surfaceField=VoxelForgeCore::Heightfield2D(surfaceRecipe,surfacePlan);
if(!surfaceField.isValid())
{
std::fprintf(stderr,"[TlsProbe] invalid synthetic SurfaceWorld cache probe input\n");
return 2;
}
}
VoxelForgeCore::FloatingIslandRecipeV1 islandRecipe;
VoxelForgeCore::FloatingIslandPlanV1 islandPlan;
for(std::uint32_t index=0;index<islandRecipe.primaryIslandCount;++index)
{
VoxelForgeCore::FloatingIslandAnchorV1 island;
island.stableId=index+1;
island.ordinal=index;
island.centerSubvoxels={static_cast<std::int64_t>(index)*64*256,0,0};
island.radiusSubvoxels=20*256;
island.topHalfSubvoxels=20*256;
island.topZSubvoxels=0;
island.bottomZSubvoxels=-80*256;
island.taperEndQ16=islandRecipe.taperEndMinimumQ16;
islandPlan.islands.push_back(island);
}
VoxelForgeCore::FloatingIslandFieldV1 islandField(islandRecipe,islandPlan);
if(touchKind=="floating-islands"&&!islandField.isValid())
{
std::fprintf(stderr,"[TlsProbe] invalid synthetic FloatingIslands cache probe input\n");
return 2;
}
std::mutex mutex;
std::condition_variable changed;
bool release=false;
bool touchRequested=false;
std::atomic<int> ready{0};
std::atomic<int> touchReady{0};
std::vector<FStandaloneWorkerThread> workers;
std::vector<long> startupMinorFaults(static_cast<std::size_t>(workerCount),0);
std::vector<long> firstTouchMinorFaults(static_cast<std::size_t>(workerCount),0);
std::vector<std::int64_t> checksums(static_cast<std::size_t>(workerCount),0);
workers.reserve(static_cast<std::size_t>(workerCount));
FMemorySample previous=ReadMemory();
std::printf("[TlsProbe] workers=0 create_ms=0.000 rss_kib=%llu rss_delta_kib=0 vms_kib=%llu stack_bytes=%zu\n",
@@ -55,10 +103,47 @@ namespace StandaloneTlsProbe
for(int index=1;index<=workerCount;++index)
{
const auto start=std::chrono::steady_clock::now();
workers.emplace_back([&]
workers.emplace_back([&,index]
{
#if defined(__linux__)
rusage startupUsage{};
getrusage(RUSAGE_THREAD,&startupUsage);
startupMinorFaults[static_cast<std::size_t>(index-1)]=startupUsage.ru_minflt;
#endif
ready.fetch_add(1,std::memory_order_release);
changed.notify_all();
{
std::unique_lock lock(mutex);
changed.wait(lock,[&]{return touchRequested||release;});
}
if(touchRequested)
{
#if defined(__linux__)
rusage beforeTouch{};
rusage afterTouch{};
getrusage(RUSAGE_THREAD,&beforeTouch);
#endif
std::int64_t checksum=0;
if(touchKind=="surface-world")
{
for(int sample=0;sample<4;++sample)
checksum+=surfaceField.point((index*4+sample)*256,0,0).densitySubvoxels;
}
else if(touchKind=="floating-islands")
{
for(int sample=0;sample<4;++sample)
checksum+=islandField.densitySubvoxels(
(index*4+sample)*256,0,-20*256);
}
checksums[static_cast<std::size_t>(index-1)]=checksum;
#if defined(__linux__)
getrusage(RUSAGE_THREAD,&afterTouch);
firstTouchMinorFaults[static_cast<std::size_t>(index-1)]=
afterTouch.ru_minflt-beforeTouch.ru_minflt;
#endif
touchReady.fetch_add(1,std::memory_order_release);
changed.notify_all();
}
std::unique_lock lock(mutex);
changed.wait(lock,[&]{return release;});
});
@@ -76,6 +161,33 @@ namespace StandaloneTlsProbe
static_cast<long long>(rssDelta),static_cast<unsigned long long>(current.virtualKiB));
previous=current;
}
const FMemorySample beforeTouch=ReadMemory();
std::printf("[TlsProbeTouch] kind=%.*s rss_before_kib=%llu\n",
static_cast<int>(touchKind.size()),touchKind.data(),
static_cast<unsigned long long>(beforeTouch.residentKiB));
if(touchKind!="none")
{
{
std::lock_guard lock(mutex);
touchRequested=true;
}
changed.notify_all();
{
std::unique_lock lock(mutex);
changed.wait(lock,[&]{return touchReady.load(std::memory_order_acquire)==workerCount;});
}
const FMemorySample afterTouch=ReadMemory();
std::printf("[TlsProbeTouch] kind=%.*s rss_after_kib=%llu rss_delta_kib=%lld checksum_sum=%lld\n",
static_cast<int>(touchKind.size()),touchKind.data(),
static_cast<unsigned long long>(afterTouch.residentKiB),
static_cast<long long>(static_cast<std::int64_t>(afterTouch.residentKiB)
-static_cast<std::int64_t>(beforeTouch.residentKiB)),
static_cast<long long>(std::accumulate(checksums.begin(),checksums.end(),std::int64_t{0})));
for(int index=0;index<workerCount;++index)
std::printf("[TlsProbeTouch] worker=%d startup_minor_faults=%ld first_touch_minor_faults=%ld\n",
index+1,startupMinorFaults[static_cast<std::size_t>(index)],
firstTouchMinorFaults[static_cast<std::size_t>(index)]);
}
{
std::lock_guard lock(mutex);
release=true;
@@ -86,7 +198,7 @@ namespace StandaloneTlsProbe
return 0;
}
#else
inline int Run(int)
inline int Run(int,std::string_view="none")
{
std::fprintf(stderr,"TLS probe is Linux-only.\n");
return 2;
+3 -3
View File
@@ -12,13 +12,13 @@
#include <pthread.h>
#endif
// Linux's static TLS image is larger than the default pthread stack in this standalone build.
// Give only host-owned generation workers enough stack for that TLS plus normal call frames.
// Keep host-owned Linux workers on the ordinary 8 MiB stack size. Core's large caches now live
// behind lazy thread-local handles, so they no longer need to be hidden by oversized stacks.
#if defined(__linux__)
class FStandaloneWorkerThread
{
public:
static constexpr std::size_t StackSizeBytes=32u*1024u*1024u;
static constexpr std::size_t StackSizeBytes=8u*1024u*1024u;
FStandaloneWorkerThread()=default;
+85 -4
View File
@@ -7,12 +7,15 @@
#include <algorithm>
#include <chrono>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <filesystem>
#include <fstream>
#include <iostream>
#include <iterator>
#include <limits>
#include <memory>
#include <string>
#include <string_view>
@@ -33,6 +36,8 @@ namespace
bool StreamHash=false;
bool ProfileColumnOverlap=false;
bool ForceGenerate=false;
bool MeshCoverage=false;
bool ScreenSpaceGate=false;
bool HasSeedOverride=false;
int SeedOverride=0;
bool HasRenderDistanceOverride=false;
@@ -40,8 +45,13 @@ namespace
bool FloatingIslandsRecipe=false;
bool TlsProbeRequested=false;
int TlsProbeWorkers=0;
std::string TlsProbeTouch="none";
bool HasCamera=false;
bool AutoSurfaceCamera=false;
FVector CameraMeters=FVector::ZeroVector;
float CameraYawDegrees=0.0f;
float CameraPitchDegrees=0.0f;
std::filesystem::path MeshExportPath;
};
bool ParseInteger(std::string_view text,int& output)
@@ -55,13 +65,15 @@ namespace
return true;
}
bool ParseCamera(std::string_view text,FVector& meters)
bool ParseCamera(std::string_view text,FVector& meters,float& yawDegrees,float& pitchDegrees)
{
const std::string values(text);
float x=0.0f,y=0.0f,z=0.0f,yaw=0.0f,pitch=0.0f;
if(std::sscanf(values.c_str(),"%f,%f,%f,%f,%f",&x,&y,&z,&yaw,&pitch)!=5)
return false;
meters={x,y,z};
yawDegrees=yaw;
pitchDegrees=pitch;
return true;
}
@@ -79,10 +91,15 @@ namespace
std::printf("Usage: %s [owner_world.json] --world-assembler-prototype --stream-benchmark --stream-pipeline [options]\n"
" --workers=N --clip-radius=N --max-clip-level=N --max-level=N\n"
" --camera=X,Y,Z,YAW,PITCH (position in metres) --stream-hash\n"
" --mesh-export=FILE (write the exact generated tile meshes for offline rendering)\n"
" --profile-column-overlap --far-horizon-lod8-step=N --force-generate\n"
" --seed=N --recipe=surface-world|floating-islands\n"
" --auto-surface-camera (place the 27-tile cube on this seed's surface)\n"
" --mesh-coverage (report non-empty tiles and indexed triangles)\n"
" --screen-space-gate (measure display error and historical negative controls)\n"
" --render-distance-chunks=N (0 disables the extra far ring)\n"
" --tls-probe=N (Linux worker TLS/stack measurement; N=0..12)\n"
" --tls-probe-touch=none|surface-world|floating-islands (first-use probe)\n"
" --process-affinity=MASK --process-priority=Normal --frame-limit=FPS (viewer compatibility only)\n",
argv[0]);
return false;
@@ -93,6 +110,9 @@ namespace
else if(arg=="--stream-hash")options.StreamHash=true;
else if(arg=="--profile-column-overlap")options.ProfileColumnOverlap=true;
else if(arg=="--force-generate")options.ForceGenerate=true;
else if(arg=="--mesh-coverage")options.MeshCoverage=true;
else if(arg=="--screen-space-gate")options.ScreenSpaceGate=true;
else if(arg=="--auto-surface-camera")options.AutoSurfaceCamera=true;
else if(arg.starts_with("--recipe="))
{
const std::string_view recipe=arg.substr(std::string_view("--recipe=").size());
@@ -115,12 +135,26 @@ namespace
{std::fprintf(stderr,"--tls-probe must be in 0..12\n");return false;}
options.TlsProbeRequested=true;
}
else if(arg.starts_with("--tls-probe-touch="))
{
const std::string_view touch=arg.substr(std::string_view("--tls-probe-touch=").size());
if(touch!="none"&&touch!="surface-world"&&touch!="floating-islands")
{std::fprintf(stderr,"Invalid --tls-probe-touch value: %.*s\n",static_cast<int>(touch.size()),touch.data());return false;}
options.TlsProbeTouch=touch;
}
else if(arg.starts_with("--camera="))
{
if(!ParseCamera(arg.substr(9),options.CameraMeters))
if(!ParseCamera(arg.substr(9),options.CameraMeters,
options.CameraYawDegrees,options.CameraPitchDegrees))
{std::fprintf(stderr,"Invalid --camera value: %.*s\n",static_cast<int>(arg.size()),arg.data());return false;}
options.HasCamera=true;
}
else if(arg.starts_with("--mesh-export="))
{
options.MeshExportPath=std::filesystem::path(arg.substr(14));
if(options.MeshExportPath.empty())
{std::fprintf(stderr,"--mesh-export needs a file path\n");return false;}
}
else if(arg.starts_with("--workers="))
{if(!readInt("--workers=",options.WorkerCount))return false;}
else if(arg.starts_with("--clip-radius="))
@@ -145,6 +179,8 @@ namespace
options.ClipRadius=std::clamp(options.ClipRadius,1,64);
options.MaxClipLevel=std::clamp(options.MaxClipLevel,0,8);
options.FarHorizonLOD8InteriorStepVoxels=std::max(0,options.FarHorizonLOD8InteriorStepVoxels);
if(!options.TlsProbeRequested&&options.TlsProbeTouch!="none")
{std::fprintf(stderr,"--tls-probe-touch requires --tls-probe=N\n");return false;}
if(options.TlsProbeRequested)return true;
if(!options.WorldAssemblerPrototype||!options.StreamBenchmark||!options.StreamPipeline)
{
@@ -161,7 +197,8 @@ int main(int argc,char** argv)
const auto coldStart=Clock::now();
FOptions options;
if(!ParseOptions(argc,argv,options))return 2;
if(options.TlsProbeRequested)return StandaloneTlsProbe::Run(options.TlsProbeWorkers);
if(options.TlsProbeRequested)
return StandaloneTlsProbe::Run(options.TlsProbeWorkers,options.TlsProbeTouch);
std::printf("[HeadlessConfig] data=%s workers=%d clip_radius=%d max_clip_level=%d max_level=%d hash=%s column_overlap=%s force_generate=%s recipe=%s seed_override=%s render_distance_override=%s\n",
options.DataPath.string().c_str(),options.WorkerCount,options.ClipRadius,options.MaxClipLevel,
options.MaxLevel,options.StreamHash?"on":"off",options.ProfileColumnOverlap?"on":"off",
@@ -221,6 +258,48 @@ int main(int argc,char** argv)
&&!StandaloneWorldAssemblyPrototype::AttachFloatingIslandWorldAssembly(
*ownerWorld,ownerJsonRoot,worldAssembly,error))
{std::fprintf(stderr,"Floating-island assembly setup failed: %s\n",error.c_str());return 2;}
if(options.AutoSurfaceCamera)
{
constexpr std::int64_t UnitsPerVoxel=VoxelForgeCore::WorldAssemblySubvoxelsPerVoxel;
if(options.FloatingIslandsRecipe)
{
const VoxelForgeCore::FloatingIslandAnchorV1* chosen=nullptr;
for(const auto& islandSet:worldAssembly.floatingIslands)
for(const auto& island:islandSet.manifest.plan.islands)
if(!chosen||island.radiusSubvoxels>chosen->radiusSubvoxels)chosen=&island;
if(!chosen)
{std::fprintf(stderr,"[SeedSurfacePlacement] FAIL: island plan has no anchors\n");return 2;}
cameraVoxels={
static_cast<float>(chosen->centerSubvoxels[0])/UnitsPerVoxel,
static_cast<float>(chosen->centerSubvoxels[1])/UnitsPerVoxel,
static_cast<float>(chosen->centerSubvoxels[2])/UnitsPerVoxel};
std::printf("[SeedSurfacePlacement] recipe=floating-islands seed=%d island_radius_vox=%.3f camera_voxel=(%.6f,%.6f,%.6f) status=PASS\n",
seed,static_cast<double>(chosen->radiusSubvoxels)/UnitsPerVoxel,
cameraVoxels.X,cameraVoxels.Y,cameraVoxels.Z);
}
else
{
const auto xSubvoxels=static_cast<std::int64_t>(std::llround(cameraVoxels.X*UnitsPerVoxel));
const auto ySubvoxels=static_cast<std::int64_t>(std::llround(cameraVoxels.Y*UnitsPerVoxel));
const auto currentZSubvoxels=static_cast<std::int64_t>(std::llround(cameraVoxels.Z*UnitsPerVoxel));
std::int64_t selectedGround=0,bestDistance=std::numeric_limits<std::int64_t>::max();
for(const auto& stratum:worldAssembly.plan.strates)
{
VoxelForgeCore::Heightfield2D field(worldAssembly.recipe,stratum);
if(!field.isValid())continue;
const auto column=field.point(xSubvoxels,ySubvoxels,0);
const std::int64_t distance=std::abs(column.groundHeightSubvoxels-currentZSubvoxels);
if(distance<bestDistance)
{bestDistance=distance;selectedGround=column.groundHeightSubvoxels;}
}
if(bestDistance==std::numeric_limits<std::int64_t>::max())
{std::fprintf(stderr,"[SeedSurfacePlacement] FAIL: no valid SurfaceWorld heightfield\n");return 2;}
cameraVoxels.Z=static_cast<float>(static_cast<double>(selectedGround)/UnitsPerVoxel);
std::printf("[SeedSurfacePlacement] recipe=surface-world seed=%d ground_voxel=%.6f camera_voxel=(%.6f,%.6f,%.6f) status=PASS\n",
seed,static_cast<double>(selectedGround)/UnitsPerVoxel,
cameraVoxels.X,cameraVoxels.Y,cameraVoxels.Z);
}
}
std::printf("[WorldAssemblerPlanTiming] total_ms=%.3f status=PASS\n",
std::chrono::duration<double,std::milli>(Clock::now()-planStart).count());
@@ -233,5 +312,7 @@ int main(int argc,char** argv)
return StandaloneStreamBenchmark::RunPipelinedStreamingBenchmark(ownerWorld,snapshot,
cameraVoxels,options.WorkerCount,options.MaxLevel,VoxelForgeCore::DetailVariant::coherent,
scheduler,options.StreamHash,false,false,false,false,coldStart,
options.ProfileColumnOverlap,options.FarHorizonLOD8InteriorStepVoxels);
options.ProfileColumnOverlap,options.FarHorizonLOD8InteriorStepVoxels,
options.MeshCoverage,options.MeshExportPath,options.CameraYawDegrees,
options.CameraPitchDegrees,options.ScreenSpaceGate);
}
+218 -4
View File
@@ -2,6 +2,7 @@
#include "OwnerWorldLoader.h"
#include "StreamingWorld.h"
#include "LinuxScreenSpaceGate.h"
#include <algorithm>
#include <array>
@@ -9,6 +10,8 @@
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <filesystem>
#include <fstream>
#include <limits>
#include <thread>
#include <unordered_map>
@@ -17,6 +20,76 @@
namespace StandaloneStreamBenchmark
{
struct FSceneExportWriter
{
std::ofstream File;
bool bGood=true;
std::uint32_t TileCount=0;
template<typename T> void Write(const T& Value)
{
File.write(reinterpret_cast<const char*>(&Value),sizeof(Value));
bGood=bGood&&static_cast<bool>(File);
}
bool Open(const std::filesystem::path& Path,std::uint32_t VoxelSizeMicrons,
const FVector& CameraVoxels,float YawDegrees,float PitchDegrees,
std::uint32_t ExpectedTiles)
{
std::error_code Error;
if(!Path.parent_path().empty())
std::filesystem::create_directories(Path.parent_path(),Error);
if(Error)return false;
File.open(Path,std::ios::binary|std::ios::trunc);
if(!File)return false;
constexpr char Magic[8]={'V','F','M','S','H','0','0','1'};
File.write(Magic,sizeof(Magic));
const std::uint32_t Version=1;
Write(Version);Write(VoxelSizeMicrons);Write(ExpectedTiles);
const double MicronsToMeters=static_cast<double>(VoxelSizeMicrons)/1000000.0;
const double Camera[3]={CameraVoxels.X*MicronsToMeters,
CameraVoxels.Y*MicronsToMeters,CameraVoxels.Z*MicronsToMeters};
for(const double Value:Camera)Write(Value);
const double Yaw=YawDegrees,Pitch=PitchDegrees;
Write(Yaw);Write(Pitch);
return bGood;
}
void Add(const FStandaloneCpuTile& Tile)
{
const std::int32_t Key[4]={Tile.Key.Coord.X,Tile.Key.Coord.Y,
Tile.Key.Coord.Z,Tile.Key.Level};
for(const auto Value:Key)Write(Value);
const std::uint32_t SurfaceVertexCount=Tile.SurfaceVertexCount;
const std::uint32_t SkirtTriangleCount=Tile.SkirtTriangleCount;
const std::uint32_t VertexCount=static_cast<std::uint32_t>(Tile.Vertices.size());
const std::uint32_t IndexCount=static_cast<std::uint32_t>(Tile.Indices.size());
const std::uint32_t MaskCount=static_cast<std::uint32_t>(Tile.TriangleSkirtFaceMasks.size());
Write(SurfaceVertexCount);Write(SkirtTriangleCount);
Write(VertexCount);Write(IndexCount);Write(MaskCount);
for(const FStandaloneCpuVertex& Vertex:Tile.Vertices)
for(const float Value:Vertex.Position)Write(Value);
for(const FStandaloneCpuVertex& Vertex:Tile.Vertices)
for(const float Value:Vertex.Normal)Write(Value);
if(IndexCount)
File.write(reinterpret_cast<const char*>(Tile.Indices.data()),
static_cast<std::streamsize>(sizeof(std::uint32_t)*Tile.Indices.size()));
if(MaskCount)
File.write(reinterpret_cast<const char*>(Tile.TriangleSkirtFaceMasks.data()),
static_cast<std::streamsize>(Tile.TriangleSkirtFaceMasks.size()));
bGood=bGood&&static_cast<bool>(File);
++TileCount;
}
bool Close(std::uint32_t ExpectedTiles)
{
File.flush();
const bool bComplete=bGood&&static_cast<bool>(File)&&TileCount==ExpectedTiles;
File.close();
return bComplete;
}
};
inline void HashWord(uint64& Hash,uint64 Word,int32 Bytes=8)
{
for(int32 I=0;I<Bytes;++I)
@@ -62,10 +135,26 @@ namespace StandaloneStreamBenchmark
VoxelForgeCore::DetailVariant DetailVariant,const VoxelForgeCore::JobScheduler& Scheduler,
bool bHashDensity,bool bSkipUvAndColors,bool bSkipMaterialGroups,bool bSkipUV,bool bSkipColors,
std::chrono::steady_clock::time_point ColdStart,bool bProfileColumnOverlap,
int32 FarHorizonLOD8InteriorStepVoxels)
int32 FarHorizonLOD8InteriorStepVoxels,bool bReportMeshCoverage=false,
const std::filesystem::path& MeshExportPath={},float CameraYawDegrees=0.0f,
float CameraPitchDegrees=0.0f,bool bScreenSpaceGate=false)
{
using Clock=std::chrono::steady_clock;
FStandaloneOwnerWorld& World=*OwnerWorld;
const VoxelForgeCore::WorldAssemblyManifest* Assembly=CoreSnapshot.worldAssembly();
std::array<double,9> ClosestDisplayDistances{};
std::array<std::int64_t,9> PixelBudgetsSubvoxels{};
if(bScreenSpaceGate)
{
ClosestDisplayDistances=StandaloneScreenSpaceGate::ClosestDisplayedDistancesMeters(
World,CameraPositionVoxels,World.CoreVoxelSizeMicrons);
const double VoxelMeters=static_cast<double>(World.CoreVoxelSizeMicrons)/1000000.0;
for(int32 Lod=3;Lod<=World.MaxClipLevel&&Lod<9;++Lod)
PixelBudgetsSubvoxels[static_cast<std::size_t>(Lod)]=static_cast<std::int64_t>(std::floor(
ClosestDisplayDistances[static_cast<std::size_t>(Lod)]
*StandaloneScreenSpaceGate::OnePixelRadians/VoxelMeters
*VoxelForgeCore::WorldAssemblySubvoxelsPerVoxel));
}
const bool bRoundTunnels=World.Generator->bStandaloneResearchRoundTunnels;
const bool bEnhancedTunnelWalls=World.Generator->bStandaloneResearchEnhancedWalls;
VoxelForgeCore::World Shape(CoreSnapshot);
@@ -154,6 +243,7 @@ namespace StandaloneStreamBenchmark
FStandaloneStreamingGenerator Streamer(World,WorkerCount,bHashDensity,nullptr,MaxLevel,
bSkipUvAndColors,bSkipMaterialGroups,bSkipUV,bSkipColors,&Shape,bProfileColumnOverlap,
FarHorizonLOD8InteriorStepVoxels);
if(bScreenSpaceGate)Streamer.SetMesherStageProfilingEnabled(true);
const auto StreamStart=Clock::now();
const FStandaloneStreamingUpdate Update=Streamer.StartWithDesired(Desired);
if(Update.DesiredTiles!=static_cast<int32>(Desired.Tiles.size()))
@@ -162,10 +252,27 @@ namespace StandaloneStreamBenchmark
std::fprintf(stderr,"[StreamPipeline] expected %zu tiles but queued %d.\n",
Desired.Tiles.size(),Update.DesiredTiles);return 7;
}
FSceneExportWriter SceneExport;
const bool bExportRequested=!MeshExportPath.empty();
bool bSceneExportPassing=true;
if(bExportRequested)
{
bSceneExportPassing=SceneExport.Open(MeshExportPath,World.CoreVoxelSizeMicrons,
CameraPositionVoxels,CameraYawDegrees,CameraPitchDegrees,
static_cast<std::uint32_t>(Update.DesiredTiles));
if(!bSceneExportPassing)
{
Streamer.Stop();
std::fprintf(stderr,"[MeshSceneExport] FAIL: could not open %s\n",
MeshExportPath.string().c_str());
return 8;
}
}
std::vector<FHashedTile> DensityRows,MeshRows,PayloadRows,TopologyRows;
int32 Finished=0,NeighborhoodFinished=0,FullDetailFinished=0;
int32 FullDetailExpected=0;
uint64 WholeNonEmptyMeshTiles=0,WholeTriangleCount=0;
struct FColumnXY
{
std::int64_t X=0,Y=0;
@@ -195,6 +302,8 @@ namespace StandaloneStreamBenchmark
std::array<double,9> ColumnEvalMsByLOD{},MarchingExclusiveMsByLOD{};
std::array<double,9> GroundRefineExclusiveMsByLOD{},CapRefineExclusiveMsByLOD{};
std::array<double,9> MeshAssemblyMsByLOD{};
std::array<double,9> SkirtMsByLOD{};
std::array<std::uint64_t,9> SkirtTrianglesByLOD{};
std::array<std::uint64_t,9> TileCountByLOD{};
for(const FVoxelTileKey& Tile:Desired.Tiles)
if(Tile.Level>=0&&Tile.Level<static_cast<int32>(ExpectedTilesByLOD.size()))
@@ -213,6 +322,9 @@ namespace StandaloneStreamBenchmark
double NativeMeshingMilliseconds=0.0;
for(const FVoxelTileKey& Tile:Desired.Tiles)
if(Tile.Level<World.FullResClipLevels)++FullDetailExpected;
std::array<std::optional<FStandaloneCpuTile>,9> GateSampleTiles{};
std::array<double,9> GateSampleDistances{};
GateSampleDistances.fill(std::numeric_limits<double>::infinity());
Clock::time_point NeighborhoodReady{},FullDetailReady{},WholeViewReady{};
bool bNeighborhoodReported=false,bFullDetailReported=false;
while(Finished<Update.DesiredTiles)
@@ -221,7 +333,14 @@ namespace StandaloneStreamBenchmark
if(Ready.empty()){std::this_thread::sleep_for(std::chrono::milliseconds(1));continue;}
for(const FStandaloneCpuTile& Tile:Ready)
{
if(bExportRequested)SceneExport.Add(Tile);
++Finished;
if(bReportMeshCoverage)
{
const uint64 TileTriangleCount=static_cast<uint64>(Tile.Indices.size()/3);
WholeTriangleCount+=TileTriangleCount;
if(TileTriangleCount>0)++WholeNonEmptyMeshTiles;
}
if(Tile.Key.Level>=0&&Tile.Key.Level<static_cast<int32>(TileCountByLOD.size()))
{
const std::size_t LOD=static_cast<std::size_t>(Tile.Key.Level);
@@ -232,6 +351,23 @@ namespace StandaloneStreamBenchmark
GroundRefineExclusiveMsByLOD[LOD]+=Tile.CoreDiagnostics.groundRefinementExclusiveMilliseconds;
CapRefineExclusiveMsByLOD[LOD]+=Tile.CoreDiagnostics.capRefinementExclusiveMilliseconds;
MeshAssemblyMsByLOD[LOD]+=Tile.CoreDiagnostics.meshAssemblyMilliseconds;
SkirtMsByLOD[LOD]+=Tile.CoreDiagnostics.marchingCubesSkirtMilliseconds;
SkirtTrianglesByLOD[LOD]+=Tile.SkirtTriangleCount;
if(bScreenSpaceGate&&Assembly&&Tile.Key.Level>=3&&Tile.Key.Level<9
&&!Tile.Vertices.empty()
&&StandaloneScreenSpaceGate::TileHasNativeSurface(Tile.Key,*Assembly,
static_cast<double>(World.CoreVoxelSizeMicrons)/1000000.0))
{
const double Distance=StandaloneScreenSpaceGate::TileAabbDistanceMeters(
Tile.Key,CameraPositionVoxels,
static_cast<double>(World.CoreVoxelSizeMicrons)/1000000.0);
const bool bCloser=Distance<GateSampleDistances[LOD]-1e-9;
const bool bTied=std::abs(Distance-GateSampleDistances[LOD])<=1e-9;
const bool bKeyLess=!GateSampleTiles[LOD]
||TileKeyLessForHash(Tile.Key,GateSampleTiles[LOD]->Key);
if(bCloser||(bTied&&bKeyLess))
{GateSampleDistances[LOD]=Distance;GateSampleTiles[LOD]=Tile;}
}
}
if(bProfileColumnOverlap&&Tile.Key.Level>=0
&&Tile.Key.Level<static_cast<int32>(ColumnCaptureTilesByLOD.size()))
@@ -314,6 +450,28 @@ namespace StandaloneStreamBenchmark
}
}
Streamer.Stop();
bool bScreenSpaceGatePassing=true;
if(bScreenSpaceGate)
{
if(Assembly)
bScreenSpaceGatePassing=StandaloneScreenSpaceGate::Run(GateSampleTiles,
Streamer,*Assembly,ClosestDisplayDistances,World.CoreVoxelSizeMicrons,
World.MaxClipLevel,PixelBudgetsSubvoxels,CameraYawDegrees,
CameraPitchDegrees);
else
{std::fprintf(stderr,"[ScreenSpaceGateResult] no-world-assembly status=REJECT\n");bScreenSpaceGatePassing=false;}
}
if(bExportRequested)
{
bSceneExportPassing=SceneExport.Close(static_cast<std::uint32_t>(Update.DesiredTiles));
std::error_code FileSizeError;
const std::uintmax_t ExportBytes=std::filesystem::file_size(MeshExportPath,FileSizeError);
std::printf("[MeshSceneExport] tiles=%u expected=%d bytes=%llu status=%s path=%s\n",
SceneExport.TileCount,Update.DesiredTiles,
static_cast<unsigned long long>(FileSizeError?0:ExportBytes),
bSceneExportPassing?"PASS":"FAIL",MeshExportPath.string().c_str());
bSceneExportPassing=bSceneExportPassing&&!FileSizeError;
}
bool bColumnOverlapCapturePassing=true;
if(bProfileColumnOverlap)
{
@@ -334,10 +492,12 @@ namespace StandaloneStreamBenchmark
}
for(std::size_t LOD=0;LOD<TileCountByLOD.size();++LOD)
{
std::printf("[WorldAssemblerLODWorker] lod=%zu tiles=%llu worker_sum_s=%.6f column_eval_exclusive_ms=%.3f mc_exclusive_ms=%.3f ground_refine_exclusive_ms=%.3f cap_refine_exclusive_ms=%.3f mesh_assembly_ms=%.3f\n",
std::printf("[WorldAssemblerLODWorker] lod=%zu tiles=%llu worker_sum_s=%.6f column_eval_exclusive_ms=%.3f mc_exclusive_ms=%.3f ground_refine_exclusive_ms=%.3f cap_refine_exclusive_ms=%.3f skirt_ms=%.3f skirt_triangles=%llu mesh_assembly_ms=%.3f\n",
LOD,static_cast<unsigned long long>(TileCountByLOD[LOD]),WorkerSecondsByLOD[LOD],
ColumnEvalMsByLOD[LOD],MarchingExclusiveMsByLOD[LOD],
GroundRefineExclusiveMsByLOD[LOD],CapRefineExclusiveMsByLOD[LOD],MeshAssemblyMsByLOD[LOD]);
GroundRefineExclusiveMsByLOD[LOD],CapRefineExclusiveMsByLOD[LOD],
SkirtMsByLOD[LOD],static_cast<unsigned long long>(SkirtTrianglesByLOD[LOD]),
MeshAssemblyMsByLOD[LOD]);
}
const double NeighborhoodSeconds=std::chrono::duration<double>(NeighborhoodReady-ColdStart).count();
const double NeighborhoodMeshSeconds=std::chrono::duration<double>(NeighborhoodReady-ShapeReady).count();
@@ -348,6 +508,10 @@ namespace StandaloneStreamBenchmark
WorkerCount,ShapeSeconds,NeighborhoodMeshSeconds,NeighborhoodSeconds,
FullDetailSeconds,WholeViewSeconds,NeighborhoodFinished,
FullDetailFinished,FullDetailExpected,Finished,Desired.Tiles.size(),StreamSeconds);
if(bReportMeshCoverage)
std::printf("[PipelineMeshCoverage] tiles=%d nonempty_mesh_tiles=%llu indexed_triangles=%llu\n",
Finished,static_cast<unsigned long long>(WholeNonEmptyMeshTiles),
static_cast<unsigned long long>(WholeTriangleCount));
std::printf("[WorldAssemblerTilePipeline] full_detail_tiles=%d solid_boxes=%llu air_boxes=%llu mixed_boxes=%llu unknown_boxes=%llu whole_tile_skips=%llu field_calls=%llu column_cache_hits=%llu column_cache_misses=%llu column_compute_worker_ms=%.3f classification_worker_ms=%.3f meshing_worker_ms=%.3f\n",
FullDetailExpected,static_cast<unsigned long long>(NativeSolidBoxes),
static_cast<unsigned long long>(NativeAirBoxes),
@@ -382,9 +546,59 @@ namespace StandaloneStreamBenchmark
static_cast<unsigned long long>(HashTileRows(MeshRows)),
static_cast<unsigned long long>(HashTileRows(PayloadRows)),
static_cast<unsigned long long>(HashTileRows(TopologyRows)));
for(std::size_t LOD=0;LOD<TileCountByLOD.size();++LOD)
{
const auto FilterLOD=[LOD](const std::vector<FHashedTile>& Rows)
{
std::vector<FHashedTile> Selected;
for(const FHashedTile& Row:Rows)
if(Row.Key.Level==static_cast<int32>(LOD))Selected.push_back(Row);
return Selected;
};
auto LodDensity=FilterLOD(DensityRows),LodMesh=FilterLOD(MeshRows);
auto LodPayload=FilterLOD(PayloadRows),LodTopology=FilterLOD(TopologyRows);
std::printf("[PipelineLODHash] lod=%zu tiles=%llu density=0x%016llx mesh=0x%016llx payload=0x%016llx topology=0x%016llx\n",
LOD,static_cast<unsigned long long>(TileCountByLOD[LOD]),
static_cast<unsigned long long>(HashTileRows(LodDensity)),
static_cast<unsigned long long>(HashTileRows(LodMesh)),
static_cast<unsigned long long>(HashTileRows(LodPayload)),
static_cast<unsigned long long>(HashTileRows(LodTopology)));
}
const std::array<VoxelForgeCore::Vec3d,9> QueryPoints={{
{CameraPositionVoxels.X,CameraPositionVoxels.Y,CameraPositionVoxels.Z},
{CameraPositionVoxels.X+8.0,CameraPositionVoxels.Y,CameraPositionVoxels.Z},
{CameraPositionVoxels.X-8.0,CameraPositionVoxels.Y,CameraPositionVoxels.Z},
{CameraPositionVoxels.X,CameraPositionVoxels.Y+8.0,CameraPositionVoxels.Z},
{CameraPositionVoxels.X,CameraPositionVoxels.Y-8.0,CameraPositionVoxels.Z},
{CameraPositionVoxels.X,CameraPositionVoxels.Y,CameraPositionVoxels.Z+8.0},
{CameraPositionVoxels.X,CameraPositionVoxels.Y,CameraPositionVoxels.Z-8.0},
{CameraPositionVoxels.X+64.0,CameraPositionVoxels.Y-32.0,CameraPositionVoxels.Z+16.0},
{CameraPositionVoxels.X-128.0,CameraPositionVoxels.Y+96.0,CameraPositionVoxels.Z-64.0}}};
uint64 ExactDensityHash=14695981039346656037ull;
uint64 ExactUnclampedHash=14695981039346656037ull;
uint64 ExactDetailHash=14695981039346656037ull;
uint64 ExactCollisionHash=14695981039346656037ull;
for(const auto& Point:QueryPoints)
{
const float Density=Shape.densityAt(Point);
const float Unclamped=Shape.unclampedDensityAt(Point);
const auto Detail=Shape.detailSampleAt(Point);
HashWord(ExactDensityHash,std::bit_cast<uint32>(Density),4);
HashWord(ExactUnclampedHash,std::bit_cast<uint32>(Unclamped),4);
HashWord(ExactDetailHash,std::bit_cast<uint32>(Detail.displacement),4);
HashWord(ExactDetailHash,std::bit_cast<uint32>(Detail.caveInfluence),4);
HashWord(ExactDetailHash,std::bit_cast<uint32>(Detail.floorInfluence),4);
HashWord(ExactCollisionHash,Shape.isSolidAt(Point)?1u:0u,1);
}
std::printf("[PipelineExactQueryHash] probes=%zu density=0x%016llx unclamped=0x%016llx detail=0x%016llx collision=0x%016llx path=direct-Core-queries\n",
QueryPoints.size(),static_cast<unsigned long long>(ExactDensityHash),
static_cast<unsigned long long>(ExactUnclampedHash),
static_cast<unsigned long long>(ExactDetailHash),
static_cast<unsigned long long>(ExactCollisionHash));
}
return NeighborhoodFinished==static_cast<int32>(Neighborhood.size())
&&FullDetailFinished==FullDetailExpected&&Finished==Update.DesiredTiles&&bHashesPassing
&&(!bProfileColumnOverlap||bColumnOverlapCapturePassing)?0:6;
&&(!bProfileColumnOverlap||bColumnOverlapCapturePassing)
&&(!bExportRequested||bSceneExportPassing)&&bScreenSpaceGatePassing?0:6;
}
} // namespace StandaloneStreamBenchmark
+20 -2
View File
@@ -646,6 +646,16 @@ public:
int32 GetWorkerCount()const{return WorkerCount;}
uint64 GetCacheHits()const{return CacheHitCount.load(std::memory_order_relaxed);}
void SetMesherStageProfilingEnabled(bool Enabled)
{bProfileMesherStages=Enabled;}
FStandaloneCpuTile GenerateDiagnostic(const FVoxelTileKey& Key,
std::uint32_t GlobalOctaveDrop=0,std::uint32_t CellStride=1,
bool ForceGenerate=false)
{
FStandaloneTileJob Job;Job.Key=Key;Job.StartedAt=FClock::now();Job.QueuedAt=Job.StartedAt;
return Generate(Job,GlobalOctaveDrop,CellStride,ForceGenerate);
}
private:
FStandaloneStreamingUpdate UpdateDesiredSet(FStandaloneDesiredTileSet NewDesired,
const std::vector<FVoxelTileKey>& ResidentKeys,uint64 CrossingIndex)
@@ -761,12 +771,14 @@ private:
Wake.notify_all();
return Stats;
}
FStandaloneCpuTile Generate(const FStandaloneTileJob& Job)
FStandaloneCpuTile Generate(const FStandaloneTileJob& Job,
std::uint32_t DiagnosticGlobalOctaveDrop=0,std::uint32_t DiagnosticCellStride=1,
bool ForceGenerate=false)
{
const auto StartTime=Job.StartedAt;
FStandaloneCpuTile Out;Out.Key=Job.Key;Out.RequestedCrossing=Job.RequestedCrossing;
Out.QueuedAt=Job.QueuedAt;Out.StartedAt=Job.StartedAt;
if(MeshCache)
if(MeshCache&&!ForceGenerate)
{
if(const FStandaloneCpuTile* Cached=MeshCache->Find(Job.Key))
{
@@ -805,6 +817,11 @@ private:
Options.skipMaterialGroups=bSkipMaterialGroups;Options.skipUv=bSkipUV;Options.skipColors=bSkipColors;
Options.captureColumnCoordinates=bCaptureColumnCoordinates;
Options.lod8HorizonInteriorStepVoxels=Lod8HorizonInteriorStepVoxels;
Options.profileMesherStages=bProfileMesherStages&&!ForceGenerate;
Options.diagnosticGlobalOctaveDrop=DiagnosticGlobalOctaveDrop;
Options.diagnosticCellStride=std::max<std::uint32_t>(1,DiagnosticCellStride);
Options.diagnosticColumnInterpolationStride=
std::max<std::uint32_t>(1,DiagnosticCellStride);
std::string Error;
auto Result=CoreWorld->generateTile(
{{Job.Key.Coord.X,Job.Key.Coord.Y,Job.Key.Coord.Z},Job.Key.Level},Options,Error);
@@ -977,6 +994,7 @@ private:
bool bSkipColors=false;
bool bCaptureColumnCoordinates=false;
int32 Lod8HorizonInteriorStepVoxels=0;
bool bProfileMesherStages=false;
std::atomic<uint64> CacheHitCount{0};
mutable std::mutex Mutex;
std::condition_variable Wake;
@@ -27,6 +27,7 @@
// - STORE region (tight): only rooms/tunnels that can actually reach a voxel in
// this chunk are kept for the per-voxel loop, so hot-path cost stays low.
#include "VoxelForgeCore/ThreadLocalStorage.h"
#include "VoxelCaveMorphology.h"
#include "VoxelDensityProfile.h"
#include "VoxelDensityPrimitives.h"
@@ -265,7 +266,8 @@ namespace
}
};
static thread_local FVFFloorReliefCache GFloorReliefCache;
static thread_local VoxelForgeCoreThreadLocal::FLazy<FVFFloorReliefCache>
GFloorReliefCache;
FORCEINLINE float VF_ComputeFloorReliefNoiseDouble(
double X, double Y, uint32 FloorSeed, float Frequency)
@@ -300,7 +302,7 @@ namespace
int32 FeatureIndex,
const FVFFloorReliefColumnKey& Column)
{
return GFloorReliefCache.GetOrCompute(
return GFloorReliefCache.Get().GetOrCompute(
X, Y, FloorSeed, Frequency, CacheIdentity, Feature, FeatureIndex,
Column,
&VF_ComputeFloorReliefNoiseDouble);
@@ -313,7 +315,7 @@ namespace
int32 FeatureIndex,
const FVFFloorReliefColumnKey& Column)
{
return GFloorReliefCache.GetOrCompute(
return GFloorReliefCache.Get().GetOrCompute(
static_cast<double>(X), static_cast<double>(Y),
FloorSeed, Frequency, CacheIdentity, Feature, FeatureIndex,
Column,
@@ -8,6 +8,7 @@
// Convention de signe INTERNE : positif = solide ; la pile négative une fois pour le MC.
// Internal sign convention: positive = solid; the stack negates once for MC.
#include "VoxelForgeCore/ThreadLocalStorage.h"
#include "VoxelDensityOpStack.h"
#include "VoxelStrateComposer.h"
@@ -1148,7 +1149,8 @@ namespace
}
};
thread_local FColumnCache Cache = {};
thread_local VoxelForgeCoreThreadLocal::FLazy<FColumnCache> Cache;
FColumnCache& columnCache = Cache.Get();
thread_local FColumn DirectColumn = {};
// The production mesher and the exact-lattice classifier use integer XY. Fractional
@@ -1172,7 +1174,7 @@ namespace
// Acquire vérifie la clé uint64 complète et les bornes exactes avant de dériver CI.
// Acquire checks the exact uint64 key and exact bounds before deriving CI.
FColumnBox& Box = Cache.Acquire(IX, IY, ColumnKey);
FColumnBox& Box = columnCache.Acquire(IX, IY, ColumnKey);
AcquiredBox = &Box;
CI = (IY - Box.BaseY) * FColumnBox::Dim + (IX - Box.BaseX);
@@ -3158,8 +3160,10 @@ namespace
FChunkSDFCache Cache;
};
static thread_local FRoomGraphCacheEntry GRoomGraphCache[
RoomGraphCacheBankCount][RoomGraphCacheSlotCount];
using FRoomGraphCacheStorage = std::array<
std::array<FRoomGraphCacheEntry, RoomGraphCacheSlotCount>, RoomGraphCacheBankCount>;
static thread_local VoxelForgeCoreThreadLocal::FLazy<FRoomGraphCacheStorage>
GRoomGraphCache;
static thread_local uint32 GRoomGraphCacheClock = 0;
FORCEINLINE int32 RoomGraphCacheBank(int32 RegionSize)
@@ -3190,6 +3194,7 @@ namespace
uint64 ManagerLifetimeId, const TArray<FStrateTerrainOpEntry>* TerrainOps,
int32 RegionMinX, int32 RegionMinY, int32 RegionSize)
{
auto& RoomGraphCache = GRoomGraphCache.Get();
auto SelectForReuse = [](FRoomGraphCacheEntry* Selected, uint32 Use)
-> FRoomGraphCacheEntry*
{
@@ -3219,7 +3224,7 @@ namespace
FRoomGraphCacheEntry* LeastRecentlyUsed = nullptr;
for (int32 Probe = 0; Probe < RoomGraphCacheSlotCount; ++Probe)
{
FRoomGraphCacheEntry& Candidate = GRoomGraphCache[Bank][
FRoomGraphCacheEntry& Candidate = RoomGraphCache[Bank][
(StartSlot + Probe) & (RoomGraphCacheSlotCount - 1)];
if (!Candidate.bValid)
{
@@ -3251,7 +3256,7 @@ namespace
FRoomGraphCacheEntry* Selected = ReuseEntry != nullptr
? ReuseEntry : LeastRecentlyUsed;
return SelectForReuse(
Selected != nullptr ? Selected : &GRoomGraphCache[Bank][StartSlot], Use);
Selected != nullptr ? Selected : &RoomGraphCache[Bank][StartSlot], Use);
}
// Classification is dispatched across many workers before most of those workers have
@@ -8740,11 +8745,12 @@ void VoxelDensityOps::ReportWorkerRoomGraphCacheFootprint()
uint64 LargestEntryBytes = 0;
uint64 ValidEntries = 0;
VoxelDensityProfile::FCacheMemoryBreakdown Breakdown;
auto& RoomGraphCache = GRoomGraphCache.Get();
for (int32 Bank = 0; Bank < RoomGraphCacheBankCount; ++Bank)
{
for (int32 Index = 0; Index < RoomGraphCacheSlotCount; ++Index)
{
const FRoomGraphCacheEntry& Entry = GRoomGraphCache[Bank][Index];
const FRoomGraphCacheEntry& Entry = RoomGraphCache[Bank][Index];
if (!Entry.bValid)
{
continue;
@@ -8760,12 +8766,12 @@ void VoxelDensityOps::ReportWorkerRoomGraphCacheFootprint()
LargestEntryBytes = FMath::Max(LargestEntryBytes, FullEntryBytes);
}
}
Breakdown.SlotStorageBytes = static_cast<uint64>(sizeof(GRoomGraphCache));
Breakdown.SlotStorageBytes = static_cast<uint64>(sizeof(RoomGraphCache));
VoxelDensityProfile::SetWorkerRoomGraphCacheFootprint(
RoomGraphCacheBankCount * RoomGraphCacheSlotCount,
ValidEntries,
static_cast<uint64>(sizeof(GRoomGraphCache)),
static_cast<uint64>(sizeof(RoomGraphCache)),
DynamicBytes,
EntryBytes,
LargestEntryBytes,
@@ -4,6 +4,7 @@
// Convention INTERNE: positif = solide, négatif = air (plus lisible).
// Convention de SORTIE (marching cubes): on négate → négatif = solide.
#include "VoxelForgeCore/ThreadLocalStorage.h"
#include "VoxelGenerator.h"
#include "StandaloneResearchTunnels.h"
#include "VoxelSettings.h"
@@ -388,7 +389,7 @@ struct FSurfaceColumnCache
// Cache de colonnes par thread de ClassifyTile (T1.d) : les pré-passes et passes complètes
// successives d'une même tuile, et les tuiles voisines, réutilisent leurs colonnes.
// Per-thread column cache for ClassifyTile: successive passes and neighbouring tiles reuse columns.
static thread_local FSurfaceColumnCache GSurfColCache;
static thread_local VoxelForgeCoreThreadLocal::FLazy<FSurfaceColumnCache> GSurfColCache;
//=============================================================================
// WORM N1 BLOCK PROOF (worker-local, scalar GetDensityAt hand-off)
@@ -3023,7 +3024,9 @@ float UVoxelGenerator::GetDensityAt(float WorldX, float WorldY, float WorldZ,
thread_local FVoxelOpStack CP_OpStack;
thread_local bool CP_UseOpStack = false;
thread_local uint64 CP_ManagerLifetimeId = 0;
thread_local FTunnelNetworkDensityCacheEntry CP_TunnelDensityCache[TunnelDensityCacheSlotCount];
thread_local VoxelForgeCoreThreadLocal::FLazy<
std::array<FTunnelNetworkDensityCacheEntry, TunnelDensityCacheSlotCount>>
CP_TunnelDensityCache;
thread_local FTunnelNetworkDensityCacheEntry* CP_ActiveTunnelDensityCache = nullptr;
// Cooked-season recipes and editor candidate recipes share this immutable worker-local
// hand-off. Recipe materialisation is runtime; rolling/selection remains editor-only.
@@ -3080,12 +3083,13 @@ float UVoxelGenerator::GetDensityAt(float WorldX, float WorldY, float WorldZ,
auto FindTunnelDensityCacheEntry = [&](const FIntVector& QueryChunk,
FTunnelNetworkDensityCacheEntry*& OutEntry) -> bool
{
auto& TunnelDensityCache = CP_TunnelDensityCache.Get();
const int32 StartSlot = TunnelDensityCacheSlot(TunnelCacheKey);
FTunnelNetworkDensityCacheEntry* ReuseEntry = nullptr;
for (int32 Probe = 0; Probe < TunnelDensityCacheSlotCount; ++Probe)
{
const int32 Slot = (StartSlot + Probe) & (TunnelDensityCacheSlotCount - 1);
FTunnelNetworkDensityCacheEntry& Candidate = CP_TunnelDensityCache[Slot];
FTunnelNetworkDensityCacheEntry& Candidate = TunnelDensityCache[Slot];
if (!Candidate.bValid || Candidate.OwnerId != DensityCacheOwnerId)
{
if (ReuseEntry == nullptr) { ReuseEntry = &Candidate; }
@@ -3107,11 +3111,14 @@ float UVoxelGenerator::GetDensityAt(float WorldX, float WorldY, float WorldZ,
}
OutEntry = ReuseEntry != nullptr
? ReuseEntry
: &CP_TunnelDensityCache[StartSlot];
: &TunnelDensityCache[StartSlot];
return false;
};
if (!bIsGapChunk)
const bool bTunnelDensityCacheRoute =
QueryGeneratorType == ECaveGeneratorType::TunnelNetwork
|| QueryGeneratorType == ECaveGeneratorType::Underwater;
if (!bIsGapChunk && bTunnelDensityCacheRoute)
{
if (VoxelDensityProfile::AreCountersEnabled())
{
@@ -3387,7 +3394,7 @@ float UVoxelGenerator::GetDensityAt(float WorldX, float WorldY, float WorldZ,
{
FTunnelNetworkDensityCacheEntry& CachedEntry = TunnelDensityCacheEntryForWrite
? *TunnelDensityCacheEntryForWrite
: CP_TunnelDensityCache[TunnelDensityCacheSlot(ChunkCoord)];
: CP_TunnelDensityCache.Get()[TunnelDensityCacheSlot(ChunkCoord)];
CachedEntry.bValid = false;
CachedEntry.OwnerId = DensityCacheOwnerId;
CachedEntry.ManagerLifetimeId = ManagerLifetimeId;
@@ -3406,7 +3413,7 @@ float UVoxelGenerator::GetDensityAt(float WorldX, float WorldY, float WorldZ,
CP_ActiveTunnelDensityCache = &CachedEntry;
ActiveOpStack = &CachedEntry.OpStack;
ActiveTunnelCoreCache = &CachedEntry.TunnelCore;
ReportTunnelDensityCacheFootprint(CP_TunnelDensityCache);
ReportTunnelDensityCacheFootprint(CP_TunnelDensityCache.Get().data());
}
else if (!bLoadedTunnelDensityCache)
{
@@ -4023,11 +4030,13 @@ float UVoxelGenerator::GetDensityAt(float WorldX, float WorldY, float WorldZ,
uint32 Version = 0;
TArray<FVoxelModification> Mods;
};
static thread_local FDiffSlot DiffSlots[64];
static thread_local VoxelForgeCoreThreadLocal::FLazy<std::array<FDiffSlot, 64>>
DiffSlots;
auto& diffSlots = DiffSlots.Get();
const uint64 DiffLayerOwnerId = DiffLayer->GetCacheLifetimeId();
const uint32 V = DiffLayer->GetModsVersion();
FDiffSlot& Slot = DiffSlots[(ChunkCoord.X & 3) | ((ChunkCoord.Y & 3) << 2) | ((ChunkCoord.Z & 3) << 4)];
FDiffSlot& Slot = diffSlots[(ChunkCoord.X & 3) | ((ChunkCoord.Y & 3) << 2) | ((ChunkCoord.Z & 3) << 4)];
if (Slot.OwnerId != DiffLayerOwnerId || Slot.Chunk != ChunkCoord || Slot.Version != V)
{
Slot.OwnerId = DiffLayerOwnerId;
@@ -4233,7 +4242,8 @@ float UVoxelGenerator::GetDensityWithParams(float WorldX, float WorldY, float Wo
uint64 LastUse = 0;
bool bValid = false;
};
static thread_local std::array<FRoomGraphCacheSlot, 4> RoomGraphCacheSlots{};
static thread_local VoxelForgeCoreThreadLocal::FLazy<
std::array<FRoomGraphCacheSlot, 4>> RoomGraphCacheStorage;
static thread_local uint64 RoomGraphCacheUseSerial = 0;
VF_ParseRoomGraphCacheSlots();
// The envelope proof is constant for a cache-policy key. Do not run the complete room/edge
@@ -4417,6 +4427,7 @@ float UVoxelGenerator::GetDensityWithParams(float WorldX, float WorldY, float Wo
const int32 ActiveCacheSlots = FMath::Max(
FMath::Clamp(GVoxelForgeRoomGraphCacheSlots, 1, 4),
bNeedsTwoStrataWindows ? 2 : 1);
auto& RoomGraphCacheSlots = RoomGraphCacheStorage.Get();
FRoomGraphCacheSlot* CacheSlot = nullptr;
FRoomGraphCacheSlot* EvictionSlot = &RoomGraphCacheSlots[0];
for (int32 SlotIndex = 0; SlotIndex < ActiveCacheSlots; ++SlotIndex)
@@ -7349,7 +7360,7 @@ EVoxelTileClass UVoxelGenerator::ClassifyTileUncached(
{
FSurfSlot& S = Slots[s];
if (S.InteriorZ.Num() == 0) continue;
FSurfaceColumnBox& Box = GSurfColCache.Acquire(
FSurfaceColumnBox& Box = GSurfColCache.Get().Acquire(
Xi, Yi, S.StrateKey, Seed, TC_LayoutVersion,
TC_OwnerId, TC_ManagerLifetimeId);
const int32 CI = (Yi - Box.BaseY) * FSurfaceColumnBox::Dim + (Xi - Box.BaseX);
@@ -1768,6 +1768,7 @@ FVoxelMeshData UVoxelMarchingCubesMesher::GenerateMesh(FIntVector OriginVoxels,
const int32 GroundSurfaceTriangleCount=GroundTris.Num()/3;
const int32 CapSurfaceTriangleCount=CapTris.Num()/3;
TArray<uint8> GroundSkirtFaceMasks,CapSkirtFaceMasks;
const uint64 SkirtStageStartCycles=OutStageTimings?FPlatformTime::Cycles64():0;
if (bGenerateSkirts && (GroundTris.Num() + CapTris.Num()) > 0)
{
const float ExtentCm = (float)(CellsPerAxis * Step) * GeometryVoxelSize;
@@ -2007,6 +2008,10 @@ FVoxelMeshData UVoxelMarchingCubesMesher::GenerateMesh(FIntVector OriginVoxels,
EmitSkirts(GroundTris,GroundSkirtFaceMasks);
EmitSkirts(CapTris,CapSkirtFaceMasks);
}
if(OutStageTimings)
OutStageTimings->SkirtMilliseconds=static_cast<double>(
FPlatformTime::Cycles64()-SkirtStageStartCycles)
*FPlatformTime::GetSecondsPerCycle64()*1000.0;
// F17 — concatène sol PUIS sky-cap : un run d'indices contigu par polygroup (voir
// FVoxelMeshData::NumCeilingTriangles). Mêmes triangles qu'avant, seul l'ordre change.
@@ -2059,6 +2064,8 @@ FVoxelMeshData UVoxelMarchingCubesMesher::GenerateMesh(FIntVector OriginVoxels,
AuditInterpolationCycles,AuditInterpolationSamples,SurfaceCellCalls);
OutStageTimings->VertexDedupStreamMilliseconds=ScaleSampledCycles(
AuditDedupStreamCycles,AuditDedupStreamSamples,SurfaceCellCalls);
OutStageTimings->SkirtMilliseconds=std::max(0.0,
OutStageTimings->SkirtMilliseconds);
const double TotalMilliseconds=static_cast<double>(
FPlatformTime::Cycles64()-StageMesherStartCycles)*CycleToMs;
OutStageTimings->OtherMilliseconds=FMath::Max(0.0,TotalMilliseconds
@@ -2066,7 +2073,8 @@ FVoxelMeshData UVoxelMarchingCubesMesher::GenerateMesh(FIntVector OriginVoxels,
-OutStageTimings->CellClassificationMilliseconds
-OutStageTimings->GradientNormalsMilliseconds
-OutStageTimings->EdgeInterpolationMilliseconds
-OutStageTimings->VertexDedupStreamMilliseconds);
-OutStageTimings->VertexDedupStreamMilliseconds
-OutStageTimings->SkirtMilliseconds);
}
return MeshData;
@@ -1,6 +1,7 @@
// VoxelStrateManager.cpp
// Runtime strate layout generation and queries.
#include "VoxelForgeCore/ThreadLocalStorage.h"
#include "VoxelStrateManager.h"
#include "VoxelSettings.h"
#include "VoxelSeasonAsset.h"
@@ -435,8 +436,8 @@ namespace
FVoxelPassageReliefCache& VF_GetPassageReliefCache()
{
thread_local FVoxelPassageReliefCache Cache;
return Cache;
thread_local VoxelForgeCoreThreadLocal::FLazy<FVoxelPassageReliefCache> Cache;
return Cache.Get();
}
FORCEINLINE float VF_ComputePassageReliefNoise(
@@ -50,6 +50,7 @@ struct FVoxelMarchingCubesStageTimings
double GradientNormalsMilliseconds = 0.0;
double EdgeInterpolationMilliseconds = 0.0;
double VertexDedupStreamMilliseconds = 0.0;
double SkirtMilliseconds = 0.0;
double OtherMilliseconds = 0.0;
uint64 GradientFallbackDensityCalls = 0;
uint64 EdgeMidpointDensityCalls = 0;