linuxOS_AP06/buildroot/package/weston/0081-compositor-Skip-painting-output-before-initialized.patch
2025-06-03 12:28:32 +08:00

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