xf86-video-intel: src/sna/fb src/sna/sna_accel.c
Chris Wilson
ickle at kemper.freedesktop.org
Sat Oct 20 10:02:03 PDT 2012
src/sna/fb/fbblt.c | 2 +-
src/sna/sna_accel.c | 16 +++++++++-------
2 files changed, 10 insertions(+), 8 deletions(-)
New commits:
commit 60e4e009f90543bfd57f6a4e51ebc5b32b4af33b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Oct 20 17:59:45 2012 +0100
sna: Move the source region to the CPU for a self-copy fallback CopyArea
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/fb/fbblt.c b/src/sna/fb/fbblt.c
index d4d20b6..287ea40 100644
--- a/src/sna/fb/fbblt.c
+++ b/src/sna/fb/fbblt.c
@@ -270,7 +270,7 @@ fbBlt(FbBits *srcLine, FbStride srcStride, int srcX,
int alu, FbBits pm, int bpp,
Bool reverse, Bool upsidedown)
{
- DBG(("%s %dx%d, alu=%d, pm=%d, bpp=%d (reverse=%d, upsidedown=%d)\n",
+ DBG(("%s %dx%d, alu=%d, pm=%x, bpp=%d (reverse=%d, upsidedown=%d)\n",
__FUNCTION__, width, height, alu, pm, bpp, reverse, upsidedown));
if (alu == GXcopy && pm == FB_ALLONES && ((srcX|dstX|width) & 7) == 0) {
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 593eb42..8d2a3f9 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -5016,16 +5016,17 @@ sna_fallback_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
if (!sna_gc_move_to_cpu(gc, dst, region))
return;
+ RegionTranslate(region, dx, dy);
+ if (!sna_drawable_move_region_to_cpu(src, region, MOVE_READ))
+ goto out_gc;
+ RegionTranslate(region, -dx, -dy);
+
if (src == dst ||
get_drawable_pixmap(src) == get_drawable_pixmap(dst)) {
+ DBG(("%s: self-copy\n", __FUNCTION__));
if (!sna_drawable_move_to_cpu(dst, MOVE_WRITE | MOVE_READ))
goto out_gc;
} else {
- RegionTranslate(region, dx, dy);
- if (!sna_drawable_move_region_to_cpu(src, region, MOVE_READ))
- goto out_gc;
- RegionTranslate(region, -dx, -dy);
-
if (!sna_drawable_move_region_to_cpu(dst, region,
drawable_gc_flags(dst, gc, false)))
goto out_gc;
@@ -5051,10 +5052,11 @@ sna_copy_area(DrawablePtr src, DrawablePtr dst, GCPtr gc,
if (gc->planemask == 0)
return NULL;
- DBG(("%s: src=(%d, %d)x(%d, %d)+(%d, %d) -> dst=(%d, %d)+(%d, %d)\n",
+ DBG(("%s: src=(%d, %d)x(%d, %d)+(%d, %d) -> dst=(%d, %d)+(%d, %d); alu=%d, pm=%lx\n",
__FUNCTION__,
src_x, src_y, width, height, src->x, src->y,
- dst_x, dst_y, dst->x, dst->y));
+ dst_x, dst_y, dst->x, dst->y,
+ gc->alu, gc->planemask));
if (FORCE_FALLBACK || !ACCEL_COPY_AREA || wedged(sna) ||
!PM_IS_SOLID(dst, gc->planemask))
More information about the xorg-commit
mailing list