diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-07-29 11:51:39 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-07-29 12:16:21 +0100 |
commit | c9d89499806779cd6c62d5d6d34df76279cc5abd (patch) | |
tree | d63fa46a3372774587094b77384084940ac1d0ad /src | |
parent | 3cb75950a90c28690f78fd3bf93ff8e23e5d543a (diff) |
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@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@chris-wilson.co.uk>
Diffstat (limited to 'src')
-rw-r--r-- | src/sna/sna_composite.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c index f2938074..58dd3567 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; |