diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-04-08 18:00:47 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-04-08 18:17:52 +0100 |
commit | 5db8717b8d9f089412b9a7529725c9c41e3e44fb (patch) | |
tree | e893d929901a9a25108e77d5608aae3d6051f868 | |
parent | 617e96f3af861dd797f98d5a74978f9ba595a981 (diff) |
sna: Refactor 3 similar CPU migration promotion checks into one
References: https://bugs.freedesktop.org/show_bug.cgi?id=77178
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_accel.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 55eef797..8abfdd09 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -2500,16 +2500,11 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable, flags |= MOVE_INPLACE_HINT; } - if ((flags & (MOVE_WHOLE_HINT | MOVE_READ)) == (MOVE_WHOLE_HINT | MOVE_READ)) - return _sna_pixmap_move_to_cpu(pixmap, flags); - - if (flags & MOVE_WHOLE_HINT && priv->gpu_damage == NULL && priv->cpu_damage == NULL) - return _sna_pixmap_move_to_cpu(pixmap, flags); - - if (priv->gpu_damage == NULL && - (priv->create & KGEM_CAN_CREATE_GPU) == 0 && - flags & MOVE_WRITE) - return _sna_pixmap_move_to_cpu(pixmap, flags); + if (flags & MOVE_READ || (priv->gpu_damage == NULL && priv->cpu_damage == NULL)) { + if (flags & MOVE_WHOLE_HINT || + (flags & MOVE_WRITE && (priv->create & KGEM_CAN_CREATE_GPU) == 0)) + return _sna_pixmap_move_to_cpu(pixmap, flags); + } if (get_drawable_deltas(drawable, pixmap, &dx, &dy)) { DBG(("%s: delta=(%d, %d)\n", __FUNCTION__, dx, dy)); |