fix(P4): Blaue Zwischenbilder beim Bildlauf beseitigt (1.6.26) #54

Merged
thomas merged 1 commits from fix/blaue-zwischenbilder into main 2026-09-02 03:49:24 +02:00
Owner

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)
thomas added 1 commit 2026-09-02 03:49:23 +02:00
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 main 2026-09-02 03:49:24 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thomas/Dual-PID#54