pixman: Changes to 'debian-experimental'
.gitignore | 7
ChangeLog | 2032 ++++++++++++++++++++++++++++
Makefile.win32 | 14
Makefile.win32.common | 4
TODO | 271 ---
configure.ac | 45
debian/changelog | 28
debian/rules | 4
demos/Makefile.am | 8
demos/composite-test.c | 2
demos/gtk-utils.c | 51
demos/gtk-utils.h | 1
demos/radial-test.c | 2
demos/srgb-test.c | 87 +
demos/srgb-trap-test.c | 119 +
pixman-1.pc.in | 4
pixman/Makefile.am | 47
pixman/Makefile.sources | 26
pixman/Makefile.win32 | 2
pixman/loongson-mmintrin.h | 137 +
pixman/make-combine.pl | 86 -
pixman/make-srgb.pl | 115 +
pixman/pixman-access.c | 714 ++++++---
pixman/pixman-arm-common.h | 24
pixman/pixman-arm-neon-asm-bilinear.S | 119 -
pixman/pixman-arm-neon-asm.S | 159 +-
pixman/pixman-arm-neon-asm.h | 45
pixman/pixman-arm-neon.c | 89 -
pixman/pixman-arm-simd-asm.S | 47
pixman/pixman-arm.c | 225 +++
pixman/pixman-bits-image.c | 377 ++---
pixman/pixman-combine-float.c | 1010 +++++++++++++
pixman/pixman-combine.c.template | 2461 ----------------------------------
pixman/pixman-combine.h.template | 226 ---
pixman/pixman-combine32.c | 2460 +++++++++++++++++++++++++++++++++
pixman/pixman-combine32.h | 225 +++
pixman/pixman-compiler.h | 4
pixman/pixman-conical-gradient.c | 7
pixman/pixman-cpu.c | 815 -----------
pixman/pixman-fast-path.c | 76 -
pixman/pixman-general.c | 70
pixman/pixman-glyph.c | 676 +++++++++
pixman/pixman-image.c | 40
pixman/pixman-implementation.c | 339 +++-
pixman/pixman-inlines.h | 98 -
pixman/pixman-linear-gradient.c | 11
pixman/pixman-matrix.c | 6
pixman/pixman-mips-dspr2-asm.S | 1916 ++++++++++++++++++++++++++
pixman/pixman-mips-dspr2-asm.h | 112 +
pixman/pixman-mips-dspr2.c | 226 ++-
pixman/pixman-mips-dspr2.h | 184 ++
pixman/pixman-mips.c | 94 +
pixman/pixman-mmx.c | 741 ++++++++--
pixman/pixman-noop.c | 34
pixman/pixman-ppc.c | 155 ++
pixman/pixman-private.h | 236 ++-
pixman/pixman-radial-gradient.c | 9
pixman/pixman-region.c | 69
pixman/pixman-solid-fill.c | 29
pixman/pixman-sse2.c | 372 +++--
pixman/pixman-trap.c | 142 +
pixman/pixman-utils.c | 297 +---
pixman/pixman-x86.c | 237 +++
pixman/pixman.c | 56
pixman/pixman.h | 86 +
test/Makefile.sources | 4
test/Makefile.win32 | 10
test/affine-test.c | 28
test/blitters-test.c | 35
test/combiner-test.c | 151 ++
test/composite-traps-test.c | 2
test/composite.c | 88 -
test/fuzzer-find-diff.pl | 7
test/glyph-test.c | 338 ++++
test/gradient-crash-test.c | 2
test/infinite-loop.c | 39
test/lowlevel-blt-bench.c | 64
test/pdf-op-test.c | 2
test/rotate-test.c | 113 +
test/scaling-crash-test.c | 7
test/scaling-test.c | 46
test/stress-test.c | 95 -
test/utils.c | 153 +-
test/utils.h | 15
84 files changed, 13865 insertions(+), 5744 deletions(-)
New commits:
commit 97a117ef1d94e8356d59d070da628e3631718ccb
Author: Cyril Brulebois <kibi@debian.org>
Date: Tue Nov 27 14:00:27 2012 +0100
New upstream release.
diff --git a/ChangeLog b/ChangeLog
index d35fda1..00c3d4d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1931 @@
+commit 8a2ff3e0ef0449921d962f8b9c093c2353ffd945
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Nov 7 13:40:34 2012 -0500
+
+ Pre-release version bump to 0.28.0
+
+commit 4b91f6ca72db3e8cbd7e97e9ef44be2f8994040d
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Oct 25 10:42:26 2012 -0400
+
+ Post-release version bump to 0.27.5
+
+commit 0de3f3344908757b61f9f51b59d4a39f7447451b
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Oct 25 10:35:27 2012 -0400
+
+ Pre-release version bump to 0.27.4
+
+commit f0750258459580bbc9f136710f8e5c551bd01a0f
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Sun Oct 14 11:58:52 2012 +0200
+
+ MIPS: DSPr2: Added more fast-paths for ADD operation: - add_8888_8888_8888 - add_8_8 - add_8888_8888
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ add_8888_8888_8888 = L1: 17.55 L2: 13.35 M: 8.13 ( 93.95%) HT: 6.60 VT: 6.64 R: 6.45 RT: 3.47 ( 26Kops/s)
+ add_8_8 = L1: 86.07 L2: 84.89 M: 62.36 ( 90.11%) HT: 36.36 VT: 34.74 R: 29.56 RT: 11.56 ( 52Kops/s)
+ add_8888_8888 = L1: 95.59 L2: 73.05 M: 17.62 (101.84%) HT: 15.46 VT: 15.01 R: 13.94 RT: 6.71 ( 42Kops/s)
+
+ Optimized:
+ add_8888_8888_8888 = L1: 41.52 L2: 33.21 M: 11.97 (138.45%) HT: 10.47 VT: 10.19 R: 9.42 RT: 4.86 ( 32Kops/s)
+ add_8_8 = L1: 135.06 L2: 104.82 M: 57.13 ( 82.58%) HT: 34.79 VT: 36.60 R: 28.28 RT: 10.54 ( 51Kops/s)
+ add_8888_8888 = L1: 176.36 L2: 67.82 M: 17.48 (101.06%) HT: 15.16 VT: 14.62 R: 13.88 RT: 8.05 ( 45Kops/s)
+
+commit ca83717c63813b6f53f89dd94b5771bd32382a18
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Sun Oct 14 11:58:51 2012 +0200
+
+ MIPS: DSPr2: Added more fast-paths for ADD operation: - add_0565_8_0565 - add_8888_8_8888 - add_8888_n_8888
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ add_0565_8_0565 = L1: 8.89 L2: 8.37 M: 7.35 ( 29.22%) HT: 5.90 VT: 5.85 R: 5.67 RT: 3.31 ( 26Kops/s)
+ add_8888_8_8888 = L1: 17.22 L2: 14.17 M: 9.89 ( 65.56%) HT: 7.57 VT: 7.50 R: 7.36 RT: 4.10 ( 30Kops/s)
+ add_8888_n_8888 = L1: 17.79 L2: 14.87 M: 10.35 ( 54.89%) HT: 5.19 VT: 4.93 R: 4.92 RT: 1.90 ( 19Kops/s)
+
+ Optimized:
+ add_0565_8_0565 = L1: 21.72 L2: 20.01 M: 14.96 ( 59.54%) HT: 12.03 VT: 11.81 R: 11.26 RT: 6.33 ( 37Kops/s)
+ add_8888_8_8888 = L1: 47.42 L2: 38.64 M: 15.90 (105.48%) HT: 13.34 VT: 13.03 R: 11.84 RT: 6.63 ( 38Kops/s)
+ add_8888_n_8888 = L1: 54.83 L2: 42.66 M: 17.36 ( 92.11%) HT: 15.20 VT: 14.82 R: 13.66 RT: 7.83 ( 41Kops/s)
+
+commit 52d20e692ebc605077448ab6f52fd257f83481b2
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Sun Oct 14 11:58:50 2012 +0200
+
+ MIPS: DSPr2: Added fast-paths for ADD operation: - add_n_8_8 - add_n_8_8888 - add_8_8_8
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ add_n_8_8 = L1: 41.37 L2: 37.83 M: 30.38 ( 60.45%) HT: 23.70 VT: 22.85 R: 21.51 RT: 10.32 ( 45Kops/s)
+ add_n_8_8888 = L1: 16.01 L2: 14.46 M: 11.64 ( 46.32%) HT: 5.50 VT: 5.18 R: 5.06 RT: 1.89 ( 18Kops/s)
+ add_8_8_8 = L1: 13.26 L2: 12.47 M: 11.16 ( 29.61%) HT: 8.09 VT: 8.04 R: 7.68 RT: 3.90 ( 29Kops/s)
+
+ Optimized:
+ add_n_8_8 = L1: 96.03 L2: 79.37 M: 51.89 (103.31%) HT: 32.59 VT: 31.29 R: 28.52 RT: 11.08 ( 46Kops/s)
+ add_n_8_8888 = L1: 53.61 L2: 46.92 M: 23.78 ( 94.70%) HT: 19.06 VT: 18.64 R: 17.30 RT: 9.15 ( 43Kops/s)
+ add_8_8_8 = L1: 89.65 L2: 66.82 M: 37.10 ( 98.48%) HT: 22.10 VT: 21.74 R: 20.12 RT: 8.12 ( 41Kops/s)
+
+commit 9df645dfb04b5a790faabe1e9a84fc37287d91b0
+Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
+Date: Fri Oct 19 01:59:16 2012 +0300
+
+ Workaround for FTBFS with gcc 4.6 (http://gcc.gnu.org/PR54965)
+
+ GCC 4.6 has problems with force_inline, so just use normal inline instead.
+ Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=55630
+
+commit 31e5a0a393defb8e0534ab1bde29ab23fc04795d
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Fri Oct 12 18:34:33 2012 -0400
+
+ pixman_composite_trapezoids(): don't clip to extents for some operators
+
+ pixman_composite_trapezoids() is supposed to composite across the
+ entire destination, but it actually only composites across the extent
+ of the trapezoids. For operators such as ADD or OVER this doesn't
+ matter since a zero source has no effect on the destination. But for
+ operators such as SRC or IN, it does matter.
+
+ So for such operators where a zero source has an effect, don't clip to
+ the trap extents.
+
+commit 65db2362e2793a527c2e831cceb81d8d6ad51b8f
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Fri Oct 12 18:29:56 2012 -0400
+
+ pixman_composite_trapezoids(): Factor out extents computation
+
+ The computation of the extents rectangle is moved to its own
+ function.
+
+commit 2d9cb563b415e90cef898de03de7ed9c6f091db1
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Fri Oct 12 18:07:29 2012 -0400
+
+ Add new pixman_image_create_bits_no_clear() API
+
+ When pixman_image_create_bits() function is given NULL for bits, it
+ will allocate a new buffer and initialize it to zero. However, in some
+ cases, only a small region of the image is actually used; in that case
+ it is wasteful to touch all of the memory.
+
+ The new pixman_image_create_bits_no_clear() works exactly like
+ _create_bits() except that it doesn't initialize any newly allocated
+ memory.
+
+commit af803be17b4ea5f53db9af57b6c6ef06db99ebbd
+Author: Benny Siegert <bsiegert@gmail.com>
+Date: Sun Oct 14 16:28:48 2012 +0200
+
+ configure.ac: PIXMAN_LINK_WITH_ENV fix
+
+ (fixes bug #52101)
+
+ On MirBSD, the compiler produces a (harmless) warning when the compiler
+ is called without the standard CFLAGS:
+
+ foo.c:0: note: someone does not honour COPTS correctly, passed 0 times
+
+ However, PIXMAN_LINK_WITH_ENV considers _any_ output on stderr as an
+ error, even if the exit status of the compiler is 0. Furthermore, it
+ resets CFLAGS and LDFLAGS at the start. On MirBSD, this will lead to a
+ warning in each test, making all such tests fail. In particular, the
+ pthread_setspecific test fails, thus pixman is compiled without thread
+ support. This leads to compile errors later on, or at least it did when
+ I tried this on pkgsrc. Re-adding the saved CFLAGS, LDFLAGS and LIBS
+ before the test makes it work.
+
+ The second hunk inverts the order of the pthread flag checks. On BSD
+ systems (this is true at least on OpenBSD and MirBSD), both -lpthread
+ and -pthread work but the latter is "preferred", whatever this means.
+
+commit 6e56098c0338ce74228187e4c96fed1a66cb0956
+Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
+Date: Sat Sep 29 02:29:22 2012 +0300
+
+ Add missing force_inline to in() function used for C fast paths
+
+commit 90bcafa495c1074b0ea1d35f99aa4837917494bd
+Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
+Date: Sun Jul 8 23:10:00 2012 +0300
+
+ MIPS: skip runtime detection for DSPr2 if -mdspr2 option is in CFLAGS
+
+ This provides a way to enable MIPS DSP ASE optimizations if running
+ under qemu-user (where /proc/cpuinfo contains information about the
+ host processor instead of the emulated one). Can be used for running
+ pixman test suite in qemu-user when having no access to real MIPS
+ hardware.
+
+commit d5f2f39319fc358cccda60abe0bc927bd27131c1
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Oct 11 04:04:04 2012 -0400
+
+ region: Remove overlap argument from pixman_op()
+
+ This is used to compute whether the regions in question overlap, but
+ nothing makes use of this information, so it can be removed.
+
+commit cb4f325ec0e844008075fe89ceb9f634ae41e7c9
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Oct 11 04:07:00 2012 -0400
+
+ region: Formatting fix
+
+ The while part of a do/while loop was formatted as if it were a while
+ loop with an empty body. Probably some indent tool misinterpreted the
+ code at some point.
+
+commit 15b153d633fcfce886c30fee98599fddbf019ee8
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sun Oct 7 17:58:32 2012 -0400
+
+ Only regard images as pixbufs if they have identity transformations
+
+ In order for a src/mask pair to be considered a pixbuf, they have to
+ have identical transformations, but we don't check for that. Since the
+ only fast paths we have for pixbufs require identity transformations,
+ it sufficies to check that both source and mask are
+ untransformed.
+
+ This is also the reason that this bug can't be triggered by any test
+ code - if the source and mask had different transformations, we would
+ consider them a pixbuf, but then wouldn't take the fast path because
+ at least one of the transformations would be different from the
+ identity.
+
+commit 3d81d89c292058522cce91338028d9b4c4a23c24
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Oct 4 12:41:08 2012 -0400
+
+ Remove BUILT_SOURCES
+
+ pixman-combine32.[ch] were the only built sources, so BUILT_SOURCES
+ can now be removed.
+
+commit ec7aa11a6e4d0d02df9b339dfce9460dce954602
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sun Sep 23 03:52:34 2012 -0400
+
+ Speed up pixman_expand_to_float()
+
+ GCC doesn't move the divisions out of the loop, so do it manually by
+ looking up the four (1.0f / mask) values in a table. Table lookups are
+ used under the theory that one L2 hit plus three L1 hits is preferable
+ to four floating point divisions.
+
+commit 8ccda2be30adf9dfcc3087b38a5062258324dcce
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Fri Sep 21 18:36:16 2012 -0400
+
+ Don't auto-generate pixman-combine32.[ch] anymore
+
+ Since pixman-combine64.[ch] are not used anymore, there is no point
+ generating these files from pixman-combine.[ch].template.
+
+ Also get rid of dependency on perl in configure.ac.
+
+commit 4afd20cc71ba75190ebcead774b946157d0995a6
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Aug 18 14:39:29 2012 -0400
+
+ Remove 64 bit pipeline
+
+ The 64 bit pipeline is not used anymore, so it can now be removed.
+
+ Don't generate pixman-combine64.[ch] anymore. Don't generate the
+ pixman-srgb.c anymore. Delete all the 64 bit fetchers in
+ pixman-access.c, all the 64 bit iterator functions in
+ pixman-bits-image.c and all the functions that expand from 8 to 16
+ bits.
+
+commit 5ff0bbd9721bb216a8332cbde18adc458af3cdec
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Aug 18 14:11:07 2012 -0400
+
+ Switch the wide pipeline over to using floating point
+
+ In pixman-bits-image.c, remove bits_image_fetch_untransformed_64() and
+ add bits_image_fetch_untransformed_float(); change
+ dest_get_scanline_wide() to produce a floating point buffer,
+
+ In the gradients, change *_get_scanline_wide() to call
+ pixman_expand_to_float() instead of pixman_expand().
+
+ In pixman-general.c change the wide Bpp to 16 instead of 8, and
+ initialize the buffers to 0 to prevent NaNs from causing trouble.
+
+ In pixman-noop.c make the wide solid iterator generate floating point
+ pixels.
+
+ In pixman-solid-fill.c, cache a floating point pixel, and make the
+ wide iterator generate floating point pixels.
+
+ Bug fix in bits_image_fetch_untransformed_repeat_normal
+
+commit e75bacc5f9196c3980ce331c7d53de5b7e92d699
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Aug 18 13:22:15 2012 -0400
+
+ pixman-access.c: Add floating point accessor functions
+
+ Three new function pointer fields are added to bits_image_t:
+
+ fetch_scanline_float
+ fetch_pixel_float
+ store_scanline_float
+
+ similar to the existing 32 and 64 bit accessors. The fetcher_info_t
+ struct in pixman_access similarly gets a new get_scanline_float field.
+
+ For most formats, the new get_scanline_float field is set to a new
+ function fetch_scanline_generic_float() that first calls the 32 bit
+ fetcher uses the 32 bit scanline fetcher and then expands these pixels
+ to floating point.
+
+ For the 10 bpc formats, new floating point accessors are added that
+ use pixman_unorm_to_float() and pixman_float_to_unorm() to convert
+ back and forth.
+
+ The PIXMAN_a8r8g8b8_sRGB format is handled with a 256-entry table that
+ maps 8 bit sRGB channels to linear single precision floating point
+ numbers. The sRGB->linear direction can then be done with a simple
+ table lookup.
+
+ The other direction is currently done with 4096-entry table which
+ works fine for 16 bit integers, but not so great for floating
+ point. So instead this patch uses a binary search in the sRGB->linear
+ table. The existing 32 bit accessors for the sRGB format are also
+ converted to use this method.
+
+commit 23252393a2dcae4dc5a7d03727dd66cdd81286ba
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Aug 18 13:02:31 2012 -0400
+
+ pixman-utils.c, pixman-private.h: Add floating point conversion routines
+
+ A new struct argb_t containing a floating point pixel is added to
+ pixman-private.h and conversion routines are added to pixman-utils.c
+ to convert normalized integers to and from that struct.
+
+ New functions:
+
+ - pixman_expand_to_float()
+ Expands a buffer of integer pixels to a buffer of argb_t pixels
+
+ - pixman_contract_from_float()
+ Converts a buffer of argb_t pixels to a buffer integer pixels
+
+ - pixman_float_to_unorm()
+ Converts a floating point number to an unsigned normalized integer
+
+ - pixman_unorm_to_float()
+ Converts an unsigned normalized integer to a floating point number
+
+commit 4760599ff3008ab0f1e36a7d4d362362817fd930
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sun Sep 9 17:56:53 2012 -0400
+
+ Add combiner test
+
+ This test runs the new floating point combiners on random input with
+ divide-by-zero exceptions turned on.
+
+ With the floating point combiners the only thing we guarantee is that
+ divide-by-zero exceptions are not generated, so change
+ enable_fp_exceptions() to only enable those, and rename accordingly.
+
+commit a5b459114e35c7a946362f1e5857e8a87a403ec3
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Fri May 14 00:42:04 2010 -0400
+
+ Add pixman-combine-float.c
+
+ This file contains floating point implementations of combiners for all
+ pixman operators. These combiners operate on buffers containing single
+ precision floating point pixels stored in (a, r, g, b) order.
+
+ The combiners are added to the pixman_implementation_t struct, but
+ nothing uses them yet.
+
+ This commit incorporates a number of bug fixes contributed by Andrea
+ Canciani.
+
+ Some notes:
+
+ - The combiners are making sure to never divide by zero regardless of
+ input, so an application could enable divide-by-zero exceptions and
+ pixman wouldn't generate any.
+
+ - The operators are implemented according to the Render spec. Ie.,
+
+ - If the input pixels are between 0 and 1, then so is the output.
+
+ - The source and destination coefficients for the conjoint and
+ disjoint operators are clamped to [0, 1].
+
+ - The PDF operators are not described in the render spec, and the
+ implementation here doesn't do any clamping except in the final
+ conversion from floating point to destination format.
+
+ All of the above will need to be rethought if we add support for pixel
+ formats that can support negative and greater-than-one pixels. It is
+ in fact already the case in principle that convolution filters can
+ produce pixels with negative values, but since these go through the
+ broken "wide" path that narrows everything to 32 bits, these negative
+ values don't currently survive to the combiners.
+
+commit 7a9c2d586b2349b5e17966a96d7fe8c390abb75a
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Jun 2 00:15:54 2012 -0400
+
+ blitters-test: Prepare for floating point
+
+ Comment out some formats in blitters-test that are going to rely on
+ floating point in some upcoming patches.
+
+commit 600a06c81d3999bc6551c7e889726ed7b8bec84d
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Jul 11 03:27:49 2012 -0400
+
+ glyph-test: Prepare for floating point
+
+ In preparation for an upcoming change of the wide pipe to use floating
+ point, comment out some formats in glyph-test that are going to be
+ using floating point and update the CRC32 value to match.
+
+commit 2e17b6dd4ee7c32684fb7ffc70d3ad3ebf7cb2ef
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 29 10:34:17 2012 -0400
+
+ Make pixman.h more const-correct
+
+ Add const to pointer arguments when the function doesn't change the
+ pointed-to data.
+
+ Also in add_glyphs() in pixman-glyph.c make 'white' in add_glyphs()
+ static and const.
+
+commit 183afcf1d95625a1f237ef349a1c8931d94d000d
+Author: Matt Turner <mattst88@gmail.com>
+Date: Sun Sep 30 11:59:23 2012 -0700
+
+ iwmmxt: Don't define dummy _mm_empty for >=gcc-4.8
+
+ Definition was not present in <4.8.
+
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55451
+
+commit d4b72eb6ccc1f004efedbc6552ee22499350be4d
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 29 18:15:54 2012 -0400
+
+ rotate-test: Call image_endian_swap() in make_image()
+
+ Otherwise the test fails on big-endian.
+
+ Tested-by: Matt Turner <mattst88@gmail.com>
+
+commit aff796d6cee4cb81f0352c2f7d0c994229bd5ca1
+Author: Siarhei Siamashka <siarhei.siamashka@gmail.com>
+Date: Mon Jun 25 22:36:52 2012 -0400
+
+ Add scaled nearest repeat fast paths
+
+ Before this patch it was often faster to scale and repeat
+ in two passes because each pass used a fast path vs.
+ the slow path that the single pass approach takes. This
+ makes it so that the single pass approach has competitive
+ performance.
+
+commit 05560828c495ed9226b43b30e1824447e3d8eff3
+Author: Matt Turner <mattst88@gmail.com>
+Date: Fri Sep 21 16:34:24 2012 -0700
+
+ sse2: mark pack_565_2x128_128 as static force_inline
+
+commit de60e2e0e3eb6084f8f14b63f25b3cbfb012943f
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 03:13:09 2012 -0400
+
+ Fix for infinite-loop test
+
+ The infinite loop detected by "affine-test 212944861" is caused by an
+ overflow in this expression:
+
+ max_x = pixman_fixed_to_int (vx + (width - 1) * unit_x) + 1;
+
+ where (width - 1) * unit_x doesn't fit in a signed int. This causes
+ max_x to be too small so that this:
+
+ src_width = 0
+
+ while (src_width < REPEAT_NORMAL_MIN_WIDTH && src_width <= max_x)
+ src_width += src_image->bits.width;
+
+ results in src_width being 0. Later on when src_width is used for
+ repeat calculations, we get the infinite loop.
+
+ By casting unit_x to int64_t, the expression no longer overflows and
+ affine-test 212944861 and infinite-loop no longer loop forever.
+
+commit aa311a4641b79eac39fe602b75d7bee3de9b1dce
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Sep 13 19:31:29 2012 -0400
+
+ test: Add inifinite-loop test
+
+ This test demonstrates a bug where a certain transformation matrix can
+ result in an infinite loop. It was extracted as a standalone version
+ of "affine-test 212944861".
+
+ If given the option -nf, the test program will not call fail_after()
+ and therefore potentially run forever.
+
+commit d5c721768c9811ce22bc0cd50bdf1c7bccc264e0
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Sep 13 19:29:19 2012 -0400
+
+ affine-test: Print out the transformation matrix when verbose
+
+ Printing out the translation and scale is a bit misleading because the
+ actual transformation matrix can be modified in various other ways.
+
+ Instead simply print the whole transformation matrix that is actually
+ used.
+
+commit 292fce7a230dd253fff71bd1bb2fbf9b7996a892
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Fri Sep 14 09:31:26 2012 +0200
+
+ MIPS: DSPr2: Added OVER combiner and two new fast paths: - over_8888_8888 - over_8888_8888_8888
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ over_8888_8888 = L1: 19.61 L2: 17.10 M: 11.16 ( 59.20%) HT: 16.47 VT: 15.81 R: 14.82 RT: 8.90 ( 50Kops/s)
+ over_8888_8888_8888 = L1: 13.56 L2: 11.22 M: 7.46 ( 79.18%) HT: 6.24 VT: 6.20 R: 6.11 RT: 3.95 ( 29Kops/s)
+
+ Optimized:
+ over_8888_8888 = L1: 46.42 L2: 36.70 M: 16.69 ( 88.57%) HT: 17.11 VT: 16.55 R: 15.31 RT: 9.48 ( 52Kops/s)
+ over_8888_8888_8888 = L1: 26.06 L2: 22.53 M: 11.49 (121.91%) HT: 9.93 VT: 9.62 R: 9.19 RT: 5.75 ( 36Kops/s)
+
+commit 28c9bd4866088a017a0cdf3f0fb47467b97bbc29
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Fri Sep 14 09:31:25 2012 +0200
+
+ MIPS: DSPr2: Added fast-paths for OVER operation: - over_0565_n_0565 - over_0565_8_0565
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ over_0565_n_0565 = L1: 7.56 L2: 7.24 M: 6.16 ( 16.38%) HT: 4.01 VT: 3.84 R: 3.79 RT: 1.66 ( 18Kops/s)
+ over_0565_8_0565 = L1: 7.43 L2: 7.05 M: 5.98 ( 23.85%) HT: 5.27 VT: 5.23 R: 5.09 RT: 3.14 ( 28Kops/s)
+
+ Optimized:
+ over_0565_n_0565 = L1: 15.47 L2: 14.52 M: 12.30 ( 32.65%) HT: 10.76 VT: 10.57 R: 10.27 RT: 6.63 ( 46Kops/s)
+ over_0565_8_0565 = L1: 15.47 L2: 14.61 M: 11.78 ( 46.92%) HT: 10.00 VT: 9.84 R: 9.40 RT: 5.81 ( 43Kops/s)
+
+commit b660eb30b4e5f690d191b26a500a6ba224986b3a
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Fri Sep 14 09:31:24 2012 +0200
+
+ MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_0565 - over_8888_8_0565
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ over_8888_n_0565 = L1: 8.95 L2: 8.33 M: 6.95 ( 27.74%) HT: 4.27 VT: 4.07 R: 4.01 RT: 1.74 ( 19Kops/s)
+ over_8888_8_0565 = L1: 8.86 L2: 8.11 M: 6.72 ( 35.71%) HT: 5.68 VT: 5.62 R: 5.47 RT: 3.35 ( 30Kops/s)
+
+ Optimized:
+ over_8888_n_0565 = L1: 18.76 L2: 17.55 M: 13.11 ( 52.19%) HT: 11.35 VT: 11.10 R: 10.88 RT: 6.94 ( 47Kops/s)
+ over_8888_8_0565 = L1: 18.14 L2: 16.79 M: 12.10 ( 64.25%) HT: 10.24 VT: 9.98 R: 9.63 RT: 5.89 ( 43Kops/s)
+
+commit 37e3368e20cee42f1e1039bb112ed9a09d21156f
+Author: Nemanja Lukic <nemanja.lukic@rt-rk.com>
+Date: Fri Sep 14 09:31:23 2012 +0200
+
+ MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_8888 - over_8888_8_8888
+
+ Performance numbers before/after on MIPS-74kc @ 1GHz:
+
+ lowlevel-blt-bench results
+
+ Referent (before):
+ over_8888_n_8888 = L1: 9.92 L2: 11.27 M: 8.50 ( 45.23%) HT: 4.70 VT: 4.45 R: 4.49 RT: 1.85 ( 20Kops/s)
+ over_8888_8_8888 = L1: 12.54 L2: 10.86 M: 8.18 ( 54.36%) HT: 6.53 VT: 6.45 R: 6.41 RT: 3.83 ( 33Kops/s)
+
+ Optimized:
+ over_8888_n_8888 = L1: 28.02 L2: 24.92 M: 14.72 ( 78.15%) HT: 13.03 VT: 12.65 R: 12.00 RT: 7.49 ( 49Kops/s)
+ over_8888_8_8888 = L1: 26.92 L2: 23.93 M: 13.65 ( 90.58%) HT: 11.68 VT: 11.29 R: 10.56 RT: 6.37 ( 45Kops/s)
+
+commit f580c4c5b2a435ebe2751ce0dace6c42568557f8
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Fri Sep 21 16:52:16 2012 -0400
+
+ pixman-combine.c.template: Formatting clean-ups
+
+ Various formatting fixes, and removal of some obsolete comments about
+ strength reduction of operators.
+
+commit 58f8704664d1f8c812a85b929a50818f213a8438
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Sep 20 21:43:24 2012 -0400
+
+ Fix bugs in pixman-image.c
+
+ In the checks for whether the transforms are rotation matrices "-1"
+ and "1" were used instead of the correct -pixman_fixed_1 and
+ pixman_fixed_1.
+
+ Fixes test suite failure for rotate-test.
+
+commit 550dfc5e7ecd5b099c1009d77c56cb91a62caeb1
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Thu Sep 20 18:41:33 2012 -0400
+
+ Add rotate-test.c test program
+
+ This program exercises a bug in pixman-image.c where "-1" and "1" were
+ used instead of the correct "- pixman_fixed_1" and "pixman_fixed_1".
+
+ With the fast implementation enabled:
+
+ % ./rotate-test
+ rotate test failed! (checksum=35A01AAB, expected 03A24D51)
+
+ Without it:
+
+ % env PIXMAN_DISABLE=fast ./rotate-test
+ pixman: Disabled fast implementation
+ rotate test passed (checksum=03A24D51)
+
+ V2: The first version didn't have lcg_srand (testnum) in test_transform().
+
+commit 2ab77c97a5a3a816d6383bdc3b6c8bdceb0383b7
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Sep 19 12:04:11 2012 -0400
+
+ Fix bugs in component alpha combiners for separable PDF operators
+
+ In general, the component alpha version of an operator is supposed to
+ do this:
+
+ - multiply source with mask in all channels
+ - multiply mask with source alpha in all channels
+ - compute the regular operator in all channels using the
+ mask value whenever source alpha is called for
+
+ The first two steps are usually accomplished with the function
+ combine_mask_ca(), but for operators where source alpha is not used,
+ such as SRC, ADD and OUT, the simpler function
+ combine_mask_value_ca(), which doesn't compute the new mask values,
+ can be used.
+
+ However, the PDF blend modes generally *do* make use of source alpha,
+ so they can't use combine_mask_value_ca() as they do now. They have to
+ use combine_mask_ca().
+
+ This patch fixes this in combine_multiply_ca() and the CA combiners
+ generated by PDF_SEPARABLE_BLEND_MODE.
+
+commit c4b69e706e63e01fbc70e0026c2079007c89de14
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Sep 19 19:46:13 2012 -0400
+
+ Fix bug in fast_composite_scaled_nearest()
+
+ The fast_composite_scaled_nearest() function can be called when the
+ format is x8b8g8r8. In that case pixels fetched in fetch_nearest()
+ need to have their alpha channel set to 0xff.
+
+ Fixes test suite failure in scaling-test.
+
+ Reviewed-by: Matt Turner <mattst88@gmail.com>
+
+commit 35be7acb660228d4e350b5806c81e55606352e0d
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Sep 19 19:26:49 2012 -0400
+
+ Add PIXMAN_x8b8g8r8 and PIXMAN_a8b8g8r8 formats to scaling-test
+
+ Update the CRC values based on what the general implementation
+ reports. This reveals a bug in the fast implementation:
+
+ % env PIXMAN_DISABLE="mmx sse2" ./test/scaling-test
+ pixman: Disabled mmx implementation
+ pixman: Disabled sse2 implementation
+ scaling test failed! (checksum=AA722B06, expected 03A23E0C)
+
+ vs.
+
+ % env PIXMAN_DISABLE="mmx sse2 fast" ./test/scaling-test
+ pixman: Disabled fast implementation
+ pixman: Disabled mmx implementation
+ pixman: Disabled sse2 implementation
+ scaling test passed (checksum=03A23E0C)
+
+ Reviewed-by: Matt Turner <mattst88@gmail.com>
+
+commit 9decb9a97975ae6bf25a42c0fd2eaa21b166c36d
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 19:10:56 2012 -0400
+
+ implementation: Rename delegate to fallback
+
+ At this point the chain of implementations has nothing to do with the
+ delegation design pattern anymore, so rename the delegate pointer to
+ 'fallback'.
+
+commit b96599ccf353e89f95aa106853fcf310203c5874
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 13:58:45 2012 -0400
+
+ _pixman_implementation_create(): Initialize implementation with memset()
+
+ All the function pointers are NULL by default now, so we can just zero
+ the struct. Also write the function a little more compactly.
+
+commit 9539a18832c278ca0f6f572d8765932be6c9ad65
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 13:53:17 2012 -0400
+
+ Rename _pixman_lookup_composite_function() to _pixman_implementation_lookup_composite()
+
+ And move it into pixman-implementation.c which is where it belongs
+ logically.
+
+commit ee6af72dadaf9eb049bfeb35dc9ff57c3902403a
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 13:20:52 2012 -0400
+
+ Move delegation of src/dest iter init into pixman-implementation.c
+
+ Instead of relying on each implementation to delegate when an iterator
+ can't be initialized, change the type of iterator initializers to
+ boolean and make pixman-implementation.c do the delegation whenever an
+ iterator initializer returns FALSE.
+
+commit c710d0fae2a9dc7d20913e5e39a1bb53f7c942db
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 13:08:51 2012 -0400
+
+ Move fill delegation into pixman-implementation.c
+
+ As in the blt commit, do the delegation in pixman-implementation.c
+ whenever the implementation fill returns FALSE instead of relying on
+ each implementation to do it by itself.
+
+ With this change there is no longer any reason for the implementations
+ to have one fill function that delegates and one that actually blits,
+ so consolidate those in the NEON, DSPr2, SSE2, and MMX
+ implementations.
+
+commit 534507ba3b00b9aaadc9f181c282b01e4e2fe415
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 13:03:10 2012 -0400
+
+ Move blt delegation into pixman-implementation.c
+
+ Rather than require each individual implementation to do the
+ delegation for blt, just do it in pixman-implementation.c whenever the
+ implementation blt returns FALSE.
+
+ With this change, there is no longer any reason for the
+ implementations to have one blt function that delegates and one that
+ actually blits, so consolidate those in the NEON, DSPr2, SSE2, and MMX
+ implementations.
+
+commit 7ef4436abbdb898dc656ebb5832ed5d6fd764bba
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Sep 15 12:48:42 2012 -0400
+
+ implementation: Write lookup_combiner() in a less convoluted way.
+
+ Instead of initializing an array on the stack, just use a simple
+ switch to select which set of combiners to look up in.
+
+commit 3124a51abb89475b8c5045bc96e04c5852694a16
+Author: Matt Turner <mattst88@gmail.com>
+Date: Sun Sep 16 00:25:38 2012 -0400
+
+ build: Remove useless DEP_CFLAGS/DEP_LIBS variables
+
+commit 46e4faf8ef34d49f15e1946d105289fb06365553
+Author: Andrea Canciani <ranma42@gmail.com>
+Date: Thu Jun 21 06:07:07 2012 +0200
+
+ build: Improve win32 build system
+
+ Handle cross-directory dependencies using PHONY targets and clean up
+ some redundancies.
+
+commit c89efdd211cf7cd3dc69a4140045ceab6f445730
+Author: Andrea Canciani <ranma42@gmail.com>
+Date: Tue Jul 17 16:14:20 2012 +0200
+
+ mmx: Fix x86 build on MSVC
+
+ The MSVC compiler is very strict about variable declarations after
+ statements.
+
+ Move all the declarations of each block before any statement in
+ the same block to fix multiple instances of:
+
+ pixman-mmx.c(xxxx) : error C2275: '__m64' : illegal use of this type
+ as an expression
+
+commit 1e3e569b04f45592ce2174e48df0fcb333ce0ad3
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sun Aug 26 18:23:53 2012 -0400
+
+ test/utils.c: Use pow(), not powf() in sRGB conversion routines
+
+ These functions are operating on double precision values, so use pow()
+ instead of powf().
+
+commit 8577daba04e60c1b4c44ce01c6874a573952913a
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sun Aug 26 18:13:47 2012 -0400
+
+ pixel_checker: Move sRGB conversion into get_limits()
+
+ The sRGB conversion has to be done every time the limits are being
+ computed. Without this fix, pixel_checker_get_min/max() will produce
+ the wrong results when called from somewhere other than
+ pixel_checker_check().
+
+commit 62eb6e5e054da498e38da80ba8143f0a069b0c17
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Aug 25 17:14:50 2012 -0400
+
+ Remove obsolete TODO file
+
+commit 384846b38cfb5e1895ae49c40adbf72a85b63d95
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sun Aug 19 13:45:21 2012 -0400
+
+ Remove pointless declaration of _pixman_image_get_scanline_generic_64()
+
+ This declaration used to be necessary when
+ _pixman_image_get_scanline_generic_64() referred to a structure that
+ itself referred back to _pixman_image_get_scanline_generic_64().
+
+commit 09cb1ae10b1976970233c934d27c36e0a4203e1c
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Jun 9 09:15:53 2012 -0400
+
+ demos: Add srgb_trap_test.c
+
+ This demo program composites a bunch of trapezoids side by side with
+ and without gamma aware compositing.
+
+commit 04e878c231ad3624c57e51a5fcdc55a177d4dc0f
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Sat Jun 9 09:42:56 2012 -0400
+
+ Make show_image() cope with more formats
+
+ This makes show_image() deal with more formats than just a8r8g8b8, in
+ particular, a8r8g8b8_sRGB can now be handled.
+
+ Images that are passed to show_image with a format of a8r8g8b8_sRGB
+ are displayed without modification under the assumption that the
+ monitor is approximately sRGB.
+
+ Images with a format of a8r8g8b8 are also displayed without
+ modification since many other users of show_image() have been
+ generating essentially sRGB data with this format. Other formats are
+ also assumed to be gamma compressed; these are converted to a8r8g8b8
+ before being displayed.
+
+ With these changes, srgb-test.c doesn't need to do its own conversion
+ anymore.
+
+commit 8db9ec9814a3dcd8211ec60cd4fd3c9ae9d77924
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Tue Jul 31 15:01:16 2012 -0400
+
+ Define TIMER_BEGIN and TIMER_END even when timers are not enabled
+
+ This allows code that uses these macros to build when timers are
+ disabled.
+
+commit da5268cc19e03b24737dec3e2c51296156b869a8
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Aug 1 15:56:13 2012 -0400
+
+ Post-release version bump to 0.27.3
+
+commit e8ddef78b67a0699a990f3c785396d4b1955f972
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Wed Aug 1 15:22:57 2012 -0400
+
+ Pre-release version bump to 0.27.2
+
+commit c214ca51a00fdd0e773ace32076c3ed8a5d0d482
+Author: Sebastian Bauer <mail@sebastianbauer.info>
+Date: Tue Jul 31 07:30:32 2012 +0200
+
+ Use angle brackets form of including config.h
+
+commit 98617b3796d12c18d8306cca590160caa3c95454
+Author: Sebastian Bauer <mail@sebastianbauer.info>
+Date: Tue Jul 31 07:30:31 2012 +0200
+
+ Added HAVE_CONFIG_H check before including config.h
+
+commit 5b0563f39eb29e4ae431717696174da5e282c346
+Author: Søren Sandmann Pedersen <ssp@redhat.com>
+Date: Mon Jul 30 16:21:39 2012 -0400
+
+ glyph-test: Avoid setting solid images as alpha maps.
+
+ glyph-test would sometimes set a solid image as an alpha map, which is
Reply to: