diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-02-12 21:52:35 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-02-12 21:52:35 +0000 |
commit | 04e4805f57fdf0581e5e75c29c275c15c79852a3 (patch) | |
tree | c0304285e56499404d71a1e315e241ad33ecf632 /src | |
parent | 2c569d22d2d243badc15d5dbcc09e6759f4ff01a (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.c | 5 |
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, |