diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-11-28 16:25:52 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-11-28 22:00:11 +0000 |
commit | b85051ae480499dd8a6a6d07d5ce0feca7b844b4 (patch) | |
tree | 447f62fb25cf2a8a1ff49bd669f5a0f98ca6b309 | |
parent | faedf266d7b476954574db2cb1274e677cf42bf4 (diff) |
sna: Fallback from partial to full move-to-cpu
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-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 328e144b..e1487ee0 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -1836,7 +1836,7 @@ static inline bool operate_inplace(struct sna_pixmap *priv, unsigned flags) return false; } - assert((flags & MOVE_ASYNC_HINT) == 0); + assert((flags & MOVE_ASYNC_HINT) == 0 || (priv->create & KGEM_CAN_CREATE_LARGE)); if (priv->move_to_gpu && flags & MOVE_WRITE) { DBG(("%s: no, has pending move-to-gpu\n", __FUNCTION__)); @@ -2561,7 +2561,8 @@ contains_damage: flags & MOVE_READ ? priv->gpu_damage && !priv->clear : 0)) { if (dx | dy) RegionTranslate(region, -dx, -dy); - return false; + DBG(("%s: CPU bo allocation failed, trying full move-to-cpu\n", __FUNCTION__)); + return _sna_pixmap_move_to_cpu(pixmap, flags | MOVE_READ); } assert(pixmap->devPrivate.ptr); |