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

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).
@bdbarnett
bdbarnett deleted the displaydev-fps branch October 10, 2026 13:57
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