From f6eed98fcfea54d50a282ac71ee654645551ae11 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 21 Oct 2012 10:46:14 +0100 Subject: [PATCH] sna: Mark the to-be-damaged region first, then Process afterwards Damage is processed in two phases, with the actual Damage being appended before the operation is performed so that a copy can be made before modification (e.g. software cursors). Signed-off-by: Chris Wilson --- src/sna/sna_composite.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c index 60d39cde..c2af3b4e 100644 --- a/src/sna/sna_composite.c +++ b/src/sna/sna_composite.c @@ -827,6 +827,10 @@ sna_composite_rectangles(CARD8 op, goto fallback; } + /* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must + * manually append the damaged regions ourselves. + */ + DamageRegionAppend(&pixmap->drawable, ®ion); boxes = pixman_region_rectangles(®ion, &num_boxes); /* If we going to be overwriting any CPU damage with a subsequent @@ -984,10 +988,6 @@ fallback_composite: } done: - /* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must - * manually append the damaged regions ourselves. - */ - DamageRegionAppend(&pixmap->drawable, ®ion); DamageRegionProcessPending(&pixmap->drawable); pixman_region_fini(®ion);