.gitignore | 13 COPYING | 1 ChangeLog | 2475 ++++++++ RELEASING | 30 TODO | 5 autogen.sh | 2 configure.ac | 187 debian/changelog | 26 debian/control | 20 debian/libpixman-1-0.symbols | 5 debian/patches/pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch | 52 debian/patches/series | 1 debian/rules | 14 pixman/Makefile.am | 29 pixman/pixman-access.c | 206 pixman/pixman-arm-common.h | 273 pixman/pixman-arm-neon-asm.S | 1713 +++++ pixman/pixman-arm-neon-asm.h | 906 +++ pixman/pixman-arm-neon.c | 2892 ---------- pixman/pixman-arm-simd-asm.S | 330 + pixman/pixman-arm-simd.c | 225 pixman/pixman-bits-image.c | 413 + pixman/pixman-compiler.h | 60 pixman/pixman-conical-gradient.c | 2 pixman/pixman-cpu.c | 14 pixman/pixman-edge-imp.h | 20 pixman/pixman-edge.c | 5 pixman/pixman-fast-path.c | 1004 ++- pixman/pixman-general.c | 52 pixman/pixman-image.c | 306 - pixman/pixman-implementation.c | 55 pixman/pixman-mmx.c | 290 - pixman/pixman-private.h | 277 pixman/pixman-region.c | 334 - pixman/pixman-solid-fill.c | 35 pixman/pixman-sse2.c | 710 +- pixman/pixman-trap.c | 14 pixman/pixman-utils.c | 620 -- pixman/pixman-vmx.c | 7 pixman/pixman-x64-mmx-emulation.h | 8 pixman/pixman.c | 1012 ++- pixman/pixman.h | 81 pixman/solaris-hwcap.mapfile | 36 test/Makefile.am | 52 test/a1-trap-test.c | 50 test/alpha-test.c | 12 test/alphamap.c | 49 test/blitters-test.c | 315 - test/clip-in.c | 2 test/clip-test.c | 4 test/composite-test.c | 7 test/composite.c | 901 +++ test/convolution-test.c | 2 test/fetch-test.c | 104 test/gradient-test.c | 10 test/gtk-utils.c | 113 test/gtk-utils.h | 13 test/region-test.c | 49 test/scaling-test.c | 207 test/screen-test.c | 2 test/trap-test.c | 2 test/utils.c | 289 test/utils.h | 47 test/window-test.c | 6 64 files changed, 11469 insertions(+), 5527 deletions(-)
New commits: commit c6afb1f264646d461476aa9618191ce16dd178a1 Author: Julien Cristau <jcris...@debian.org> Date: Sat May 8 17:23:17 2010 +0200 add bug closer diff --git a/debian/changelog b/debian/changelog index 7e761f8..b485a06 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,7 +3,7 @@ pixman (0.18.0-1) UNRELEASED; urgency=low * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no good reason. Thanks, Colin Watson! * Remove myself from Uploaders - * New upstream release. + * New upstream release (closes: #579014). * Update symbols file for new API, bump shlibs. * Drop pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch, obsolete. commit 92ac0adbbf24a9a668e81104734f0b1e526b69e5 Author: Julien Cristau <jcris...@debian.org> Date: Sat May 8 17:19:53 2010 +0200 Drop pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch, obsolete. diff --git a/debian/changelog b/debian/changelog index 624a59c..7e761f8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ pixman (0.18.0-1) UNRELEASED; urgency=low * Remove myself from Uploaders * New upstream release. * Update symbols file for new API, bump shlibs. + * Drop pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch, obsolete. -- Julien Cristau <jcris...@debian.org> Sat, 08 May 2010 17:06:36 +0200 diff --git a/debian/patches/pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch b/debian/patches/pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch deleted file mode 100644 index a060561..0000000 --- a/debian/patches/pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 2beb82c292725ad500db9d564ca73dd6c2bce463 Mon Sep 17 00:00:00 2001 -From: Julien Cristau <jcris...@debian.org> -Date: Sun, 23 Aug 2009 12:31:21 +0200 -Subject: [PATCH] pixman/arm: don't use env vars to get hwcap/platform - ---- - pixman/pixman-cpu.c | 6 ++++++ - 1 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/pixman/pixman-cpu.c b/pixman/pixman-cpu.c -index a2a7b8a..af16715 100644 ---- a/pixman/pixman-cpu.c -+++ b/pixman/pixman-cpu.c -@@ -253,8 +253,10 @@ pixman_arm_read_auxv () - if (aux.a_type == AT_HWCAP) - { - uint32_t hwcap = aux.a_un.a_val; -+#if 0 - if (getenv ("ARM_FORCE_HWCAP")) - hwcap = strtoul (getenv ("ARM_FORCE_HWCAP"), NULL, 0); -+#endif - /* hardcode these values to avoid depending on specific - * versions of the hwcap header, e.g. HWCAP_NEON - */ -@@ -266,8 +268,10 @@ pixman_arm_read_auxv () - else if (aux.a_type == AT_PLATFORM) - { - const char *plat = (const char*) aux.a_un.a_val; -+#if 0 - if (getenv ("ARM_FORCE_PLATFORM")) - plat = getenv ("ARM_FORCE_PLATFORM"); -+#endif - if (strncmp (plat, "v7l", 3) == 0) - { - arm_has_v7 = TRUE; -@@ -281,11 +285,13 @@ pixman_arm_read_auxv () - } - close (fd); - -+#if 0 - /* if we don't have 2.6.29, we have to do this hack; set - * the env var to trust HWCAP. - */ - if (!getenv ("ARM_TRUST_HWCAP") && arm_has_v7) - arm_has_neon = TRUE; -+#endif - } - - arm_tests_initialized = TRUE; --- -1.6.3.3 - diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 21a8c56..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -pixman-arm-don-t-use-env-vars-to-get-hwcap-platform.patch commit b24ef53fa7dff1b90b7e6f3ecc2e7bc6bbf2edce Author: Julien Cristau <jcris...@debian.org> Date: Sat May 8 17:18:00 2010 +0200 rules: use find .. -delete instead of rm $(find ..) diff --git a/debian/rules b/debian/rules index be44b16..8fa2158 100755 --- a/debian/rules +++ b/debian/rules @@ -62,7 +62,7 @@ clean: unpatch rm -f conftest* */conftest* rm -rf autom4te.cache */autom4te.cache rm -rf build - rm -f $$(find -name Makefile.in) + find -name Makefile.in -delete rm -f compile config.guess config.sub configure depcomp install-sh rm -f ltmain.sh missing INSTALL aclocal.m4 config.h.in commit df082450b1c8b5de661ceac0b4e4badf21ab6fb1 Author: Julien Cristau <jcris...@debian.org> Date: Sat May 8 17:17:27 2010 +0200 Update symbols file for new API, bump shlibs. diff --git a/debian/changelog b/debian/changelog index 4843a7e..624a59c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,7 @@ pixman (0.18.0-1) UNRELEASED; urgency=low good reason. Thanks, Colin Watson! * Remove myself from Uploaders * New upstream release. + * Update symbols file for new API, bump shlibs. -- Julien Cristau <jcris...@debian.org> Sat, 08 May 2010 17:06:36 +0200 diff --git a/debian/libpixman-1-0.symbols b/debian/libpixman-1-0.symbols index db16c97..fb93e59 100644 --- a/debian/libpixman-1-0.symbols +++ b/debian/libpixman-1-0.symbols @@ -21,14 +21,17 @@ libpixman-1.so.0 libpixman-1-0 #MINVER# pixman_f_transform_transl...@base 0.13.2 pixman_f...@base 0 pixman_image_compos...@base 0.15.14 + pixman_image_composit...@base 0.18.0 pixman_image_create_b...@base 0.15.12 pixman_image_create_conical_gradi...@base 0 pixman_image_create_linear_gradi...@base 0 pixman_image_create_radial_gradi...@base 0 pixman_image_create_solid_f...@base 0 + pixman_image_fill_bo...@base 0.18.0 pixman_image_fill_rectang...@base 0.15.14 pixman_image_get_d...@base 0 pixman_image_get_de...@base 0 + pixman_image_get_destroy_d...@base 0.18.0 pixman_image_get_hei...@base 0 pixman_image_get_str...@base 0 pixman_image_get_wi...@base 0 @@ -56,6 +59,7 @@ libpixman-1.so.0 libpixman-1-0 #MINVER# pixman_region32_exte...@base 0.11.2 pixman_region32_f...@base 0.11.2 pixman_region32_i...@base 0.11.2 + pixman_region32_init_from_im...@base 0.18.0 pixman_region32_init_r...@base 0.11.2 pixman_region32_init_re...@base 0.11.2 pixman_region32_init_with_exte...@base 0.11.2 @@ -77,6 +81,7 @@ libpixman-1.so.0 libpixman-1-0 #MINVER# pixman_region_exte...@base 0 pixman_region_f...@base 0 pixman_region_i...@base 0 + pixman_region_init_from_im...@base 0.18.0 pixman_region_init_r...@base 0 pixman_region_init_re...@base 0 pixman_region_init_with_exte...@base 0 diff --git a/debian/rules b/debian/rules index 8319e0e..be44b16 100755 --- a/debian/rules +++ b/debian/rules @@ -3,7 +3,7 @@ include /usr/share/quilt/quilt.make PACKAGE = libpixman-1-0 -SHLIBS_VERSION = 0.15.16 +SHLIBS_VERSION = 0.18.0 CFLAGS = -Wall -g ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) commit a2009cec772c610f7d11c566912da6360b173f3d Author: Julien Cristau <jcris...@debian.org> Date: Sat May 8 17:06:51 2010 +0200 Bump changelogs diff --git a/ChangeLog b/ChangeLog index 601195b..fb006a1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,1208 @@ -commit 92865d4decd4607086c22187b8892af9c74fe2f0 +commit e9dc568d6f585a153c47e970168a9c71d3e45fde +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Apr 1 05:23:31 2010 -0400 + + Pre-release version bump to 0.18.0 + +commit efd41c62875d97c5127233cb6a4c353b4d495531 +Author: Matthias Hopf <mh...@suse.de> +Date: Wed Mar 24 18:54:29 2010 +0100 + + Revert "Improve PIXREGION_NIL to return true on degenerated regions." + + This reverts commit ebba1493136a5a0dd7667073165b2115de203eda. + Scheduled for re-discussion after stable 0.18 has been released. + +commit ebba1493136a5a0dd7667073165b2115de203eda +Author: Matthias Hopf <mh...@suse.de> +Date: Wed Mar 24 12:00:21 2010 +0100 + + Improve PIXREGION_NIL to return true on degenerated regions. + + Fixes Novell bug 568811. + +commit c0f8d417b512b7d526fb6127954a50d14214f420 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Mar 23 17:25:54 2010 -0400 + + Post-release version bump to 0.17.15 + +commit b35f0b0158cd7aac388ba4c72c6c8aada77d2e22 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Mar 23 16:52:02 2010 -0400 + + Pre-release version bump to 0.17.14 + +commit 27a9f0468bdfa257e70270bf9addd5ad064f918b +Merge: 69f1ec9 3ef2033 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Mar 23 11:00:04 2010 -0400 + + Merge remote branch 'ssvb/arm-fixes' + +commit 3ef203331f124bf137c6e0c8d5516b1209c92dd9 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Mon Mar 22 21:56:17 2010 +0200 + + ARM: SIMD optimizations moved to a separate .S file + + This should be the last step in providing full armv4t compatibility + with CPU features runtime autodetection in pixman. + +commit 0a0591c2f7abde8880f4aebd510c27517a414450 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Mon Mar 22 19:51:00 2010 +0200 + + ARM: SIMD optimizations updated to use common assembly calling conventions + +commit c1e8d4533aea3aa10c49465cf5e9a44d946f70bb +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Mon Mar 22 18:51:54 2010 +0200 + + ARM: Helper ARM NEON assembly binding macros moved into a separate header + + This is needed for future reuse of the same macros for the other + ARM assembly optimizations (armv4t, armv6) + +commit 5791026e45f79d8f5168e302a498455870363ac6 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Sun Dec 27 00:27:53 2009 +0200 + + ARM: Workaround for a NEON bug in assembler from binutils 2.18 + + The problem was reported as bug 25534 against pixman in + freedesktop.org bugzila. Link to a patch for binutils: + http://sourceware.org/ml/binutils/2008-03/msg00260.html + + For pixman the impact is a build failure when using + binutils 2.18. Versions 2.19 and higer are fine. Still + some distros may be using older versions of binutils and + this is causing problems. + + This patch workarounds the problem by replacing a problematic + "vmov a, b" instruction with equivalent "vorr a, b, b". Actually + they even map to the same instruction opcode in the generated + code, so the resulting binary is identical with and without patch. + +commit 68d8d83223b5a35e25d379c2ee9e2e3a1d242323 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Mon Mar 22 11:54:51 2010 +0200 + + ARM: Use '.object_arch' directive in NEON assembly file + + This can be used to override the architecture recorded in the EABI object + attribute section. We set a minimum arch to 'armv4'. Binutils documentation + recommends to use this directive with the code performing runtime detection + of CPU features. + + Additionally NEON/VFP EABI attributes are suppressed. And the instruction + set to use is explicitly set to '.arm'. + + Configure test for NEON support is also updated to include a bunch of + these new directives (if any of these is unsupported by the assembler, + it is better to fail configure test than to fail library build). + + All these changes are required to fix SIGILL problem on armv4t, reported in + http://lists.freedesktop.org/archives/pixman/2010-March/000123.html + +commit 69f1ec9a7827aeb522fcae99846237ef0f896e7b +Author: Jon TURNEY <jon.tur...@dronecode.org.uk> +Date: Wed Mar 17 21:07:06 2010 +0000 + + Avoid a potential division-by-zero exeception in window-test + + Avoid a division-by-zero exception if the first number returned by + rand() is a multiple of 500, causing us to create a zero width pixmap, + and then attempt to use get_rand(0) when generating a random stride... + + Fixes https://bugs.freedesktop.org/attachment.cgi?id=34162 + +commit 50713d9d0d9241597724551315f05d958ce7a283 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Mar 17 15:12:06 2010 -0400 + + Post-release version bump to 0.17.13 + +commit fb68d6c14dd76121af009213df46e37ee17e38d7 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Mar 17 13:46:44 2010 -0400 + + Pre-release version bump to 0.17.12 + +commit 265ea1fb4d05a920323f23a02f9dc379312bbdae +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Mar 17 10:50:42 2010 -0400 + + Specialize the fast_composite_scaled_nearest_* scalers to positive x units + + This avoids a test in the inner loop, which improves performance + especially for tiled sources. + + On x86-32, I get these results: + + Before: + op=1, src_fmt=20028888, dst_fmt=20028888, speed=306.96 MPix/s (73.18 FPS) + op=1, src_fmt=20028888, dst_fmt=10020565, speed=102.67 MPix/s (24.48 FPS) + op=1, src_fmt=10020565, dst_fmt=10020565, speed=324.85 MPix/s (77.45 FPS) + + After: + op=1, src_fmt=20028888, dst_fmt=20028888, speed=332.19 MPix/s (79.20 FPS) + op=1, src_fmt=20028888, dst_fmt=10020565, speed=110.41 MPix/s (26.32 FPS) + op=1, src_fmt=10020565, dst_fmt=10020565, speed=363.28 MPix/s (86.61 FPS) + +commit 9cd1051523493e0926b146f05cdde34158391602 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Mar 17 10:35:34 2010 -0400 + + Add a FAST_PATH_X_UNIT_POSITIVE flag + + This is the common case for a lot of transformed images. If the unit + were negative, the transformation would be a reflection which is + fairly rare. + +commit a5b51bb03c5c1258d7558efa13eca6c570e34ce6 +Author: Alexander Larsson <al...@redhat.com> +Date: Wed Mar 17 11:58:05 2010 +0100 + + Use the right format for the OVER_8888_565 fast path + +commit 3b92b711d031a7752e06d0a5f688f4c54f50a1e6 +Author: Alexander Larsson <al...@redhat.com> +Date: Fri Mar 12 15:45:04 2010 +0100 + + Add specialized fast nearest scalers + + This is a macroized version of SRC/OVER repeat normal/unneeded nearest + neighbour scaling instantiated for some common 8888 and 565 formats. + + Based on work by Siarhei Siamashka + +commit 5750408e48259f42373a5233231104d9bd3eb35a +Author: Alexander Larsson <al...@redhat.com> +Date: Fri Mar 12 15:41:01 2010 +0100 + + Add FAST_PATH_SAMPLES_COVER_CLIP and FAST_PATH_16BIT_SAFE + + FAST_PATH_SAMPLES_COVER_CLIP: + + This is set of the source sample grid, unrepeated but transformed + completely completely covers the clip destination. If this is set + you can use a simple scaled that doesn't have to care about the repeat + mode. + + FAST_PATH_16BIT_SAFE: + + This signifies two things: + 1) The size of the src/mask fits in a 16.16 fixed point, so something like: + + max_vx = src_image->bits.width << 16; + + Is allowed and is guaranteed to not overflow max_vx + + 2) When stepping the source space we're guaranteed to never overflow + a 16.16 bit fix point variable, even if we step one extra step + in the destination space. This means that a loop doing: + + x = vx >> 16; + vx += unit_x; d = src_row[x]; + + will never overflow vx causing x to be negative. + + And additionally, if you track vx like above and apply NORMAL repeat + after the vx addition with something like: + + while (vx >= max_vx) vx -= max_vx; + + This will never overflow the vx even on the final increment that + takes vx one past the end of where we will read, which makes the + repeat loop safe. + +commit cba6fbbddce5edfd8e28ef570c493b044761f870 +Author: Alexander Larsson <al...@redhat.com> +Date: Fri Mar 12 15:40:07 2010 +0100 + + Add FAST_PATH_NO_NONE_REPEAT flag + +commit 7ec023ede155b9dacf574c4323740ef981802aa9 +Author: Alexander Larsson <al...@redhat.com> +Date: Tue Mar 16 14:18:29 2010 +0100 + + Add CONVERT_8888_TO_8888 and CONVERT_0565_TO_0565 macros + + These are useful for macroization + +commit c903d03052e1c34478556964338959b34928a388 +Author: Alexander Larsson <al...@redhat.com> +Date: Fri Mar 12 16:23:42 2010 +0100 + + Add CONVERT_0565_TO_8888 macro + + This lets us simplify some fast paths since we get a consistent + naming that always has 8888 and gets some value for alpha. + +commit de27f45ddd46fc48ec9598f2f177155328d55580 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Mar 15 11:51:09 2010 -0400 + + Ensure that only the low 4 bit of 4 bit pixels are stored. + + In some cases we end up trying to use the STORE_4 macro with an 8 bit + values, which resulted in other pixels getting overwritten. Fix this + by always masking off the low 4 bits. + + This fixes blitters-test on big-endian machines. + +commit 6532f8488abffb89501cb76de7d80b8ab2d49aed +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Mar 16 08:17:10 2010 -0400 + + Fix contact address in configure.ac + +commit 7c9f121efe7ee6afafad8b294974f5498054559b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Mar 16 12:23:50 2010 -0400 + + Add PIXMAN_DEFINE_THREAD_LOCAL() and PIXMAN_GET_THREAD_LOCAL() macros + + These macros hide the various types of thread local support. On Linux + and Unix, they expand to just __thread. On Microsoft Visual C++, they + expand to __declspec(thread). + + On OS X and other systems that don't have __thread, they expand to a + complicated concoction that uses pthread_once() and + pthread_get/set_specific() to get thread local variables. + +commit 6b9c54820015f69e667ed54441e83042c9a84cc1 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Mar 16 11:01:08 2010 -0400 + + Add checks for various types of thread local storage. + + OS X does not support __thread, so we have to check for it before + using it. It does however support pthread_get/setspecific(), so if we + don't have __thread, check if those are available. + +commit 313353f1fb9d40d0c3aaf7cfb99ca978b29003a4 +Author: Alan Coopersmith <alan.coopersm...@sun.com> +Date: Mon Mar 15 15:20:05 2010 -0700 + + Add Sun cc to thread-local support checks in pixman-compiler.h + + Clears '#warning: "unknown compiler"' messages when building + + Signed-off-by: Alan Coopersmith <alan.coopersm...@sun.com> + +commit b67f784a5dc51f41e40bb1a165411f5259ea0ee4 +Author: Alan Coopersmith <alan.coopersm...@sun.com> +Date: Mon Mar 15 10:52:17 2010 -0700 + + Make .s target asm flag selection more portable + + The previous code worked in GNU make, but caused a syntax error in Solaris + make ( https://bugs.freedesktop.org/show_bug.cgi?id=27062 ) - this seems to + work in both, and should hopefully not cause syntax errors in any versions + of make not supporting the macro-substitution-in-macro-name feature, just + cause the macro to expand to nothing. + + Signed-off-by: Alan Coopersmith <alan.coopersm...@sun.com> + +commit 7a5dc747852d46fa382ef885bb6299723ef6ed00 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Mar 15 07:40:46 2010 -0400 + + Fix typo: WORDS_BIG_ENDIAN => WORDS_BIGENDIAN in pixman-edge.c + + Pointed out by Andreas Falkenhahn on the cairo mailing list. + +commit ff30a5cbb941a9559082c6a6052ef761c7de949c +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Wed Mar 3 13:24:13 2010 -0500 + + test: Add support for indexed formats to blitters-test + + These formats work fine, they just need to have a palette set. + +commit 2b5f7be6c05ce3643b7d29e7237f91bfaedd80e5 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Mar 1 10:32:39 2010 -0500 + + pixman.h: Only define stdint types when PIXMAN_DONT_DEFINE_STDINT is undefined + + In SPICE, with Microsoft Visual C++, pixman.h is included after + another file that defines these types, which causes warnings and + errors. + + This patch allows such code to just define PIXMAN_DONT_DEFINE_STDINT + to use its own version of those types. + +commit f4da05c9f988133079cac2b8d54589386f46398f +Merge: a12d868 f534509 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Mar 14 12:12:05 2010 -0400 + + Merge branch 'operator-table' + +commit a12d868df8b673df2b563f309563954e2b3f977d +Merge: 18f0de4 54e39e0 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Mar 14 12:12:00 2010 -0400 + + Merge branch 'fast-path-cache' + +commit f534509d007de40592dedc574e7eb78445453ec0 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sat Jan 30 11:37:25 2010 -0500 + + Change operator table to be an array of arrays of four bytes. + + This makes gcc generate slightly better code for optimize_operator. + +commit 94d75ebd2167b44c142a6202b2d7bbe238dfd830 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sat Sep 19 02:40:56 2009 -0400 + + Strength reduce certain conjoint/disjoint to their normal counterparts. + + This allows us to not test for them later on. + +commit 58be9c71d2b1d0ed9d8feed1db0581b250d0a7d2 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sat Sep 19 02:32:28 2009 -0400 + + Store the operator table more compactly. + + The four cases for each operator: + + none-are-opaque, src-is-opaque, dest-is-opaque, both-are-opaque + + are packed into one uint32_t per operator. The relevant strength + reduced operator can then be found by packing the source-is-opaque and + dest-is-opaque into two bits and shifting that number of bytes. + + Chris Wilson pointed out a bug in the original version of this commit: + dest_is_opaque and source_is_opaque were used as booleans, but their + actual values were the results of a logical AND with the + FAST_PATH_OPAQUE flag, so the shift value was wildly wrong. + + The only reason it actually passed the test suite (on x86) was that + the compiler computed the shift amount in the cl register, and the low + byte of FAST_PATH_OPAQUE happens to be 0, so no shifting actually took + place, and the original operator was returned. + +commit 7fe35f0e6b660f5667ff653f3b753bc3e5d07901 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Fri Sep 18 14:10:31 2009 -0400 + + Make the operator strength reduction constant time. + + By extending the operator information table to cover all operators we + can replace the loop with a table look-up. At the same time, base the + operator optimization on the computed flags rather than the ones in + the image struct. + + Finally, as an extra optimization, we no longer ignore the case where + there is a mask. Instead we consider the source opaque if both source + and mask are opaque, or if the source is opaque and the mask is + missing. + +commit 18f0de452dc7e12e4cb544d761a626d5c6031663 +Author: Loïc Minier <loic.min...@ubuntu.com> +Date: Tue Mar 9 20:57:34 2010 +0100 + + ARM: SIMD: Try without any CFLAGS before forcing -mcpu= + + http://bugs.launchpad.net/bugs/535183 + +commit 933540861383da27402680593edefe8d61e6fb02 +Author: Egor Starkov <starkov.e...@gmail.com> +Date: Fri Mar 12 09:47:59 2010 -0500 + + Eliminate trailing comma in enum + + https://bugs.freedesktop.org/show_bug.cgi?id=27050 + + Pixman is not compiling with c++ compiler. During compilation it gives + the following error: + + /usr/include/pixman-1/pixman.h:335: error: comma at end of enumerator list + + Signed-off-by: Søren Sandmann Pedersen <s...@redhat.com> + +commit 54e39e00386fd2fd0eb76ead6396ddb93f1cf6c2 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Thu Sep 17 03:16:27 2009 -0400 + + Add a fast path cache + + This patch adds a cache in front of the fast path tables to reduce the + overhead of pixman_composite(). It is fixed size with move-to-front to + make sure the most popular fast paths are at the beginning of the cache. + + The cache is thread local to avoid locking. + +commit 84b009ae9f128c838d0e046e07947f8f9b2ce879 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Mar 5 20:40:41 2010 -0500 + + Post-release version bump to 0.17.11 + +commit 14fd287efb63c1f31d37053ebbbf500d0841c053 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Mar 5 20:06:08 2010 -0500 + + Pre-release version bump to 0.17.10 + +commit bd9934551f72f4993016cab1d7be3b1e545629b1 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Fri Feb 26 14:15:22 2010 -0500 + + Move __force_align_arg_pointer workaround before composite32() + + Since otherwise the workaround won't take effect when you call + pixman_image_composite32() directly. + +commit 14bb054d9695abb284e22a1de31337e0e41bb4e3 +Merge: 9a8e404 3db76b9 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Thu Mar 4 02:30:22 2010 -0500 + + Merge branch 'more-flags' + +commit 9a8e404d44b6ed9817d088966cec324a38e60897 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sat Feb 27 00:37:19 2010 -0500 + + test: Remove obsolete comment + +commit 182e4c2635fdb90c50b2e86253738b7e9c8ea282 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Wed Feb 24 04:14:45 2010 +0200 + + ARM: added 'neon_composite_over_reverse_n_8888' fast path + + This fast path function improves performance of 'poppler' cairo-perf trace. + + Benchmark from ARM Cortex-A8 @720MHz + + before: + + [ # ] backend test min(s) median(s) stddev. count + [ 0] image poppler 38.986 39.158 0.23% 6/6 + + after: + + [ # ] backend test min(s) median(s) stddev. count + [ 0] image poppler 24.981 25.136 0.28% 6/6 + +commit 072a7d31a8c872666787b69a6bd1b537565c5b96 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Wed Feb 24 02:26:57 2010 +0200 + + ARM: added 'neon_composite_src_x888_8888' fast path + + This fast path function improves performance of 'gnome-system-monitor' + cairo-perf trace. + + Benchmark from ARM Cortex-A8 @720MHz + + before: + + [ # ] backend test min(s) median(s) stddev. count + [ 0] image gnome-system-monitor 68.838 68.899 0.05% 5/6 + + after: + + [ # ] backend test min(s) median(s) stddev. count + [ 0] image gnome-system-monitor 53.336 53.384 0.09% 6/6 + +commit 2ed7c13922f83404bd9976c00d00738d0314693f +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Wed Feb 24 01:44:00 2010 +0200 + + ARM: added 'neon_composite_over_n_8888_8888_ca' fast path + + This fast path function improves performance of 'firefox-talos-gfx' + cairo-perf trace. + + Benchmark from ARM Cortex-A8 @720MHz + + before: + + [ # ] backend test min(s) median(s) stddev. count + [ 0] image firefox-talos-gfx 139.969 141.176 0.35% 6/6 + + after: + + [ # ] backend test min(s) median(s) stddev. count + [ 0] image firefox-talos-gfx 111.810 112.196 0.23% 6/6 + +commit 3db76b90049f23723a0519d572b9cda7c672f7d5 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sun Feb 14 19:18:35 2010 -0500 + + Restructure the flags computation in compute_image_info(). + + Restructure the code to use switches instead of ifs. This saves a few + comparisons and make the code slightly easier to follow. Also add some + comments. + +commit ac44db334066f68a837914a52d8d1368c85161ad +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sun Feb 14 19:14:44 2010 -0500 + + Move workaround code to pixman-image.c + + It is more natural to put it where all the other flags are computed. + +commit 35af45d5e3d3f893ccaa4ab2f947100eb9d840ac +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Feb 22 06:06:22 2010 -0500 + + Turn need_workaround into another flag. + + Instead of storing it as a boolean in the image struct, just use + another flag for it. + +commit f27f17ce22b6d0ac587600930c3657180066aac8 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Fri Sep 18 11:54:21 2009 -0400 + + Eliminate _pixman_image_is_opaque() in favor of a new FAST_PATH_IS_OPAQUE flag + + The new FAST_PATH_IS_OPAQUE flag is computed along with the others in + _pixman_image_validate(). + +commit 2a6ba862abd8859014d11a742247fa1f1225729b +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Fri Sep 18 04:17:57 2009 -0400 + + Eliminate _pixman_image_is_solid() + + Instead of calling this function in compute_image_info(), just do the + relevant checks when the extended format is computed. + + Move computation of solidness to validate + +commit 45006e5e648b85df65b922f893c9802c9ecce38e +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Fri Sep 18 04:06:30 2009 -0400 + + Move computation of extended format code to validate. + + Instead of computing the extended format on every composite, just + compute it once and store it in the image. + +commit fb0096a282c5b6e7ca9eb59a05d9ff738dccfd4b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Feb 22 05:16:27 2010 -0500 + + Add new FAST_PATH_SIMPLE_REPEAT flag + + This flags indicates that the image is untransformed an + repeating. Such images can be composited quickly by simply repeating + the composite operation. + +commit a7ad9c7c9dcb78e0c5ad00145b119dfe929eb307 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Fri Sep 18 03:54:36 2009 -0400 + + Compute the image flags at validation time instead of composite time + + Instead of computing all the image flags at composite time, we compute + them once in _pixman_image_validate() and cache them in the image. + +commit 7bc4cd42c3549f3f2354f50a7cf21ce9ccc8de7b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Feb 24 22:09:41 2010 -0500 + + RELEASING: Update the release instructions. + +commit 7392a350f2808146842be0924ca289c5df6c8922 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Feb 24 22:02:13 2010 -0500 + + Post-release version bump + +commit 4d1c216af3d6fc58829c2f5ea434e97ff8012493 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Feb 24 21:52:30 2010 -0500 + + Pre-release version bump + +commit e0f1d8410715083498a35284ea7e5bb71fabe090 +Merge: 16ef3ab 282f5cf +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Feb 24 21:01:29 2010 -0500 + + Merge branch 'trap-fixes' + +commit 16ef3ab230047221f813905d390bf762a3d8508a +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Feb 24 20:51:25 2010 -0500 + + Add a1-trap-test + + When a trapezoid sample point is exactly on a polygon edge, the rule + is that it is considered inside the trapezoid if the edge is a top or + left edge, but outside for bottom and right edges. + + This program tests that for a1 trapezoids. + +commit ad5cbba4c05f8521004c6aa1afd5aa74040afad0 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Feb 21 02:01:16 2010 -0500 + + Hide the C++ extern "C" declarations behind macros. + + That way they don't confuse the indenting algorithm in editors such as + Emacs. + +commit 14f201dc47ba76fcf677936f4f809249054fd6ad +Merge: 94f5859 6b2da68 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sat Feb 20 13:09:01 2010 -0500 + + Merge branch 'eliminate-composite' + + Conflicts: + pixman/pixman-sse2.c + +commit 94f585916a2385146ee5c803f7850b21149d728b +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Sat Feb 13 20:08:13 2010 -0500 + + Move all code to do debugging spew into pixman-private. + + Rather than the region code having its own little debug system, move + all of it into pixman-private where there is already return_if_fail() + macros etc. These macros are now enabled in development snapshots and + nowhere else. Previously they were never enabled unless you modified + the code. + + At the same time, remove all the asserts from the region code since we + can never turn them on anyway, and replace them with + critical_if_fail() macros that will print spew to standard error when + DEBUG is defined. + + Finally, also change the debugging spew in pixman-bits-image.c to use + return_val_if_fail() instead of its own fprintf(). + +commit f32d585069e77f09f84de42eda8ed8f6849aab57 +Author: Alexander Larsson <al...@redhat.com> +Date: Fri Feb 19 11:22:52 2010 +0100 + + Test pixman_region32_init_from_image in region-test + +commit 48ef4befd88e06e83a583a70f0172f1a08a65cda +Author: Alexander Larsson <al...@redhat.com> +Date: Mon Feb 15 09:40:50 2010 +0100 + + Add pixman_region{32}_init_from_image + + This creates a region from an image in PIXMAN_a1 format. + +commit 5dee05fcab16dbd3e2c5e4d85b9edf26cf523e3f +Author: Alexander Larsson <al...@redhat.com> +Date: Mon Feb 15 09:39:59 2010 +0100 + + Move SCREEN_SHIFT_LEFT/RIGHT to pixman-private.h + + This is needed for later use in other code. + +commit 61f4ed9c7a3ff6afbbb42d3f3b8dc3b9331bdcbd +Author: Makoto Kato <m_k...@ga2.so-net.ne.jp> +Date: Thu Feb 18 14:30:01 2010 +0900 + + Compile by USE_SSE2 only without USE_MMX + + Although we added MMX emulation for Microsoft Visual C++ compiler for x64, + USE_SSE2 still requires USE_MMX. So we remove dependency of USE_MMX + for Windows x64. + + Signed-off-by: Makoto Kato <m_k...@ga2.so-net.ne.jp> + +commit 6b2da683debd1b3fc1862752cb26e6799b644e05 +Author: Søren Sandmann Pedersen <sandm...@redhat.com> +Date: Wed Sep 16 07:29:08 2009 -0400 + -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1oalst-0003hh...@alioth.debian.org