pixman: Branch 'master' - 6 commits

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Thu Jul 17 11:15:32 PDT 2008


 Makefile.am          |    2 +-
 RELEASING            |   22 ++++++++++++----------
 configure.ac         |    2 +-
 pixman/combine.h.inc |   12 ++++++++++++
 pixman/pixman-pict.c |   27 ++++++++++++++-------------
 5 files changed, 40 insertions(+), 25 deletions(-)

New commits:
commit f729457da5de4a96ccd220ce71c583cdec971483
Author: Søren Sandmann Pedersen <sandmann at daimi.au.dk>
Date:   Thu Jul 17 14:13:34 2008 -0400

    Update RELEASING and release targets in Makefile.am

diff --git a/Makefile.am b/Makefile.am
index 77c9d61..2cf692d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -114,7 +114,7 @@ release-publish-message: $(sha1_tgz) $(md5_tgz) $(sha1_tbz2) $(md5_tbz2) ensure-
 	@echo ""
 	@echo "GPG signature:"
 	@echo "	$(RELEASE_CAIRO_URL)/$(gpg_file)"
-	@echo "	(signed by `getent passwd "$$USER" | cut -d: -f 5 | cut -d, -f 1`)"
+	@echo "	(signed by `git config --get user.name` <`git config --get user.email`>)"
 	@echo ""
 	@echo "Git:"
 	@echo "	git://git.freedesktop.org/git/pixman"
diff --git a/RELEASING b/RELEASING
index 5e7cec1..3ad0c2d 100644
--- a/RELEASING
+++ b/RELEASING
@@ -37,16 +37,7 @@ Here are the steps to follow to create a new pixman release:
 
 	make GPGKEY=<your gpg key id> release-publish
 
-7) Increment pixman_micro to the next larger (odd) number in
-   configure.ac. Commit this change, and push all commits created
-   during this process using
-
-	git push --tags
-
-   You must use "--tags" here; otherwise the new tag will not
-   be pushed out. This is because technobable.
-
-8) Run 
+6) Run 
 
 	make release-publish-message
 
@@ -58,3 +49,14 @@ Here are the steps to follow to create a new pixman release:
    and 
 
 	xorg-announce at lists.freedesktop.org
+
+
+7) Increment pixman_micro to the next larger (odd) number in
+   configure.ac. Commit this change, and push all commits created
+   during this process using
+
+	git push --tags
+
+   You must use "--tags" here; otherwise the new tag will not
+   be pushed out. This is because technobabble.
+
commit 72045eabd57cf793266424c39246b435b655b19f
Author: Søren Sandmann Pedersen <sandmann at daimi.au.dk>
Date:   Thu Jul 17 14:07:23 2008 -0400

    Post-release version-bump

diff --git a/configure.ac b/configure.ac
index 1cef2d7..05e66ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,7 +54,7 @@ AC_PREREQ([2.57])
 
 m4_define([pixman_major], 0)
 m4_define([pixman_minor], 11)
-m4_define([pixman_micro], 8)
+m4_define([pixman_micro], 9)
 
 m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro])
 
commit 2a14ecf1cd07e9a3f367ea66a7b10da929ccc06d
Author: Søren Sandmann Pedersen <sandmann at daimi.au.dk>
Date:   Thu Jul 17 13:38:57 2008 -0400

    Pre-release version bump

diff --git a/configure.ac b/configure.ac
index ea3e46a..1cef2d7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,7 +54,7 @@ AC_PREREQ([2.57])
 
 m4_define([pixman_major], 0)
 m4_define([pixman_minor], 11)
-m4_define([pixman_micro], 7)
+m4_define([pixman_micro], 8)
 
 m4_define([pixman_version],[pixman_major.pixman_minor.pixman_micro])
 
commit 411c0e990f7a96d4e15f2cbbe07d3b50b6a20f95
Author: Søren Sandmann Pedersen <sandmann at daimi.au.dk>
Date:   Thu Jul 17 13:37:56 2008 -0400

    Make a couple of functions static

diff --git a/pixman/pixman-pict.c b/pixman/pixman-pict.c
index 1a2cc14..513e27a 100644
--- a/pixman/pixman-pict.c
+++ b/pixman/pixman-pict.c
@@ -52,7 +52,7 @@ typedef void (* CompositeFunc) (pixman_op_t,
 				int16_t, int16_t, int16_t, int16_t, int16_t, int16_t,
 				uint16_t, uint16_t);
 
-inline uint32_t
+static inline uint32_t
 fbOver (uint32_t src, uint32_t dest)
 {
     // dest = (dest * (255 - alpha)) / 255 + src
@@ -62,7 +62,7 @@ fbOver (uint32_t src, uint32_t dest)
     return dest;
 }
 
-uint32_t
+static uint32_t
 fbOver24 (uint32_t x, uint32_t y)
 {
     uint16_t  a = ~x >> 24;
@@ -75,7 +75,7 @@ fbOver24 (uint32_t x, uint32_t y)
     return m|n|o;
 }
 
-uint32_t
+static uint32_t
 fbIn (uint32_t x, uint8_t y)
 {
     uint16_t  a = y;
@@ -1108,7 +1108,7 @@ pixman_image_composite_rect  (pixman_op_t                   op,
 			      int16_t                       dest_y,
 			      uint16_t                      width,
 			      uint16_t                      height);
-void
+static void
 fbCompositeSolidFill (pixman_op_t op,
 		      pixman_image_t * pSrc,
 		      pixman_image_t * pMask,
commit 96f57c07f24cd6d86c0aad624bd1a16b85f08e04
Author: Jeff Muizelaar <jmuizelaar at mozilla.com>
Date:   Thu Jul 17 13:32:45 2008 -0400

    Speed up fbOver
    
    Use FbByteMulAdd to operate on two components at a time and force the function
    to be inlined.

diff --git a/pixman/pixman-pict.c b/pixman/pixman-pict.c
index 817f13a..1a2cc14 100644
--- a/pixman/pixman-pict.c
+++ b/pixman/pixman-pict.c
@@ -34,6 +34,11 @@
 #include "pixman-mmx.h"
 #include "pixman-vmx.h"
 #include "pixman-sse.h"
+#include "pixman-combine32.h"
+
+#ifdef __GNUC__
+#   define inline __inline__ __attribute__ ((__always_inline__))
+#endif
 
 #define FbFullMask(n)   ((n) == 32 ? (uint32_t)-1 : ((((uint32_t) 1) << n) - 1))
 
@@ -47,18 +52,14 @@ typedef void (* CompositeFunc) (pixman_op_t,
 				int16_t, int16_t, int16_t, int16_t, int16_t, int16_t,
 				uint16_t, uint16_t);
 
-uint32_t
-fbOver (uint32_t x, uint32_t y)
+inline uint32_t
+fbOver (uint32_t src, uint32_t dest)
 {
-    uint16_t  a = ~x >> 24;
-    uint16_t  t;
-    uint32_t  m,n,o,p;
+    // dest = (dest * (255 - alpha)) / 255 + src
+    uint32_t a = ~src >> 24; // 255 - alpha == 255 + (~alpha + 1) == ~alpha
+    FbByteMulAdd(dest, a, src);
 
-    m = FbOverU(x,y,0,a,t);
-    n = FbOverU(x,y,8,a,t);
-    o = FbOverU(x,y,16,a,t);
-    p = FbOverU(x,y,24,a,t);
-    return m|n|o|p;
+    return dest;
 }
 
 uint32_t
commit d4855cd9d028c49c2a12f61c6227579fcb8af5b6
Author: Jeff Muizelaar <jmuizelaar at mozilla.com>
Date:   Thu Jul 17 13:32:08 2008 -0400

    Comment FbByteMulAdd

diff --git a/pixman/combine.h.inc b/pixman/combine.h.inc
index 7dd97ae..8c70cb7 100644
--- a/pixman/combine.h.inc
+++ b/pixman/combine.h.inc
@@ -57,19 +57,31 @@
   x_c = (x_c * a) / 255 + y
 */
 #define FbByteMulAdd(x, a, y) do {                                      \
+        /* multiply and divide: trunc((i + 128)*257/65536) */           \
         comp4_t t = ((x & RB_MASK) * a) + RB_ONE_HALF;                  \
         t = (t + ((t >> COMPONENT_SIZE) & RB_MASK)) >> COMPONENT_SIZE;  \
         t &= RB_MASK;                                                   \
+                                                                        \
+        /* add */                                                       \
         t += y & RB_MASK;                                               \
+                                                                        \
+        /* saturate */                                                  \
         t |= RB_MASK_PLUS_ONE - ((t >> COMPONENT_SIZE) & RB_MASK);      \
         t &= RB_MASK;                                                   \
                                                                         \
+        /* multiply and divide */                                       \
         x = (((x >> COMPONENT_SIZE) & RB_MASK) * a) + RB_ONE_HALF;      \
         x = (x + ((x >> COMPONENT_SIZE) & RB_MASK)) >> COMPONENT_SIZE;  \
         x &= RB_MASK;                                                   \
+                                                                        \
+        /* add */                                                       \
         x += (y >> COMPONENT_SIZE) & RB_MASK;                           \
+                                                                        \
+        /* saturate */                                                  \
         x |= RB_MASK_PLUS_ONE - ((x >> COMPONENT_SIZE) & RB_MASK);      \
         x &= RB_MASK;                                                   \
+                                                                        \
+        /* recombine */                                                 \
         x <<= COMPONENT_SIZE;                                           \
         x += t;                                                         \
     } while (0)


More information about the xorg-commit mailing list