diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-12-12 20:40:29 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-12-13 01:38:09 +0000 |
commit | f6a30df8dc75852d1f6daeabe4511b275594e52e (patch) | |
tree | 8ce0937cf91da1be33917e7918ec7905c36e1de7 | |
parent | 3c163d105e964a1084d665500ef917254d8f2179 (diff) |
sna: Enable memcpy uploads to SHM pixmaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/sna/sna_accel.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index dc0fad50..c7b4ebf1 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -1441,12 +1441,16 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region, int16_t dx, dy; int n; - if (!priv) - return false; - if (gc->alu != GXcopy) return false; + if (!priv) { + if (drawable->depth < 8) + return false; + + goto blt; + } + /* XXX performing the upload inplace is currently about 20x slower * for putimage10 on gen6 -- mostly due to slow page faulting in kernel. * So we try again with vma caching and only for pixmaps who will be @@ -1496,6 +1500,7 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region, if (priv->flush) list_move(&priv->list, &sna->dirty_pixmaps); +blt: get_drawable_deltas(drawable, pixmap, &dx, &dy); x += dx + drawable->x; y += dy + drawable->y; |