probe(render): cathedral Phase I instrumentation
Implements the synthesis plan''s Phase I (instrument-first, no rendering edits): the [falls] watch printing EVERY particle submission carrying a real falls owner (the outdoor landblock emitters 0xCF418000-13 the six fix rounds never traced) with route + phase; [falls-adm] admission verdicts for F418 emitters at the retail ShouldDrawParticles port (owner, cell, distance, in-set, eligibility); the continuous [walk-root] line now separating the TRUE root flood (InteriorFloodCells) from the visited union (root + look-ins - the conflation the review corpus indicted) and printing the walk''s own exit-view count; [walk-cam] replayable camera dumps; and the restored [walk-portal] per-portal side/clip decisions. All under the existing ACDREAM_PROBE_WALK_ROOT flag; the depth-checkpoint readback is deferred until these answers narrow the question (mid-pass Vulkan depth reads need render-pass splitting). Hermetic 6,762/0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
6d990d38b3
commit
f4522297cc
5 changed files with 104 additions and 10 deletions
|
|
@ -321,6 +321,9 @@ public sealed class ParticleSystem : IParticleSystem
|
|||
rangeMultiplier = 1f;
|
||||
|
||||
LastRetailViewEmitterVisitCount = 0;
|
||||
_probeAdmissionDumpThisCall =
|
||||
AcDream.Core.Rendering.RenderingDiagnostics.ProbeWalkRootEnabled
|
||||
&& ++_probeAdmissionCallCounter % 120 == 0;
|
||||
foreach (int handle in _worldSimulationHandles)
|
||||
{
|
||||
if (!_byHandle.TryGetValue(handle, out ParticleEmitter? emitter))
|
||||
|
|
@ -346,9 +349,33 @@ public sealed class ParticleSystem : IParticleSystem
|
|||
|| float.IsNaN(maxDistance)
|
||||
|| distance <= maxDistance);
|
||||
RefreshRenderableIndex(emitter, wasRenderable);
|
||||
|
||||
// ACDREAM_PROBE_WALK_ROOT companion (Phase I cathedral
|
||||
// instrumentation, throwaway): admission verdicts for the F418
|
||||
// watch set — the real falls owners 0xCF418000-13 and every
|
||||
// F418-cell emitter — every ~120th ApplyRetailView pass.
|
||||
if (_probeAdmissionDumpThisCall
|
||||
&& AcDream.Core.Rendering.RenderingDiagnostics.ProbeWalkRootEnabled
|
||||
&& ((emitter.AttachedObjectId >= 0xCF418000u
|
||||
&& emitter.AttachedObjectId <= 0xCF418014u)
|
||||
|| (emitter.OwnerCellId >> 16) == 0xF418u))
|
||||
{
|
||||
Console.WriteLine(
|
||||
$"[falls-adm] owner={emitter.AttachedObjectId:x} "
|
||||
+ $"cell={emitter.OwnerCellId:x8} "
|
||||
+ $"pos=({emitter.OwnerPosition.X:F1},{emitter.OwnerPosition.Y:F1},{emitter.OwnerPosition.Z:F1}) "
|
||||
+ $"dist={distance:F1} max={maxDistance:F1} "
|
||||
+ $"inSet={(visibleCellIds.Contains(emitter.OwnerCellId) ? 1 : 0)} "
|
||||
+ $"eligible={(emitter.ViewEligible ? 1 : 0)} "
|
||||
+ $"active={emitter.ActiveCount} pass={emitter.RenderPass}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Phase I instrumentation rate limiter (see the probe block above).
|
||||
private static uint _probeAdmissionCallCounter;
|
||||
private static bool _probeAdmissionDumpThisCall;
|
||||
|
||||
/// <summary>
|
||||
/// Changes only render presentation. Logical lifetime is unaffected.
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue