summaryrefslogtreecommitdiff
path: root/src/sna
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-11-02 13:11:31 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-11-02 13:38:07 +0000
commit9681b1422e4531a19e0117e1b1a97668f6b6a571 (patch)
tree2e09f725928c09fc38290b729c862fe49829e8bb /src/sna
parent6cb84c8d55f2f7cbb087a479c1dbc8bc58e97183 (diff)
sna: Fallback when wedged and trying to use the BLT copy routines
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna')
-rw-r--r--src/sna/sna_blt.c2
-rw-r--r--src/sna/sna_tiling.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index 0169d110..e63b360c 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -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),
diff --git a/src/sna/sna_tiling.c b/src/sna/sna_tiling.c
index 925ba148..feb80dcc 100644
--- a/src/sna/sna_tiling.c
+++ b/src/sna/sna_tiling.c
@@ -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",