Repository navigation
The LCD-4.3's MicroPython build gets its own variant: a 1 ms tick and LVGL-sized caches - #162
Merged
Merged
Conversation
… LVGL-sized caches lv_test_timer on the board went from 10.4 to 17.7 fps. DotClockFramebuffer's refresh() polls with vTaskDelay(1) for the panel to take the new frame buffer, which is a 10 ms sleep at the port's 100 Hz tick, so each present waited 30 ms; with a 1 ms tick it waits 14-16 ms. The 64-byte-line, 32 KB instruction and 64 KB data caches CircuitPython's build for this board already carries cut LVGL's draw work from 16 to 9 ms a frame. Same settings as the LCD-7 variant, without its Wi-Fi tuning.
…on's -Werror=cast-align
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Waveshare ESP32-S3-Touch-LCD-4.3 built as plain
SPIRAM_OCT, so it ran with the port's 100 Hz tick and 16 KB instruction / 32 KB data caches with 32-byte lines. CircuitPython's build for this board (#157) has a 1 ms tick and the larger caches, and ran the samelv_test_timertwice as fast.This adds
ESP32_GENERIC_S3LCD_4_3: the upstream variant plusCONFIG_FREERTOS_HZ=1000, 64-byte data cache lines, a 32 KB instruction cache and a 64 KB data cache (48 KB of internal RAM). The release cellmp-s3-lcd43and the build table indocs/newcomers.mduse it.Measured on the board with pydevices-examples'
lv_test_timer.py kit, three runs each, thefpsthe display driver reports (median, and the average over the whole run):SPIRAM_OCTTiming the pieces of a frame with
ticks_usaround them:DotClockFramebuffer.refresh()waits for the panel to take the new frame buffer by pollingvTaskDelay(1), a 10 ms sleep at 100 Hz, so each present waited 30 ms and now waits 14-16 ms. LVGL's own draw work, the pass minus the flush, took 16 ms of a frame and takes 9 ms with the larger caches.