LVGL 9 tuning: CPU 86% -> 53% at full GIF speed (display_gif_embedded)

- render in RGB565_SWAPPED (ST77916 byte order), no swap pass in flush;
  flush swaps only if the display format is plain RGB565 (runtime check,
  the previous #if compared enum values and was always true)
- QSPI clock 50 -> 80 MHz
- LV_ATTRIBUTE_FAST_MEM / FLUSH_READY in IRAM (lv_attr_jc3636w518.h)
- display_gif_embedded: GIF decoded in the display's color format (no alpha)
- tested without gain: LV_GIF_CACHE_DECODE_DATA (unused in 9.6), 120-row buffers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
patriandClaude Opus 5.5 committed 2026-10-23 01:29:25 +02:00
1 parent d6982ab7e7
commit 6e7206b821
4 files changed
+26 -8

No files matched your search

@@ -23,6 +23,9 @@ void display_animation() {
LV_IMAGE_DECLARE(loligod);
img = lv_gif_create(lv_screen_active());
// shown on a plain black screen: no transparency needed, so decode straight into the display's
// color format (no alpha blending, no conversion) to save CPU
lv_gif_set_color_format(img, lv_display_get_color_format(lv_display_get_default()));
Serial.print("Available Heap before: ");
Serial.println(esp_get_free_heap_size());