pixman: Changes to 'debian-experimental'
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 <jcristau@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 <ricotz@ubuntu.com> Wed, 19 Oct 2011 17:25:30 +0200
+ -- Julien Cristau <jcristau@debian.org> Sat, 22 Oct 2011 11:09:04 +0200
pixman (0.23.2-1) experimental; urgency=low
commit bdfdaaff5dd42cc91b61928b0771481eab000923
Author: Rico Tzschichholz <ricotz@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 <ssp@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.kim@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.kim@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.kim@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 <ssp@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.kim@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.kim@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.kim@samsung.com>
+Date: Wed Sep 7 23:00:29 2011 +0900
+
+ sse2: Bilinear scaled over_8888_8_8888
+
+commit 81050f2784407b260a1897efa921631a19eeec6b
+Author: Taekyun Kim <tkq.kim@samsung.com>
+Date: Wed Sep 7 22:57:29 2011 +0900
+
+ sse2: Bilinear scaled over_8888_8888
+
+commit d67c0b883daeeaacf3f21f1ddbdcf9ecf94fac43
+Author: Taekyun Kim <tkq.kim@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 <mattst88@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 <mattst88@gmail.com>
+
+commit 0a34277180d29f471a2554afc2e2b682fee33c79
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit 879b7c21e45b092272e689e05dc867f6260e258f
+Author: Søren Sandmann Pedersen <ssp@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 <otte@redhat.com>
+Date: Wed Sep 14 17:52:03 2011 +0200
+
+ build: replace @VAR@ with $(VAR) in makefiles
+
+commit 100f16eae94a54fbb9ee1f44fa3c34602ba25c4d
+Author: Benjamin Otte <otte@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 <mattst88@gmail.com>
+Date: Thu Sep 22 15:28:00 2011 -0400
+
+ mmx: optimize unaligned 64-bit ARM/iwmmxt loads
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+
+commit 7ab94c5f99cc524ddfbbcedca4304ec7943f74e1
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit f66887d9eae9646c838d518020168b1403705b1e
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit 7c6d5d1999989187b60f1e0e82e55ed55238eb27
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit 5d98abb14ca9042af6d0ec7c14c8398cf4046b80
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit 02c1f1a022e86ced69fc91376232d75d5d6583c5
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit 57fd8c37aa3148b1d70bad65e1a49721e9a47d7e
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit 38a7aae1d9c8e1e41de22f9c3846dfc975af6838
+Author: Matt Turner <mattst88@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 <mattst88@gmail.com>
+
+commit b6b77488a0259da3662edf68568e78806ca97444
+Author: Matt Turner <mattst88@gmail.com>
+Date: Fri Sep 9 15:34:04 2011 +0200
+
+ lowlevel-blt: add over_x888_8_8888
+
+ Signed-off-by: Matt Turner <mattst88@gmail.com>
+
+commit 9126f36b964c71b83c69235df4c3a46ab81ab5d5
+Author: Siarhei Siamashka <siarhei.siamashka@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 <ssp@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 <ssp@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.siamashka@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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.turney@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 <ssp@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 <ranma42@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 <ranma42@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 <ranma42@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 <ranma42@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 <ranma42@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 <ranma42@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 <ranma42@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 <ssp@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 <ssp@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 <ssp@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 <ssp@redhat.com>
+Date: Fri Sep 9 23:51:11 2011 -0400
+
+ Pre-release version bump to 0.23.4
+
+commit f5da52b6774bdefdfa88a28fdc3904797adb7e26
+Author: Chris Wilson <chris@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 <chris@chris-wilson.co.uk>
+
+commit 7ef44cae6ba6d1c2aae94cdc10851fa8d14821f7
+Author: Taekyun Kim <tkq.kim@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.kim@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 <ranma42@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 <ranma42@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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 <ssp@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.kim@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 <ranma42@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.siamashka@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.siamashka@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
Reply to: