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 <derek.foreman@collabora.com>
This commit is contained in:
Derek Foreman 2023-11-03 09:55:00 -05:00
parent 8b7597d40f
commit 79212ba9ad

View File

@ -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);
}