From 73e0ebb91ab51b9ac7261b9bafb737cd4db7374e Mon Sep 17 00:00:00 2001 From: bjs Date: Wed, 15 Oct 2008 00:56:45 +0000 Subject: Update to pixman-0.12.0 from 0.11.10. In addition to many bug fixes, new features [since approximately 0.10.0] include: - New image formats with 10 bits per channel - SSE2 optimizations for many operations - Opacity based optimizations for operators - Altivec optimizations for many operations - A 32 bit region implementation --- x11/pixman/Makefile | 23 +++++------------------ x11/pixman/distinfo | 12 ++++++------ x11/pixman/patches/patch-af | 19 ------------------- x11/pixman/patches/patch-ag | 23 ----------------------- x11/pixman/patches/patch-ah | 32 ++++++++++++++++++++++++++++++++ x11/pixman/patches/patch-ai | 30 ++++++++++++++++++++++++++++++ 6 files changed, 73 insertions(+), 66 deletions(-) delete mode 100644 x11/pixman/patches/patch-af delete mode 100644 x11/pixman/patches/patch-ag create mode 100644 x11/pixman/patches/patch-ah create mode 100644 x11/pixman/patches/patch-ai diff --git a/x11/pixman/Makefile b/x11/pixman/Makefile index fd58f0c0498..202b3b2dd26 100644 --- a/x11/pixman/Makefile +++ b/x11/pixman/Makefile @@ -1,8 +1,7 @@ -# $NetBSD: Makefile,v 1.20 2008/09/16 21:22:34 bjs Exp $ +# $NetBSD: Makefile,v 1.21 2008/10/15 00:56:45 bjs Exp $ # -DISTNAME= pixman-0.11.10 -PKGREVISION= 1 +DISTNAME= pixman-0.12.0 CATEGORIES= x11 MASTER_SITES= ${MASTER_SITE_XORG:=lib/} EXTRACT_SUFX= .tar.bz2 @@ -15,7 +14,7 @@ PKG_DESTDIR_SUPPORT= user-destdir GNU_CONFIGURE= yes USE_LIBTOOL= yes -USE_TOOLS+= pkg-config perl diff +USE_TOOLS+= pkg-config perl ### ### XXX Quiet, please! ### @@ -34,24 +33,12 @@ PKGCONFIG_OVERRIDE+= pixman-1-uninstalled.pc.in ### tradition of portability, we'll opt to use libtool to export ### the desired symbols, hiding the rest. ### -### To regenerate the libtool symfile, invoke the 'gen-symfile' -### target, making sure to define PKG_DEVELOPER. This target -### requires nm, awk, and tee. The new symfile will be in -### ${WRKDIR}. -### +### Please, do not forget to ensure the currency of this file! + MAKE_ENV+= PIXMAN_SYMFILE=${PIXMAN_SYMFILE:Q} PIXMAN_SYMFILE= ${WRKDIR}/pixman.sym post-extract: ${CP} ${FILESDIR}/pixman.sym ${WRKDIR} -.if defined(NM) && defined(PKG_DEVELOPER) -.PHONY: gen-symfile -gen-symfile: build - ${NM} -DP ${WRKSRC}/pixman/.libs/libpixman-1.so | \ - ${AWK} '/^pixman/ { print $$1 }' | \ - ${TOOLS_PLATFORM.tee} > ${WRKDIR}/pixman.sym && \ - ${DIFF} ${FILESDIR}/pixman.sym ${WRKDIR}/pixman.sym -.endif - .include "../../mk/bsd.pkg.mk" diff --git a/x11/pixman/distinfo b/x11/pixman/distinfo index c073b9cdf91..39006b651b2 100644 --- a/x11/pixman/distinfo +++ b/x11/pixman/distinfo @@ -1,12 +1,12 @@ -$NetBSD: distinfo,v 1.20 2008/09/16 21:22:34 bjs Exp $ +$NetBSD: distinfo,v 1.21 2008/10/15 00:56:45 bjs Exp $ -SHA1 (pixman-0.11.10.tar.bz2) = d4468ac46056185b2d0a0fe94bc9a2e496d44365 -RMD160 (pixman-0.11.10.tar.bz2) = 8d7350e8d9e995a1f977e03e7a66cdd19e851cb0 -Size (pixman-0.11.10.tar.bz2) = 364132 bytes +SHA1 (pixman-0.12.0.tar.bz2) = 0c57c6c7e21e2545257068f52517c460e6e51ae4 +RMD160 (pixman-0.12.0.tar.bz2) = 7881189a1de21ec5d2e27936c65369f121dcb15f +Size (pixman-0.12.0.tar.bz2) = 364262 bytes SHA1 (patch-aa) = 5129f82ee9907ed179315a4790667f0b825175bb SHA1 (patch-ab) = e76a306cbf2975dec3020cd7a310941b3085782d SHA1 (patch-ac) = c798e52ecd8fc2a5788552df0a0842f524705126 SHA1 (patch-ad) = b2fa221652bc5f8bec000e071417b0180816a451 SHA1 (patch-ae) = 5690db2799e3750d54cf1cb20bd5734a245f8eb8 -SHA1 (patch-af) = cbd2be6b3f5ae398c38255b974542ab2e4546f52 -SHA1 (patch-ag) = 61b5714db4e849fa7d40279f606e86e261270975 +SHA1 (patch-ah) = 88a444f4ed0bc12387c22751b4cd4ef7cf5a5126 +SHA1 (patch-ai) = 5af5d1287b73ae35d6bc5a6adb5ae4709bf57e67 diff --git a/x11/pixman/patches/patch-af b/x11/pixman/patches/patch-af deleted file mode 100644 index 02c84e087fd..00000000000 --- a/x11/pixman/patches/patch-af +++ /dev/null @@ -1,19 +0,0 @@ -$NetBSD: patch-af,v 1.4 2008/09/16 21:22:34 bjs Exp $ - -git ref:00f3d6ef22b5a062323208fd540a17ca65dca42b (to vers 0.11.10) - -Fix bug in pixman_image_is_opaque(). - ---- pixman/pixman-image.c.orig 2008-06-13 15:51:00.000000000 -0400 -+++ pixman/pixman-image.c -@@ -818,6 +818,10 @@ pixman_image_is_opaque(pixman_image_t *i - - if (image->common.transform) - return FALSE; -+ -+ /* Gradients do not necessarily cover the entire compositing area */ -+ if (image->type == LINEAR || image->type == CONICAL || image->type == RADIAL) -+ return FALSE; - } - - return TRUE; diff --git a/x11/pixman/patches/patch-ag b/x11/pixman/patches/patch-ag deleted file mode 100644 index ef3e633e827..00000000000 --- a/x11/pixman/patches/patch-ag +++ /dev/null @@ -1,23 +0,0 @@ -$NetBSD: patch-ag,v 1.1 2008/09/16 21:22:34 bjs Exp $ - -Fix for bug 17477. - -over_2x128 was changing the alphaLo and alphaHi arguments, causing -stripes. - ---- pixman/pixman-sse2.c.orig 2008-09-03 19:29:40.000000000 -0400 -+++ pixman/pixman-sse2.c -@@ -244,9 +244,11 @@ invertColors_2x128 (__m128i dataLo, __m1 - static inline void - over_2x128 (__m128i* srcLo, __m128i* srcHi, __m128i* alphaLo, __m128i* alphaHi, __m128i* dstLo, __m128i* dstHi) - { -- negate_2x128 (*alphaLo, *alphaHi, alphaLo, alphaHi); -+ __m128i t1, t2; - -- pixMultiply_2x128 (dstLo, dstHi, alphaLo, alphaHi, dstLo, dstHi); -+ negate_2x128 (*alphaLo, *alphaHi, &t1, &t2); -+ -+ pixMultiply_2x128 (dstLo, dstHi, &t1, &t2, dstLo, dstHi); - - *dstLo = _mm_adds_epu8 (*srcLo, *dstLo); - *dstHi = _mm_adds_epu8 (*srcHi, *dstHi); diff --git a/x11/pixman/patches/patch-ah b/x11/pixman/patches/patch-ah new file mode 100644 index 00000000000..04974c67d18 --- /dev/null +++ b/x11/pixman/patches/patch-ah @@ -0,0 +1,32 @@ +$NetBSD: patch-ah,v 1.1 2008/10/15 00:56:45 bjs Exp $ + + +1c5de7b05831b3d66821707276b71974a232f5c7 + +Move _mm_empty() to correct place + +The "fbComposeSetupSSE2()" function is guarding most of its code +depending on the capabilities of the CPU, but unfortunately the call +to "_mm_empty()" is not part of this code path but executed +unconditionally. This results in a "illegal instruction" crash on +non-MMX / non-SSE capable CPUs caused by the the "emms" instruction +(embedded in "_mm_empty()"). + +Fix bug 17729. + +--- pixman/pixman-sse2.c.orig 2008-09-17 09:50:49.000000000 -0400 ++++ pixman/pixman-sse2.c +@@ -2357,11 +2357,11 @@ fbComposeSetupSSE2(void) + pixman_composeFunctions.combineC[PIXMAN_OP_ADD] = sse2CombineAddC; + + pixman_composeFunctions.combineMaskU = sse2CombineMaskU; ++ ++ _mm_empty(); + } + + initialized = TRUE; +- +- _mm_empty(); + } + + diff --git a/x11/pixman/patches/patch-ai b/x11/pixman/patches/patch-ai new file mode 100644 index 00000000000..3c34b80b566 --- /dev/null +++ b/x11/pixman/patches/patch-ai @@ -0,0 +1,30 @@ +$NetBSD: patch-ai,v 1.1 2008/10/15 00:56:45 bjs Exp $ + +69dadf231283fadcb117b4d9e799e8633a0e4dab + +force alignment of arg pointer in potential SSE users + +Fix for bug 17824 + +--- pixman/pixman-utils.c.orig 2008-09-09 08:28:23.000000000 -0400 ++++ pixman/pixman-utils.c +@@ -62,6 +62,9 @@ pixman_transform_point_3d (pixman_transf + return TRUE; + } + ++#if defined(USE_SSE2) && defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) ++__attribute__((__force_align_arg_pointer__)) ++#endif + PIXMAN_EXPORT pixman_bool_t + pixman_blt (uint32_t *src_bits, + uint32_t *dst_bits, +@@ -156,6 +159,9 @@ pixman_fill32 (uint32_t *bits, + } + } + ++#if defined(USE_SSE2) && defined(__GNUC__) && !defined(__x86_64__) && !defined(__amd64__) ++__attribute__((__force_align_arg_pointer__)) ++#endif + PIXMAN_EXPORT pixman_bool_t + pixman_fill (uint32_t *bits, + int stride, -- cgit v1.2.3