From 6efea8c19a4f9ec119c956156169311e94c61398 Mon Sep 17 00:00:00 2001 From: Chuck <33324927+ChuckBuilds@users.noreply.github.com> Date: Wed, 30 Sep 2026 10:31:00 -0400 Subject: [PATCH] docs(changelog): note the frame-op attribution and bench modes Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6271e318..4d86e82b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -334,6 +334,18 @@ read any of them: ### Tooling +- The frame-timing recorder says which render-thread work a late frame + followed. Work done between two frames calls + `FrameTimingRecorder.note_op(kind, nbytes)` and the next presented frame + carries the tag; the stats gain `op_frames`, `late_op_frames`, `op_freezes` + and `op_bytes` per kind (additive; the file's schema version is unchanged). + Vegas tags every strip `compose` and `extend`, and `frame_soak.py` prints an + "after work" table with each kind's own late rate. + `scripts/render_bench.py` can drive the same work on a panel with nothing + else running: `--strip-screens` for a Vegas-sized strip, `--patch-bytes / + --patch-every / --patch-where` for in-place column writes, and + `--extend-every-screens` for appending and trimming on a fixed cadence. + See "Soaking a rig" in `docs/SCROLL_PERFORMANCE.md`. - `scripts/sports_drift_report.py`: for a ledmatrix-plugins checkout, counts how many different bodies each method family has across the nine scoreboards' `sports.py`, `manager.py` and `game_renderer.py`, lists the