Skip to content
This repository was archived by the owner on Oct 30, 2026. It is now read-only.

Sync display_driver.py from lvgl-bindings 45be184 (frame-gate cap) - #24

Merged
bdbarnett merged 1 commit into
mainfrom
sync-gate-cap
Sep 25, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
sync-gate-cap

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

Syncs display_driver.py from lvgl-bindings 45be184 (lvgl-bindings#19) with this repo's scripts/sync_from_lvgl_bindings.sh --ref 45be1848ed73057891aff7ccd477ce563a56939a. The pin in LVGL_BINDINGS_COMMIT moves with it. Between the old pin and 45be184 nothing changed in the generated binding, lv_conf.h or the LVGL submodule: only python/display_driver.py.

What changes: after a slow LVGL pass, event_loop's frame gate holds for at most max_yield_ms (default 100 ms, settable with event_loop(max_yield_ms=...) or on the instance). Passes up to 100 ms hold exactly as before. A long pass, which in practice is application work run from LVGL timers, no longer leaves the thread idle for as long again.

Measured in lvgl-bindings#19:

  • ESP32-S3 800×480 RGB panel, a ten-screen navigation pass: UI stalls over 500 ms went from 18 (15.7 s) to 6 (4.6 s), with the gate the only change.
  • ESP32-P4 with lvgl-bindings#15's 696×240 animated bar: sleep_ms(5) stays at 5.0 ms, and the application loop gets the same share of the thread as with display_driver: let appdev.App own the lifecycle #15's fix.

This repo's pin predated lvgl-bindings#15 (d5f3d34), so that fix comes along too.

lvgl-bindings#19: after a slow LVGL pass, the frame gate holds for at most
max_yield_ms (default 100; event_loop(max_yield_ms=...) or on the
instance). Passes up to 100 ms hold exactly as before, so lvgl-bindings#15's
case is unchanged; a long pass -- typically application work run from LVGL
timers -- no longer leaves the thread idle for as long again.

It also brings d5f3d34 (lvgl-bindings#15), which this repo's pin predated: after a slow pass the gate holds for as long as the pass took, so a slow frame lowers the frame rate instead of taking the application's thread.

Made with scripts/sync_from_lvgl_bindings.sh --ref 45be1848ed73057891aff7ccd477ce563a56939a.
@bdbarnett
bdbarnett merged commit 99a2fd4 into main Sep 25, 2026
1 check passed
@bdbarnett
bdbarnett deleted the sync-gate-cap branch September 25, 2026 22:23
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant