Ursache war der zweite Zeichenpuffer aus 1.6.25. esp_lcd_dpi_panel_draw_bitmap lehnt eine Übertragung ab, solange die vorige noch läuft:
ESP_ERR_INVALID_STATE, ...)
```#n
Mit zwei Puffern schickt LVGL die nächste Übertragung sofort los, statt auf `lv_disp_flush_ready` zu warten. Die abgelehnte Übertragung fällt ersatzlos aus, und der betroffene Bildbereich behält seinen alten oder noch nicht geschriebenen Inhalt - sichtbar als blaue Zwischenbilder.
Der zweite Zeichenpuffer ist entfernt, `lvgl_port_v9.c` ist damit wieder unverändert gegenüber der Hersteller-Portierung. Der eigentliche Gewinn bleibt: Der Zwischenpuffer hat weiterhin volle Bildhöhe, ein Bildlauf braucht einen Durchgang statt sechs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Ursache war der zweite Zeichenpuffer aus 1.6.25. `esp_lcd_dpi_panel_draw_bitmap` lehnt eine Übertragung ab, solange die vorige noch läuft:
```#nESP_RETURN_ON_FALSE(xSemaphoreTake(dpi_panel->draw_sem, 0) == pdTRUE,
ESP_ERR_INVALID_STATE, ...)
```#n
Mit zwei Puffern schickt LVGL die nächste Übertragung sofort los, statt auf `lv_disp_flush_ready` zu warten. Die abgelehnte Übertragung fällt ersatzlos aus, und der betroffene Bildbereich behält seinen alten oder noch nicht geschriebenen Inhalt - sichtbar als blaue Zwischenbilder.
Der zweite Zeichenpuffer ist entfernt, `lvgl_port_v9.c` ist damit wieder unverändert gegenüber der Hersteller-Portierung. Der eigentliche Gewinn bleibt: Der Zwischenpuffer hat weiterhin volle Bildhöhe, ein Bildlauf braucht einen Durchgang statt sechs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Ursache war der zweite Zeichenpuffer aus 1.6.25. esp_lcd_dpi_panel_draw_bitmap
lehnt eine Übertragung ab, solange die vorige noch läuft:
ESP_RETURN_ON_FALSE(xSemaphoreTake(dpi_panel->draw_sem, 0) == pdTRUE,
ESP_ERR_INVALID_STATE, ...)
Mit zwei Puffern schickt LVGL die nächste Übertragung sofort los, statt auf
lv_disp_flush_ready zu warten. Die abgelehnte Übertragung fällt ersatzlos
aus, und der betroffene Bildbereich behält seinen alten oder noch nicht
geschriebenen Inhalt - sichtbar als blaue Zwischenbilder.
Der zweite Zeichenpuffer ist entfernt, lvgl_port_v9.c ist damit wieder
unverändert gegenüber der Hersteller-Portierung. Der eigentliche Gewinn
bleibt: Der Zwischenpuffer hat weiterhin volle Bildhöhe, ein Bildlauf
braucht einen Durchgang statt sechs.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
thomas
merged commit 5d47228eed into main2026-09-02 03:49:24 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ursache war der zweite Zeichenpuffer aus 1.6.25.
esp_lcd_dpi_panel_draw_bitmaplehnt eine Übertragung ab, solange die vorige noch läuft:Ursache war der zweite Zeichenpuffer aus 1.6.25. esp_lcd_dpi_panel_draw_bitmap lehnt eine Übertragung ab, solange die vorige noch läuft: ESP_RETURN_ON_FALSE(xSemaphoreTake(dpi_panel->draw_sem, 0) == pdTRUE, ESP_ERR_INVALID_STATE, ...) Mit zwei Puffern schickt LVGL die nächste Übertragung sofort los, statt auf lv_disp_flush_ready zu warten. Die abgelehnte Übertragung fällt ersatzlos aus, und der betroffene Bildbereich behält seinen alten oder noch nicht geschriebenen Inhalt - sichtbar als blaue Zwischenbilder. Der zweite Zeichenpuffer ist entfernt, lvgl_port_v9.c ist damit wieder unverändert gegenüber der Hersteller-Portierung. Der eigentliche Gewinn bleibt: Der Zwischenpuffer hat weiterhin volle Bildhöhe, ein Bildlauf braucht einen Durchgang statt sechs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>