pixman: Changes to '0.20'

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Wed Jan 19 05:31:17 PST 2011


New branch '0.20' available with the following commits:
commit e6b9e533a08f149649c1f2700a6406d72e0a469e
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Wed Jan 19 08:22:45 2011 -0500

    Pre-release version bump to 0.20.2

commit 6d91cdbc0c281d9ab155adec095f1955edb326be
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Mon Jan 17 14:12:20 2011 -0500

    Fix dangling-pointer bug in bits_image_fetch_bilinear_no_repeat_8888().
    
    The mask_bits variable is only declared in a limited scope, so the
    pointer to it becomes invalid instantly. Somehow this didn't actually
    trigger any bugs, but Brent Fulgham reported that Bounds Checker was
    complaining about it.
    
    Fix the bug by moving mask_bits to the function scope.

commit a72350ff41c0427f3fe034cf727d33d241825b6a
Author: Siarhei Siamashka <siarhei.siamashka at nokia.com>
Date:   Tue Jan 4 13:42:29 2011 +0200

    Workaround for a preprocessor issue in old Sun Studio
    
    Patch from Peter O'Gorman with some modifications
    
    https://bugs.freedesktop.org//show_bug.cgi?id=32764

commit 63a71bd7375b103663223f357cbe0e3be39bc663
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Tue Nov 23 11:37:54 2010 +0100

    Improve handling of tangent circles
    
    When b is 0, avoid the division by zero and just return transparent
    black.
    
    When the solution t would have an invalid radius (negative or outside
    [0,1] for none-extended gradients), return transparent black.

commit d0599816b9bec246d30f5d9b967d6db5eb77ee8b
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Sat Dec 18 06:06:39 2010 -0500

    Fix divide-by-zero in set_lum().
    
    When (l - min) or (max - l) are zero, simply set all the channels to
    the limit, 0 in the case of (l - min), and a in the case of (max - l).

commit e7aa109ca937d50421cc7b41dfc142becc53404a
Author: Siarhei Siamashka <siarhei.siamashka at nokia.com>
Date:   Tue Nov 30 00:31:06 2010 +0200

    Fix for potential unaligned memory accesses
    
    The temporary scanline buffer allocated on stack was declared
    as uint8_t array. As a result, the compiler was free to select
    any arbitrary alignment for it (even though there is typically
    no reason to use really weird alignments here and the stack is
    normally at least 4 bytes aligned on most platforms). Having
    improper alignment is non-portable and can impact performance
    or even make the code misbehave depending on the target platform.
    
    Using uint64_t type for this array should ensure that any possible
    memory accesses done by pixman code are going to be handled correctly
    (pixman-combine64.c can access this buffer via uint64_t * pointer).
    
    Some alignment related problem was reported in:
    http://lists.freedesktop.org/archives/pixman/2010-November/000747.html

commit 724f5e67b35420119222a4692d1fe9f4c8f49ba2
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Tue Nov 2 17:02:01 2010 +0100

    Fix opacity check
    
    Radial gradients are "conical", thus they can have some non-opaque
    parts even if all of their stops are completely opaque.
    
    To guarantee that a radial gradient is actually opaque, it needs to
    also have one of the two circles containing the other one. In this
    case when extrapolating, the whole plane is completely covered (as
    explained in the comment in pixman-radial-gradient.c).

commit e6ec404781b0cc34fe07823e419595821ae0ad1c
Author: Siarhei Siamashka <siarhei.siamashka at nokia.com>
Date:   Tue Nov 2 22:53:55 2010 +0200

    ARM: fix 'vld1.8'->'vld1.32' typo in add_8888_8888 NEON fast path
    
    This was mostly harmless and had no effect on little endian systems.
    But wrong vector element size is at least inconsistent and also
    can theoretically cause problems on big endian ARM systems.

commit 2edec481b9582f6f593310af5fd4b713005028a5
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Sat Oct 30 17:20:22 2010 -0400

    [mmx] Mark some of the output variables as early-clobber.
    
    GCC assumes that input variables in inline assembly are fully consumed
    before any output variable is written. This means it may allocate the
    variables in the same register unless the output variables are marked
    as early-clobber.
    
    From Jeremy Huddleston:
    
        I noticed a problem building pixman with clang and reported it to
        the clang developers.  They responded back with a comment about
        the inline asm in pixman-mmx.c and suggested a fix:
    
        """
        Incidentally, Jeremy, in the asm that reads
        __asm__ (
        "movq %7, %0\n"
        "movq %7, %1\n"
        "movq %7, %2\n"
        "movq %7, %3\n"
        "movq %7, %4\n"
        "movq %7, %5\n"
        "movq %7, %6\n"
        : "=y" (v1), "=y" (v2), "=y" (v3),
          "=y" (v4), "=y" (v5), "=y" (v6), "=y" (v7)
        : "y" (vfill));
    
        all the output operands except the last one should be marked as
        earlyclobber ("=&y"). This is working by accident with gcc.
        """
    
    Cc: jeremyhu at apple.com
    Reviewed-by: Matt Turner <mattst88 at gmail.com>

commit 6718621c62ef03d1dd71c34242a873aba798e8aa
Author: Siarhei Siamashka <siarhei.siamashka at nokia.com>
Date:   Sat Oct 30 15:51:30 2010 +0300

    Fixed broken configure check for __thread support
    
    Somehow the patch from [1] was not applied correctly, fixing that.
    
    1. http://lists.cairographics.org/archives/cairo/2010-September/020826.html

commit bcfff7f74c4eb987047f0634a950da758794b13a
Author: Søren Sandmann Pedersen <ssp at redhat.com>
Date:   Wed Jan 19 08:06:31 2011 -0500

    Post-release version bump to 0.20.1



More information about the xorg-commit mailing list