Skip to content

display_driver: a direct panel reports each frame once (from lvgl-bindings) - #23

Closed
bdbarnett wants to merge 1 commit into
mainfrom
displaydev-fps
Closed

bdbarnett wants to merge 1 commit into
mainfrom
displaydev-fps

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

This is the same change as PyDevices/lvgl-bindings#24, brought into lib/display_driver.py so the frozen copy has it. The file is byte-identical to that branch's python/display_driver.py. Once the bindings PR merges, scripts/sync_from_lvgl_bindings.sh brings an identical file and moves LVGL_BINDINGS_COMMIT. You can also merge that sync in place of this PR.

On a direct-framebuffer panel (the P4's DSI panel, CastDisplay), the last area of each frame now ends in one present: show() when flush_rect couldn't sync the area, otherwise the panel's frame_done(), displaydev's new frame-rate hook, which is a no-op unless measure_fps is on. presents counts both, so on the P4 it now counts frames. Before, it stayed at 0.

Desktop MicroPython with this file and the pydevices branch: frames 125 against presents 125 and 251 flushes on a panel whose flush_rect syncs, and 124 / 124 / 249 on one that falls back to show(). The measurements are in the bindings PR.

Only lib/display_driver.py changes. This PR stays clear of micropython.mk, which the native-Windows PR is editing.

…counts it

The same change as lvgl-bindings' python/display_driver.py (its PR
displaydev-fps), carried here so the frozen copy has it before the next
sync; the sync after that PR merges brings an identical file and moves
LVGL_BINDINGS_COMMIT.
@bdbarnett

Copy link
Copy Markdown
Collaborator Author

Closing in favour of the move: this was the byte-identical copy of lvgl-bindings#24, and that file now lives in PyDevices/pydevices lib/ (PyDevices/pydevices#129). This repo's removal PR is #24.

@bdbarnett bdbarnett closed this Oct 7, 2026
bdbarnett added a commit that referenced this pull request Oct 7, 2026
LVGL's PyDevices coordinator moved to PyDevices/pydevices lib/, beside the
appdev, events, keys and multimer it imports, and comes with the pydevices
mip package or micropython-pydevices' --modules pydevices. This repo now
freezes fs_driver only and syncs only that from lvgl-bindings.

Replaces #23, whose frame-hook change is in pydevices' copy (PyDevices/pydevices#129).
Merge after #129: on its own this leaves a firmware without pydevices with
no display_driver, which it could not import anyway (it needs appdev).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant