xf86-video-intel: src/sna/sna_composite.c

Chris Wilson ickle at kemper.freedesktop.org
Mon Jul 29 04:16:50 PDT 2013


 src/sna/sna_composite.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

New commits:
commit c9d89499806779cd6c62d5d6d34df76279cc5abd
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jul 29 11:51:39 2013 +0100

    sna: Composite region is already in dst drawable space
    
    So do not offset it again when processing the fallback composite
    operation.
    
    Regression from commit 6921abd81017c9ed7f3b2413784068fbc609a0ea
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Thu Jul 18 16:21:27 2013 +0100
    
        sna: Add a fast path for the most common fallback for CPU-CPU blits
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=66990
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index f293807..58dd356 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -529,7 +529,8 @@ sna_composite_fb(CARD8 op,
 	    sna_transform_is_integer_translation(src->transform, &tx, &ty)) {
 		PixmapPtr dst_pixmap = get_drawable_pixmap(dst->pDrawable);
 		PixmapPtr src_pixmap = get_drawable_pixmap(src->pDrawable);
-		int16_t sx = src_x + tx, sy = src_y + ty;
+		int16_t sx = src_x + tx - (dst->pDrawable->x - dst_x);
+		int16_t sy = src_y + ty - (dst->pDrawable->y - dst_y);
 		if (region->extents.x1 + sx >= 0 &&
 		    region->extents.y1 + sy >= 0 &&
 		    region->extents.x2 + sx <= src->pDrawable->width &&
@@ -547,8 +548,6 @@ sna_composite_fb(CARD8 op,
 			assert(region->extents.y1 + sy >= 0);
 			assert(region->extents.y2 + sy <= src_pixmap->drawable.height);
 
-			dst_x += dst->pDrawable->x;
-			dst_y += dst->pDrawable->y;
 			if (get_drawable_deltas(dst->pDrawable, dst_pixmap, &tx, &ty))
 				dst_x += tx, dst_y += ty;
 


More information about the xorg-commit mailing list