perf(P4): LVGL zeichnet direkt in den Bildspeicher (1.9.0)
Die Messung aus 1.8.8 hat es gezeigt: Jeder Bildaufbau kostete 240-300 ms, dauerhaft, auch im Leerlauf. Die fünf Sekunden für den Aufweckdialog waren rund zwanzig solcher Durchgänge - meine bisherigen Erklärungen (Fades, Scrims) waren Symptome, nicht die Ursache. Grund: zwei Durchgänge durch je 2,7 MB PSRAM pro Bild. LVGL rendert in einen eigenen Draw-Buffer, esp_lcd_panel_draw_bitmap kopiert ihn danach komplett in den Framebuffer. WS7_DIRECT_FB holt den Framebuffer über esp_lcd_dpi_panel_get_frame_buffer und übergibt ihn als LVGL-Draw-Buffer. Der IDF-Treiber erkennt das (draw_buffer im Framebuffer-Bereich) und macht nur noch Cache-Writeback statt Kopie; dazu LV_DISPLAY_RENDER_MODE_DIRECT, sodass nur geänderte Bereiche neu gezeichnet werden. Außerdem: - Shot-Timer und Waage behalten während eines Bezugs die normale Schrift; der Wechsel auf den fetten 96er ist entfernt. - Größe der Standby-Uhr einstellbar (120/180/240 px, Info-Seite, NVS ui/uhrgr). Wirkt sofort - sie hängt an einem einzigen Label. - Die Knöpfe des Aufweckdialogs skalieren mit der Schriftgröße. Beide Panel-Varianten mit arduino-cli gegengebaut. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
407d938031
commit
16d8465b0c
@@ -569,6 +569,8 @@
|
||||
LV_FONT_DECLARE(lv_font_maven_pro_48) \
|
||||
LV_FONT_DECLARE(lv_font_maven_pro_bold_96) \
|
||||
LV_FONT_DECLARE(lv_font_maven_pro_bold_140) \
|
||||
LV_FONT_DECLARE(lv_font_clock_120) \
|
||||
LV_FONT_DECLARE(lv_font_clock_180) \
|
||||
LV_FONT_DECLARE(lv_font_clock_240)
|
||||
|
||||
/*Always set a default font*/
|
||||
|
||||
Reference in New Issue
Block a user