fix(rlcd): freeze after flash - disable auto-screensaver on monochrome + reduce video stream hog
Frozen screen caused by 2 runtime issues after init fixes 3770ac89:
- BouncingBalls screensaver full_refresh SPI at 10MHz for 300x400 takes ~100ms per frame, hogs LVGL lock -> UI appears frozen stuck on weird image
- MCP video stream task vTaskDelay 5ms streaming holds LVGL lock too often -> starves UI and screenshot (could not acquire LVGL lock)
Fix:
- DisplayIdle tick: for !supportsBacklight (RLCD) don't auto-activate screensaver, only handle wake. Prevents heavy animation entering automatically after timeout (SD may have 60s setting).
- McpSystem video stream: 50ms->100ms idle, 5ms->30ms streaming to release LVGL lock
- Screenshot API: 100ms->500ms lock timeout, task 50->300ms for slow SPI
Build 0x2b79e0 RLCD, flashed.
Co-Authored-By: internal-model
This commit is contained in:
@@ -1701,10 +1701,11 @@ static void mcp_video_stream_task(void* pvParameters) {
|
||||
}
|
||||
|
||||
// Yield: longer delay when no client connected to save CPU
|
||||
// RLCD ST7305 SPI is slow and shared - don't hog LVGL lock (fix freeze)
|
||||
if (mono_client_fd < 0 && color_client_fd < 0) {
|
||||
vTaskDelay(pdMS_TO_TICKS(50));
|
||||
vTaskDelay(pdMS_TO_TICKS(100));
|
||||
} else {
|
||||
vTaskDelay(pdMS_TO_TICKS(5));
|
||||
vTaskDelay(pdMS_TO_TICKS(30));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user