Søren Sandmann
2010-Apr-01 10:16 UTC
[ANNOUNCE] pixman release 0.18.0 now available [fixed formatting]
[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<ssp at 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