From 87e6dcb3b06c274ecba5de56d4e86fec73e46dbb Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 12 Jan 2012 02:09:22 +0000 Subject: [PATCH] sna: Don't call RegionIntersect for the trivial PutImage Signed-off-by: Chris Wilson --- src/sna/sna_accel.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index bc51112c..b3bea6af 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -2525,9 +2525,15 @@ sna_put_image(DrawablePtr drawable, GCPtr gc, int depth, region.extents.y2 = region.extents.y1 + h; region.data = NULL; - RegionIntersect(®ion, ®ion, gc->pCompositeClip); - if (!RegionNotEmpty(®ion)) - return; + if (!region_is_singular(gc->pCompositeClip) || + gc->pCompositeClip->extents.x1 > region.extents.x1 || + gc->pCompositeClip->extents.y1 > region.extents.y1 || + gc->pCompositeClip->extents.x2 < region.extents.x2 || + gc->pCompositeClip->extents.y2 < region.extents.y2) { + RegionIntersect(®ion, ®ion, gc->pCompositeClip); + if (!RegionNotEmpty(®ion)) + return; + } RegionTranslate(®ion, dx, dy);