sna: Fallback when wedged and trying to use the BLT copy routines
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 2 Nov 2013 13:11:31 +0000 (13:11 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sat, 2 Nov 2013 13:38:07 +0000 (13:38 +0000)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
src/sna/sna_blt.c
src/sna/sna_tiling.c

index 0169d11..e63b360 100644 (file)
@@ -2862,7 +2862,7 @@ bool sna_blt_copy_boxes(struct sna *sna, uint8_t alu,
            src_bo->tiling, dst_bo->tiling,
            src_bo->pitch, dst_bo->pitch));
 
-       if (!kgem_bo_can_blt(kgem, src_bo) || !kgem_bo_can_blt(kgem, dst_bo)) {
+       if (wedged(sna) || !kgem_bo_can_blt(kgem, src_bo) || !kgem_bo_can_blt(kgem, dst_bo)) {
                DBG(("%s: cannot blt to src? %d or dst? %d\n",
                     __FUNCTION__,
                     kgem_bo_can_blt(kgem, src_bo),
index 925ba14..feb80dc 100644 (file)
@@ -700,7 +700,8 @@ bool sna_tiling_blt_copy_boxes(struct sna *sna, uint8_t alu,
        int max_size, step;
        bool ret = false;
 
-       if (!kgem_bo_can_blt(&sna->kgem, src_bo) ||
+       if (wedged(sna) ||
+           !kgem_bo_can_blt(&sna->kgem, src_bo) ||
            !kgem_bo_can_blt(&sna->kgem, dst_bo)) {
                /* XXX */
                DBG(("%s: tiling blt fail: src?=%d, dst?=%d\n",