From f545bc926288d93f87be199a839f6ac617c8571c Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 5 Sep 2026 12:16:33 +0200 Subject: [PATCH] docs: prepare existing-profiler entry and settled measurement --- .../481-entry-profile-recipe.md | 40 +++++++++++++++++++ .../route-481-entry-profile.txt | 15 +++++++ 2 files changed, 55 insertions(+) create mode 100644 docs/research/2026-09-01-overhaul/481-entry-profile-recipe.md create mode 100644 tools/overhaul-selfgate/route-481-entry-profile.txt diff --git a/docs/research/2026-09-01-overhaul/481-entry-profile-recipe.md b/docs/research/2026-09-01-overhaul/481-entry-profile-recipe.md new file mode 100644 index 000000000..56bc2a0b5 --- /dev/null +++ b/docs/research/2026-09-01-overhaul/481-entry-profile-recipe.md @@ -0,0 +1,40 @@ +# #481 — existing-profiler diagnostic recipe (not executed) + +Wegener's read-only trace, lead verified actual RenderingDiagnostics startup +flags, FrameProfiler boundary/allocation sampling, VulkanFrameGpuMeasurement +timestamp pairing and PerformanceTools summarizer. No instrumentation change. + +After pending repairs integrate, use the same green Release, session-v10, +High/near4/far25/MSAA4/aniso16/A2C1/maxCompletions4 and1600x900 profile. +Before launch both clients absent/ACE9000 up; pause agent builds/tests. One +run-selfgate.ps1 invocation with -Label481-entry-profile (with the normal +space after the switch), -Route tools/overhaul-selfgate/route-481-entry-profile.txt, +-Session logs/s5-c5-session-v10.json, -TimeoutSeconds240. No client yet. + +Fresh process environment: ACDREAM_DEVTOOLS=0; clear VK_INSTANCE_LAYERS, +VK_LAYER_ENABLES,VK_LAYER_VALIDATE_SYNC,ACDREAM_WB_DIAG; UI_PROBE_DUMP=0; +ACDREAM_FRAME_PROF=1, ACDREAM_FRAME_HISTORY=. +Create its artifact directory without overwriting any earlier run. No +validation, screenshots, pack switches, resize or movement during samples. +The existing runner uses a real hidden Vulkan window/exact framebuffer: +controlled diagnostic, NOT the physical-display owner performance gate. + +After graceful exit the existing CLI command is: +dotnet src/AcDream.Cli/bin/Release/net10.0/AcDream.Cli.dll summarize-frame-history + +. CSV exports on profiler disposal; failed/missing +output cannot be called a measurement. The command accepts no portal markers. + +Each checkpoint summarizes its PRECEDING5s. Two6s settled gaps exclude the +previous checkpoint's synchronous I/O from that window. CPU means time +between render boundaries (includes intervening pacing/present), GPU spans +resource/world/private before present. Missing GPU samples=-1, not0; inspect +sample counts. Allocations/frame are render-thread only; process allocation +rate uses whole checkpoint intervals. Observer overhead is not zero. + +Verify actual settled uploads/bytes, composite warmup, pending retirements, +deferred completions/publications and worker/destination/control/unload/near/ +far backlogs. World-visible alone does not prove these are empty. Report +initial-versus-settled CPU/GPU p50/p95/p99 and allocation/backlog differences, +without converting a single diagnostic into the capped/uncapped multi-scene +C2 or20-percent-regression gate. Validation-r2's64FPS is not this evidence. diff --git a/tools/overhaul-selfgate/route-481-entry-profile.txt b/tools/overhaul-selfgate/route-481-entry-profile.txt new file mode 100644 index 000000000..afea23e1d --- /dev/null +++ b/tools/overhaul-selfgate/route-481-entry-profile.txt @@ -0,0 +1,15 @@ +# #481 initial visibility versus settled fixed-pose profiling, not full C2. +# Start profiler/history before launch; no validation, resize, movement, pack switch or screenshots. +checkpoint 481_script_start +wait world-ready 180000 +wait world-visible 90000 +checkpoint 481_first_visible +sleep 5000 +checkpoint 481_entry_5s +sleep 40000 +checkpoint 481_settle_start +sleep 6000 +checkpoint 481_settled_a +sleep 6000 +checkpoint 481_settled_b +close-client