[Apologies for the previous misformatted announce email. Hopefully
 this one will get through correctly].

A new major stable release 0.18.0 of the pixman library is now available.

New features:
-------------
    - Support for creating regions from images [Alexander Larsson]
    - Improved support for images larger than 16 bits [Benjamin Otte]


Performance improvements:
-------------------------

Performance was a major theme of this release. Optimizations include:

    - Faster rescaling with nearest filter [Alexander Larsson, Siarhei
          Siamashka, Søren Sandmann Pedersen]
    - Faster rescaling with bilinear filter [André Tupinambá]
    - Many new fast paths for ARM NEON [Siarhei Siamashka]
    - Faster unantialised text rendering [Siarhei Siamashka]
    - Reduced overhead in fast path lookup [Søren]

Results from a number of benchmarks in the cairo performance test
suite on x86 and ARM. A number such as 1.84x means that on that particular
benchmark pixman 0.18.0 runs 1.84 times faster than pixman 0.16.6.

 x86
 evolution .............. image ███▋ 1.06x
                        image16 ███████▍ 1.13x
                           xlib ██▌ 1.04x
 firefox-planet-gnome ... image ███████████████████▌ 1.45x
                        image16 ██████████▌ 1.20x
                           xlib ██████████████▎ 1.29x
 firefox-talos-gfx ...... image ████████████████████████████▊ 1.84x
                        image16 ███████████████████████████████▋ 2.00x
                           xlib ████████████████▎ 1.35x
 firefox-talos-svg ...... image ████▍ 1.07x
                        image16 ██▋ 1.04x
                           xlib ███▊ 1.06x
 gnome-system-monitor ... image ███████████████████████████████▌ 2.00x
                        image16 ███████████████████████████████▌ 2.00x
                           xlib ▋ 1.01x
 gnome-terminal-vim ..... image █████▎ 1.09x
                        image16 █████████████▊ 1.28x
                           xlib ███████████▋ 1.23x
 poppler ................ image ████████████████████████████████████████ 2.73x
                        image16 ████████████████████████████████████████ 2.73x
                           xlib ████████████████████████████████▉ 2.09x
 gvim ................... image █ 1.02x
                        image16 ▊ 0.99x
                           xlib ██▍ 1.04x
 swfdec-giant-steps ..... image ██▉ 1.05x
                        image16 ██████▌ 1.12x
                           xlib ▎ 1.00x
 swfdec-youtube ......... image ████████████████████▌ 1.48x
                        image16 ██████▉ 1.12x
                           xlib ███████████████████▋ 1.45x

 ARM
 evolution .............. image ██▎ 1.04x
                        image16 ██▎ 1.04x
                           xlib ▒▒▒▏ 0.95x
 firefox-planet-gnome ... image █████████████▋ 1.27x
                        image16 ██▎ 1.04x
                           xlib ██████████████▋ 1.30x
 firefox-talos-gfx ...... image █████████████████▋ 1.39x
                        image16 ███████▌ 1.13x
                           xlib ███████ 1.12x
 firefox-talos-svg ...... image █████████▋ 1.18x
                        image16 ████████▌ 1.16x
                           xlib ███████▉ 1.14x
 gnome-system-monitor ... image ███████████████████████████▏ 1.75x
                        image16 ██████████████████████████▋ 1.73x
                           xlib ████▊ 1.08x
 gnome-terminal-vim ..... image ██████▎ 1.11x
                        image16 ████▎ 1.07x
                           xlib ████▍ 1.07x
 poppler ................ image ███████████████████████▌ 1.60x
                        image16 ███████████████████████▋ 1.60x
                           xlib ███████████████▎ 1.32x
 gvim ................... image ▎ 1.00x
                        image16 ▒▋ 0.97x
                           xlib ▊ 1.01x
 swfdec-giant-steps ..... image █████████▌ 1.18x
                        image16 ████████████▋ 1.25x
                           xlib ████████▋ 1.16x
 swfdec-youtube ......... image ██████████████████████▌ 1.56x
                        image16 ███████████▍ 1.22x
                           xlib ██████████████████████▉ 1.57x


Thanks to everybody who contributed to 0.18.0, including:

    Alan Coopersmith, Alexander Larsson, Andrea Canciani,
    André Tupinambá, Benjamin Otte, Chris Wilson, Egor Starkov,
    Gaetan Nadon, Gerdus van Zyl, Guillem Jover, Jeremy Huddleston,
    Jon TURNEY, Loïc Minier, M Joonas Pihlaja, Makoto Kato,
    Marvin Schmidt, Pierre-Loup A. Griffais, Siarhei Siamashka,
    Søren Sandmann Pedersen


Søren


tar.gz:
        http://cairographics.org/releases/pixman-0.18.0.tar.gz
        http://xorg.freedesktop.org/archive/individual/lib/pixman-0.18.0.tar.gz

tar.bz2:
        http://xorg.freedesktop.org/archive/individual/lib/pixman-0.18.0.tar.bz2

Hashes:
        MD5:  a4fb870fc325be258089f1683642e976  pixman-0.18.0.tar.gz
        MD5:  a1b5a0a145cab653f5c1e8cf2f98f945  pixman-0.18.0.tar.bz2
        SHA1: 26d204499bd78d82801db50f620bba29c2686cfc  pixman-0.18.0.tar.gz
        SHA1: 0ff0944b3335f156a94949842b429229e5ae1db4  pixman-0.18.0.tar.bz2

GPG signature:
        http://cairographics.org/releases/pixman-0.18.0.tar.gz.sha1.asc
        (signed by Søren Sandmann Pedersen<s...@redhat.com>)

Git:
        git://git.freedesktop.org/git/pixman
        tag: pixman-0.18.0

Log:
        Alan Coopersmith (3):
              Update Sun license notices to current X.Org standard form
              Make .s target asm flag selection more portable
              Add Sun cc to thread-local support checks in pixman-compiler.h
        
        Alexander Larsson (11):
              Add extern "C" guards for c++
              Add pixman_image_get_destroy_data()
              Move SCREEN_SHIFT_LEFT/RIGHT to pixman-private.h
              Add pixman_region{32}_init_from_image
              Test pixman_region32_init_from_image in region-test
              Add CONVERT_0565_TO_8888 macro
              Add CONVERT_8888_TO_8888 and CONVERT_0565_TO_0565 macros
              Add FAST_PATH_NO_NONE_REPEAT flag
              Add FAST_PATH_SAMPLES_COVER_CLIP and FAST_PATH_16BIT_SAFE
              Add specialized fast nearest scalers
              Use the right format for the OVER_8888_565 fast path
        
        Andrea Canciani (1):
              Fix composite on big-endian systems.
        
        André Tupinambá (2):
              Speed up bilinear interpolation.
              Add fast path scaled, bilinear fetcher.
        
        Benjamin Otte (11):
              Fix compile warnings
              Add default cases for all switch statements
              --enable-maintainer-mode is gone from configure, so remove it
              Remove nonexistant function from header
              Fix bug that prevented pixman_fill MMX and SSE paths for 16 and 
8bpp
              Make test program not throw warnings about undefined variables
              Fix typo
              Make region argument to pixman_region(32)_init_rects() const
              Add pixman_image_composite32()
              Add pixman_image_fill_boxes() API
              Make pixman_image_fill_rectangles() call pixman_image_fill_boxes()
        
        Chris Wilson (6):
              build: Suppress verbose compile lines
              [test] Add composite test from rendercheck
              [sse2] Don't emit prefetch 0 for an absent mask
              [build] Add rule to generate asm for inspection.
              [test] Exercise repeating patterns for composite.
              [Makefile] Set the SIMD specific CFLAGS for inspecting asm.
        
        Egor Starkov (1):
              Eliminate trailing comma in enum
        
        Gaetan Nadon (1):
              Remove unused generated libcomp.pc #23801
        
        Gerdus van Zyl (1):
              Fix build with Visual Studio 2008
        
        Guillem Jover (1):
              pixman: Update .gitignore
        
        Jeremy Huddleston (1):
              This is not a GNU project, so declare it foreign.
        
        Jon TURNEY (1):
              Avoid a potential division-by-zero exeception in window-test
        
        Loïc Minier (1):
              ARM: SIMD: Try without any CFLAGS before forcing -mcpu=
        
        M Joonas Pihlaja (4):
              Work around differing _mm_prefetch() prototypes on Solaris.
              Work around a Sun Studio 12 code generation bug involving 
_mm_set_epi32()
              Default to optimised builds when using a Sun Studio compiler.
              Don't prefetch from NULL in the SSE2 fast paths.
        
        Makoto Kato (2):
              Add CPU detection for VC++ x64
              Compile by USE_SSE2 only without USE_MMX
        
        Marvin Schmidt (1):
              Build tests and run non-GTK+ ones on `make check`
        
        Matthias Hopf (2):
              Improve PIXREGION_NIL to return true on degenerated regions.
              Revert "Improve PIXREGION_NIL to return true on degenerated 
regions."
        
        Pierre-Loup A. Griffais (1):
              Interpret the angle of a conical gradient in degrees.
        
        Siarhei Siamashka (50):
              ARM: workaround for gcc bug in vshll_n_u8 intrinsic
              ARM: Remove fallback to ARMv6 implementation from NEON delegate 
chain
              Change CFLAGS order for PPC and ARM configure tests
              ARM: Removal of unused/broken NEON code
              blitters-test updated to also randomly generate mask_x/mask_y
              C fast path function for 'add_1000_1000'
              C fast path function for 'over_n_1_8888'
              ARM: removed old ARM NEON optimizations
              ARM: introduction of the new framework for NEON fast path 
optimizations
              ARM: enabled new implementation for pixman_fill_neon
              ARM: added 'bindings' for NEON assembly optimized functions
              ARM: enabled 'neon_composite_src_0565_0565' fast path
              ARM: enabled 'neon_composite_src_8888_0565' fast path
              ARM: enabled 'neon_composite_src_0888_0888' fast path
              ARM: enabled 'neon_composite_over_n_8_0565' fast path
              ARM: enabled 'neon_composite_over_n_8_8888' fast path
              ARM: enabled 'neon_composite_over_8888_n_8888' fast path
              ARM: enabled 'neon_composite_over_8888_0565' fast path
              ARM: enabled 'neon_composite_over_8888_8888' fast path
              ARM: enabled 'neon_composite_add_n_8_8' fast path
              ARM: enabled 'neon_composite_add_8_8_8' fast path
              ARM: enabled 'neon_composite_add_8000_8000' fast path
              C fast path function for 'over_n_1_0565'
              test: support for testing pixbuf fast path functions in 
blitters-test
              ARM: NEON optimized pixman_blt
              ARM: added '.arch armv7a' directive to NEON assembly file
              ARM: minor source formatting changes
              ARM: added 'neon_composite_over_8888_8888_8888' fast path
              ARM: added 'neon_composite_over_8888_8_8888' fast path
              ARM: added 'neon_composite_add_8888_8888' fast path
              ARM: added 'neon_composite_add_8888_8888_8888' fast path
              ARM: added 'neon_composite_src_0565_8888' fast path
              ARM: added 'neon_composite_over_n_0565' fast path
              ARM: added 'neon_composite_over_n_8888' fast path
              ARM: added 'neon_src_0888_8888_rev' fast path
              ARM: added 'neon_composite_src_0888_0565_rev' fast path
              ARM: added 'neon_composite_src_pixbuf_8888' fast path
              Use canonical pixman license notice for recently added ARM NEON 
assembly
              ARM: macro template for single scanline compositing functions
              ARM: added 'neon_combine_over_u' function
              ARM: added 'neon_combine_add_u' function
              ARM: Remove any use of environment variables for cpu features 
detection
              ARM: added 'neon_composite_over_n_8888_8888_ca' fast path
              ARM: added 'neon_composite_src_x888_8888' fast path
              ARM: added 'neon_composite_over_reverse_n_8888' fast path
              ARM: Use '.object_arch' directive in NEON assembly file
              ARM: Workaround for a NEON bug in assembler from binutils 2.18
              ARM: Helper ARM NEON assembly binding macros moved into a 
separate header
              ARM: SIMD optimizations updated to use common assembly calling 
convention
              ARM: SIMD optimizations moved to a separate .S file
        
        Søren Sandmann Pedersen (132):
              Post-release version bump
              Change names of add_8888_8_8 fast paths to add_n_8_8
              Enable the x888_8_8888 sse2 fast path.
              Fix off-by-one error in 
source_image_needs_out_of_bounds_workaround()
              Reformat test/composite.c to follow the standard coding style.
              Remove optimization for 0xffffffff and 0xff the 
add_n_8888_8888_ca fast p
              Revert "Enable component alpha on solid masks."
              Return result from pixman_image_set_transform().
              Fix alpha handling for 10 bpc formats.
              Add a few notes about testing to TODO
              Hide PIXMAN_OP_NONE and PIXMAN_N_OPERATORS behind 
PIXMAN_INTERNAL_API.
              Fix four bit formats.
              Fix shift bug in fetch_scanline/pixel_a2b2g2r2()
              Fix bugs in a1b2g1r1.
              Fix bugs in fetch_*_b2g3r3().
              Fix bug in blitters-test with BGRA formats.
              Update CRC value in blitters-test for the new bug fixes
              In the compositing test, Don't try to use component alpha with 
solid fill
              Add missing break in composite.c
              Fix fetch-test for big-endian systems.
              Fix double semicolon; pointed out by Travis Griggs
              Remove BOUNDS() macro.
              Remove unused color_table and color_table_size fields
              Change prototype of _pixman_walk_composite_region from int16_t to 
int32_t
              Make pixman_compute_composite_region32() use 32 bit dimensions
              Make walk_region_internal() use 32 bit dimensions
              Extend scaling-test to also test bilinear filtering.
              Include<inttypes.h>  when compiled with HP's C compiler.
              Define PIXMAN_USE_INTERNAL_API in pixman-private.h
              sse2: Add a fast path for OVER 8888 x 8 x 8888
              test: Rename utils.[ch] to gtk-utils.[ch]
              test: Move CRC32 code from blitters-test to new files utils.[ch]
              test: In scaling-test use the crc32 from utils.c
              test: Move random number generator from blitters/scaling-test to 
utils.[c
              test: Move image_endian_swap() from blitters-test.c to utils.[ch]
              Use the destination buffer directly in more cases instead of 
fetching.
              Eliminate the NEED_SOLID_MASK flag
              Eliminate the NEED_COMPONENT_ALPHA flag.
              Compute src_format outside the fast path loop.
              Eliminate NEED_PIXBUF flag.
              Delete the flags field from fast_path_info_t
              Fix slightly skewed sampling grid for antialiased traps
              Fix rounding of top and bottom coordinates.
              Round horizontal sampling points towards northwest.
              Remove stray semicolon from blitters-test.c
              Pre-release version bump
              Post-release version bump
              Reorder tests so that they fastest ones run first.
              Add 'check' to release-check make target
              mmx: Eliminate trailing whitespace.
              arm-simd: Whitespace fixes
              Some minor formatting fixes.
              region: Enable or disable fatal errors and selfchecks based on 
version nu
              fetch-test: Various formatting fixes
              fetch-test: Fix spelling error (pallete ->  palette)
              test: Add new alphamap test program.
              When fetching from an alpha map, use the alpha map's fetch 
function.
              pixman_image_validate() needs to also validate the alpha map.
              When fetching from an alpha map, replace the alpha channel of the 
image
              bits: Print an error if someone tries to create an image with 
bpp<  depth
              Pre-release version bump
              Post-release version bump
              Fix some warnings
              Implement get_scanline_64() correctly for solid fill images.
              Turn some uint16_t variables to int32_t in the fast paths.
              Move the sanity checks for src, mask and destination into 
get_fast_path()
              Move pixbuf checks after src_format and mask_format have been 
computed.
              Consolidate the source and mask sanity checks in a function
              Fold get_fast_path() into _pixman_run_fast_path()
              Move calls to source_is_fastpathable() into get_source_format()
              Add src_, mask_, and dest_flags fields to fast path arrays
              Compute src, mask, dest flags and base fast path decisions on 
them.
              Move checks for src/mask repeat right before walking the region.
              Turn off asserts in development snapshots (bug 26314).
              Makefile.am: Remove 'check' from release-check
              Generalize and optimize fast_composite_src_scaled_nearest()
              Once unrolled version of fast_path_composite_nearest_scaled()
              Pre-release version bump
              Post-release version bump
              Make general_composite_rect() just another fast path.
              Make fast_composite_scaled_nearest() another fast path.
              Store a pointer to the array of fast paths in the implementation 
struct.
              Delete unused sources_cover() function
              Don't call _pixman_implementation_composite() anymore.
              Delete unused _pixman_walk_composite_region() function
              Eliminate all the composite methods.
              Optimize for the common case wrt. the workaround.
              Move compositing to its own function, do_composite()
              Move compositing functionality from pixman-utils.c into pixman.c
              Manually inline _pixman_run_fast_path()
              Move get_image_info() out of the loop in do_composite
              Move region computation out of the loop in do_composite()
              Move more things out of the inner loop in do_composite().
              Add a fast path for non-repeating sources in 
walk_region_internal().
              Move NULL check out of get_image_info()
              Move all code to do debugging spew into pixman-private.
              Hide the C++ extern "C" declarations behind macros.
              Add a1-trap-test
              Pre-release version bump
              Post-release version bump
              RELEASING: Update the release instructions.
              Compute the image flags at validation time instead of composite 
time
              Add new FAST_PATH_SIMPLE_REPEAT flag
              Move computation of extended format code to validate.
              Eliminate _pixman_image_is_solid()
              Eliminate _pixman_image_is_opaque() in favor of a new 
FAST_PATH_IS_OPAQUE
              Turn need_workaround into another flag.
              Move workaround code to pixman-image.c
              Restructure the flags computation in compute_image_info().
              test: Remove obsolete comment
              Move __force_align_arg_pointer workaround before composite32()
              Pre-release version bump to 0.17.10
              Post-release version bump to 0.17.11
              Add a fast path cache
              Make the operator strength reduction constant time.
              Store the operator table more compactly.
              Strength reduce certain conjoint/disjoint to their normal 
counterparts.
              Change operator table to be an array of arrays of four bytes.
              pixman.h: Only define stdint types when PIXMAN_DONT_DEFINE_STDINT 
is unde
              test: Add support for indexed formats to blitters-test
              Fix typo: WORDS_BIG_ENDIAN =>  WORDS_BIGENDIAN in pixman-edge.c
              Add checks for various types of thread local storage.
              Add PIXMAN_DEFINE_THREAD_LOCAL() and PIXMAN_GET_THREAD_LOCAL() 
macros
              Fix contact address in configure.ac
              Ensure that only the low 4 bit of 4 bit pixels are stored.
              Add a FAST_PATH_X_UNIT_POSITIVE flag
              Specialize the fast_composite_scaled_nearest_* scalers to 
positive x unit
              Pre-release version bump to 0.17.12
              Post-release version bump to 0.17.13
              Pre-release version bump to 0.17.14
              Post-release version bump to 0.17.15
              Pre-release version bump to 0.18.0


_______________________________________________
Pixman mailing list
Pixman@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to