You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The rendering pipeline has excellent performance engineering — column-level dirty spans, LRU row-picture cache, pooled snapshots with an enforced <=24 KB/frame allocation test, per-typeface shaping caches — but none of it is protected by CI. Benchmarks cover parser throughput, reflow, and scrollback eviction only; the throughput gate is parser-only. A regression that silently defeats the row cache (e.g., accidental per-frame invalidation) would pass CI cleanly.
Proposed fix
Add a headless render benchmark: capture snapshot -> draw to offscreen SKSurface; assert frame-time and draw-path allocation thresholds.
Track and assert glyph-cache and row-cache hit rates via the existing RendererStatistics.
Add a sustained-output stress case (cat-largefile equivalent) asserting render stays decoupled from parse rate.
Area:
tests/NovaTerminal.Benchmarks/,.github/workflows/Summary
The rendering pipeline has excellent performance engineering — column-level dirty spans, LRU row-picture cache, pooled snapshots with an enforced <=24 KB/frame allocation test, per-typeface shaping caches — but none of it is protected by CI. Benchmarks cover parser throughput, reflow, and scrollback eviction only; the throughput gate is parser-only. A regression that silently defeats the row cache (e.g., accidental per-frame invalidation) would pass CI cleanly.
Proposed fix