From c7b45f68e629dd5f92f10411f97bfa862a7baf5e Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 6 Feb 2012 12:16:07 +0200 Subject: [PATCH] compositor: clear surface damage on draw Commit a0d6dc4f26c95ae08ffff7d5f1ee7c1f53bdf545 lost one line of code in the refactoring, and so did not reset the surface damage on repaint anymore. This causes damage to only accumulate, leading to a full display redraw every cycle and hiding damage tracking issues. Put the damage clear back. Signed-off-by: Pekka Paalanen --- src/compositor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/compositor.c b/src/compositor.c index 3a26424d..6b15a543 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -681,6 +681,9 @@ weston_surface_draw(struct weston_surface *es, struct weston_output *output) &output->region); pixman_region32_intersect(&repaint, &repaint, &es->damage); + /* Clear damage, assume outputs do not overlap. */ + pixman_region32_subtract(&es->damage, &es->damage, &output->region); + if (!pixman_region32_not_empty(&repaint)) goto out;