ChangeLog | 949 ++++++++++ Makefile.am | 2 Makefile.win32 | 25 Makefile.win32.common | 54 configure.ac | 76 debian/changelog | 7 demos/Makefile.am | 8 pixman/Makefile.am | 75 pixman/Makefile.sources | 55 pixman/Makefile.win32 | 109 - pixman/pixman-access.c | 3110 ++++++---------------------------- pixman/pixman-arm-common.h | 2 pixman/pixman-arm-neon-asm-bilinear.S | 1 pixman/pixman-arm-neon-asm.S | 190 +- pixman/pixman-arm-neon.c | 4 pixman/pixman-arm-simd-asm.S | 1 pixman/pixman-arm-simd.c | 2 pixman/pixman-bits-image.c | 290 +-- pixman/pixman-combine.c.template | 7 pixman/pixman-cpu.c | 30 pixman/pixman-fast-path.c | 192 ++ pixman/pixman-fast-path.h | 1188 ------------ pixman/pixman-image.c | 152 + pixman/pixman-inlines.h | 1280 +++++++++++++ pixman/pixman-mmx.c | 246 +- pixman/pixman-noop.c | 2 pixman/pixman-private.h | 101 - pixman/pixman-radial-gradient.c | 44 pixman/pixman-region.c | 64 pixman/pixman-sse2.c | 430 +++- pixman/pixman-utils.c | 158 + pixman/pixman.c | 389 +--- test/Makefile.am | 49 test/Makefile.sources | 36 test/Makefile.win32 | 86 test/affine-test.c | 40 test/blitters-test.c | 6 test/composite.c | 1 test/fetch-test.c | 5 test/lowlevel-blt-bench.c | 8 test/pdf-op-test.c | 1 test/region-contains-test.c | 170 + test/scaling-helpers-test.c | 6 test/utils.c | 123 + test/utils.h | 24 45 files changed, 5084 insertions(+), 4714 deletions(-)
New commits: commit 40a04cb1b667494d55d12e2647b2f99cbed9fa4d Author: Julien Cristau <jcris...@debian.org> Date: Sat Oct 22 11:09:17 2011 +0200 Upload to experimental diff --git a/debian/changelog b/debian/changelog index 8c67100..af38044 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ -pixman (0.23.6-1) UNRELEASED; urgency=low +pixman (0.23.6-1) experimental; urgency=low + [ Rico Tzschichholz ] * New upstream release. - -- Rico Tzschichholz <ric...@ubuntu.com> Wed, 19 Oct 2011 17:25:30 +0200 + -- Julien Cristau <jcris...@debian.org> Sat, 22 Oct 2011 11:09:04 +0200 pixman (0.23.2-1) experimental; urgency=low commit bdfdaaff5dd42cc91b61928b0771481eab000923 Author: Rico Tzschichholz <ric...@t-online.de> Date: Wed Oct 19 17:44:08 2011 +0200 Bump changelogs. diff --git a/ChangeLog b/ChangeLog index e5bd9e2..6a10342 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,952 @@ +commit e20ac40bd30484f0f711b52d0c1993ef08760284 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Oct 11 06:00:51 2011 -0400 + + Pre-release version bump to 0.23.6 + +commit a43946a51fbbdc76be1af9bc25fe7c5c2a6314bb +Author: Taekyun Kim <tkq....@samsung.com> +Date: Thu Sep 22 18:42:38 2011 +0900 + + Simple repeat: Extend too short source scanlines into temporary buffer + + Too short scanlines can cause repeat handling overhead and optimized + pixman composite functions usually process a bunch of pixels in a + single loop iteration it might be beneficial to pre-extend source + scanlines. The temporary buffers will usually reside in cache, so + accessing them should be quite efficient. + +commit eaff774a3f8af6651a245711b9ab8af3211eeb10 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Mon Aug 29 21:44:36 2011 +0900 + + Simple repeat fast path + + We can implement simple repeat by stitching existing fast path + functions. First lookup COVER_CLIP function for given input and + then stitch horizontally using the function. + +commit a258e33fcb6cf08a2ef76e374cb92a12c9adb171 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Thu Sep 22 16:33:02 2011 +0900 + + Move _pixman_lookup_composite_function() to pixman-utils.c + +commit fc62785aabbe890b656c9cbaa57f2e65e74bbcc2 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Jun 27 21:17:04 2011 +0000 + + Add src, mask, and dest flags to the composite args struct. + + These flags are useful in the various compositing routines, and the + flags stored in the image structs are missing some bits of information + that can only be computed when pixman_image_composite() is called. + +commit fa6523d13ae9b7986bb890df5ad66e8599bc3ed8 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Thu Sep 22 16:26:55 2011 +0900 + + Add new fast path flag FAST_PATH_BITS_IMAGE + + This fast path flag indicate that type of the image is bits image. + +commit 7272e2fcd2ff8e546cef19929cd370ae2f946135 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Thu Sep 22 16:20:03 2011 +0900 + + init/fini functions for pixman_image_t + + pixman_image_t itself can be on stack or heap. So segregating + init/fini from create/unref can be useful when we want to use + pixman_image_t on stack or other memory. + +commit 4dcf1b0107334857e1f0bb203c34efed1146535c +Author: Taekyun Kim <tkq....@samsung.com> +Date: Wed Sep 7 23:00:29 2011 +0900 + + sse2: Bilinear scaled over_8888_8_8888 + +commit 81050f2784407b260a1897efa921631a19eeec6b +Author: Taekyun Kim <tkq....@samsung.com> +Date: Wed Sep 7 22:57:29 2011 +0900 + + sse2: Bilinear scaled over_8888_8888 + +commit d67c0b883daeeaacf3f21f1ddbdcf9ecf94fac43 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Wed Sep 7 22:51:46 2011 +0900 + + sse2: Macros for assembling bilinear interpolation code fractions + + Primitive bilinear interpolation code is reusable to implement other + bilinear functions. + + BILINEAR_DECLARE_VARIABLES + - Declare variables needed to interpolate src pixels. + + BILINEAR_INTERPOLATE_ONE_PIXEL + - Interpolate one pixel and advance to next pixel + + BILINEAR_SKIP_ONE_PIXEL + - Skip interpolation and just advance to next pixel + This is useful for skipping zero mask + +commit 741eb8462c3ff72cbf2d9acfeb1e97208a414fcd +Author: Matt Turner <matts...@gmail.com> +Date: Thu Oct 6 17:56:09 2011 -0400 + + Correct the minimum gcc version needed for iwmmxt + + Spotted by Søren Sandmann. + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 0a34277180d29f471a2554afc2e2b682fee33c79 +Author: Matt Turner <matts...@gmail.com> +Date: Wed Oct 5 22:54:36 2011 -0400 + + Make sure iwMMXt is only detected on ARM + + iwMMXt is incorrectly detected on x86 and amd64. This happens because + the test uses standard _mm_* intrinsic functions which it compiles with + -march=iwmmxt, but when the user has set CFLAGS=-march=k8 for instance, + no error is generated from -march=iwmmxt, even though it's not a valid + flag on x86/amd64. Passing CFLAGS=-march=native does not override the + -march=iwmmxt flag though, which is why it wasn't noticed before. + + So, just #error out in the test if the __arm__ preprocessor directive + isn't defined. + + Fixes https://bugs.gentoo.org/show_bug.cgi?id=385179 + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 879b7c21e45b092272e689e05dc867f6260e258f +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Sep 27 11:32:13 2011 -0400 + + Don't include stdint.h in scaling-helpers-test. + + Fixes bug 41257. + +commit 01c2dcbe6936a868651160d2617d783d5b8d3d7d +Author: Benjamin Otte <o...@redhat.com> +Date: Wed Sep 14 17:52:03 2011 +0200 + + build: replace @VAR@ with $(VAR) in makefiles + +commit 100f16eae94a54fbb9ee1f44fa3c34602ba25c4d +Author: Benjamin Otte <o...@redhat.com> +Date: Wed Sep 14 17:01:51 2011 +0200 + + tests: Add PNG_CFLAGS/LIBS to tests + + PNG flags were accidentally included by gdk-pixbuf. This has been fixed + recently, so we need to make sure to include it ourselves. + +commit d1313febbec2124ee175cd323a338caa3c1a8fc2 +Author: Matt Turner <matts...@gmail.com> +Date: Thu Sep 22 15:28:00 2011 -0400 + + mmx: optimize unaligned 64-bit ARM/iwmmxt loads + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 7ab94c5f99cc524ddfbbcedca4304ec7943f74e1 +Author: Matt Turner <matts...@gmail.com> +Date: Sun Jul 31 22:42:24 2011 -0400 + + mmx: compile on ARM for iwmmxt optimizations + + Check in configure for at least gcc-4.6, since gcc-4.7 (and hopefully + 4.6) will be the eariest version capable of compiling the _mm_* + intrinsics on ARM/iwmmxt. Even for suitable compile versions I use + _mm_srli_si64 which is known to cause unpatched compilers to fail. + + Select iwmmxt at runtime only after NEON, since we expect the NEON + optimizations to be more capable and faster than iwmmxt. + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit f66887d9eae9646c838d518020168b1403705b1e +Author: Matt Turner <matts...@gmail.com> +Date: Sun Sep 4 14:11:46 2011 -0400 + + mmx: prepare pixman-mmx.c to be compiled for ARM/iwmmxt + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 7c6d5d1999989187b60f1e0e82e55ed55238eb27 +Author: Matt Turner <matts...@gmail.com> +Date: Thu Sep 8 20:33:45 2011 +0200 + + mmx: fix unaligned accesses + + Simply return *p in the unaligned access functions, since alignment + constraints are very relaxed on x86 and this allows us to generate + identical code as before. + + Tested with the test suite, lowlevel-blit-test, and cairo-perf-trace on + ARM and Alpha with no unaligned accesses found. + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 5d98abb14ca9042af6d0ec7c14c8398cf4046b80 +Author: Matt Turner <matts...@gmail.com> +Date: Thu Sep 22 15:39:53 2011 -0400 + + mmx: wrap x86/MMX inline assembly in ifdef USE_X86_MMX + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 02c1f1a022e86ced69fc91376232d75d5d6583c5 +Author: Matt Turner <matts...@gmail.com> +Date: Sun Jul 31 20:20:12 2011 +0000 + + mmx: rename USE_MMX to USE_X86_MMX + + This will make upcoming ARM usage of pixman-mmx.c unambiguous. + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 57fd8c37aa3148b1d70bad65e1a49721e9a47d7e +Author: Matt Turner <matts...@gmail.com> +Date: Fri Sep 23 14:10:52 2011 -0400 + + mmx: convert while (w) to if (w) when possible + + gcc isn't able to see that w is no greater than 1, so it generates + unnecessary loop instructions with while (w). + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 38a7aae1d9c8e1e41de22f9c3846dfc975af6838 +Author: Matt Turner <matts...@gmail.com> +Date: Fri Sep 9 15:33:14 2011 +0200 + + mmx: fix formats in commented code + + b8r8g8 is apparently no longer supported sometime since this code was + commented. + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit b6b77488a0259da3662edf68568e78806ca97444 +Author: Matt Turner <matts...@gmail.com> +Date: Fri Sep 9 15:34:04 2011 +0200 + + lowlevel-blt: add over_x888_8_8888 + + Signed-off-by: Matt Turner <matts...@gmail.com> + +commit 9126f36b964c71b83c69235df4c3a46ab81ab5d5 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Sun May 22 22:51:00 2011 +0300 + + BILINEAR->NEAREST filter optimization for simple rotation and translation + + Simple rotation and translation are the additional cases when BILINEAR + filter can be safely reduced to NEAREST. + +commit ad5c6bbb36c1c5e72313f7c7bc7c6e6b7e79daba +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Sep 4 02:53:39 2011 -0400 + + Strength-reduce BILINEAR filter to NEAREST filter for identity transforms + + An image with a bilinear filter and an identity transform is + equivalent to one with a nearest filter, so there is no reason the + standard fast paths shouldn't be usable. + + But because a BILINEAR filter samples a 2x2 pixel block in the source + image, FAST_PATH_SAMPLES_COVER_CLIP can't be set in the case where the + source area is the entire image, because some compositing operations + might then read pixels outside the image. + + This patch fixes the problem by splitting the + FAST_PATH_SAMPLES_COVER_CLIP flag into two separate flags + FAST_PATH_SAMPLES_COVER_CLIP_NEAREST and + FAST_PATH_SAMPLES_COVER_CLIP_BILINEAR that indicate that the clip + covers the samples taking into account NEAREST/BILINEAR filters + respectively. + + All the existing compositing operations that require + FAST_PATH_SAMPLES_COVER_CLIP then have their flags modified to pick + either COVER_CLIP_NEAREST or COVER_CLIP_BILINEAR depending on which + filter they depend on. + + In compute_image_info() both COVER_CILP_NEAREST and + COVER_CLIP_BILINEAR can be set depending on how much room there is + around the clip rectangle. + + Finally, images with an identity transform and a bilinear filter get + FAST_PATH_NEAREST_FILTER set as well as FAST_PATH_BILINEAR_FILTER. + + Performance measurementas with render_bench against Xephyr: + + Before + + *** ROUND 1 *** + --------------------------------------------------------------- + Test: Test Xrender doing non-scaled Over blends + Time: 5.720 sec. + --------------------------------------------------------------- + Test: Test Xrender (offscreen) doing non-scaled Over blends + Time: 5.149 sec. + --------------------------------------------------------------- + Test: Test Imlib2 doing non-scaled Over blends + Time: 6.237 sec. + + After: + + *** ROUND 1 *** + --------------------------------------------------------------- + Test: Test Xrender doing non-scaled Over blends + Time: 4.947 sec. + --------------------------------------------------------------- + Test: Test Xrender (offscreen) doing non-scaled Over blends + Time: 4.487 sec. + --------------------------------------------------------------- + Test: Test Imlib2 doing non-scaled Over blends + Time: 6.235 sec. + +commit eb2e7ed81b324af730c1a7639c9ca9ed60152875 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Sep 5 14:43:25 2011 -0400 + + test: Occasionally use a BILINEAR filter in blitters-test + + To test that reductions of BILINEAR->NEAREST for identity + transformations happen correctly, occasionally use a bilinear filter + in blitters test. + +commit 2a9f88430e7088eccfbbbd6c6b4f4e534126b1e1 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Sun May 22 22:16:38 2011 +0300 + + test: better coverage for BILINEAR->NEAREST filter optimization + + The upcoming optimization which is going to be able to replace BILINEAR filter + with NEAREST where appropriate needs to analyze the transformation matrix + and not to make any mistakes. + + The changes to affine-test include: + 1. Higher chance of using the same scale factor for x and y axes. This can help + to stress some special cases (for example the case when both x and y scale + factors are integer). The same applies to x/y translation. + 2. Introduced a small chance for "corrupting" transformation matrix by flipping + random bits. This supposedly can help to identify the cases when some of the + fast paths or other code logic is wrongly activated due to insufficient checks. + +commit 054922e2fce1f8d9db4b9b756e54b0fa5655956d +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Sep 5 00:19:51 2011 -0400 + + Eliminate compute_sample_extents() function + + In analyze_extents(), instead of calling compute_sample_extents() call + compute_transformed_extents() and inline the remaining part of + compute_sample_extents(). The upcoming bilinear->nearest optimization + will do something different with these two pieces of code. + +commit 577b6c46fd39c43c2c328fed48854b50b9e85e5b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Sep 4 17:43:29 2011 -0400 + + Split computation of sample area into own function + + compute_sample_extents() have two parts: one that computes the + transformed extents, and one that checks whether the computed extents + fit within the 16.16 coordinate space. + + Split the first part into its own function + compute_transformed_extents(). + +commit 5064f1803136cbc28d1e9f636feb2ff8ccfbdded +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Sep 4 17:17:53 2011 -0400 + + Remove x and y coordinates from analyze_extents() and compute_sample_extents() + + These coordinates were only ever used for subtracting from the extents + box to put it into the coordinate space of the image, so we might as + well do this coordinate translation only once before entering the + functions. + +commit dbcb4af60d8c688eaaa027c3c5bce9527a410465 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Aug 16 06:13:59 2011 -0400 + + Use MAKE_ACCESSORS() to generate accessors for paletted formats + + Add support in convert_pixel_from_a8r8g8b8() and + convert_pixel_to_a8r8g8b8() for conversion to/from paletted formats, + then use MAKE_ACCESSORS() to generate accessors for the indexed + formats: c8, g8, g4, c4, g1 + +commit c82c2c38538f5c3f25cf81ad697040d2332d64de +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun May 30 12:36:58 2010 -0400 + + Use MAKE_ACCESSORS() to generate accessors for the a1 format. + + Add FETCH_1 and STORE_1 macros and use them to add support for 1bpp + pixels to fetch_and_convert_pixel() and convert_and_store_pixel(), + then use MAKE_ACCESSORS() to generate the accessors for the a1 + format. (Not the g1 format as it is indexed). + +commit 2114dd8aa1f292541e55b6b84152732b37c1c1eb +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Aug 16 14:38:44 2011 -0400 + + Use MAKE_ACCESSORS() to generate accessors for 24bpp formats + + Add FETCH_24 and STORE_24 macros and use them to add support for 24bpp + pixels in fetch_and_convert_pixel() and + convert_and_store_pixel(). Then use MAKE_ACCESSORS() to generate + accessors for the 24 bpp formats: + + r8g8b8 + b8g8r8 + +commit f19f5daa1b111368bcf75435dce12483e08756f2 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Aug 18 05:09:07 2011 -0400 + + Use MAKE_ACCESSORS() to generate accessors for 4 bpp RGB formats + + Use FETCH_4 and STORE_4 macros to add support for 4bpp pixels to + fetch_and_convert_pixel() and convert_and_store_pixel(), then use + MAKE_ACCESSORS() to generate accessors for 4 bpp formats, except g4 and + c4 which are indexed: + + a4 + r1g2b1 + b1g2r1 + a1r1g1b1 + a1b1g1r1 + +commit af78fe24e41c30b5c9b3da4449813c75f760c845 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Aug 18 08:13:58 2011 -0400 + + Use MAKE_ACCESSORS() to generate accessors for 8bpp RGB formats + + Add support for 8 bpp formats to fetch_and_convert_pixel() and + convert_and_store_pixel(), then use MAKE_ACCESSORS() to generate the + accessors for all the 8 bpp formats, except g8 and c8, which are + indexed: + + a8 + r3g3b2 + b2g3r3 + a2r2g2b2 + a2b2g2r2 + x4a4 + +commit 5e1b9f897532ac0fa220880bf94dd660c837afe9 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Aug 18 08:13:44 2011 -0400 + + Use MAKE_ACCESSORS() to generate accessors for all the 16bpp formats + + Add support for 16bpp pixels to fetch_and_convert_pixel() and + convert_and_store_pixel(), then use MAKE_ACCESSORS() to generate + accessors for all the 16bpp formats: + + r5g6b5 + b5g6r5 + a1r5g5b5 + x1r5g5b5 + a1b5g5r5 + x1b5g5r5 + a4r4g4b4 + x4r4g4b4 + a4b4g4r4 + x4b4g4r4 + +commit a77597bcb8d10afd66980b8db8839049181b3743 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Aug 18 08:13:30 2011 -0400 + + Use MAKE_ACCESSORS() to generate all the 32 bit accessors + + Add support for 32bpp formats in fetch_and_convert_pixel() and + convert_and_store_pixel(), then use MAKE_ACCESSORS() to generate + accessors for all the 32 bpp formats: + + a8r8g8b8 + x8r8g8b8 + a8b8g8r8 + x8b8g8r8 + x14r6g6b6 + b8g8r8a8 + b8g8r8x8 + r8g8b8x8 + r8g8b8a8 + +commit 814af33df3e9892e4fc790c7ccd2702ce2b8ea97 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Aug 17 17:27:58 2011 -0400 + + Add initial version of the MAKE_ACCESSORS() macro + + This macro will eventually allow the fetchers and storers to be + generated automatically. For now, it's just a skeleton that doesn't + actually do anything. + +commit 5cae7a3fe6e148d2bb42b86efb7daf27dbf12ee0 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Aug 15 18:42:38 2011 -0400 + + Add general pixel converter + + This function can convert between any <= 32 bpp formats. Nothing uses + it yet. + +commit 22f54dde6bbf87251a0b4ad93bacbdaa7cb508d8 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Aug 15 10:22:05 2011 -0400 + + Add a generic unorm_to_unorm() conversion utility + + This function can convert between normalized numbers of different + depths. When converting to higher bit depths, it will replicate the + existing bits, when converting to lower bit depths, it will simply + truncate. + + This function replaces the expand16() function in pixman-utils.c + +commit d842669a467be490bb0a40000d0c0fccea0b1b85 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Sep 19 09:08:33 2011 -0400 + + A few tweaks to a comment in pixman-combine.c.template + + Include a link to + + http://marc.info/?l=xfree-render&m=99792000027857&w=2 + + where Keith explains how the disjoint/conjoint operators work. + +commit 3432e1a3444a55f71e294da7d350957a8e1232c3 +Author: Jon TURNEY <jon.tur...@dronecode.org.uk> +Date: Mon Sep 19 06:17:58 2011 -0400 + + Fix build on cygwin after commit efdf65c0c4fff551fb3cd9104deda9adb6261e22 + + libutils depends on pixman and so needs to preceed it in the link order + + Found by tinderbox, see [1] + + [1] http://tinderbox.freedesktop.org/builds/2011-09-15-0005/logs/pixman/#build + + Signed-off-by: Jon TURNEY <jon.turney at dronecode.org.uk> + +commit f9faf4df440366ed36b197dc09b1c2b51af3387b +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Sep 12 23:17:39 2011 -0400 + + test: Use smaller boxes in region_contains_test() + + The boxes used region_contains_test() sometimes overflow causing + + *** BUG *** + In pixman_region32_union_rect: Invalid rectangle passed + Set a breakpoint on '_pixman_log_error' to debug + + messages to be printed when pixman is compiled with DEBUG. Fix this by + dividing the x, y, w, h coordinates by 4 to prevent overflows. + +commit 9623b478f7e872af36ca77af5cc9e85f5ea132cf +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 21:33:05 2011 +0200 + + build-win32: Add 'check' target + + On win32 the tests are built but they are not run automatically by the + build system. + + A minimal 'check' target (depending on the tests being built) can + simply run them and log to the console their success/failure. + +commit 479d0944851fffda7ed860523feb388fec028545 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 13:52:53 2011 -0700 + + test: Do not include config.h unless HAVE_CONFIG_H is defined + + The win32 build system does not generate config.h and correctly runs + the compiler without defining HAVE_CONFIG_H. Nevertheless some files + include config.h without checking for its availability, breaking the + build from a clean directory: + + test\utils.h(2) : fatal error C1083: Cannot open include file: + 'config.h': No such file or directory + ... + +commit d46a9f3acef21b50639c64f190a0de7eca21747c +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 21:56:20 2011 +0200 + + build-win32: Add root Makefile.win32 + + Add Makefile.win32 to the pixman root. This makefile can recursively + run the other ones to compile the library or the test suite. + +commit a76b78c2daa61900572014070d3e856a460fd554 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 18:00:38 2011 +0200 + + build-win32: Share targets and variables across win32 makefiles + + The win32 build system repeatedly defines some basic variables + (notably program names and flags) and C sources compilation rules. + + They can be factored out to a common Makefile, to be included in every + other Makefile.win32. + +commit efdf65c0c4fff551fb3cd9104deda9adb6261e22 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 20:07:42 2011 +0200 + + build: Reuse test sources + + Makefile.am and Makefile.win32 should not duplicate content, as this + leads to breaking the build when they are not kept in sync. + + This can be avoided by listing sources, headers and common build + variables/rules in a Makefile.sources file. + + In order to further simplify the test makefiles, the utility functions + are now in a static library, which gets linked to all the tests and + benchmarks. + +commit a4f95d083b1aa644923d79e7b61df6c2eacca7c2 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 09:41:41 2011 -0700 + + build: Reuse sources and pixman-combine build rules + + Makefile.am and Makefile.win32 should not duplicate content, as this + leads to breaking the build when they are not kept in sync. + + This can be avoided by listing sources, headers and common build + variables/rules in a Makefile.sources file. + +commit 25bd96a3d0e935646d54c938bf065696d3a79e07 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sun Sep 4 20:07:57 2011 +0200 + + test: Fix compilation on win32 + + Adding scaling-helpers-test to the testsuite on win32 makes MSVC + complain about int64_t being used as an expression: + + scaling-helpers-test.c(27) : error C2275: 'int64_t' : illegal use of + this type as an expression + +commit 9882d832f60419094c0b379b88fa344490ea36eb +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Sun Sep 11 19:44:06 2011 -0400 + + Use pkg-config to determine the flags to use with libpng + + Previously we would unconditionally link with -lpng leading to build + failures on systems without libpng. + +commit 99a53667da3014a463b8a0e2b6c317efe0ebb220 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Feb 22 05:20:36 2011 -0500 + + test: New function to save a pixman image to .png + + When debugging it is often very useful to be able to save an image as + a png file. This commit adds a function "write_png()" that does that. + + If libpng is not available, then the function becomes a noop. + +commit 1e1ae0bf6e9dd2189133539b9c34a0f6826b7393 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Sep 9 23:59:20 2011 -0400 + + Post-release version bump to 0.23.5 + +commit f901e3b58b5d710cf136af89fc7395942bea9dfb +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Sep 9 23:51:11 2011 -0400 + + Pre-release version bump to 0.23.4 + +commit f5da52b6774bdefdfa88a28fdc3904797adb7e26 +Author: Chris Wilson <ch...@chris-wilson.co.uk> +Date: Mon Aug 22 15:29:25 2011 +0100 + + bits: optimise fetching width==1 repeats + + Profiling ign.com, 20% of the entire render time was absorbed in this + single operation: + + << /content //COLOR_ALPHA /width 480 /height 800 >> surface context + << /width 1 /height 677 /format //ARGB32 /source <|!!!@jGb!m5gD']#$jFHGWtZcK&2i)Up=!TuR9`G<8;ZQp[FQk;emL9ibhbEL&NTh-j63LhHo$E=mSG,0p71`cRJHcget4%<S\X+~> >> image pattern + //EXTEND_REPEAT set-extend + set-source + n 0 0 480 677 rectangle + fill+ + pop + + which is a simple composition of a single pixel wide image. Sadly this + is a workaround for lack of independent repeat-x/y handling in cairo and + pixman. Worse still is that the worst-case behaviour of the general repeat + path is for width 1 images... + + Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> + +commit 7ef44cae6ba6d1c2aae94cdc10851fa8d14821f7 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Fri Aug 19 21:20:08 2011 +0900 + + ARM: NEON better instruction scheduling of over_n_8888 + + New head, tail, tail/head blocks are added and instructions + are reordered to eliminate pipeline stalls + + Performance numbers of before/after + + - cortex a8 - + before : L1: 375.39 L2: 391.93 M:114.39 ( 40.99%) HT: 99.37 VT: 98.20 R: 90.24 RT: 32.87 ( 240Kops/s) + after : L1: 481.90 L2: 483.46 M:114.29 ( 40.69%) HT:106.91 VT: 93.38 R: 90.74 RT: 29.51 ( 236Kops/s) + + - cortex a9 - + before : L1: 324.50 L2: 332.79 M:155.55 ( 47.51%) HT:111.93 VT: 93.58 R: 71.92 RT: 28.21 ( 233Kops/s) + after : L1: 355.87 L2: 364.49 M:156.90 ( 47.59%) HT:111.52 VT: 91.76 R: 72.16 RT: 28.22 ( 234Kops/s) + +commit 6aa82b7a729ae7f0a26ae5a7c08ac74ebd5051cd +Author: Taekyun Kim <tkq....@samsung.com> +Date: Tue Aug 23 15:00:11 2011 +0900 + + ARM: NEON better instruction scheduling of over_n_8_8888 + + tail/head block is expanded and reordered to eliminate stalls + + Performance numbers of before/after + + - cortex a8 - + before : L1: 201.35 L2: 190.48 M:101.94 ( 54.85%) HT: 78.41 VT: 63.83 R: 58.25 RT: 21.74 ( 191Kops/s) + after : L1: 257.65 L2: 255.49 M:102.04 ( 55.33%) HT: 79.19 VT: 65.46 R: 59.23 RT: 21.12 ( 189Kops/s) + + - cortex a9 - + before : L1: 157.35 L2: 159.81 M:133.00 ( 60.94%) HT: 82.44 VT: 63.64 R: 51.66 RT: 19.15 ( 179Kops/s) + after : L1: 216.83 L2: 219.40 M:135.83 ( 61.80%) HT: 85.60 VT: 64.80 R: 52.23 RT: 19.16 ( 179Kops/s) + +commit 4ffa077487cb71ab17d12c37d298ca8a17e5bf35 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Sat Aug 13 16:18:17 2011 +0200 + + Workaround bug in llvm-gcc + + llvm-gcc (shipped in Apple XCode 4.1.1 as the default compiler or in + the 2.9 release of LLVM) performs an invalid optimization which + unifies the empty_region and the bad_region structures because they + have the same content. + + A bugreport has been filed against Apple Developers Tool for this + issue. This commit works around this bug by making one of the two + structures volatile, so that it cannot be merged. + + Fixes region-contains-test. + +commit a1ebff0dcbb52cd9eba2bf953b3ba251df6dd787 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Wed Jun 29 14:14:38 2011 +0200 + + win32: Build benchmarks + + Add the makefile rules needed to compile lowlevel-blt-bench on win32 + and fix the compilation errors. + +commit 2644d5a947ad82a82e914acf72bbb411097a4bae +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Mar 11 17:09:34 2011 -0500 + + Move bilinear interpolation to pixman-inlines.h + +commit 12ad42dd32240f08708eddb157a6b23904ae39a7 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Mar 11 16:09:21 2011 -0500 + + Use repeat() function from pixman-inlines.h in pixman-bits-image.c + + The repeat() functionality was duplicated between pixman-bits-image.c + and pixman-inlines.h + +commit 2f443466bb9b8901f658e30c606ddacc4fed8535 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Fri Mar 11 16:07:24 2011 -0500 + + Rename pixman-fast-path.h to pixman-inlines.h + + It is not really specific to pixman-fast-path.c. + +commit e58b208958900803f74d5e20c855bcb14752d976 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Thu Aug 11 06:30:43 2011 -0400 + + In pixman_image_create_bits() allow images larger than 2GB + + There is no reason for pixman_image_create_bits() to check that the + image size fits in int32_t. The correct check is against size_t since + that is what the argument to calloc() is. + + This patch fixes this by adding a new _pixman_multiply_overflows_size() + and using it in create_bits(). Also prepend an underscore to the names + of other similar functions since they are internal to pixman. + + V2: Use int, not ssize_t for the arguments in create_bits() since + width/height are still limited to 32 bits, as pointed out by Chris + Wilson. + +commit bdfb5944ffd460631c082e560c89a6c9830b37de +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Aug 8 10:18:07 2011 -0400 + + Don't include stdint.h in lowlevel-blt-bench.c + + Some systems don't have the file, and the types are already defined in + pixman.h. + + https://bugs.freedesktop.org//show_bug.cgi?id=37422 + +commit e5d85ce6629c84b9dad5a9c76bd9f895157c5a74 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Aug 2 03:03:48 2011 -0400 + + Use find_box_for_y() in pixman_region_contains_point() too + + The same binary search from the previous commit can be used in this + function too. + + V2: Remove check from loop that is not needed anymore, pointed out by + Andrea Canciani. + +commit 04bd4bdca622f060d7d39caddeaa495d3e6eb0cb +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Mon Aug 1 22:32:09 2011 -0400 + + Speed up pixman_region{,32}_contains_rectangle() + + When someone selects some text in Firefox under a non-composited X + server and initiates a drag, a shaped window is created with a complex + shape corresponding to the outline of the text. Then, on every mouse + movement pixman_region_contains_rectangle() is called many times on + that complicated region. And pixman_region_contains_rectangle() is + doing a linear scan through the rectangles in the region, although the + scan does exit when it finds the first box that can't possibly + intersect the passed-in rectangle. + + This patch changes the loop so that it uses a binary search to skip + boxes that don't overlap the current y position. The performance + improvement for the text dragging case is easily noticable. + + V2: Use the binary search for the "getting up to speed or skippping + remainder of band" as well. + +commit 795ec5af2fc86fb0ebeca9ce82913d6002267a12 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Tue Aug 2 01:32:15 2011 -0400 + + New test of pixman_region_contains_{rectangle,point} + + This test generates random regions and checks whether random boxes and + points are contained within them. The results are combined and a CRC32 + value is computed and compared to a known-correct one. + +commit 842591d9d12a24a9a06308ae03996153c5a99e64 +Author: Søren Sandmann Pedersen <s...@redhat.com> +Date: Wed Aug 3 18:38:20 2011 -0400 + + Fix lcg_rand_u32() to return 32 random bits. + + The lcg_rand() function only returns 15 random bits, so lcg_rand_u32() + would always have 0 in bit 31 and bit 15. Fix that by calling + lcg_rand() three times, to generate 15, 15, and 2 random bits + respectively. + + V2: Use the 10/11 most significant bits from the 3 lcg results and mix + them with the low ones from the adjacent one, as suggested by Andrea + Canciani. + +commit 12da53f81c4a507a963641796132bbafe0cd6224 +Author: Taekyun Kim <tkq....@samsung.com> +Date: Thu Aug 4 22:21:04 2011 +0900 + + ARM NEON: Standard fast path out_reverse_8_8888 + + This fast path is frequently used by cairo to do polygon rendering. + Existing NEON code generation framework is used. + +commit b395c3c5a28570ceac7cea55cb66a94096559897 +Author: Andrea Canciani <ranm...@gmail.com> +Date: Mon Jul 18 08:15:23 2011 +0200 + + radial: Fix typos and trailing whitespace + + Correct a typo reported by James Cloos and some reported by automatic + spellchecking. + + Remove trailing whitespace. + +commit b8d6babc91459a9f854695b56f0265298a3c6427 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Sat Jul 23 00:27:34 2011 +0300 + + ARM: workaround binutils bug #12931 (code sections alignment) + + More details in binutils bugtracker: + http://sourceware.org/bugzilla/show_bug.cgi?id=12931 + + The problem was encountered in the wild by Mozilla: + https://bugzilla.mozilla.org/show_bug.cgi?id=672787 + +commit 5754e5689d4cac8868d6416dffa4a7d0c2d15423 +Author: Siarhei Siamashka <siarhei.siamas...@nokia.com> +Date: Fri Jul 15 23:35:21 2011 +0300 + + C fast path for scaled src_x888_8888 with nearest filter + + The necessity is justified by a message in the pixman mailing list: + http://lists.freedesktop.org/archives/pixman/2011-July/001330.html -- 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/e1rhyik-00061x...@vasks.debian.org