pixman: Branch 'master'

Jeff Muizelaar jrmuizel at kemper.freedesktop.org
Wed Apr 1 15:28:51 PDT 2009


 pixman/pixman-pict.c |    2 ++
 1 file changed, 2 insertions(+)

New commits:
commit cdcbd9be3a2318bf650b8f56fea51acb5991b075
Author: Siarhei Siamashka <siarhei.siamashka at nokia.com>
Date:   Wed Apr 1 18:26:24 2009 -0400

    Set srcRepeat = False when using fbCompositeSrcScaleNearest
    
    NORMAL repeat was broken (the optimized function can handle repeat operation
    itself and can be screwed up if 'pixman_walk_composite_region' tries to help it
    by splitting the work into handling multiple separate areas).
    
    Splitting work into handling different areas does not work right for the
    transform case (and it is never used for generic path).  The point is that this
    splitting only has full pixel precision at the moment, while correct blitting
    needs to preserve some fractional part in calculations when moving from one
    "tile" to another.

diff --git a/pixman/pixman-pict.c b/pixman/pixman-pict.c
index 81f81fe..5f3ddd2 100644
--- a/pixman/pixman-pict.c
+++ b/pixman/pixman-pict.c
@@ -1969,6 +1969,8 @@ pixman_image_composite (pixman_op_t      op,
             pSrc->common.transform->matrix[2][1] == 0 &&
             pSrc->common.transform->matrix[2][2] == pixman_fixed_1) {
             func = fbCompositeSrcScaleNearest;
+            /* Like the general path, fbCompositeSrcScaleNearest handles all the repeat types itself */
+            srcRepeat = FALSE;
         }
     } else if ((pSrc->type == BITS || pixman_image_can_get_solid (pSrc)) && (!pMask || pMask->type == BITS)
         && !srcTransform && !maskTransform


More information about the xorg-commit mailing list