From a929100b9854ff721d7a5d9f6cb6d5259994b9da Mon Sep 17 00:00:00 2001 From: Jeffy Chen Date: Tue, 16 Jan 2024 16:44:14 +0800 Subject: [PATCH 81/98] compositor: Skip painting output before initialized Signed-off-by: Jeffy Chen --- libweston/compositor.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libweston/compositor.c b/libweston/compositor.c index 60ca971a0..3d3bb0797 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -3860,6 +3860,7 @@ weston_output_repaint(struct weston_output *output, struct timespec *now) int r; uint32_t frame_time_msec; enum weston_hdcp_protection highest_requested = WESTON_HDCP_DISABLE; + bool is_blank = true; TL_POINT(ec, "core_repaint_begin", TLP_OUTPUT(output), TLP_END); @@ -3880,6 +3881,17 @@ weston_output_repaint(struct weston_output *output, struct timespec *now) z_order_link) { assert(pnode->view->output_mask & (1u << pnode->output->id)); assert(pnode->output == output); + + if (pnode->view->layer_link.layer) + is_blank = false; + } + + /* Waiting for initializing */ + if (weston_output_valid(output) && + !timespec_to_msec(&output->frame_time) && is_blank) { + timespec_add_nsec(&output->next_repaint, &output->next_repaint, + millihz_to_nsec(output->current_mode->refresh)); + return 1; } /* Find the highest protection desired for an output */ -- 2.20.1