summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-01-22 13:46:05 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-01-22 13:46:05 +0000
commit67a166d1247a1197fc851308c33c4970868f6a21 (patch)
tree3421adee02ac6710e03f1e1716831af8f84ec8c8
parent77ee92248582d65a03619d1bb1d93a74468eea00 (diff)
sna: Pass inplace hint for sna_copy_boxes fallback
In the unlikely event that this makes a difference, provide the hint as to when we do not read back from the destination and so a streaming copy would be preferable. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_accel.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 37385ebe..1e9ee166 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -3283,9 +3283,10 @@ fallback:
assert_pixmap_contains_box(dst_pixmap,
RegionExtents(&region));
- mode = MOVE_WRITE;
- if (alu != GXcopy)
- mode |= MOVE_READ;
+ if (alu_overwrites(alu))
+ mode = MOVE_WRITE | MOVE_INPLACE_HINT;
+ else
+ mode = MOVE_WRITE | MOVE_READ;
if (!sna_drawable_move_region_to_cpu(&dst_pixmap->drawable,
&region, mode))
goto out;