perf(draw): only dispatch refreshing disp (#8305)

This commit is contained in:
yushuailong
2025-06-09 16:31:28 +08:00
committed by GitHub
parent cb85b35217
commit 74bb8210d9
+6 -7
View File
@@ -213,19 +213,18 @@ void lv_draw_dispatch(void)
{
LV_PROFILER_DRAW_BEGIN;
bool task_dispatched = false;
lv_display_t * disp = lv_display_get_next(NULL);
while(disp) {
lv_display_t * disp = lv_refr_get_disp_refreshing();
if(disp != NULL) {
lv_layer_t * layer = disp->layer_head;
while(layer) {
if(lv_draw_dispatch_layer(disp, layer))
task_dispatched = true;
layer = layer->next;
}
if(!task_dispatched) {
lv_draw_wait_for_finish();
lv_draw_dispatch_request();
}
disp = lv_display_get_next(disp);
}
if(!task_dispatched) {
lv_draw_wait_for_finish();
lv_draw_dispatch_request();
}
LV_PROFILER_DRAW_END;
}