[oe-commits] Koen Kooi : pixman: update NEON patch to fix alpha issues with 32bpp framebuffers

GIT User account git at amethyst.openembedded.net
Fri Feb 6 08:39:01 UTC 2009


Module: openembedded.git
Branch: org.openembedded.dev
Commit: dd7c96e51a1953f389d47b3a1128ae1761bf627c
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=dd7c96e51a1953f389d47b3a1128ae1761bf627c

Author: Koen Kooi <koen at openembedded.org>
Date:   Fri Feb  6 09:38:25 2009 +0100

pixman: update NEON patch to fix alpha issues with 32bpp framebuffers

---

 packages/xorg-lib/pixman/pixman-0.13.2-neon1.patch |   54 ++++++++------------
 packages/xorg-lib/pixman_0.13.2.bb                 |    2 +-
 2 files changed, 23 insertions(+), 33 deletions(-)

diff --git a/packages/xorg-lib/pixman/pixman-0.13.2-neon1.patch b/packages/xorg-lib/pixman/pixman-0.13.2-neon1.patch
index 5c89721..b3bb762 100644
--- a/packages/xorg-lib/pixman/pixman-0.13.2-neon1.patch
+++ b/packages/xorg-lib/pixman/pixman-0.13.2-neon1.patch
@@ -110,10 +110,10 @@ index c4612ea..4c1ec6b 100644
  
 diff --git a/pixman/pixman-arm-neon.c b/pixman/pixman-arm-neon.c
 new file mode 100644
-index 0000000..f8a41a8
+index 0000000..10050e4
 --- /dev/null
 +++ b/pixman/pixman-arm-neon.c
-@@ -0,0 +1,1397 @@
+@@ -0,0 +1,1387 @@
 +/*
 + * Copyright © 2009 Mozilla Corporation
 + *
@@ -319,12 +319,10 @@ index 0000000..f8a41a8
 +                        "b 9f\n\t"
 +// LOOP
 +                        "2:\n\t"
-+                        "vld1.8  {d0}, [%[src]]\n\t"
-+                        "vld1.8  {d4}, [%[dst]]\n\t"
++                        "vld1.8  {d0}, [%[src]]!\n\t"
++                        "vld1.8  {d4}, [%[dst]]!\n\t"
 +                        "vst1.8  {d20}, [%[keep_dst]]\n\t"
-+                        "mov     %[keep_dst], %[dst]\n\t"
-+                        "add %[src], %[src], #8\n\t"
-+                        "add %[dst], %[dst], #8\n\t"
++                        "sub     %[keep_dst], %[dst], #8\n\t"
 +                        "subs %[w], %[w], #8\n\t"
 +                        "9:\n\t"
 +                        "vqadd.u8 d20, d0, d4\n\t"
@@ -468,12 +466,10 @@ index 0000000..f8a41a8
 +                        "b 9f\n\t"
 +// LOOP
 +                        "2:\n\t"
-+                        "vld4.8  {d0-d3}, [%[src]]\n\t"
-+                        "vld4.8  {d4-d7}, [%[dst]]\n\t"
++                        "vld4.8  {d0-d3}, [%[src]]!\n\t"
++                        "vld4.8  {d4-d7}, [%[dst]]!\n\t"
 +                        "vst4.8  {d20-d23}, [%[keep_dst]]\n\t"
-+                        "mov     %[keep_dst], %[dst]\n\t"
-+                        "add %[src], %[src], #8*4\n\t"
-+                        "add %[dst], %[dst], #8*4\n\t"
++                        "sub     %[keep_dst], %[dst], #8*4\n\t"
 +                        "subs %[w], %[w], #8\n\t"
 +                        "9:\n\t"
 +                        "vmvn.8  d31, d3\n\t"
@@ -746,12 +742,10 @@ index 0000000..f8a41a8
 +                        "b 9f\n\t"
 +// LOOP
 +                        "2:\n\t"
-+                        "vld4.8       {d0-d3}, [%[src]]\n\t"
-+                        "vld4.8       {d4-d7}, [%[dst]]\n\t"
++                        "vld4.8       {d0-d3}, [%[src]]!\n\t"
++                        "vld4.8       {d4-d7}, [%[dst]]!\n\t"
 +                        "vst4.8       {d20-d23}, [%[keep_dst]]\n\t"
-+                        "mov  %[keep_dst], %[dst]\n\t"
-+                        "add  %[src], %[src], #8*4\n\t"
-+                        "add  %[dst], %[dst], #8*4\n\t"
++                        "sub  %[keep_dst], %[dst], #8*4\n\t"
 +                        "subs  %[w], %[w], #8\n\t"
 +
 +                        "9:\n\t"
@@ -957,12 +951,10 @@ index 0000000..f8a41a8
 +// LOOP
 +                        "2:\n\t"
 +
-+                        "vld1.16      {q12}, [%[dst]]\n\t"
-+                        "vld1.8       {d31}, [%[mask]]\n\t"
++                        "vld1.16      {q12}, [%[dst]]!\n\t"
++                        "vld1.8       {d31}, [%[mask]]!\n\t"
 +                        "vst1.16      {q10}, [%[keep_dst]]\n\t"
-+                        "mov  %[keep_dst], %[dst]\n\t"
-+                        "add  %[mask], %[mask], #8\n\t"
-+                        "add  %[dst], %[dst], #8*2\n\t"
++                        "sub  %[keep_dst], %[dst], #8*2\n\t"
 +                        "subs  %[w], %[w], #8\n\t"
 +                        "9:\n\t"
 +// expand 0565 q12 to 8888 {d4-d7}
@@ -1294,12 +1286,10 @@ index 0000000..f8a41a8
 +                        "b 9f\n\t"
 +// LOOP
 +                        "2:\n\t" 
-+                        "vld4.8       {d4-d7}, [%[dst]]\n\t"
-+                        "vld1.8       {d31}, [%[mask]]\n\t"
++                        "vld4.8       {d4-d7}, [%[dst]]!\n\t"
++                        "vld1.8       {d31}, [%[mask]]!\n\t"
 +                        "vst4.8       {d20-d23}, [%[keep_dst]]\n\t"
-+                        "mov  %[keep_dst], %[dst]\n\t"
-+                        "add  %[mask], %[mask], #8\n\t"
-+                        "add  %[dst], %[dst], #8*4\n\t"
++                        "sub  %[keep_dst], %[dst], #8*4\n\t"
 +                        "subs  %[w], %[w], #8\n\t"
 +                        "9:\n\t"
 +
@@ -1371,7 +1361,7 @@ index 0000000..f8a41a8
 +                dval = vld1_u8((void*)dst);
 +
 +                temp = neon2mul(sval2,alpha);
-+                res = vqadd_u8(temp,neon2mul(dval,vtbl1_u8(vmvn_u8(sval2), alpha_selector)));
++                res = vqadd_u8(temp,neon2mul(dval,vtbl1_u8(vmvn_u8(temp), alpha_selector)));
 +
 +                vst1_u8((void*)dst,res);
 +
@@ -1387,7 +1377,7 @@ index 0000000..f8a41a8
 +                dval = vreinterpret_u8_u32(vld1_dup_u32((void*)dst));
 +
 +                temp = neon2mul(sval2,alpha);
-+                res = vqadd_u8(temp,neon2mul(dval,vtbl1_u8(vmvn_u8(sval2), alpha_selector)));
++                res = vqadd_u8(temp,neon2mul(dval,vtbl1_u8(vmvn_u8(temp), alpha_selector)));
 +
 +                vst1_lane_u32((void*)dst,vreinterpret_u32_u8(res),0);
 +            }
@@ -1513,12 +1503,12 @@ index 0000000..f8a41a8
 +
 diff --git a/pixman/pixman-arm-neon.h b/pixman/pixman-arm-neon.h
 new file mode 100644
-index 0000000..a473841
+index 0000000..bab4dee
 --- /dev/null
 +++ b/pixman/pixman-arm-neon.h
 @@ -0,0 +1,137 @@
 +/*
-+ * Copyright © 2008 Mozilla Corporation
++ * Copyright © 2009 Mozilla Corporation
 + *
 + * Permission to use, copy, modify, distribute, and sell this software and its
 + * documentation for any purpose is hereby granted without fee, provided that
@@ -1539,7 +1529,7 @@ index 0000000..a473841
 + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 + * SOFTWARE.
 + *
-+ * Author:  Jeff Muizelaar (jeff at infidigm.net)
++ * Author:  Ian Rickards (ian.rickards at arm.com)
 + *
 + */
 +
diff --git a/packages/xorg-lib/pixman_0.13.2.bb b/packages/xorg-lib/pixman_0.13.2.bb
index 5b304de..4b489f8 100644
--- a/packages/xorg-lib/pixman_0.13.2.bb
+++ b/packages/xorg-lib/pixman_0.13.2.bb
@@ -3,7 +3,7 @@ PRIORITY = "optional"
 DESCRIPTION = "Low-level pixel manipulation library."
 LICENSE = "X11"
 
-PR = "r1"
+PR = "r2"
 
 DEFAULT_PREFERENCE = "-1"
 





More information about the Openembedded-commits mailing list