pixman: Branch 'master' - 2 commits

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Fri Jun 26 16:25:25 PDT 2009


 pixman/pixman-arm-neon.c |   15 ++++++++-------
 pixman/pixman-arm-simd.c |    5 +++--
 2 files changed, 11 insertions(+), 9 deletions(-)

New commits:
commit 996e59f7f81864f7935d6dd58d8efd5a5ea265ea
Author: Guillaume Letellier <glet.n800 at googlemail.com>
Date:   Fri Jun 26 19:02:08 2009 -0400

    Fix ARM build.
    
    Commit 6e20c2574354d1cb071a1201ff166cb5e92c00d2 broke the build on ARM
    architectures by not updating the use of fbComposeGetSolid()
    correctly.

diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
index b88ede8..cbd3a92 100644
--- a/pixman/pixman-arm-neon.c
+++ b/pixman/pixman-arm-neon.c
@@ -459,7 +459,7 @@ fbCompositeSrc_8888x8x8888neon (
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
 
-    _pixman_image_get_solid (pMask, mask, pDst->bits.format);
+    mask = _pixman_image_get_solid (pMask, pDst->bits.format);
     mask_alpha = vdup_n_u8((mask) >> 24);
 
     if (width>=8)
@@ -656,8 +656,9 @@ fbCompositeSolidMask_nx8x8888neon (
     uint8x8_t    mask_selector=vreinterpret_u8_u64(vcreate_u64(0x0101010100000000ULL));
     uint8x8_t    alpha_selector=vreinterpret_u8_u64(vcreate_u64(0x0707070703030303ULL));
 
-    _pixman_image_get_solid(pSrc, src, pDst->bits.format);
+    src = _pixman_image_get_solid(pSrc, pDst->bits.format);
 
+    // bail out if fully transparent
     srca = src >> 24;
     if (src == 0)
 	return;
@@ -861,7 +862,7 @@ fbCompositeSrcAdd_8888x8x8neon (
 
     fbComposeGetStart (pDst, xDst, yDst, uint8_t, dstStride, dstLine, 1);
     fbComposeGetStart (pMask, xMask, yMask, uint8_t, maskStride, maskLine, 1);
-    _pixman_image_get_solid (pSrc, src, pDst->bits.format);
+    src = _pixman_image_get_solid (pSrc, pDst->bits.format);
     sa = vdup_n_u8((src) >> 24);
 
     if (width>=8)
@@ -1732,7 +1733,7 @@ fbCompositeSolidMask_nx8x0565neon (
 	uint32_t     kernelCount, copyCount;
 	uint8_t      kernelOffset, copyOffset;
 
-	_pixman_image_get_solid(pSrc, src, pDst->bits.format);
+	src = _pixman_image_get_solid(pSrc, pDst->bits.format);
 
 	// bail out if fully transparent or degenerate
 	srca = src >> 24;
@@ -1873,7 +1874,7 @@ fbCompositeSolid_nx0565neon (
 	uint32_t     kernelCount, copyCount;
 	uint8_t      kernelOffset, copyOffset;
 
-	_pixman_image_get_solid(pSrc, src, pDst->bits.format);
+	src = _pixman_image_get_solid(pSrc, pDst->bits.format);
 
 	// bail out if fully transparent
 	srca = src >> 24;
diff --git a/pixman/pixman-arm-simd.c b/pixman/pixman-arm-simd.c
index 1b7c14d..cccb21f 100644
--- a/pixman/pixman-arm-simd.c
+++ b/pixman/pixman-arm-simd.c
@@ -217,7 +217,7 @@ fbCompositeSrc_8888x8x8888arm (
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
 
-    _pixman_image_get_solid (pMask, mask, pDst->bits.format);
+    mask = _pixman_image_get_solid (pMask, pDst->bits.format);
     mask = (mask) >> 24;
 
     while (height--)
@@ -321,8 +321,9 @@ fbCompositeSolidMask_nx8x8888arm (
     int		 dstStride, maskStride;
     uint16_t	 w;
 
-    _pixman_image_get_solid(pSrc, src, pDst->bits.format);
+    src = _pixman_image_get_solid(pSrc, pDst->bits.format);
 
+    // bail out if fully transparent
     srca = src >> 24;
     if (src == 0)
 	return;
commit e8addcc69a36375d1330749e00854d9651c8f8d0
Author: Søren Sandmann Pedersen <sandmann at redhat.com>
Date:   Fri Jun 26 18:58:23 2009 -0400

    Change checks for srca == 0 to src == 0
    
    It is not generally correct to bail out just because the source alpha
    is 0. The color channels still mig not be and in that case the correct
    result is:
    
           s + (1 - srca) * d = s + d
    
    which is not generally 0.

diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
index b4f9a27..b88ede8 100644
--- a/pixman/pixman-arm-neon.c
+++ b/pixman/pixman-arm-neon.c
@@ -1736,7 +1736,7 @@ fbCompositeSolidMask_nx8x0565neon (
 
 	// bail out if fully transparent or degenerate
 	srca = src >> 24;
-	if(srca == 0)
+	if(src == 0)
 		return;
 	if(width == 0 || height == 0)
 		return;
@@ -1877,7 +1877,7 @@ fbCompositeSolid_nx0565neon (
 
 	// bail out if fully transparent
 	srca = src >> 24;
-	if(srca == 0)
+	if(src == 0)
 		return;
 	if(width == 0 || height == 0)
 		return;


More information about the xorg-commit mailing list