diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2015-04-16 14:29:53 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2015-04-16 14:30:41 +0100 |
commit | 57252b63f92c8f58cb62c28461d86becf463302b (patch) | |
tree | 9000cd3a5f6afb450af77e4eafe49b6f86164afc | |
parent | 5df16db52ec994fce2f3af952ad08a13c9c700aa (diff) |
sna: Force GTT fallback if we cannot BLT or RENDER download
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_io.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c index d6aa1294..4250f9ee 100644 --- a/src/sna/sna_io.c +++ b/src/sna/sna_io.c @@ -281,6 +281,9 @@ fallback: if (box[n].y2 > extents.y2) extents.y2 = box[n].y2; } + if (!can_blt && sna->render.max_3d_size == 0) + goto fallback; + if (kgem_bo_can_map(kgem, src_bo)) { /* Is it worth detiling? */ if ((extents.y2 - extents.y1 - 1) * src_bo->pitch < 4096) @@ -849,6 +852,8 @@ bool sna_write_boxes(struct sna *sna, PixmapPtr dst, if (box[n].y2 > extents.y2) extents.y2 = box[n].y2; } + if (!can_blt && sna->render.max_3d_size == 0) + goto fallback; /* Try to avoid switching rings... */ if (!can_blt || kgem->ring == KGEM_RENDER || |