summaryrefslogtreecommitdiff
path: root/src/sna/sna_composite.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-10-21 10:46:14 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-10-21 10:46:14 +0100
commitf6eed98fcfea54d50a282ac71ee654645551ae11 (patch)
tree543298ea854e13316cdb37c8112d16d6bc63606f /src/sna/sna_composite.c
parent60e4e009f90543bfd57f6a4e51ebc5b32b4af33b (diff)
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 <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna_composite.c')
-rw-r--r--src/sna/sna_composite.c8
1 files 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, &region);
boxes = pixman_region_rectangles(&region, &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, &region);
DamageRegionProcessPending(&pixmap->drawable);
pixman_region_fini(&region);