From e3bfd272cf813b8419757a3b59128b3568e5f800 Mon Sep 17 00:00:00 2001 From: Siarhei Siamashka Date: Mon, 20 Sep 2010 19:07:33 +0300 Subject: [PATCH 2/9] Don't discriminate PAD and REFLECT repeat in standard fast paths Without this fix, setting PAD repeat on a source image prevents the use of any nonscaled standard fast paths, affecting performance a lot. But as long as no pixels outside the source image boundaries are touched by the compositing operation, all the repeat types behave the same and can take the same fast paths. This is important because setting PAD repeat instead of NONE is more hardware acceleration friendly (for the drivers implementing RENDER extension) and does not inhibit OVER->SRC operator optimization in pixman. --- pixman/pixman-image.c | 6 ++---- pixman/pixman-private.h | 2 -- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index 8397f6a..14a2219 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -363,16 +363,14 @@ compute_image_info (pixman_image_t *image) flags |= FAST_PATH_NO_PAD_REPEAT | FAST_PATH_NO_NONE_REPEAT | - FAST_PATH_NO_NORMAL_REPEAT | - FAST_PATH_COVERS_CLIP; + FAST_PATH_NO_NORMAL_REPEAT; break; case PIXMAN_REPEAT_PAD: flags |= FAST_PATH_NO_REFLECT_REPEAT | FAST_PATH_NO_NONE_REPEAT | - FAST_PATH_NO_NORMAL_REPEAT | - FAST_PATH_COVERS_CLIP; + FAST_PATH_NO_NORMAL_REPEAT; break; default: diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h index 564f8f0..440ae7a 100644 --- a/pixman/pixman-private.h +++ b/pixman/pixman-private.h @@ -602,8 +602,6 @@ _pixman_choose_implementation (void); (FAST_PATH_ID_TRANSFORM | \ FAST_PATH_NO_ALPHA_MAP | \ FAST_PATH_NO_CONVOLUTION_FILTER | \ - FAST_PATH_NO_PAD_REPEAT | \ - FAST_PATH_NO_REFLECT_REPEAT | \ FAST_PATH_NO_ACCESSORS | \ FAST_PATH_NARROW_FORMAT | \ FAST_PATH_COVERS_CLIP) -- 1.6.6.1