summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-02-12 21:52:35 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-02-12 21:52:35 +0000
commit04e4805f57fdf0581e5e75c29c275c15c79852a3 (patch)
treec0304285e56499404d71a1e315e241ad33ecf632 /src
parent2c569d22d2d243badc15d5dbcc09e6759f4ff01a (diff)
sna: Prefer inplace readback if the GPU doesn't support cacheable BLTs
As we must perform the GTT reads anyway, first see if we can copy directly to the destination. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r--src/sna/sna_accel.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 18046a64..134b72fc 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -4579,8 +4579,9 @@ fallback:
RegionExtents(region));
mode = MOVE_READ;
- if (src_priv->cpu_bo == NULL &&
- (src_priv->create & KGEM_CAN_CREATE_CPU) == 0)
+ if (!sna->kgem.can_blt_cpu ||
+ (src_priv->cpu_bo == NULL &&
+ (src_priv->create & KGEM_CAN_CREATE_CPU) == 0))
mode |= MOVE_INPLACE_HINT;
if (!sna_drawable_move_region_to_cpu(&src_pixmap->drawable,