passages: memoized exact MC midpoints + wider conservative sweep bounds (L101, exact vs L100)
Off-grid census by caller (MC midpoints, skirts, far shells); all 63.0M sweep misses accounted (1.9M exact-route fallbacks, 61.1M counted bound skips). Exact MC midpoint queries memoized by float bits (Unreal enables it too); feature bounds expanded. L100/L101 whole-view hashes equal in all four strata (v216 unchanged); 0 added/removed crossings; 15 capture pairs pixel-identical. Near-ready @W12 L100 -> L101: FI 1.77 -> 1.65, TN 1.66 -> 1.54, SW 0.85 -> 0.84, VS 1.03 -> 1.03 s (L98 2.28/2.23/1.02/1.11). Fast tier PASS; Linux UE host builds. Unreal arrival traces not obtained (the runner wrongly applied the 6 GiB address-space cap to Unreal). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
1 parent
2d5822cdf7
commit
55e20f4a7e
48 files changed
+2087
-38
No files matched your search
@@ -1445,7 +1445,36 @@ private:
|
||||
const char* TileClassName=D.tileClass==VoxelForgeCore::TileClass::allAir?"air":
|
||||
D.tileClass==VoxelForgeCore::TileClass::allSolid?"solid":
|
||||
D.tileClass==VoxelForgeCore::TileClass::mixed?"mixed":"unknown";
|
||||
std::printf("[CpuTileStages] key=(%d,%d,%d,lod%d) worker_id=%d worker_ms=%.3f payload_ms=%.3f tile_classified=%d tile_class=%s tile_skip=%d density_point_calls=%llu density_float_points=%llu density_lattice_points=%llu density_unclamped_points=%llu density_x8_points=%llu field_eval_sample_ns=%llu field_eval_sample_points=%llu samples=%llu classify_ms=%.3f column_ms=%.3f column_exclusive_ms=%.3f mc_ms=%.3f mc_grid_ms=%.3f mc_grid_workers=%u mc_cell_ms=%.3f mc_gradient_ms=%.3f mc_interpolation_ms=%.3f mc_dedup_ms=%.3f mc_skirt_ms=%.3f mc_other_ms=%.3f connector_ms=%.3f ground_ms=%.3f cap_ms=%.3f horizon_ms=%.3f mesh_assembly_ms=%.3f candidate_cells=%llu classified_cells=%llu surface_cells=%llu proof_solid_cells=%llu proof_air_cells=%llu proof_density_samples=%llu zband_reject_cells=%llu x8_calls=%llu x8_active_lanes=%llu grad_calls=%llu grad_memo_hits=%llu grad_fallback_calls=%llu midpoint_attempts=%llu midpoint_memo_hits=%llu skirt_edges=%llu skirt_boundary_edges=%llu skirt_density_probes=%llu skirt_triangles=%u fi_local_hit=%llu fi_local_miss=%llu fi_local_conflicts=%llu fi_shared_hit=%llu fi_shared_miss=%llu fi_shared_computes=%llu fi_shared_conflicts=%llu fi_lock_wait_us=%.3f\n",
|
||||
const auto FormatCallerCounts=[](const auto& Values)
|
||||
{
|
||||
std::ostringstream Text;
|
||||
for(std::size_t Index=0;Index<Values.size();++Index)
|
||||
{
|
||||
if(Index)Text<<',';
|
||||
Text<<Values[Index];
|
||||
}
|
||||
return Text.str();
|
||||
};
|
||||
const std::string PassageSweepMissing=FormatCallerCounts(
|
||||
D.passageSweepMissingLookupsByCaller);
|
||||
const std::string PassageSweepFallbacks=FormatCallerCounts(
|
||||
D.passageSweepExactRouteFallbacksByCaller);
|
||||
const std::string PassageSweepBoundSkips=FormatCallerCounts(
|
||||
D.passageSweepFeatureBoundSkipsByCaller);
|
||||
const std::string PassageSweepTileFreeSkips=FormatCallerCounts(
|
||||
D.passageSweepTileFreeSkipsByCaller);
|
||||
const std::string PassageSweepVerticalBoundSkips=FormatCallerCounts(
|
||||
D.passageSweepVerticalBoundSkipsByCaller);
|
||||
const std::string PassageSweepNegativeReachSkips=FormatCallerCounts(
|
||||
D.passageSweepNegativeReachSkipsByCaller);
|
||||
const std::string PassageSweepPositiveReachSkips=FormatCallerCounts(
|
||||
D.passageSweepPositiveReachSkipsByCaller);
|
||||
const std::string DensityOffGridFloat=FormatCallerCounts(D.densityOffGridFloatByCaller);
|
||||
const std::string DensityOffGridUnclamped=FormatCallerCounts(
|
||||
D.densityOffGridUnclampedByCaller);
|
||||
const std::string DensityOffGridDetail=FormatCallerCounts(
|
||||
D.densityOffGridDetailByCaller);
|
||||
std::printf("[CpuTileStages] key=(%d,%d,%d,lod%d) worker_id=%d worker_ms=%.3f payload_ms=%.3f tile_classified=%d tile_class=%s tile_skip=%d density_point_calls=%llu density_float_points=%llu density_lattice_points=%llu density_unclamped_points=%llu density_x8_points=%llu field_eval_sample_ns=%llu field_eval_sample_points=%llu samples=%llu classify_ms=%.3f column_ms=%.3f column_exclusive_ms=%.3f mc_ms=%.3f mc_grid_ms=%.3f mc_grid_workers=%u mc_cell_ms=%.3f mc_gradient_ms=%.3f mc_interpolation_ms=%.3f mc_dedup_ms=%.3f mc_skirt_ms=%.3f mc_other_ms=%.3f connector_ms=%.3f ground_ms=%.3f cap_ms=%.3f horizon_ms=%.3f mesh_assembly_ms=%.3f candidate_cells=%llu classified_cells=%llu surface_cells=%llu proof_solid_cells=%llu proof_air_cells=%llu proof_density_samples=%llu zband_reject_cells=%llu x8_calls=%llu x8_active_lanes=%llu grad_calls=%llu grad_memo_hits=%llu grad_fallback_calls=%llu midpoint_attempts=%llu midpoint_memo_hits=%llu skirt_edges=%llu skirt_boundary_edges=%llu skirt_density_probes=%llu skirt_surface_vertex=%llu skirt_surface_vertex_offgrid=%llu skirt_extruded_vertex=%llu skirt_extruded_vertex_offgrid=%llu skirt_clipped_vertex=%llu skirt_clipped_vertex_offgrid=%llu skirt_refinement_face=%llu skirt_refinement_face_offgrid=%llu skirt_coarse_centroid=%llu skirt_coarse_centroid_offgrid=%llu sweep_missing_by_caller=%s sweep_exact_fallback_by_caller=%s sweep_bound_skip_by_caller=%s sweep_tile_free_skip_by_caller=%s sweep_vertical_bound_skip_by_caller=%s sweep_negative_reach_skip_by_caller=%s sweep_positive_reach_skip_by_caller=%s density_offgrid_float_by_caller=%s density_offgrid_unclamped_by_caller=%s density_offgrid_detail_by_caller=%s skirt_triangles=%u fi_local_hit=%llu fi_local_miss=%llu fi_local_conflicts=%llu fi_shared_hit=%llu fi_shared_miss=%llu fi_shared_computes=%llu fi_shared_conflicts=%llu fi_lock_wait_us=%.3f\n",
|
||||
Event.Key.Coord.X,Event.Key.Coord.Y,Event.Key.Coord.Z,Event.Key.Level,
|
||||
Event.WorkerId,Event.WorkerMilliseconds,Event.PayloadBuildMilliseconds,
|
||||
D.tileWasClassified?1:0,TileClassName,D.meshingSkipped?1:0,
|
||||
@@ -1483,6 +1512,22 @@ private:
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtEdgeCandidates),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtBoundaryCandidates),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityProbes),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityProbesByCaller[0]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityOffGridProbesByCaller[0]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityProbesByCaller[1]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityOffGridProbesByCaller[1]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityProbesByCaller[2]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityOffGridProbesByCaller[2]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityProbesByCaller[3]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityOffGridProbesByCaller[3]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityProbesByCaller[4]),
|
||||
static_cast<unsigned long long>(D.marchingCubesSkirtDensityOffGridProbesByCaller[4]),
|
||||
PassageSweepMissing.c_str(),PassageSweepFallbacks.c_str(),
|
||||
PassageSweepBoundSkips.c_str(),
|
||||
PassageSweepTileFreeSkips.c_str(),PassageSweepVerticalBoundSkips.c_str(),
|
||||
PassageSweepNegativeReachSkips.c_str(),PassageSweepPositiveReachSkips.c_str(),
|
||||
DensityOffGridFloat.c_str(),DensityOffGridUnclamped.c_str(),
|
||||
DensityOffGridDetail.c_str(),
|
||||
Event.SkirtTriangles,
|
||||
static_cast<unsigned long long>(D.islandLocalCacheHits),
|
||||
static_cast<unsigned long long>(D.islandLocalCacheMisses),
|
||||
@@ -1584,7 +1629,7 @@ private:
|
||||
bool bInstrumentTileDrain=false;
|
||||
bool bLinux77Profile=false;
|
||||
bool bProfilePassageComposer=false;
|
||||
bool bExactMidpointDensityMemo=false;
|
||||
bool bExactMidpointDensityMemo=true;
|
||||
bool bActiveLaneBatching=false;
|
||||
int32 ProofBlockCells=8;
|
||||
bool bAuditUniformBlockProofs=false;
|
||||
|
||||
Reference in new issue
Block a user