Permanent frame profiler: FrameBoundary() at the top of OnRender measures CPU frame time (swap-to-swap delta), brackets the frame in a GpuFrameTimer TimeElapsed query (self-disabled under ACDREAM_WB_DIAG=1), and samples per-frame allocated bytes + GC collection deltas. BeginStage(FrameStage) scopes attribute CPU time to Update/Upload/ImGui. Emits one [frame-prof] report line every ~5s while RenderingDiagnostics.FrameProfEnabled is on; zero-cost stage scopes when off. Report formatting is a pure static method, unit-tested for invariant-culture formatting and the gpu=off fallback text. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| Plugins | ||
| Rendering | ||
| Studio | ||
| UI | ||
| AcDream.App.Tests.csproj | ||
| FrameProfilerReportTests.cs | ||
| FrameStatsBufferTests.cs | ||
| RuntimeOptionsRetailUiTests.cs | ||
| RuntimeOptionsTests.cs | ||