chore: strip throwaway dense-town FPS profiling apparatus (plan Task 5)
The FPS deep-dive landed (dense Arwic 75 -> ~165 fps via the cell-object batching + cell-particle consolidation, both already committed). Remove the throwaway diagnostic apparatus now that it has served its purpose: - delete FrameProfiler.cs (whole-frame TimeElapsed + [PASS-GPU] glFinish + [CPU-PHASE]/[GPU-PHASE] timers + the =1/=2 ACDREAM_FPS_PROF modes) - GameWindow: _fpsProf/_frameProfiler/_msaaSamples fields, the BeginFrame/ EndFrame/MarkUpdateStart hooks, the terrain glFinish, and the landscape sub-phase LsMark instrumentation - RetailPViewRenderer: the DrawInside per-phase Phase()/MarkGpu markers - ParticleRenderer / PortalDepthMaskRenderer / EnvCellRenderer: the per-pass glFinish brackets - delete DegradeCoverageProbeTests.cs (the dead distance-degrade probe) KEPT (the real fixes): RetailPViewRenderer cell-object batching + consolidated cell-particle pass; EnvCellRenderer.CellHasTransparent. Build + full test suite green (468 App incl. pview replay tests; 1566 Core; 317 Net; 425 UI). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9f51a4db18
commit
a9d06a613a
7 changed files with 0 additions and 569 deletions
|
|
@ -65,20 +65,6 @@ public sealed class RetailPViewRenderer
|
|||
{
|
||||
ArgumentNullException.ThrowIfNull(ctx);
|
||||
|
||||
// THROWAWAY CPU sub-phase timing (ACDREAM_FPS_PROF=2 clean-split): attribute
|
||||
// which CPU phase of DrawInside eats the dense-town frame. Strip with the FPS
|
||||
// apparatus (plan Task 5). Zero-alloc: GetTimestamp/GetElapsedTime + a direct-
|
||||
// call local fn (struct closure over _ts, never a delegate).
|
||||
long _ts = System.Diagnostics.Stopwatch.GetTimestamp();
|
||||
FrameProfiler.MarkGpu("_start"); // GPU timestamp baseline (=2; CPU-only phases diff ~0)
|
||||
void Phase(string n)
|
||||
{
|
||||
if (FrameProfiler.CpuPhaseEnabled)
|
||||
FrameProfiler.AddCpuPhase(n, System.Diagnostics.Stopwatch.GetElapsedTime(_ts).TotalMilliseconds);
|
||||
FrameProfiler.MarkGpu(n);
|
||||
_ts = System.Diagnostics.Stopwatch.GetTimestamp();
|
||||
}
|
||||
|
||||
var pvFrame = PortalVisibilityBuilder.Build(
|
||||
ctx.RootCell,
|
||||
ctx.ViewerEyePos,
|
||||
|
|
@ -115,11 +101,9 @@ public sealed class RetailPViewRenderer
|
|||
&& ctx.NearbyBuildingCells is not null
|
||||
&& pvFrame.OutsideView.Polygons.Count > 0)
|
||||
BuildInteriorRootLookIns(ctx, pvFrame);
|
||||
Phase("flood");
|
||||
|
||||
var clipAssembly = ClipFrameAssembler.Assemble(_clipFrame, pvFrame);
|
||||
UploadClipFrame(ctx.SetTerrainClipUbo);
|
||||
Phase("assemble");
|
||||
|
||||
// R1: draw EVERY visible cell (retail cell_draw_list), not only the cells the
|
||||
// assembler handed a clip-slot. This feeds the Prepare filter + entity partition,
|
||||
|
|
@ -152,7 +136,6 @@ public sealed class RetailPViewRenderer
|
|||
centerLbX: ctx.RenderCenterLbX,
|
||||
centerLbY: ctx.RenderCenterLbY,
|
||||
renderRadius: ctx.RenderRadius);
|
||||
Phase("prepare");
|
||||
|
||||
var partition = InteriorEntityPartition.Partition(prepareCells, ctx.LandblockEntries);
|
||||
var result = new RetailPViewFrameResult
|
||||
|
|
@ -206,18 +189,12 @@ public sealed class RetailPViewRenderer
|
|||
}
|
||||
}
|
||||
|
||||
Phase("partition");
|
||||
DrawLandscapeThroughOutsideView(ctx, clipAssembly, partition, viewcone);
|
||||
Phase("landscape");
|
||||
UseIndoorMembershipOnlyRouting();
|
||||
DrawExitPortalMasks(ctx, pvFrame, clipAssembly, drawableCells);
|
||||
Phase("portalmask");
|
||||
DrawEnvCellShells(pvFrame);
|
||||
Phase("shells");
|
||||
DrawCellObjectLists(ctx, pvFrame, clipAssembly, drawableCells, partition, viewcone);
|
||||
Phase("cellobjects");
|
||||
DrawDynamicsLast(ctx, partition, viewcone, ctx.RootCell.IsOutdoorNode);
|
||||
Phase("dynamics");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue