44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
From a929100b9854ff721d7a5d9f6cb6d5259994b9da Mon Sep 17 00:00:00 2001
|
|
From: Jeffy Chen <jeffy.chen@rock-chips.com>
|
|
Date: Tue, 16 Jan 2024 16:44:14 +0800
|
|
Subject: [PATCH 81/98] compositor: Skip painting output before initialized
|
|
|
|
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
|
|
---
|
|
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
|
|
|