commit 92865d4decd4607086c22187b8892af9c74fe2f0
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Dec 15 11:09:33 2009 -0500

    Pre-release version bump

commit ec6de472d042bec05aaa53f9d14bfbe23edbe01e
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Dec 11 11:14:19 2009 -0500

    region: Enable or disable fatal errors and selfchecks based on version number
    
    There is a couple of bugs in bugzilla where bugs in the X server
    triggered asserts in the pixman region code. It is probably better to
    let the X server survive this. (In fact, I thought I had disabled them
    for 0.16.0, but apparently not).
    
    The patch below uses these rules:
    
        - In _stable_ pixman releases, assertions and selfchecks are turned
          off. Assertions, so that the X server doesn't die. Selfchecks,
          for performance reasons.
    
        - In _unstable_ pixman releases, both assertions and selfcheck are
          turned on. These releases are what get added to development
          distributions such as rawhide, so we want as much self-checking
          as possible.
    
        - In _random git checkouts_, assertions are enabled, so that bugs
          are caught, but selfchecks are disabled so that you can use them
          for performance work without having to fiddle with turning
          selfchecks off.

commit f1ecbaba0c5886dd1c099de3496d595ad1513a49
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Sep 28 09:31:25 2009 -0400

    Post-release version bump

commit 601e4dc6fd78984701a231e48fabd1e1e3e23d38
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Sep 28 09:20:13 2009 -0400

    Pre-release version bump

commit b765dcb554e4328c8502433474a28af30c0bb7f3
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Sep 28 08:59:11 2009 -0400

    Update CRC in blitters-test for the changes in 10bpc alpha handling

commit 66f7581ccf8157777c9bfc0116858adb140ee4ca
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Sat Sep 26 13:12:14 2009 -0400

    Fix fetch-test for big-endian systems.
    
    Data narrower than 32bpp should be stored in the correct
    endian. Reported by Andrea Canciani.

commit 485c1f54b4abb2e1677627b713e086b45ca63eea
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Sep 18 08:16:56 2009 -0400

    Fix bug in blitters-test with BGRA formats.
    
    When masking out the x bits, blitter-test would make the incorrect
    assumption that the they were always in the topmost position. This is
    not correct for formats of type PIXMAN_TYPE_BGRA.

commit 8f5cca82aca953ee4d87a7d576ff67ddcab85b6a
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Sep 18 09:11:04 2009 -0400

    Fix alpha handling for 10 bpc formats.
    
    These generally extracted the 2 bits of alpha, then shifted them 62
    bits and replicated across 16 bits. Then they were shifted another 48
    bits, making the resulting alpha channel 0.

commit 09a71a0dc0937264f456c246dc98830f942a6479
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Sep 24 05:22:33 2009 -0400

    Return result from pixman_image_set_transform().
    
    Previously it would always return TRUE, even when malloc() had failed.

commit 8138f908aa10e5581f83ebfb5f53d81ad39437bd
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Sep 15 07:43:23 2009 -0400

    Revert "Enable component alpha on solid masks."
    
    For consistency we will probably want to allow component alpha to be
    set on all masks at some point, but not in the stable branch, and this
    commit only enabled it for solid images anyway.
    
    This reverts commit 29e22cf38e8abc54b9dddbdeb3909d02866a82a0.

commit 77627554bcc81f4aa3cb81f8158075aa6f20eca1
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Sep 10 21:33:24 2009 -0400

    Fix off-by-one error in source_image_needs_out_of_bounds_workaround()
    
    If extents->x2/y2 are equal to image->width/height, then the clip is
    still inside the drawable, so no workaround is necessary.

commit c31cd73a09616cdec9bd91800d9410ba1f8adf09
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Sep 14 18:48:32 2009 -0400

    Remove optimization for 0xffffffff and 0xff the add_n_8888_8888_ca fast path
    
    This is an ADD operation, not an OVER. Fixes bug 23934, reported by
    Siarhei Siamashka.

commit 8035df8bcb01c2df42b8adf8b96c7ac796f384cc
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Aug 16 12:16:46 2009 +0100

    Remove duplicated declaration
    
    The pixman_tranform_pixman_f_transform() declaration is repeated 4 lines
    down.

commit 29e22cf38e8abc54b9dddbdeb3909d02866a82a0
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 16:26:29 2009 +0100

    Enable component alpha on solid masks.

commit 9fe2628702785e8db45593709c0aec54043a50e7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Sun Sep 13 16:26:52 2009 +0100

    [sse2] Bit-reversing typo: src != dst

commit 2186bc89486f9f11161b0db280a869c6849c867e
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Fri Sep 4 14:14:00 2009 +0300

    Change CFLAGS order for PPC and ARM configure tests
    
    CFLAGS are always appended to the end of gcc options when compiling
    sources in autotools based projects. Configure tests should do the
    same. Otherwise build fails on PPC when using CFLAGS="-O2 -mno-altivec"
    for example. Similar problem affects ARM.

commit 15304e3cddd6568ba6d5d1d3030568c3db7b05cc
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Wed Sep 2 19:46:47 2009 +0300

    ARM: Remove fallback to ARMv6 implementation from NEON delegate chain
    
    This can help to fix build problems with '-mthumb' gcc option in CFLAGS.
    ARMv6 optimized code can't be compiled for thumb (because of its inline
    assembly) and gets automatically disabled in configure. Reference
    to it from NEON optimized code resulted in linking problems.
    
    Every ARMv6 optimized fast path function also has a better NEON
    counterpart, so there is no need to fallback to ARMv6. Shorter
    delegate chain should additionally result in a bit better performance.

commit 61b616067c3e8b2ff84fbf57f479a90cc9fa5344
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Aug 31 23:02:53 2009 +0100

    Default to optimised builds when using a Sun Studio compiler.
    
    Autoconf's AC_PROG_CC sets the default CFLAGS to -O2 -g for
    gcc and -g for every other compiler.  This patch defaults
    CFLAGS to the equivalent -O -g when we're using Sun Studio's cc
    if the user or site admin hasn't already set CFLAGS.

commit 20acda6fde8441e18aab33980a33b099a16063eb
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Aug 31 20:27:32 2009 +0100

    Work around a Sun Studio 12 code generation bug involving _mm_set_epi32().
    
    Calling a static function wrapper around _mm_set_epi32() when not
    using optimisation causes Sun Studio 12's cc to emit a spurious
    floating point load which confuses the assembler.  Using a macro wrapper
    rather than a function steps around the problem.

commit e30c0037d44bf76a26182080be24c7037d7be5b5
Author: M Joonas Pihlaja <jpihlaja@cc.helsinki.fi>
Date:   Mon Aug 31 20:24:04 2009 +0100

    Work around differing _mm_prefetch() prototypes on Solaris.
    
    Sun Studio 12 expects the address to prefetch to be
    a const char pointer rather than a __m128i pointer or
    void pointer.

commit 698b686d58c510e1b8a9183750d00cbd9ed504b2
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Fri Aug 28 22:34:21 2009 +0300

    ARM: workaround for gcc bug in vshll_n_u8 intrinsic
    
    Some versions of gcc (cs2009q1, 4.4.1) incorrectly reject
    shift operand having value >= 8, claiming that it is out of
    range. So inline assembly is used as a workaround.

commit b02b644d7017f794be2296c6354e44fd119d2477
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Sep 2 16:09:32 2009 -0400

    Set version number to 0.16.1

commit d465f854b3d5f2ffcc122aebfbead2d64cca7169
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
Date:   Tue Sep 1 10:59:05 2009 +0900

    Add CPU detection for VC++ x64
    
    VC++ x64 has no inline assembler and x64 mode supports SSE2.
    So, it is unnecessary to call cpuid.

commit 57812465bf975e943e78d59dabbd5e6bb2ad87ef
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 28 07:55:30 2009 -0400

    Pre-release version bump

commit 9e1a34a0d177e8c2381f419b0a04310da8cdde2b
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 28 06:31:06 2009 -0400

    _pixman_run_fast_path: typo
    
    This is one example of a compiler warning that was lost amit the build
    noise.
    
    The error here is that in a list of required conditions we used ';'
    instead of '&&' with the result of continuing to use the fast-path
    even if we had a wide mask.
    
    Another error is that it was testing src, not mask as it should.

commit 83d607cbf1d3852f91b52a427bee30fffc3029e7
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
Date:   Fri Aug 28 04:09:15 2009 -0400

    Remove spurious spaces in pixman-x64-mmx-emulation.h

commit ce966f4d8e8aa9a4465e2ab28666bae891194a72
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 12 14:08:58 2009 -0400

    Check if we have posix_memalign() in configure.ac. [23260, 23261]
    
    Fall back to malloc() in blitters-test.c if we don't.

commit 29c2ae4a0cf924cb011467687a4c43237fb2316c
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Wed Aug 12 20:22:24 2009 +0300

    ARM: a fix to pass blitters-test for 'neon_composite_over_n_8_0565'
    
    Inline assembly for handling <8 pixels width did not pass blitters-test.
    Fortunately gcc has no problems compiling alternative implementation
    which is using RVCT style intrinsics, so it can be used instead.

commit ed4598f08a359346d14fe5b2bbb7b74c40332b18
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Aug 11 14:03:24 2009 -0400

    Post-release version bump

commit bfdae053eaff528aa869bc05a0520ab22d540a08
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Aug 11 13:56:16 2009 -0400

    Pre-release version-bump

commit d6016d406a649f7a95bec2a477dfd89ba280188d
Merge: 93923c6 e084351
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Aug 11 02:04:40 2009 -0400

    Merge branch 'blitter-test'

commit 93923c626f2df18e29e215410e6d4bb2f5c1616f
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Aug 10 20:47:36 2009 -0400

    Fix x/y mixup in bits_image_fetch_pixel_convolution()
    
    Bug 23224, reported by Michel Dänzer.

commit e084351b13faad6a3ba67808b5721957b51d16f0
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 00:45:53 2009 -0400

    Update CRC value in blitters-test.
    
    At this point, the SIMD, SSE2, MMX and general implementations all
    agree.

commit ba5c5325e77b36374d3be22bd92816c332a321bb
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 00:25:56 2009 -0400

    Various formatting fixes

commit cc5c59b3f25dc595ce17a876e89ca549bb477e46
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 16:28:10 2009 -0400

    Add the ability to print intermediate CRC values

commit 0bc4adae3eb758a2cd9026397c284bd6cc7bcd65
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 15:53:33 2009 -0400

    Reenable commented-out tests in blitter-test.
    
    The crashes and valgrind issues are all fixed at this point.

commit 9ee18806a944ddde36dc1b045f89f02d025cbe48
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Mon Aug 3 00:01:01 2009 +0300

    One more update to blitters-test - use aligned memory
    allocations in order in order to make reproducibility
    of alignment sensitive bugs more deterministic
    Also testing of masks is reenabled

commit 4fc0f9dd456bb4ad1f47e1733b02a3b491f425ed
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Sat Aug 1 02:20:12 2009 +0300

    HACK: updated test to better cover new neon optimizations

commit 67769ad5bf15450d0fd0d83643e3533a9f563916
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Wed Jul 22 01:29:51 2009 +0300

    Test program for stressing the use of different formats and operators
    
    The code and overall method is mostly based on scaling-test. This one
    focuses on trying to stress as many different color formats and types
    of composition operations as possible.
    
    This is an initial implementation which may need more tuning. Also
    not all color format and operator combinations are actually used.
    
    When cpu specific optimizations are disabled, this test provides
    identical deterministic results on x86, PPC and ARM.
    
    Script blitters-test-bisect.rb now works in non-stop mode, until
    it finds any problem. This allows to run it for example overnight
    in order to test a lot more variants of pixman calls and increase
    chances of detecting problems in pixman. Just like with scaling-test,
    running blitters-test binary alone with no command line arguments
    runs a small predefined number of tests and compares checksum
    with a reference value for quick verification.

commit 51f597ad3258dd85b4620ac2bf0df8ca2e0ed182
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 12:00:07 2009 -0400

    Delete commented out code in pixman-vmx.c

commit a590eabead0a0c405a7293d8689b9992de5a689b
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:53:50 2009 -0400

    Misc formatting fixes for pixman-vmx.c

commit 0ebb587e2460024fb306597799ae4974441511ec
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:48:22 2009 -0400

    In vmx_combine_atop_reverse_ca() extract alpha after inversing

commit 3d2f00783f2972ba5311937057ea8d452f942a36
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:46:09 2009 -0400

    Really fix vmx_combine_over_reverse_ca()
    
    The inverse destination alpha is just one component, not four.

commit 2f62a4f46c1e99ddb1b7ca6d5db9410d12f32e63
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:40:42 2009 -0400

    Fix vmx_combine_out_reverse_ca()
    
    The source alpha is just one component, not four.

commit 7e58323385e442fb2cea207780db5e30be88be96
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:38:03 2009 -0400

    Fix vmx_over_reverse_ca()
    
    Destination alpha must be extracted after inversing, otherwise we end
    up with 0xFFs in the rgb channels.

commit 2382bd9e2724944a05ce8a581e9ddc31e299a0c6
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:35:20 2009 -0400

    Multiply with the alpha of dest, not inverse alpha

commit 498df0f0bf2437130ed305fb757ae0fae90bebb7
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:32:31 2009 -0400

    Fix vmx_combine_vmx_atop_ca()
    
    It didn't compute the mask correct before.

commit 9650cd7432ef03c05895df04940e2ab6245f2618
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:26:23 2009 -0400

    Fix vmx_combine_over_ca().
    
    In the non-vector code, the mask needs to be multiplied with source
    alpha.

commit 38b9589fe6b14c822a2a4000df364d132e390f7a
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:21:43 2009 -0400

    In vmx_combine_out_ca() multiply with the alpha of the negated vdest.

commit de180baba3a3e7eedeb09ff7d5f4d3eff3ffc6f4
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:16:31 2009 -0400

    Fix vmx_combine_out_ca()
    
    It should multiply with just the destination alpha channel, not all
    four channels.

commit 5191421d1f143cca76afa1f4fbffa68f89a5d393
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 11:07:16 2009 -0400

    Do the full four-component IN computation in vmx_combine_in_ca().

commit 27fb8378fdae930475cf4528c539a78bfbd751c5
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 10:54:16 2009 -0400

    Fix bug in vmx_combine_xor_ca()
    
    The destination needs to be inverted before the alpha channel is
    extracted; otherwise, the RGB channels of da will be 0xff.

commit c750667d7ac542dfa922a7970961b7095b44b8d3
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 01:07:01 2009 -0400

    Make pix_multiply bit-exact

commit 6243a0a015043f39531b98b9e8c4167f8bd47d82
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 23:50:32 2009 -0400

    Change the SSE2 versions of pix_add_multiply() to produce bit-exact results.

commit 404f4a6f3e71de5e411cb3bb1107d8ffb7c52e62
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 23:52:11 2009 -0400

    Fix a couple of alpha==0 vs src==0 issues in pixman-sse2.c

commit d9f80370a4d2ab54688e75256b3ea4267d8cc602
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 23:05:36 2009 -0400

    Rename mmx_composite_add_8888_8_8() to mmx_composite_add_n_8_8().

commit 04619c3636697684fdd9ada9842845f6c8dd3914
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 22:46:50 2009 -0400

    Fix a couple more alpha==0 vs src==0 bugs in pixman-mmx.c

commit a075a870fd7e1fa70ae176d5089c695011667388
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 22:42:25 2009 -0400

    Make pix_add_mul() in pixman-mmx.c produce exact results.
    
    Previously this routine would compute (x * a + y * b) / 255. Now it
    computes (x * a) / 255 + (y * b) / 255, so that the results are
    bitwise equivalent to the non-mmx versions.

commit f7463ffafb8876c1f47ed9c527df33d45255e16c
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 20:29:44 2009 -0400

    Rewrite the two-component arithmetic macros.
    
    Previously they were not bit-for-bit equivalent to the one-component
    versions. The new code is also simpler and easier to read because it
    factors out some common sub-macros.
    
    The x * a + y * b macro now only uses four multiplications - the
    previous version used eight.

commit 04ae08992f6381a8ffb50d8cba37753fdb58e3bf
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Aug 6 20:41:04 2009 -0400

    Fix a bunch of srca == 0 checks that should be src == 0 in pixman-mmx.c

commit 8bb58a3ce83d6b9c1f6796ce8e62450bdaa52cf0
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 21:24:50 2009 -0400

    Don't run fast paths if the format requires wide compositing.
    
    This could happen because the wide formats would still be considered
    solid if the image was 1x1 and repeating.

commit d937b622389797a8c605b2cc50c24ca759dc57d2
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 21:16:14 2009 -0400

    Fix bug in combine_mask_alpha_ca()
    
    If the mask was 0xffffffff, the source would end up being shifted
    twice by A_SHIFT.

commit 0d576b965c34a6d89b00f7b93dba6a7b8737c731
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 20:40:36 2009 -0400

    Fix another case of changing the solid source.
    
    This time in fast_path_composite_n_8888_8888().

commit 8b82cbb69197f9c367069a77ba992f3163d40230
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 20:31:41 2009 -0400

    Fix incorrect optimization in combine_over_ca().
    
    Previously the code assumed that an alpha of 0 meant that no change
    would take place. This is incorrect because an alpha of 0 can happen
    as the result of the source having alpha=0, but rgb != 0.

commit ec8b36f01030fd2fa67595f2aef4ca568b060899
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 18:18:37 2009 -0400

    Don't change the constant source in fast_composite_over_n_8888_0565.

commit de8fff746bfa80278f85859bef2dc0ab166f7a69
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Aug 5 16:17:52 2009 -0400

    Fix bugs in combine_over_reverse_ca().
    
    The computation cannot be optimized away when alpha is 0 because that
    can happen when the source has alpha zero and rgb non-zero.

commit 7b1df41b6110424b8dca9fa655dbc8dd95a76882
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Jul 31 17:27:38 2009 -0400

    Add a dirty bit to the image struct, and validate before using the image.
    
    This cuts down the number of property_changed calls significantly.

commit 942c4ac28209381668208a39ccc9aec4f11bf63f
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Jul 31 10:39:41 2009 -0400

    Add sse2 version of add_n_8888_8888()

commit 23d38201165876c031d314f73e09a75afcac4f00
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Jul 31 10:26:10 2009 -0400

    Add a fast path for the add_n_8888_8888() operation.
    
    It shows up on gnome-terminal traces.

commit c606a05213d1fe5d73b39454407414a2a245da39
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Jul 31 07:29:31 2009 -0400

    Move bounds checks for REPEAT_NONE to get_pixel()
    
    On a P4, this is a large speedup for the swfdec-fill-rate-2xaa trace:
    
    After:
    
    [ # ]  backend                         test   min(s) median(s) stddev. count
    [  0]    image        swfdec-fill-rate-2xaa   33.061   33.061   0.00%    1/1
    
    Before:
    
    [ # ]  backend                         test   min(s) median(s) stddev. count
    [  0]    image        swfdec-fill-rate-2xaa   40.342   40.342   0.00%    1/1
    
    Pixman 0.14.0 produces this:
    
    [ # ]  backend                         test   min(s) median(s) stddev. count
    [  0]    image        swfdec-fill-rate-2xaa   36.896   36.896   0.00%    1/1

commit 1bec3e8395a307812b25fb195823ac7cf2915340
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Jul 30 10:51:38 2009 -0400

    Remove leftover 0xffffffff in repeat()

commit 1b98166b016af5fa374ad534d53b772c7fd2c4a5
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Jul 30 10:45:18 2009 -0400

    Remove unused function

commit 06836d35d26941e826e99fe35e06da50756da641
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Jul 30 10:03:44 2009 -0400

    Misc formatting

commit 7c8959ea3b2ff3d3abf995b3feccc677e15b4e27
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Thu Jul 30 09:58:12 2009 -0400

    Change all the fetch_pixels() functions to only fetch one pixel.

commit 31096446b6866de0a85ca6eb4fb68a45b21c4b49
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 09:43:12 2009 -0400

    Add fetch_pixel_raw_32 and fetch_pixel_32 virtual functions.
    
    By default both are intialized to bits_image_fetch_pixel_raw(), but if
    there is an alpha map, then fetch_pixel_32() is set to
    bits_image_fetch_pixel_alpha().

commit a233b332cd9408d35e57a400874cca6188347cc2
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 09:12:51 2009 -0400

    Various renamings and clean-ups

commit 073399b09f073c44dd10b027788c09eddfcdf2e0
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 08:58:41 2009 -0400

    Change bits_image_fetch_alpha_pixels() to fetch just one pixel.

commit 6d1dfc3945917b507d40f1f3c1b1cf07858d18dd
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 08:44:40 2009 -0400

    Change bits_image_fetch_pixels_convolution() to fetch just one pixel.

commit b3f849f74f848c407afda1be15b966e1d6eda745
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 08:33:28 2009 -0400

    Change bits_image_fetch_bilinear_pixels() to fetch one pixel at a time.

commit a37383a2c646ee10ebe36d03df6bd1c0f8a75052
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 08:03:44 2009 -0400

    Make the repeat routine work on only one coordinate at a time.

commit a4f3fd3b2592b1b4791075187016ad444c2d60d4
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 07:55:27 2009 -0400

    Make bits_image_fetch_nearest() return one pixel.
    
    Previously it would work on a buffer of coordinates.

commit f382865ebe5e1e8d4b5299b908dab9b719fcb8ec
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 07:42:34 2009 -0400

    Change bits_image_fetch_transformed() to work one pixel at a time.
    
    Previously, it would generate a buffer of coordinates, then pass that
    off to a pixel fetcher, but this caused a large performance regression
    with the swfdec-fill-rate-2xfsaa cairo trace.
    
    This is the first step towards fixing that.

commit 4ef2807c3a6697731ada43ddad2fa915ed7cfe11
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Fri Aug 7 00:11:20 2009 -0400

    Only define PIXMAN_TIMERS if timers are actually enabled [bug 23169]

commit 9dec2e352b24bdccaac4f570b8cf12e61a9194ee
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 09:58:52 2009 -0400

    Various updates to the CODING_STYLE document

commit 2abd56e9e3d012fcb0b7c6d459ed4831464c0f2f
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 28 04:05:26 2009 -0400

    Add a CODING_STYLE document based on the one from cairo.

commit fdd01bcbd473f7a46c66ce8538657e32400974ed
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Jul 22 04:51:08 2009 -0400

    Remove a couple of unused variables

commit 845910c200db3f279229da67fbd330d903776777
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Jul 22 04:32:07 2009 -0400

    Rename source_pict_class_t to source_image_class_t

commit edd476d5be8f248ea21d9d80cf1986d0ccdecc3b
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Wed Jul 22 04:28:08 2009 -0400

    Replace a bunch of 'pict's with 'image'

commit 11d888a2837b3fe309348126b4f7c56df559df4e
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jul 24 09:36:08 2009 +0100

    Explain how we can simplify the radial gradient computation
    
    Soeren rightfully complained that I had removed all the comments from
    André's patch, most importantly that explain why the transformation is
    valid. So add a few details to show that B varies linearly across the
    scanline and how we can therefore reduce the per-pixel cost of evaluating
    B.

commit 20d2df03059d6a5941464d80e81e8116ebf4dbfe
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Jul 23 19:08:40 2009 +0100

    Fix inversion of radial gradients when r2 > r1
    
    Fixes: Bug 22908 -- Invalid output of radial gradient
    http://bugs.freedesktop.org/show_bug.cgi?id=22908
    
    We also include a modified patch by André Tupinambá <andrelrt@gmail.com>,
    to pull constant expressions out of the inner radial gradient walker.

commit 84b7df09394ac7237fb42fe25c0fbde77e065a16
Author: Benjamin Otte <otte@gnome.org>
Date:   Thu Jul 23 09:54:49 2009 +0200

    Don't warn for empty rectangles, only degenerate ones

commit 1435c8aa3db3b6bde26216e260cc94baba225664
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jul 21 15:00:52 2009 +0200

    Log errors for invalid rectangles passed to region code

commit 1796e6bf17a5d20039e098c4e352cd2765ed444e
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jul 21 14:57:59 2009 +0200

    Simplify code that logs errors

commit 85d56f3f7cb9c90c5af52b28fb6f7c1b14f09f07
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jul 21 14:50:30 2009 +0200

    Make the text when reporting a broken region more useful

commit a77d4ffeb661d4d75109fc368bded26843662259
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 07:24:40 2009 -0400

    Post-release version bump

commit f3ac1368775542e09f3741d2ad7b72af20bd9663
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 07:20:57 2009 -0400

    Pre-release version bump

commit 7c56911e3b5b97b26dceff9b68d9fed32693d57b
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 07:01:10 2009 -0400

    Don't assert when malformed regions are detected.
    
    Instead print a message to stderr so that it will end up in the X log
    file.

commit f9660ce29ed072c6cbaec711c5d18b9f0ba113ae
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 04:23:56 2009 -0400

    Fix another search and replace issue

commit b3196b63274134a594fc091ec2f8be3b44734411
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 04:18:35 2009 -0400

    Fix search-and-replace issue pointed out by Koen Kooi.

commit 0ff5733c16804d5b10782556eeeade7061924846
Author: George Yohng <georgefd@oss3d.com>
Date:   Tue Jul 21 03:43:42 2009 -0400

    Add implementation of MMX __m64 functions for MSVC x64.
    
    Microsoft C++ does not define __m64 and all related MMX functions in
    x64.  However, it succeeds in generating object files for SSE2 code
    inside pixman.
    
    The real problem happens during linking, when it cannot find MMX functions
    (which are not defined as intrinsics for AMD64 platform).
    
    I have implemented those missing functions using general programming.
    
    MMX __m64 is used relatively scarcely within SSE2 implementation, and the
    performance impact probably is negligible.
    
    Bug 22390.

commit 0b95afd259bb839a026955e7fda15b44fa22a805
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Mon Jul 20 14:07:18 2009 +0100

    Fix read of BITS members from a solid image.
    
    During the fast-path query, the read_func and write_func from the bits
    structure are queried for the solid image.
    
    ==32723== Conditional jump or move depends on uninitialised value(s)
    ==32723==    at 0x412AF20: _pixman_run_fast_path (pixman-utils.c:681)
    ==32723==    by 0x4136319: sse2_composite (pixman-sse2.c:5554)
    ==32723==    by 0x4100CD2: _pixman_implementation_composite
    (pixman-implementation.c:227)
    ==32723==    by 0x412396E: pixman_image_composite (pixman.c:140)
    ==32723==    by 0x4123D64: pixman_image_fill_rectangles (pixman.c:322)
    ==32723==    by 0x40482B7: _cairo_image_surface_fill_rectangles
    (cairo-image-surface.c:1180)
    ==32723==    by 0x4063BE7: _cairo_surface_fill_rectangles
    (cairo-surface.c:1883)
    ==32723==    by 0x4063E38: _cairo_surface_fill_region
    (cairo-surface.c:1840)
    ==32723==    by 0x4067FDC: _clip_and_composite_trapezoids
    (cairo-surface-fallback.c:625)
    ==32723==    by 0x40689C5: _cairo_surface_fallback_paint
    (cairo-surface-fallback.c:835)
    ==32723==    by 0x4065731: _cairo_surface_paint (cairo-surface.c:1923)
    ==32723==    by 0x4044098: _cairo_gstate_paint (cairo-gstate.c:900)
    ==32723==  Uninitialised value was created by a heap allocation
    ==32723==    at 0x402732D: malloc (vg_replace_malloc.c:180)
    ==32723==    by 0x410099F: _pixman_image_allocate (pixman-image.c:100)
    ==32723==    by 0x41265B8: pixman_image_create_solid_fill
    (pixman-solid-fill.c:75)
    ==32723==    by 0x4123CE1: pixman_image_fill_rectangles (pixman.c:314)
    ==32723==    by 0x40482B7: _cairo_image_surface_fill_rectangles
    (cairo-image-surface.c:1180)
    ==32723==    by 0x4063BE7: _cairo_surface_fill_rectangles
    (cairo-surface.c:1883)
    ==32723==    by 0x4063E38: _cairo_surface_fill_region
    (cairo-surface.c:1840)
    ==32723==    by 0x4067FDC: _clip_and_composite_trapezoids
    (cairo-surface-fallback.c:625)
    ==32723==    by 0x40689C5: _cairo_surface_fallback_paint
    (cairo-surface-fallback.c:835)
    ==32723==    by 0x4065731: _cairo_surface_paint (cairo-surface.c:1923)
    ==32723==    by 0x4044098: _cairo_gstate_paint (cairo-gstate.c:900)
    ==32723==    by 0x403C10B: cairo_paint (cairo.c:2052)

commit c7b84f8b043018368fade4ad13730cfcaaf5c8cc
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 00:17:15 2009 -0400

    Only apply the workaround if the clip region extends beyond the drawable.
    
    This works because the X server always attempts to set a clip region
    within the bounds of the drawable, and it only fails at it when it is
    computing the wrong translation and therefore needs the workaround.

commit 6bd17f1e9861693262fa88bfeff5d3279b3f6e7d
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Jul 20 23:46:06 2009 -0400

    Rework the workaround for bogus X server images.
    
    Bug 22844 demonstrates that it is not sufficient to play tricks with
    the clip regions to work around the bogus images from the X
    server. The problem there is that if the operation hits the general
    path and the destination has a different format than a8r8g8b8, the
    destination pixels will be fetched into a temporary array. But because
    those pixels would be outside the clip region, they would be fetched
    as black. The previous workaround was relying on fast paths fetching
    those pixels without checking the clip region.
    
    In the new scheme we work around the problem at the
    pixman_image_composite() level. If an image is determined to need a
    work around, we translate both the bits pointer, the coordinates, and
    the clip region, thus effectively undoing the X server's broken
    computation.

commit dfdb8509e2160a0db7d72e775dd348090e6fb968
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Jul 20 22:45:47 2009 -0400

    Add test case for bug 22844.

commit 96340123eba05bff85433bb2db3a7ad80c8e57ba
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Tue Jul 21 01:24:43 2009 -0400

    Fix typo in sse2_combine_over_pixbuf_0565()

commit 767542cfb955ba22dad1259eff8a2fe16e7b8ba4
Author: Adrian Bunk <adrian.bunk@movial.com>
Date:   Mon Jul 20 20:16:32 2009 -0400

    Fix NEON build for older ARM CPUs
    
    The pld instruction used in the NEON assembler code is only available
    for ARMv5e and >= ARMv6.
    
    Set -mcpu=cortex-a8 when compiling the source file (similar to what is
    already done for the SIMD build).

commit 184cd80aa46dd9d8bd023d3b70a345330b72d7e7
Author: Søren Sandmann Pedersen <sandmann@redhat.com>
Date:   Mon Jul 20 19:56:46 2009 -0400

    Some formatting changes to pixman-arm-neon.c

commit 5d2c527a2234d34b6269c561b08ebcaabf0b3ea3
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Fri Jul 17 13:03:21 2009 +0300

    ARM: Fixes for the inline assembly constraints in pixman_fill_neon
    
    Some of the variables in the inline assembly arguments list are
    actually modified by the assembly code, they are now marked
    appropriately.

commit c27a60f94cea7deb0afb21e734c892d475bfa06d
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Fri Jul 17 12:54:44 2009 +0300

    ARM: Workaround cs2007q3 compiler bug for NEON registers clobber list
    
    128-bit registers "qX" are incorrectly handled in inline assembly
    clobber list for codesourcery cs2007q3 gcc toolchain. Only the
    first 64-bit half is saved and restored by gcc. Changing clobber
    list to use only 64-bit register aliases can solve this problem.
    For example, 128-bit register q0 is mapped to two 64-bit
    registers d0 and d1, q1 is mapped to d2 and d3, etc.

commit cb4a5fd18f20f49ed2721f04a886c2ffd1645d09
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Fri Jul 17 00:11:14 2009 +0300

    ARM: Commented out the rest of buggy NEON optimizations
    
    These functions have problems with invalid memory accesses and often
    crash X server

commit 1aee6813ac45e6b206522623f58f1110a54186b1
Author: Siarhei Siamashka <siarhei.siamashka@nokia.com>
Date:   Fri Jul 17 00:08:42 2009 +0300

    ARM: Use Ian's variant of 'neon_composite_over_n_8_0565' function again
    
    This patch effectively reverts the changes done by commit
    8eeeca993252edc39da9c5c57545b81215fafc81 which was causing
    severe stability issues, and restores old variant of
    'neon_composite_over_n_8_0565' function, which used to work
    correctly.

commit 2356ba38fd0c0002be4484adb8ca51de32b2ff81
Author: Miha Vrhovnik <miha.vrhovnik@cordia.si>
Date:   Mon Jul 20 19:30:59 2009 -0400

    Update Makefile.win32 to make it work again.

commit d4b22bd9935662912641abe5fd010d906c839405
Author: Benjamin Otte <otte@gnome.org>
Date:   Tue Jul 21 00:49:40 2009 +0200

    Add a lot more sanity checks to region code
    
    - Introduce a GOOD_RECT() macro that checks that a pixman_box_t is not
[--snip--]
