src.nth.io/

summaryrefslogtreecommitdiff
path: root/main/app_main.c
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-06-20 11:50:25 -0500
committerLuke Hoersten <[email protected]>2026-06-20 11:50:25 -0500
commit16f4c5be220756808747bfb47739733d3f107634 (patch)
tree2c1cdaa22f8ba3d09f4ac1957d7944d6eb68bd44 /main/app_main.c
parent4e35d9c07061c760a3c5d6c69463cd748b8e2ae1 (diff)
firmware: live-update last_paint_event_us_low so /state g2g reflects real frame age
Previous Phase 4 implementation only published last_paint_event_us_low into the windowed-stats snapshot at every 30-frame roll (~1.5s at 20fps). Combined with the script's 5s /state poll cadence, the "freshest frame age" we could compute was up to ~6.5s stale before any actual lag — meaningless as a perf signal. Update s_stats.last_paint_event_us_low under portMUX on every painted v1 frame. The other window stats (recv/dec/paint/idle min/avg/max + fps/MBps) keep their roll cadence because they genuinely need a full window to compute; this single u32 just gets overwritten with the most recent value each paint. portENTER_CRITICAL on the ESP32-P4 is ~half a microsecond per side — at 20fps that's 20µs/s of overhead, immeasurable next to the 30-40ms recv per frame. Expected: g2g during a saturated stream drops from the previous 2-6s reading to single-digit hundreds of ms or lower, reflecting the actual emit→display lag.
Diffstat (limited to 'main/app_main.c')
0 files changed, 0 insertions, 0 deletions