From 806f87ab79d6e1b40d9c621f2947c6e01206fe12 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 30 Aug 2026 17:09:35 +0200 Subject: [PATCH] docs: Campaign FW - FW3.4a clears the perf stop rule (-3.2% p50 vs baseline) Co-Authored-By: Claude Fable 5 --- docs/plans/2026-08-30-campaign-fw-frame-walk.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/plans/2026-08-30-campaign-fw-frame-walk.md b/docs/plans/2026-08-30-campaign-fw-frame-walk.md index ea561836..3c457685 100644 --- a/docs/plans/2026-08-30-campaign-fw-frame-walk.md +++ b/docs/plans/2026-08-30-campaign-fw-frame-walk.md @@ -446,6 +446,19 @@ data). FW3.4a fixes them (single walk pass; prepare-once/draw-ranges pair re-measures against the SAME baseline; the owner decision only triggers if it still exceeds 20% after the known fixes. +**FW3.4a RESULT (2026-08-30, @`1da178d9`): THE STOP RULE CLEARS.** +Post-refactor dense Arwic uncapped vs the SAME baseline: CPU p50 +23.6 -> 22.9 ms (-3.2%), p95 36.3 -> 34.7 ms (-4.5%) - the walk path +is now FASTER than the old static path. The refactor's own crash +round (VK_ERROR_DEVICE_LOST) taught the binding contract: leaf draws +and alpha flushes rebind set-0 between ranges, so DrawOrderedRange +rebinds per call; only the ring WRITES are once-per-frame. FOLLOW-UP +FILED: alloc p50 still ~1.5 MB/frame on the walk path (baseline +133 KB) - the per-frame driver/leaf/populator object graph in +DrawWalkDrivenStatics; hoist to renderer fields with per-frame +Reset (FW3.4 closeout or FW6 polish; CPU-neutral today, GC-hitch +hygiene). + - **FW3.4 — perf checkpoint + gates.** BASELINE CORRECTION: the 519.7 fps / 1.869 / 1.096 ms numbers are the Aerlinthe ordinary-production profile, NOT dense Arwic. Before the cutover