From 79212ba9add48973049c3703f78bc9a9864cffe7 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Fri, 3 Nov 2023 09:55:00 -0500 Subject: [PATCH] libweston: Don't clip damage to paint node visible region When an output repaints, it calculates visibility for its paint nodes, accumulates damage for all paint nodes across all outputs, and then paints. This means that when it's accumulating damage for all paint nodes in paint_node_add_damage(), it may be accumulating damage to nodes on other outputs that haven't had their visible regions updates yet. This leads to clipping with a stale visibility region, and losing damage. Let's just drop the clip here for now - there are already other places where paint nodes have to carry damage outside their visible regions. Signed-off-by: Derek Foreman --- libweston/compositor.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libweston/compositor.c b/libweston/compositor.c index f9c72144..30141af5 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -3063,7 +3063,6 @@ paint_node_add_damage(struct weston_paint_node *node) view->geometry.pos_offset.y); } - pixman_region32_intersect(&damage, &damage, &node->visible); pixman_region32_union(&node->damage, &node->damage, &damage); pixman_region32_fini(&damage); }