summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-02-10 14:19:53 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2014-02-10 14:19:53 +0000
commit2f99070708ce8f591c31e1e908809a0ce551c13f (patch)
tree57729153f580e0ec4214d77a56ae4380fefd6ad6 /src
parent2fb2cd092dadba40b5ad2da57943c660a0c9bc14 (diff)
sna: Clear GPU damage flag for 1x1 writes onto a clear buffer
An optimisation for 1x1 reads of a clear buffer lead to a bug whereby the damage for a 1x1 write would not be tracked correctly (conflicting full GPU damage vs partial CPU damage). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/sna_accel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 39199972..531dd40d 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2688,7 +2688,8 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
box++;
} while (--n);
- if (region->extents.x2 - region->extents.x1 > 1 ||
+ if (flags & MOVE_WRITE ||
+ region->extents.x2 - region->extents.x1 > 1 ||
region->extents.y2 - region->extents.y1 > 1) {
sna_damage_subtract(&priv->gpu_damage, region);
priv->clear = false;