From ea4700c81f03c3f3b2aeea5dfc5466b57f184ad2 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Mon, 31 Jul 2023 14:19:49 -0500 Subject: [PATCH] libweston: Fix "fix paint_node_damage_below" Commit 43b59786 errantly claimed that paint_node_damage_below() needed to damage all planes because it's used when moving paint nodes between planes. This is wrong because the destination plane will receive damage correctly from paint_node_update_late() when the node's visible region is added to its damage. Leave the rest of that commit's changes, but make it once again only damage the plane the node is currently on. The problem this caused is easily seen by turning on triangle fan debug and moving the mouse. Extra damage is generated beneath the cursor plane. Fixes 43b59786 Signed-off-by: Derek Foreman --- libweston/compositor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libweston/compositor.c b/libweston/compositor.c index 239dd2b6..5fd74130 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -164,6 +164,9 @@ paint_node_damage_below(struct weston_paint_node *pnode) if (lower_node == pnode) break; + if (lower_node->plane != pnode->plane) + continue; + pixman_region32_union(&lower_node->damage, &lower_node->damage, &pnode->visible); }