.gitignore | 2 CODING_STYLE | 23 ChangeLog | 1909 +++++++++++++++++++++++++++++++++++++++ README | 10 configure.ac | 274 ++++- debian/changelog | 15 debian/control | 2 debian/libpixman-1-0.symbols | 4 debian/rules | 14 pixman/Makefile.am | 5 pixman/pixman-access.c | 309 ++++-- pixman/pixman-arm-neon-asm.S | 336 ++++++ pixman/pixman-arm-neon-asm.h | 59 + pixman/pixman-arm-neon.c | 30 pixman/pixman-arm-simd-asm.S | 2 pixman/pixman-arm-simd.c | 16 pixman/pixman-bits-image.c | 644 +++++++++---- pixman/pixman-combine.c.template | 45 pixman/pixman-combine.h.template | 152 +-- pixman/pixman-compiler.h | 39 pixman/pixman-conical-gradient.c | 60 - pixman/pixman-cpu.c | 25 pixman/pixman-fast-path.c | 470 +++------ pixman/pixman-fast-path.h | 445 +++++++++ pixman/pixman-general.c | 65 - pixman/pixman-image.c | 146 ++ pixman/pixman-linear-gradient.c | 200 +--- pixman/pixman-mmx.c | 110 +- pixman/pixman-private.h | 136 +- pixman/pixman-radial-gradient.c | 464 +++++---- pixman/pixman-region.c | 60 - pixman/pixman-region16.c | 4 pixman/pixman-region32.c | 4 pixman/pixman-solid-fill.c | 9 pixman/pixman-sse2.c | 1302 +++++++++++++------------- pixman/pixman.c | 757 ++++++++------- pixman/pixman.h | 16 test/Makefile.am | 35 test/affine-test.c | 261 +++++ test/alpha-loop.c | 29 test/alphamap.c | 257 ++++- test/blitters-test-bisect.rb | 43 test/blitters-test.c | 167 +-- test/composite-test.c | 5 test/composite.c | 260 ++--- test/fuzzer-find-diff.pl | 68 + test/gradient-crash-test.c | 117 ++ test/gtk-utils.c | 2 test/lowlevel-blt-bench.c | 712 ++++++++++++++ test/region-translate-test.c | 30 test/scaling-crash-test.c | 209 ++++ test/scaling-test-bisect.rb | 38 test/scaling-test.c | 95 - test/utils.c | 279 +++++ test/utils.h | 77 + 55 files changed, 8042 insertions(+), 2805 deletions(-)
New commits: commit 2da37f260eb06607cbb60897ee9e5fb1d0418f4e Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 23:14:13 2010 +0200 Upload to experimental. diff --git a/debian/changelog b/debian/changelog index a61ab51..d29de84 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -pixman (0.19.6-1) UNRELEASED; urgency=low +pixman (0.19.6-1) experimental; urgency=low * New upstream release. * Bump SHLIBS_VERSION from 0.18.0 to 0.19.4 for newly-added functions. @@ -11,7 +11,7 @@ pixman (0.19.6-1) UNRELEASED; urgency=low * Enable the testsuite. * Add myself to Uploaders. - -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 22:11:26 +0200 + -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 23:14:00 +0200 pixman (0.18.4-1) experimental; urgency=low commit 3a4ab94548f5d8d4e6a571282fda85a9aad929a7 Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:57:19 2010 +0200 Add myself to Uploaders. diff --git a/debian/changelog b/debian/changelog index df60ba9..a61ab51 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ pixman (0.19.6-1) UNRELEASED; urgency=low to pick it accidentally, by passing --disable-gtk. (That's only for test purposes, but would require pixman-1 itself.) * Enable the testsuite. + * Add myself to Uploaders. -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 22:11:26 +0200 diff --git a/debian/control b/debian/control index 5060e7a..f5a882c 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: pixman Section: devel Priority: optional Maintainer: Debian X Strike Force <[email protected]> -Uploaders: David Nusinow <[email protected]> +Uploaders: David Nusinow <[email protected]>, Cyril Brulebois <[email protected]> Build-Depends: debhelper (>= 5), automake, autoconf, libtool, pkg-config, quilt Standards-Version: 3.8.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/pixman commit a74572e2e1c03149ebd386dadd339802e868e4d1 Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:56:49 2010 +0200 Enable the testsuite. diff --git a/debian/changelog b/debian/changelog index 95e1596..df60ba9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ pixman (0.19.6-1) UNRELEASED; urgency=low * As of pixman-0.19.2-5-g5b99710, Gtk+ is auto-detected, make sure not to pick it accidentally, by passing --disable-gtk. (That's only for test purposes, but would require pixman-1 itself.) + * Enable the testsuite. -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 22:11:26 +0200 diff --git a/debian/rules b/debian/rules index fc14a8b..c938be2 100755 --- a/debian/rules +++ b/debian/rules @@ -52,6 +52,7 @@ build: build-stamp build-stamp: config-stamp dh_testdir cd build && $(MAKE) + cd build && $(MAKE) check touch $@ commit 990c9e2447e962c455e2f7b14a53b184b71cb341 Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:50:42 2010 +0200 Pass --disable-gtk to ./configure As of pixman-0.19.2-5-g5b99710, Gtk+ is auto-detected, make sure not to pick it accidentally, by passing --disable-gtk. (That's only for test purposes, but would require pixman-1 itself.) diff --git a/debian/changelog b/debian/changelog index 791e95e..95e1596 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,9 @@ pixman (0.19.6-1) UNRELEASED; urgency=low * Update symbols file with newly-added functions. * Add -c4 to the dh_makeshlibs call, to ensure the build breaks if unexpected symbol-related changes happened. + * As of pixman-0.19.2-5-g5b99710, Gtk+ is auto-detected, make sure not + to pick it accidentally, by passing --disable-gtk. (That's only for + test purposes, but would require pixman-1 itself.) -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 22:11:26 +0200 diff --git a/debian/rules b/debian/rules index 87411df..fc14a8b 100755 --- a/debian/rules +++ b/debian/rules @@ -5,6 +5,9 @@ include /usr/share/quilt/quilt.make PACKAGE = libpixman-1-0 SHLIBS_VERSION = 0.19.4 +# Disable Gtk+ autodetection: +confflags = --disable-gtk + CFLAGS = -Wall -g ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 commit 6cba95bcd3cdd82b60fcf03c36a4c3e3ff2f93ba Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:37:19 2010 +0200 Bump SHLIBS_VERSION from 0.18.0 to 0.19.4 for newly-added functions. diff --git a/debian/changelog b/debian/changelog index 329bbc3..791e95e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ pixman (0.19.6-1) UNRELEASED; urgency=low * New upstream release. + * Bump SHLIBS_VERSION from 0.18.0 to 0.19.4 for newly-added functions. * Update symbols file with newly-added functions. * Add -c4 to the dh_makeshlibs call, to ensure the build breaks if unexpected symbol-related changes happened. diff --git a/debian/rules b/debian/rules index 4711ec2..87411df 100755 --- a/debian/rules +++ b/debian/rules @@ -3,7 +3,7 @@ include /usr/share/quilt/quilt.make PACKAGE = libpixman-1-0 -SHLIBS_VERSION = 0.18.0 +SHLIBS_VERSION = 0.19.4 CFLAGS = -Wall -g ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS))) commit 4504e5e3e28c914b1b47d507fa5377b5e0e6594b Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:35:22 2010 +0200 Kill extra tabs. diff --git a/debian/rules b/debian/rules index 6c0200b..4711ec2 100755 --- a/debian/rules +++ b/debian/rules @@ -49,14 +49,14 @@ build: build-stamp build-stamp: config-stamp dh_testdir cd build && $(MAKE) - + touch $@ clean: unpatch dh_testdir dh_testroot rm -f autogen-stamp config-stamp build-stamp install-stamp - + rm -f config.cache config.log config.status rm -f */config.cache */config.log */config.status rm -f conftest* */conftest* @@ -65,7 +65,7 @@ clean: unpatch find -name Makefile.in -delete rm -f compile config.guess config.sub configure depcomp install-sh rm -f ltmain.sh missing INSTALL aclocal.m4 config.h.in - + dh_clean install: install-stamp commit ebabb2f2ce14c6a953c8a9e8ec79c2cd5b0026c3 Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:34:42 2010 +0200 Add -c4 to the dh_makeshlibs call, to ensure the build breaks if unexpected symbol-related changes happened. diff --git a/debian/changelog b/debian/changelog index e2732ba..329bbc3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ pixman (0.19.6-1) UNRELEASED; urgency=low * New upstream release. * Update symbols file with newly-added functions. + * Add -c4 to the dh_makeshlibs call, to ensure the build breaks if + unexpected symbol-related changes happened. -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 22:11:26 +0200 diff --git a/debian/rules b/debian/rules index 8fa2158..6c0200b 100755 --- a/debian/rules +++ b/debian/rules @@ -90,7 +90,7 @@ binary-arch: install dh_strip --dbg-package=$(PACKAGE)-dbg dh_compress dh_fixperms - dh_makeshlibs -p$(PACKAGE) --add-udeb $(PACKAGE)-udeb -V"$(PACKAGE) (>= $(SHLIBS_VERSION))" + dh_makeshlibs -p$(PACKAGE) --add-udeb $(PACKAGE)-udeb -V"$(PACKAGE) (>= $(SHLIBS_VERSION))" -- -c4 dh_installdeb dh_shlibdeps dh_gencontrol commit 7cad3fd3f3f5a49284b24d939df1107942cb5a03 Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:30:57 2010 +0200 Update symbols file with newly-added functions. diff --git a/debian/changelog b/debian/changelog index f188cc6..e2732ba 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ pixman (0.19.6-1) UNRELEASED; urgency=low * New upstream release. + * Update symbols file with newly-added functions. -- Cyril Brulebois <[email protected]> Wed, 27 Oct 2010 22:11:26 +0200 diff --git a/debian/libpixman-1-0.symbols b/debian/libpixman-1-0.symbols index fb93e59..a7ae4b4 100644 --- a/debian/libpixman-1-0.symbols +++ b/debian/libpixman-1-0.symbols @@ -29,9 +29,11 @@ libpixman-1.so.0 libpixman-1-0 #MINVER# pixman_image_create_solid_f...@base 0 pixman_image_fill_bo...@base 0.18.0 pixman_image_fill_rectang...@base 0.15.14 + pixman_image_get_component_al...@base 0.19.6 pixman_image_get_d...@base 0 pixman_image_get_de...@base 0 pixman_image_get_destroy_d...@base 0.18.0 + pixman_image_get_for...@base 0.19.6 pixman_image_get_hei...@base 0 pixman_image_get_str...@base 0 pixman_image_get_wi...@base 0 @@ -64,6 +66,7 @@ libpixman-1.so.0 libpixman-1-0 #MINVER# pixman_region32_init_re...@base 0.11.2 pixman_region32_init_with_exte...@base 0.11.2 pixman_region32_inters...@base 0.11.2 + pixman_region32_intersect_r...@base 0.19.6 pixman_region32_inve...@base 0.11.2 pixman_region32_n_re...@base 0.11.2 pixman_region32_not_em...@base 0.11.2 @@ -86,6 +89,7 @@ libpixman-1.so.0 libpixman-1-0 #MINVER# pixman_region_init_re...@base 0 pixman_region_init_with_exte...@base 0 pixman_region_inters...@base 0 + pixman_region_intersect_r...@base 0.19.6 pixman_region_inve...@base 0 pixman_region_n_re...@base 0 pixman_region_not_em...@base 0 commit 865f80fd773eda54448db368b4077ee1db6f6bee Author: Cyril Brulebois <[email protected]> Date: Wed Oct 27 22:13:24 2010 +0200 Update changelogs. diff --git a/ChangeLog b/ChangeLog index 367554f..b80f15d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,1064 @@ +commit 3193481ee64ab0cc9feb64c96d92bf034d44e1f4 +Merge: d105134 97336fa +Author: Cyril Brulebois <[email protected]> +Date: Wed Oct 27 20:55:24 2010 +0200 + + Merge remote branch 'origin/upstream-experimental' into upstream-experimental + + Use -s ours to move to upstream's pixman-0.19.6 tag. + +commit d1051340155a099a523e71377b1d889eec8b972e +Author: Søren Sandmann Pedersen <[email protected]> +Date: Wed Oct 20 16:25:55 2010 -0400 + + Pre-release version bump to 0.19.6 + +commit a966cd04c16ad0c34b0f17e9021a4f3532575ca4 +Author: Andrea Canciani <[email protected]> +Date: Tue Oct 12 15:38:20 2010 +0200 + + Fix an overflow in the new radial gradient code + + huge-radial in the cairo test suite pointed out an undocumented + overflow in the radial gradient code. + By casting to pixman_fixed_48_16_t before doing the operations, + the overflow can be avoided. + +commit 70658f0a6bd451a21fbb43df7865a7dac95abe24 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Wed Oct 20 16:09:44 2010 -0400 + + Remove the class field from source_image_t + + The linear gradient was the only image type that relied on the class + being stored in the image struct itself. With the previous changes, it + doesn't need that anymore, so we can delete the field. + +commit 741c30d9d9cf445fa2e3a2c43d37c221d49831b4 +Author: Andrea Canciani <[email protected]> +Date: Wed Oct 20 21:24:32 2010 +0200 + + Remove unused enum value + + The new linear gradient code doesn't use SOURCE_IMAGE_CLASS_VERTICAL + anymore and it was not used anywhere else. + +commit 9b72fd1b857494ea928795c89a4f827e56fe26d3 +Author: Andrea Canciani <[email protected]> +Date: Mon Oct 18 22:21:52 2010 +0200 + + Make classification consistent with rasterization + + Use the same computations to classify the gradient and to + rasterize it. + This improves the correctness of the classification by + avoiding integer division. + +commit 1d4f2d71facd5f2bbce74fbe3407ccea6cf4bea1 +Author: Andrea Canciani <[email protected]> +Date: Wed Aug 11 09:58:05 2010 +0200 + + Improve precision of linear gradients + + Integer division (without keeping the remainder) can discard a lot + of information. Doing the division maths in floating point (and + paying attention to error propagation) allows to greatly improve + the precision of linear gradients. + +commit f6ab20ca6604739b82311fc078d6ce850f43adc0 +Author: Andrea Canciani <[email protected]> +Date: Tue Oct 12 09:52:53 2010 +0200 + + Add comments about errors + + Explain how errors are introduced in the computation performed for + radial gradients. + +commit 1ca715ed1e6914e9bd9f050065e827d7a9e2efc9 +Author: Andrea Canciani <[email protected]> +Date: Sun Aug 15 09:07:33 2010 +0200 + + Draw radial gradients with PDF semantics + + Change radial gradient computations and definition to reflect the + radial gradients in PDF specifications (see section 8.7.4.5.4, + Type 3 (Radial) Shadings of the PDF Reference Manual). + + Instead of having a valid interpolation parameter value for every + point of the plane, define it only for points withing the area + covered by the family of circles generated by interpolating or + extrapolating the start and end circles. + + Points outside this area are now transparent black (rgba 0 0 0 0). + Points within this area have the color assiciated with the maximum + value of the interpolation parameter in that point (if multiple + solutions exist within the range specified by the extend mode). + +commit e46be417cebac984a858da05e61d924889695c9e +Author: Søren Sandmann Pedersen <[email protected]> +Date: Fri Oct 8 07:44:20 2010 -0400 + + Plug leak in the alphamap test. + + The images are being created with non-NULL data, so we have to free it + outselves. This is important because the Cygwin tinderbox is running + out of memory and produces this: + + mmap failed on 20000 1507328 + mmap failed on 40000 1507328 + mmap failed on 20000 1507328 + mmap failed on 40000 1507328 + mmap failed on 40000 1507328 + mmap failed on 40000 1507328 + + http://tinderbox.x.org/builds/2010-10-05-0014/logs/pixman/#check + +commit 6ed7164de5f74b752d85834b53e89810f1d0a560 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Wed Oct 6 02:40:39 2010 -0400 + + Add no-op combiners for DST and the CA versions of the HSL operators. + + We already exit early for DST, but for the HSL operators with + component alpha, we crash at the moment. Fix that by adding a dummy + combine_dst() function. + +commit 233b27257b63ecd502c6392e5ef3a7f736f14365 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Oct 5 11:05:25 2010 -0400 + + test: Add some more colors to the color table in composite.c + + Specifically, add transparent black and superluminescent white with + alpha = 0. + +commit 3f7da59352b604bd6974230d0b149e8e7da77b5c +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Oct 5 09:49:45 2010 -0400 + + test: Parallize composite.c with OpenMP + + Each test uses the test number as the random number seed; if it + didn't, all the threads would run the same tests since they would all + start from the same seed. + +commit a10ccc9f303ca6b4577afe68cc6b2d8840de5a27 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sun Mar 7 11:26:16 2010 -0500 + + test: Change composite so that it tests randomly generated images + + Previously this test would try to exhaustively test all combinations + of formats and operators, which meant that it would take hours to run. + Instead, generate images randomly and test compositing those. + + Cc: [email protected] + +commit 55e4065cbbc5ffe2ce1986b51ef63e8a0b50fccb +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sun Mar 7 11:24:30 2010 -0500 + + test: Fix eval_diff() so that it provides useful error values. + + Previously, this function would evaluate the error under the + assumption that the format was 565 or wider. This patch changes it to + take the actual format into account. + + With that fixed, we can turn on testing for the rest of the formats. + + Cc: [email protected] + +commit fe411cf2ac4d5b26a319b906dee87e0cc69d2ad6 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sun Mar 7 10:31:04 2010 -0500 + + test: Fix bug in color_correct() in composite.c + + This function was using the number of bits in a channel as if it were + a mask, which lead to many spurious errors. With that fixed, we can + turn on testing for all formats where all channels have 5 or more + bits. + + Cc: [email protected] + +commit 4e89a5b7f3b039fcc86dff7fb8bec79884c913e8 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Oct 5 11:08:42 2010 -0400 + + Remove broken optimizations in combine_disjoint_over_u() + + The first broken optimization is that it checks "a != 0x00" where it + should check "s != 0x00". The other is that it skips the computation + when alpha is 0xff. That is wrong because in the formula: + + min (1, (1 - Aa)/Ab) + + the render specification states that if Ab is 0, the quotient is + defined to positive infinity. That is the case even if (1 - Aa) is 0. + +commit 8d76c1b3391e1165aaf9e0f331749aee1394f62c +Author: Siarhei Siamashka <[email protected]> +Date: Mon Oct 4 04:49:08 2010 +0300 + + ARM: restore fallback to ARMv6 implementation from NEON in the delegate chain + + After fast path cache introduction, the overhead of having this fallback is + insignificant. On the other hand, some of the ARM assembly optimizations (for + example nearest neighbor scaling) do not need NEON. + +commit c748650d700c2f18f1587f06ada3b58d6ddc18d3 +Author: Siarhei Siamashka <[email protected]> +Date: Wed Sep 8 09:30:23 2010 +0300 + + Use more unrolling for scaled src_0565_0565 with nearest filter + + Benchmark from Intel Core i7 860: + + == before == + op=1, src_fmt=10020565, dst_fmt=10020565, speed=1335.29 MPix/s + + == after == + op=1, src_fmt=10020565, dst_fmt=10020565, speed=1550.96 MPix/s + + == performance of nonscaled src_0565_0565 operation as a reference == + op=1, src_fmt=10020565, dst_fmt=10020565, speed=2401.31 MPix/s + + Benchmark from ARM Cortex-A8: + + == before == + op=1, src_fmt=10020565, dst_fmt=10020565, speed=81.79 MPix/s + + == after == + op=1, src_fmt=10020565, dst_fmt=10020565, speed=89.55 MPix/s + + == performance of nonscaled src_0565_0565 operation as a reference == + op=1, src_fmt=10020565, dst_fmt=10020565, speed=197.44 MPix/s + +commit a520c15e1134d9e801bc2ab461a3c5ade60544f2 +Author: Siarhei Siamashka <[email protected]> +Date: Thu Sep 23 23:41:50 2010 +0300 + + ARM: added 'neon_composite_out_reverse_8_0565' fast path + + == before == + + outrev_8_0565 = L1: 22.91 L2: 22.40 M: 18.75 ( 10.47%) + HT: 12.62 VT: 12.22 R: 11.32 RT: 5.30 ( 58Kops/s) + + == after == + + outrev_8_0565 = L1: 176.27 L2: 151.70 M:108.79 ( 60.81%) + HT: 50.43 VT: 37.16 R: 32.26 RT: 9.62 ( 97Kops/s) + +commit d8820360f79d07e03c91ecd201880bc6b1706f19 +Author: Siarhei Siamashka <[email protected]> +Date: Thu Sep 23 22:28:55 2010 +0300 + + ARM: added 'neon_composite_add_0565_8_0565' fast path + + == before == + + add_0565_8_0565 = L1: 14.05 L2: 14.03 M: 11.57 ( 12.94%) + HT: 8.31 VT: 8.10 R: 7.47 RT: 3.64 ( 42Kops/s) + + == after == + + add_0565_8_0565 = L1: 123.36 L2: 94.70 M: 74.36 ( 83.15%) + HT: 31.17 VT: 23.97 R: 21.06 RT: 6.42 ( 70Kops/s) + +commit 2f6c7b4f9d36261d2efe494a925faf063376ba30 +Author: Siarhei Siamashka <[email protected]> +Date: Fri May 21 16:31:03 2010 +0300 + + ARM: NEON: added forgotten cache preload for over_n_8888/over_n_0565 + + Prefetch provides up to 40-50% better performance when working + with large images and/or when having lots of L2 cache misses + on ARM Cortex-A8 @ 720MHz: + + == before == + + over_n_8888 = L1: 225.83 L2: 181.02 M: 55.57 ( 41.41%) + HT: 38.96 VT: 36.92 R: 32.84 RT: 14.15 ( 123Kops/s) + + over_n_0565 = L1: 153.91 L2: 149.69 M: 83.17 ( 30.95%) + HT: 50.41 VT: 49.15 R: 40.56 RT: 15.45 ( 131Kops/s) + + == after == + + over_n_8888 = L1: 222.39 L2: 170.95 M: 76.86 ( 57.27%) + HT: 58.80 VT: 53.03 R: 45.51 RT: 14.13 ( 124Kops/s) + + over_n_0565 = L1: 151.87 L2: 149.54 M:125.63 ( 46.80%) + HT: 67.85 VT: 57.54 R: 50.21 RT: 15.32 ( 130Kops/s) + +commit b924bb1f8191cc7c386d8211d9822aeeaadcab44 +Author: Mika Yrjola <[email protected]> +Date: Fri Oct 1 16:17:50 2010 +0300 + + Fix "syntax error: empty declaration" warnings. + + These minor changes should fix a large number of + macro declaration - related "syntax error: empty declaration" warnings + which are seen while compiling the code with the Solaris Studio + compiler. + +commit 73c1fefa1b99efa36b74599f455df9426209378e +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 28 00:51:07 2010 -0400 + + Delete simple repeat code + + This was supposedly an optimization, but it has pathological cases + where it definitely isn't. For example a 1 x n image will cause it to + have terrible memory access patterns and to generate a ton of modulus + operations. + + Since no one has ever measured whether it actually is an improvement, + and since it is doing the repeating at the wrong the stage in the + pipeline, and since with the previous commit it can't be triggered + anymore because we now require SAMPLES_COVER_CLIP for regular fast + paths, just delete it. + +commit a4d1c9d3831751008db61a48d6a6cb12ed33f314 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 28 00:42:25 2010 -0400 + + Fix bug in FAST_PATH_STD_FAST_PATH + + The standard fast paths deal with two kinds of images: solids and + bits. These two image types require different flags, but + PIXMAN_STD_FAST_PATH uses the same ones for both. + + This patch makes it so that solid images just get the standard flags, + while bits images must be untransformed contain the destination clip + within the sample grid. + + This means that the old FAST_PATH_COVERS_CLIP flag is now not used + anymore, so it can be deleted. + +commit 10e13135c3538f0909f27eaacc17e9e13f199a7c +Author: Dmitri Vorobiev <[email protected]> +Date: Tue Sep 28 14:42:02 2010 +0300 + + Some clean-ups in fence_malloc() and fence_free() + + This patch removes an unnecessary typecast of MAP_FAILED, + replaces an erroneous free() by the correct munmap() in the + error path for a failing mprotect(), and, finally, removes + redundant calls to mprotect() that aren't necessary, because + munmap() doesn't call for any specific memory protection. + +commit ba693d2e88b6f4c871d804fb62d7435915c85dfc +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 28 02:52:02 2010 -0400 + + Fix search-and-replace issue in lowlevel-blt-bench.c + +commit 77d3e5f6ff719f53398b5675e5219d0e3b9746c1 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Fri Sep 17 09:21:09 2010 -0400 + + Rename all the fast paths with _8000 in their names to _8 + + This inconsistent naming somehow survived the refactoring from a while + back. + +commit ba69989374fe9cbe5151c5aac7b824da0806f94a +Author: Liu Xinyun <[email protected]> +Date: Sat Sep 25 14:56:38 2010 +0800 + + Remove cache prefetch code. + + The performance is decreased with cache prefetch, especially for + ATOM. So remove these code. Following is the experiment. + + old: 0.19.5-with-cache-prefetch + new: 0.19.5-without-cache-prefetch + + CPU: Intel Atom [email protected] + OS: MeeGo (32 bits) + Speedups + ======== + image-rgba poppler-0 17125.68 (17279.58 0.92%) -> 14765.36 (15926.49 3.54%): 1.16x speedup + image-rgba ocitysmap-0 9008.25 (9040.41 7.50%) -> 8277.94 (8343.09 5.44%): 1.09x speedup + image-rgba xfce4-terminal-a1-0 18020.76 (18230.68 0.97%) -> 16703.77 (16712.42 1.22%): 1.08x speedup + image-rgba gnome-terminal-vim-0 25081.38 (25133.38 0.24%) -> 23407.47 (23652.98 0.54%): 1.07x speedup + image-rgba firefox-talos-gfx-0 57916.97 (57973.20 0.11%) -> 54556.64 (54624.55 0.39%): 1.06x speedup + image-rgba firefox-planet-gnome-0 102377.47 (103496.63 0.70%) -> 96816.65 (97075.54 0.15%): 1.06x speedup + image-rgba swfdec-giant-steps-0 12376.24 (12616.84 1.02%) -> 11705.30 (11825.20 1.06%): 1.06x speedup + + CPU: Intel Core(TM)2 Duo CPU [email protected] + OS: Ubuntu 10.04 (64bits) + Speedups + ======== + image-rgba ocitysmap-0 2671.46 (2691.82 8.55%) -> 2296.20 (2307.26 5.77%): 1.16x speedup + image-rgba swfdec-giant-steps-0 1614.55 (1615.18 1.68%) -> 1532.84 (1538.52 0.72%): 1.05x speedup + + Signed-off-by: Liu Xinyun <[email protected]> + Signed-off-by: Chen Miaobo <[email protected]> + +commit 56777f3f675869806cd30bcd21a5b39d788507cb +Author: Dmitri Vorobiev <[email protected]> +Date: Wed Sep 22 12:34:57 2010 +0300 + + Use <sys/mman.h> macros only when they are available + + Not all systems are regular Unices, so let's be careful with the + mmap()-related stuff, which might be unavailable. This patch makes + sure that mmap() and friends is used only when the <sys/mman.h> + header is found. + +commit 39524a4687391c68f4177e8671f4b2bd39e05850 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 21 14:20:43 2010 -0400 + + Revert "add enable-cache-prefetch option" + + Revert this accidentally committed patch. + + This reverts commit 19ea0e16b958e5abe491365c203293ab372f3586. + +commit e97da2104967f4c99aed40e89f3e0141ceed7040 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 21 14:12:00 2010 -0400 + + If MAP_ANONYMOUS is not defined, define it to MAP_ANON. + + This hopefully fixes the build failure on OS X. + +commit 19ea0e16b958e5abe491365c203293ab372f3586 +Author: Liu Xinyun <[email protected]> +Date: Wed Sep 22 00:15:10 2010 +0800 + + add enable-cache-prefetch option + + OK. here is the work to clear all cache prefetch. Please review it. 3x + + On Tue, Sep 21, 2010 at 11:36:30PM +0800, Soeren Sandmann wrote: + > Liu Xinyun <[email protected]> writes: + > + > > This patch is to add a new configuration option: enable-cache-prefetch, + > > which is default yes. + > > + > > Here is a link which talks on cache issue. + > > http://lists.freedesktop.org/archives/pixman/2010-June/000218.html + > > + > > When disable it on Atom CPU(configured with --enable-cache-prefetch=no), + > > it will have a little performance gain. Here is the patch. + > + > I think the cache prefetch code should just be deleted outright. No + > benchmarks that I'm aware of show it to be an improvement. + > + > + > Thanks, + > Soren + + >From bca2192ef524bcae4eea84d0ffed9e8c4855675f Mon Sep 17 00:00:00 2001 + From: Liu Xinyun <[email protected]> + Date: Wed, 22 Sep 2010 00:11:56 +0800 + Subject: [PATCH] remove cache prefetch + +commit edd173396604b052fd76971d0efa0c8db40cf1f3 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 21 10:18:44 2010 -0400 + + Post-release version bump to 0.19.5 + +commit e5b3a6e7105af590d72e2ae986f9985f71cc88f5 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 21 10:11:34 2010 -0400 + + Pre-release version bump to 0.19.4 + +commit 0742ba41646853a5edf90c2f3102f49b248321ee +Author: Søren Sandmann Pedersen <[email protected]> +Date: Tue Sep 21 10:05:52 2010 -0400 + + compute_composite_region32: Zero extents before returning FALSE. + + If the extents of the composite region are broken such that x2 <= x1 + or y2 <= y1, then we need to zero the extents before returning so that + the region won't be completely broken when calling + pixman_region32_fini(). + +commit 7cd4f2fa201c4dc846153c022423e3dced2cfb13 +Author: Jonathan Morton <[email protected]> +Date: Fri Sep 17 17:52:23 2010 +0300 + + Add a lowlevel blitter benchmark + + This test is a modified version of Siarhei's compositor throughput + benchmark. It's expanded with explicit reporting of memory bandwidth + consumption for the M-test, and with an additional 8x8-random test + intended to determine peak ops/sec capability. There are also quite a + lot more operations tested for. + +commit eab3a77877b0e850c46f95dacffb31994e6a7e41 +Author: Dmitri Vorobiev <[email protected]> +Date: Fri Sep 17 17:52:22 2010 +0300 + + Add noinline macro + + This patch adds a noinline macro, which expands to compiler-dependent + keywords that tell the compiler to never inline a function. + +commit cab3261c0da6e833d803a7f3ccab600adca7abe1 +Author: Dmitri Vorobiev <[email protected]> +Date: Fri Sep 17 17:52:21 2010 +0300 + + Add gettime() routine to test utils + + Impending benchmark code will need a function to get current time + in seconds, and this patch introduces such routine. We try to use + the POSIX gettimeofday() function when available, and fall back to + clock() when not. + +commit fd3c87d460a6d1803880d17af416cce344a086c4 +Author: Dmitri Vorobiev <[email protected]> +Date: Fri Sep 17 17:52:20 2010 +0300 + + Move aligned_malloc() to utils + + The aligned_malloc() routine will be used in more than one test utility. + At least, a low-level blitter benchmark needs it. Therefore, let's make + this function a part of common test utilities code. + +commit f474783607e51183d31814972d0f055907876079 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:33:23 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_normal_r5g6b5 + +commit 91521d30ab9b033a35fb7797e4566d575ad1c1dc +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:33:10 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_reflect_r5g6b5 + +commit 372d7b954aee4f3a2ad94ed8484a2b4084db0c7c +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:33:00 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_none_r5g6b5 + +commit a826ae0e3a0279557e892856ef1333971b105d01 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:32:44 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_pad_r5g6b5 + +commit c5238bd1809433af5b0efc3add23c1ccb4da884c +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:32:27 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_normal_a8 + +commit d12daefcdb8845e539309df46b08916829a86d9c +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:32:12 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_reflect_a8 + +commit 9388be32932898ed424c8916a57a6201f995416b +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:31:57 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_none_a8 + +commit 8e4d4e8d110c379cb85f53752660c6b2fab33d5e +Author: Søren Sandmann Pedersen <[email protected]> +Date: Thu Sep 16 10:31:45 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_pad_a8 + +commit ce1f6c50b4ddf8f7c48a3b272c19d281beca4b34 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:41:20 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_normal_x8r8g8b8 + +commit 83f2ee3e958a02fc85a2dc6eddc048b63d74cd5c +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:41:08 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_reflect_x8r8g8b8 + +commit be37ae331c6e5e9539b0c1eac6e196366532df29 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:40:56 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_none_x8r8g8b8 + +commit 5f8a9bebc04deb55de79e7443578779a93b8cfa6 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:40:46 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_pad_x8r8g8b8 + +commit c59584cb862ef8774a2ef1eabb87fef18506d10f +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:40:16 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_normal_a8r8g8b8 + +commit 2292cff304fd5aad6dbcc86342a57ea523136de6 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:40:03 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_reflect_a8r8g8b8 + +commit 8b29162693adc30dbb5c0f60098d2853c3942c36 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:39:51 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_none_a8r8g8b8 + +commit e8555874e122f6e113f85e37059932457ee509cb +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sat Aug 28 02:39:37 2010 -0400 + + Enable bits_image_fetch_bilinear_affine_pad_a8r8g8b8 + +commit f9778c15e9c01c02e0002edfc4d4a1d517d14d87 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sun May 23 04:44:33 2010 -0400 + + Use a macro to generate some {a,x}8r8g8b8, a8, and r5g6b5 bilinear fetchers. + + There are versions for all combinations of x8r8g8b8/a8r8g8b8 and + pad/repeat/none/normal repeat modes. The bulk of each scaler is an + inline function that takes a format and a repeat mode as parameters. + + The new scalers are all commented out, but the next commits will + enable them one at a time to facilitate bisecting. + +commit 6d1e10a8b5c456ee501a309f5cf2f801efcf63b0 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Wed Jul 14 16:27:27 2010 -0400 + + test: Add affine-test + + This test tests compositing with various affine transformations. It is + almost identical to scaling-test, except that it also applies a random + rotation in addition to the random scaling and translation. + +commit 4fa33537d7093ac759b7ded1718a628dacd2aff4 +Author: Søren Sandmann Pedersen <[email protected]> +Date: Sun Sep 12 06:07:41 2010 -0400 + + analyze_extents: Fast path for non-transformed BITS images -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

