Soeren Sandmann
2009-Aug-28 12:59 UTC
[ANNOUNCE] Stable pixman release 0.16.0 now available
A new major release 0.16.0 of the pixman library is now available. New features since the last stable release, 0.14.0, include: * Support for PDF blend modes [Benjamin Otte, Carlos Garcia Campos] * A number of fast paths for ARM NEON [Jeff Muizelaar, Jonathan Morton, Siarhei Siamashka, Ian Rickards] * Support for PIXMAN_REPEAT_REFLECT for images [Thomas Jaeger] * New image formats: a2r10g10b10, x2r10g10b10 [Ben Skeggs] b8g8r8a8, b8g8r8x8 [Mike Kettenis] * Support for MMX and SSE2 on Sun compilers and Solaris [Alan Coopersmith] * Support for SSE2 on Windows x64 [George Yohng] Also new in this release: * A reorganisation of pixman's internals to make future development and maintenance easier [S?ren Sandmann Pedersen] * A substantial expansion of pixman's test suite [Siarhei Siamashka] Thanks to everyone who contributed to pixman 0.16.0, including Adam Jackson, Adrian Bunk, Alan Coopersmith, Andre Tupinamba, Ben Skeggs, Benjamin Otte, Carlos Garcia Campos, Chris Wilson, George Yohng, Guillaume Letellier, Ian Rickards, Jeff Muizelaar, Jonathan Morton, Lo?c Minier, Luca Barbato, M Joonas Pihlaja, Magnus Kessler, Makoto Kato, Mark Kettenis, Michel D?nzer, Miha Vrhovnik, Siarhei Siamashka, S?ren Sandmann Pedersen, Thomas Jaeger, and William Bonnet. S?ren tar.gz: http://cairographics.org/releases/pixman-0.16.0.tar.gz http://xorg.freedesktop.org/archive/individual/lib/pixman-0.16.0.tar.gz tar.bz2: http://xorg.freedesktop.org/archive/individual/lib/pixman-0.16.0.tar.bz2 Hashes: MD5: 46147b142ea530847e2228940f1cd535 pixman-0.16.0.tar.gz MD5: 183dea8a100c1d9732cdb2146ec90f68 pixman-0.16.0.tar.bz2 SHA1: 339112dc4d7b8d2d241b5077e18c46104cebc701 pixman-0.16.0.tar.gz SHA1: 7cf1f2261ba44b3c98cf3d2a32e9fd90b12ca19e pixman-0.16.0.tar.bz2 GPG signature: http://cairographics.org/releases/pixman-0.16.0.tar.gz.sha1.asc (signed by S?ren Sandmann Pedersen <sandmann at daimi.au.dk> Git: git://git.freedesktop.org/git/pixman tag: pixman-0.16.0 Log: Adam Jackson (1): Fix overflows during trap rasterization. [Bug 16560]. Adrian Bunk (2): Fix the NEON build after "Convert CamelCase names to underscore_names." Fix NEON build for older ARM CPUs Alan Coopersmith (3): Fix MMX & SSE intrinsics to work with Sun compilers & Solaris Replace custom type ullong with standard uint64_t in pixman-mmx.c Add solaris-hwcap.mapfile to EXTRA_DIST Ben Skeggs (1): Add accessor functions for PIXMAN_x2r10g10b10 and PIXMAN_a2r10g10b10 Benjamin Otte (35): Add support for extended blend mode. First pass. use a pixman_op_t here Add INVERT and SUBTRACT blend modes used in Flash use PDF algorithm for soft-light fix ColorDodge and ColorBurn to conform to the PDF spec add nonseperable blend modes from PDF spec remove invert operator prefix HSL operators with HSL clean up seperable blend modes rewrite nonseperable blend modes the same way as seperable ones add component-alpha versions of the seperable blend-modes add non-seperable versions for component alpha invent a Subtract operator for component alpha remove a leftover debugging statement remove semicolon at end of macro typo fix: Seperable => Separable rework blend-mode documentation to match current code better rename operator SUBTRACT to FLASH_SUBTRACT fix component-alpha versions for seperable blend modes fix comment fix Multiply component-alpha version correct subtract implementation remove debugging leftovers fix component-alpha versions to set source to 0 when mask is 0 Fix burn and dodge operators to match acroread output Fix terms in comments describing the blend modes Clarify color dodge code - no semantical changes Clarify color burn code - no semantical changes Handle degenerate case in pixman_init_rect() Handle degenerate case in pixman_init_extents() Add a lot more sanity checks to region code Make the text when reporting a broken region more useful Simplify code that logs errors Log errors for invalid rectangles passed to region code Don't warn for empty rectangles, only degenerate ones Carlos Garcia Campos (5): [TEST] Update composite-test to test more operators Fix typo Do not use combineMask in component-alpha functions Use floating point in SetLum Fix BlendColorBurn Chris Wilson (6): Check for allocation errors during pixman_op() Check for failure when intersecting regions. Fix read of BITS members from a solid image. Fix inversion of radial gradients when r2 > r1 Explain how we can simplify the radial gradient computation _pixman_run_fast_path: typo George Yohng (1): Add implementation of MMX __m64 functions for MSVC x64. Guillaume Letellier (1): Fix ARM build. Ian Rickards (1): Add support for ARM NEON fast paths Jeff Muizelaar (12): Add support for doing ARM simd detection on Windows Add support for doing ARM simd detection on Windows Enable fbCompositeSrcAdd_8888x8x8neon Enable fbCompositeSrcAdd_8000x8000neon Enable fbCompositeSrc_x888x0565neon Enable fbCompositeSrc_8888x8888neon Enable fbCompositeSrc_8888x8x8888neon Enable fbCompositeSolidMask_nx8x0565neon Enable fbCompositeSolidMask_nx8x8888neon Enable NEON assembly when we can build it Fix uses of dst_keep NEON: Remove some unneeded casts Jonathan Morton (20): Test USE_GCC_INLINE_ASM instead of USE_NEON_INLINE_ASM. Avoid malloc() by allocating a fixed set of boxes on the stack Fix compile error caused by e42fae9e8364f5f0791f9fce749ab18b33acf598 Initialize the ARM SIMD fast path array. Fixup the arm-simd and arm-neon implementations. Add more NEON fast paths Enable NEON fills. Enable NEON copies. Enable NEON straight blits. Replace fbCompositeSrc_x888x0565neon with fbCompositeSrc_24x16neon. Delete now-unused fbCompositeSrc_x888x0565neon(). [NEON] Fix filler bug. [NEON] Really fix filler bug. Misc warning fixes. Better CFLAGS handling for recent ARM platforms. Add RVCT support for straight blitter. [NEON] Replace Ian's glyph-blitter with a better one. [NEON] Add transparent rect blitter. [NEON] Add ARGB8-over-RGB565 compositing blitter. Avoid overrunning scanlines in NEON blitters. Lo?c Minier (1): Fix fd check after auxv file open() [Bug 21749] Luca Barbato (1): Update vmxCombine*U to the new interface M Joonas Pihlaja (2): Remove redundant NULL checks from general_composite_rect(). Check whether the linker understands the hwcap file before using it. Magnus Kessler (1): pixman: define pixman_have_{mmx,sse2} on 64-bit Linux Makoto Kato (1): Remove spurious spaces in pixman-x64-mmx-emulation.h Mark Kettenis (1): Add support for BGRA and BGRx formats. Michel D?nzer (2): Fix the build on big endian machines. Convert some leftover instances of Alpha() in pixman-vmx.c. Miha Vrhovnik (1): Update Makefile.win32 to make it work again. Siarhei Siamashka (17): Image scaling regression test script Set srcRepeat = False when using fbCompositeSrcScaleNearest Updated scaling test to support rgb565, source clipping, etc. Fixed rendering bug for source alpha == 0 in OVER fastpath functions Scaling test updated to provide better coverage for problematic cases Use -mcpu instead of -march for ARM SIMD runtime autodetection Really fix ARM build. Fix scaling-test to work on big endian systems Return nonzero code from scaling-test program in case of failure. ARM: Use Ian's variant of 'neon_composite_over_n_8_0565' function again ARM: Commented out the rest of buggy NEON optimizations ARM: Workaround cs2007q3 compiler bug for NEON registers clobber list ARM: Fixes for the inline assembly constraints in pixman_fill_neon Test program for stressing the use of different formats and operators HACK: updated test to better cover new neon optimizations One more update to blitters-test - use aligned memory ARM: a fix to pass blitters-test for 'neon_composite_over_n_8_0565' S?ren Sandmann Pedersen (455): Bump version number post-release Reinstate SrcScaledNearest optimization Add license and copyright holders to COPYING Remove stale comment Add a new trap-test test program. Fix pixbuf_from_argb32() to take premultiplied alpha into account Fix search and replace issue Pre-release version bump Post-release version bump Add trap-crasher.c test program Include string.h and fix warning in trap-test.c Move all the GTK+ test code into its own file, utils.c Mention utils.h in test/Makefile.am so that make dist will pick it up Add refactoring notes More refactoring notes Move SourcePictClassify into pixman-image.c Move calls of the classification out of the if statements. Add notes on how Render actually works More refactoring notes Get rid of SOURCE_IMAGE_CLASS_NEITHER again Factor out duplicated fetcher finding code Formatting Simplify logic to compute store function Move fetch logic to pixman-image.c Move store logic into pixman-image.c Remove unused xoff/yoff variables Remove accessor version of pixman-compose.c Make combineC function type take const args Change type of combineU to take a mask Get rid of separate combineU and combineC types Have the generic code go through the component alpha path always Use memcpy() in fbCombineSrcU when there is no mask Implement the sse2 combiners with masks (disabled) Enable sse2CombineOverU Enable sse2CombineOverReverseU Enable sse2CombineInU Enable sse2CombineInReverseU Enable sse2CombineOutU Enable sse2CombineOutReverseU Enable sse2CombineAtopU Enable sse2CombineAtopReverseU Enable sse2CombineAtopXorU Enable sse2CombineAddU Enable sse2CombineSaturateU Implement the mmx combiners with masks (disabled) Enable mmxCombineOverU Enable mmxCombineOverReverseU Enable mmxCombineInU Enable mmxCombineInReverseU Enable mmxCombineOutU Enable mmxCombineOutReverseU Enable mmxCombineAtopU Enable mmxCombineAtopReverseU Enable mmxCombineXorU Enable mmxCombineAddU Enable mmxCombineSaturateU Optimize source reading in combine4 Remove unused combineMaskU functions Fix divide-by-zero crash Remove unused CombineMask64 type Add test that shows difference in clipping with transformed vs untransfor Pre-release version bump Post-release version bump Don't call hyphenated git commands as they don't exist anymore Don't read potentially uninitialized data in pixman_CombineMaskU() Split solid fill images into pixman-solid-fill.c Split linear gradient images into pixman-linear-gradient.c Split radial gradient images into pixman-radial-gradient.c Split conical gradient images into pixman-conical-gradient.c Split pixel images into pixman-bits-image.c Add stubs for property_changed virtual functions Store get_scanline() functions in the image struct Set up scanline getters for source pictures Set up scanline getters for bits images Replace pixman_image_get_fetchers() with pixman_image_get_scanline_{32,64 Move the gradient walker code to its own file Add a generic 64 bit fetcher and use it for gradients and transformed ima Rename pixmanFetchSourcePict to pixmanFetchGradient Move the linear gradient code from pixman-source.c into pixman-linear-gra Duplicate some code that was shared between radial and conical gradients. Move the radial gradient code form pixman-source.c into pixman-radial-gra Move conical gradient code to pixman-conical-gradient.c and delete pixman Move CPU detection code to its own file Move the arch specific fast path tables into their arch files Move C fast paths to their own file pixman-fast-path.c Notes on the rendering pipeline Describe alpha map in the pipeline Some roadmap notes Further notes on the rendering pipeline Notes on output kernels Note about glyphs polygons Notes on component alpha Make MMX fast paths static and remove them from the header file Make SSE2 fast paths static and remove them from the header file Fix build on ppc. Pointed out by Chris Ball Fix alpha map computation in pixman_compute_composite_region() Pre-release version bump Post-release version bump Add new store_scanline_{32,64} in bits_image_t Move fbStoreExternalAlpha{,64} into pixman-bits-image.c Beginning of pluggable implementations Formatting Add beginning of general implementation Move entire C implementation into pixman-general.c Beginning of MMX implementation Add component alpha combiners in pixman-implementation.c Change prototypes for compositing functions to use 32 bit integers Initial fast path implementation Copy fast path lookup code into pixman-utils.c Beginning of sse2 implementation Remove fast path lookup code from pixman-general Add _pixman_choose_implementation Change pixman_lookup_fast_path() to actually run the fast path Move sse2 fast path running to the sse2 implementation Move mmx fast path code to pixman-mmx.c Move SSE2 variable initializations to pixman_implementations_create_sse2 Use the implementation's combiner's Make pixman_implementation call the right combiner Set up SSE2 combiners Move gcc alignment workaround to pixman-sse2.c Move sse2 and mmx blt implementations to their respective files Add a general_blt() that just returns FALSE Add alignment workaround to sse2 Split fill implementations out in the implementations Make the fast_path implementation run the c_fast_paths Delete pixman-sse2.h and pixman-mmx.h Make a couple of functions static Move the argument struct into pixman_image_composite_rect Consolidate the general implementation into one function Set up combiner functions for an implementation directly in combine.inc. Call the toplevel implementation for combining In _pixman_implementation_fill() don't call the delegate; call the actual Add back pixman_composeFunctions since vmx is not ported to implementatio Really fix PPC build. In the mmx implementation, check for source == 0 rather than alpha == 0. In pixman-sse2.c test for non-zero source, not just non-zero source alpha Create a vmx pixman_implementation_t Pre-release version bump. Post-release version bump Make sure the whole delegate chain has the correct toplevel Get rid of toplevel argument to implementation constructors. Add _pixman_image_fetch_pixels() Add fetch_extended() function Add fetch_bilinear_pixels() function Add fetch_convolution_pixels() function Make fbFetchTransformed() used the new filtered many-pixel fetchers Fix a couple of bugs in the bilinear fetcher Process the correct number of coordinates for the NEAREST filter Fix typo in fetch_bilinear_pixels() Only do region lookups when the source region is different from the full Handle alpha maps in _pixman_image_fetch_pixels() Remove unused code from pixman-transformed.c Get rid of pixman-transformed-accessors Fix coordinate computation for perspective transformations Move remaining pixman-transformed.c code into pixman-bits-image.c Add store_scanline_raw_{32,64} virtual functions to bits image Add fetch_scanline_raw{32,64} Get rid of the StoreExternalAlpha() functions Rename _pixman_image_fetch_pixels() to bits_image_fetch_alpha_pixels Move some code around - use image->fetch_pixel in FbFetchSolid Add bits_image prefix to fetchers Move 'adjust' code into the individual filters Split filter switching into its own bits_image_fetch_filtered() function Rename some of the fetchers Move simple fetchers after transformed fetcher Add a 64 bit pixel fetcher and use it for solid colors Remove unused access macro Change pixel wise fetcher to fetch many pixels at a time instead of just Move pixman_expand/contract to pixman-utils.c Inline repeating instead of doing it as a separate pass Consistently use 256 pixels as the size of the temp buffers Only advance the Z coordinate for non-affine transformations Correct link to bugzilla in README Some cleanups in the configure.ac file Add an --enable-timers configure option to enable the TIMER_BEGIN/END mac Pre-release version bump Post-release version bump Make the untransformed path handle REPEAT_NONE and REPEAT_NORMAL Handle repeat_none/normal for 64 bit fetchers Make _pixman_walk_composite_region() a wrapper around an internal functio Remove all the srcRepeat/srcTransform stuff from the general implementati Remove srcRepeat and maskRepeat arguments from _pixman_walk_composite_reg Pass the region to walk_region_internal() Only call fast paths when the images cover the composite region Fix pixman_image_is_opaque() Simplify clipping rule Move region computation closer to the region walking. Work around X server bug. Add API to set a function to be called when the image is destroyed. Pre-release version bump Post-release version bump Eliminate trivial READ and WRITE macros in pixman-fast-path.c Remove dstMask from pixman-fast-path.c Remove unused pixmanFetchGradient() declaration Delete FbComposeData type Delete empty FASTCALL macro Rename bits_image.fetch_pixels_{32,64} to fetch_pixels_raw_{32,64} Delete unused CombineFunc{32,64} types Remove useless FbBits typedef Remove commented-out fbAddTriangles Delete unused IS_SOURCE_IMAGE() macro Rename GradientWalker to pixman_gradient_walker_t Rename PixmanTimer to pixman_timer_t Get rid of pixman_region_internal_set_static_pointers() Rename pixman-pict.c to pixman.c Only use force_align_arg_pointer on gcc/x86-32 Rename combine.inc and combine.h.inc to pixman-combine.{c,h}.template. Eliminate MSBFirst, LSBFirst, IMAGE_BYTE_ORDER, and BITMAP_BIT_ORDER. Rename FastPathInfo to pixman_fast_path_t Move compiler dependencies to a new pixman-compiler.h file Move edge utilities into pixman-trap.c Use DIV instead of _div In pixman-trap.c. Move FbGen macro into pixman-combine.c Implement pixman_format_supported_destination() in terms of pixman_format Eliminate FbStipMask macro. Implement fbComposeGetSolid() as a call to pixman_image_get_scanline() Eliminate bit fiddling macros from pixman-private.h. Delete unused mod macro Move pixman_image_fill_rectangles() to pixman.c Delete unused WRITE_ACCESS() macro Turn fbComposeGetSolid() macro into a pixman_image_get_solid() function. Rename pixman_image_can_get_solid() to pixman_image_is_solid Replace switch functions in pixman-access.c with a table of accessors. Implement fbStore_a2g2b2r2 Delete FB_MASK and FB_ALLONES macros Move edge stepper macros into pixman-edge.c Delete obsolete comment Move some macros into pixman-access.c Move macros around in pixman-private.h Get rid of indexed argument to store functions Eliminate pointless Red/Green/Blue macros Move pixman_compute_composite_region() into pixman-utils.c Move pixman_version() to pixman.c Move code around Move region helpers into pixman-utils.c Delete struct point Some formatting changes Various minor changes Remove unused ACCESS macros in pixman-bits-image.c Eliminate Fetch/Store24 macros. Use fbOver() instead of fbOver24. Delete FbInU macro. Turn the FbAdd() macro into an FbIntAdd() which doesn't take a channel. Fix typo in CLIP macro. Make pixman-mmx.c compile again. Delete FbInOverC macro Move FbGet8() macro into pixman-bits-image.c Move accessor macros to their own header. Delete unused _pixman_image_get_fetcher() function Remove unused typedefs. Write alpha map fetching with FbByteMul() instead of div_255() Rename PIXMAN_FORMAT_16BPC macro to PIXMAN_FORMAT_IS_WIDE Add some comments about the linearity of the non-separable blend modes Fix various problems in FbCombineMultiplyC Fix some more problems in MultiplyC Remove optimizations that I'm not convinced are correct Fix ColorDodge and ColorBurn to conform to the spec Make the composite test window bigger by default. Add screen-test.c test program Remove FLASH_SUBTRACT blend mode. Remove support for component alpha with HSL blend modes. Delete leftover use of PIXMAN_OP_FLASH_SUBTRACT Add convolution-test.c program Subtract x_off/y_off before conversion to integer. Fix comment in pixman-utils to have the right sense. Add test case for out-of-bounds memory access. Fix typo in oob-test.c Fix offset bug in pixman_run_fast_path(). Add a table to oob-test so that it can test more than one setup. Delete FbIntMult and FbIntDiv macros, and move FbIntAdd to pixman-combine Fix bug where 64 bit pixel were fetched as 32 bit ones. Get rid of casts to scanFetchProc in pixman-bits-image.c Get rid of scanFetchProc casts in pixman-conical-gradient.c Get rid of scanFetchProc casts in pixman-radial-gradient.c Get rid of remaining scanFetchProc casts Consolidate the three scanline store types into one. Get rid of the 64 bit fetcher types. Rename fetchProc32 to fetch_scanline_t and fetch_pixels_32_t to fetch_pix Add a mask and mask_bits argument to the raw scanline fetchers. Constify the mask argument to scanline fetchers. Delete scanFetchProc type. Use fetch_scanline_t instead. Pre-release version bump Post-release version bump Add test cases to oob-test using PIXMAN_{a,x}2b10g10r10 Delete ARM header files Make arm compositing functions static Change checks for srca == 0 to src == 0 Change comma to semicolon in pixman-combine.c.template Rename OptimizedOperatorInfo to optimized_operator_info_t Inlucde pixman-private.h in pixman-region.c Return TRUE for the two new formats in pixman_format_supported_source(). Fix forgotten use BITMAP_BIT_ORDER to be ifndef WORDS_BIG_ENDIAN Expand comment in miClipPictureSrc() to explain why a client clip is requ Add an initialization with an empty rectangle to region-test.c Eliminate empty rectangles in pixman_region_init_rects(). Use postfix decrement, not prefix, in region-test.c Rename fetchers. Fix up names of compositing functions Change the name of some routines that were simply misnamed. Get rid of pFoo names. Various simple renamings Fix the names of some common parameters Fix some more pFoo names Fix up the names in pixman_compute_composite_region() Rename QuadwordCopy_neon to neon_quadword_copy Fix names in the trap rasterizer. Change name of macros that operate on normalized integers. Clarify a couple of comments Change names of the FbByte* macros to be more descriptive. Change some macro names to be all uppercase Consolidate channel macros in pixman-combine.h Uppercase some more macro names Fix overeager search and replace Rename fbCombine* to combine* Change name fbComposeGetStart to PIXMAN_IMAGE_GET_LINE. Rename U{no}mask => U_{no_}mask in pixman-vmx.c Rename some macros in pixman-combine.c.template Rename macros for non-separable blend modes Uppercase a few more macros in pixman-combine.c.template Use ALPHA_8 in pixman-image.c instead of Alpha Rename RBmask/Gmask => rb_mask/g_mask in pixman-arm-neon.c Rename FbGet8 to GET8 CPUFeatures => cpu_features s/FbScrRight/SCREEN_SHIFT_RIGHT/g NoFeatures => NO_FEATURES Remove reference to 8888RevNP Remove reference to 8888_RevNP Convert CamelCase names to underscore_names. s/sse2combine/sse2_combine/g Various sse2 renamings Rename combine_*_c to combine_*_ca Rename num_rects back to numRects. Fix up some overeager search-and-replace renamings Add a box with y2 < y1 in region-test.c Eliminate boxes with x1 > x2 or y1 > y2 in pixman_region_init_rects(). Fix a couple of problems with the tests when HAVE_GTK is not defined. Fix bug in pixman-region.c where empty regions would not be properly init Update the CRC value in scaling-test.c. Add a BUILT_SOURCES with pixman-combine{32,64}.{c.h} Add workarounds for X servers doing out-of-bounds accesses. Only apply the workaround to source images when out_of_bounds_workaround Move workaround logic to pixman-bits-image.c. Only destroy the regions when pixman_compute_composite_region() returns T Fix typo in bits_image_fetch_solid_64(). Make sure we get all 64 bits in bits_image_fetch_solid_64() Fix bits_image_fetch_{un}transformed() for 64 bit buffers. Return immediately if the operator is CONJOINT_DST or DISJOINT_DST Reindent and reformat pixman-access.c. Reindent and reformat pixman-arm-neon.c Reindent and reformat pixman-arm-simd.c Reindent and reformat pixman-bits-image.c Reindent and reformat pixman.c Reindent and reformat pixman-conical-gradient.c Reindent and reformat pixman-cpu.c Reindent and reformat pixman-edge.c Reindent and reformat pixman-fastpath.c Reindent and reformat pixman-general.c Reindent and reformat pixman-gradient-walker.c Reindent and reformat pixman-image.c Reindent and reformat pixman-implementation.c Reindent and reformat pixman-linear-gradient.c Reindent and reformat pixman-matrix.c Reindent and reformat pixman-mmx.c Reindent and reformat pixman-radial-gradient.c Reformat and reindent pixman-region.c Reformat and reindent pixman-solid-fill.c Reformat and reindent pixman-sse2.c Reformat pixman-timer.c Reformat and reindent pixman-trap.c Reformat and reindent pixman-utils.c Reindent and reformat pixman-vmx.c Reindent and reformat pixman-combine.c.template Reindent and reformat pixman-combine.h.template Reindent and reformat pixman-private.h Reformat pixman.h Reindent and rename identifiers in scaling-test.c Pre-release version bump Post-release version bump Add -fno-strict-aliasing Change name of macro from RGB16_TO_ENTRY to RGB15_TO_ENTRY Various minor formatting changes Change composite test to use a rainbow gradient as source. Fix combine_src_ca() to fill out all of the destination line. Add back check for need_workaround that got removed during reindenting Move read and write functions to the bits_image_t struct. Align the stack in _pixman_implementation_create_sse2() Replace // comments with /* */ comments in various places Some formatting changes to pixman-arm-neon.c Fix typo in sse2_combine_over_pixbuf_0565() Add test case for bug 22844. Rework the workaround for bogus X server images. Only apply the workaround if the clip region extends beyond the drawable. Fix search-and-replace issue pointed out by Koen Kooi. Fix another search and replace issue Don't assert when malformed regions are detected. Pre-release version bump Post-release version bump Replace a bunch of 'pict's with 'image' Rename source_pict_class_t to source_image_class_t Remove a couple of unused variables Add a CODING_STYLE document based on the one from cairo. Various updates to the CODING_STYLE document Only define PIXMAN_TIMERS if timers are actually enabled [bug 23169] Change bits_image_fetch_transformed() to work one pixel at a time. Make bits_image_fetch_nearest() return one pixel. Make the repeat routine work on only one coordinate at a time. Change bits_image_fetch_bilinear_pixels() to fetch one pixel at a time. Change bits_image_fetch_pixels_convolution() to fetch just one pixel. Change bits_image_fetch_alpha_pixels() to fetch just one pixel. Various renamings and clean-ups Add fetch_pixel_raw_32 and fetch_pixel_32 virtual functions. Change all the fetch_pixels() functions to only fetch one pixel. Misc formatting Remove unused function Remove leftover 0xffffffff in repeat() Move bounds checks for REPEAT_NONE to get_pixel() Add a fast path for the add_n_8888_8888() operation. Add sse2 version of add_n_8888_8888() Add a dirty bit to the image struct, and validate before using the image. Fix bugs in combine_over_reverse_ca(). Don't change the constant source in fast_composite_over_n_8888_0565. Fix incorrect optimization in combine_over_ca(). Fix another case of changing the solid source. Fix bug in combine_mask_alpha_ca() Don't run fast paths if the format requires wide compositing. Fix a bunch of srca == 0 checks that should be src == 0 in pixman-mmx.c Rewrite the two-component arithmetic macros. Make pix_add_mul() in pixman-mmx.c produce exact results. Fix a couple more alpha==0 vs src==0 bugs in pixman-mmx.c Rename mmx_composite_add_8888_8_8() to mmx_composite_add_n_8_8(). Fix a couple of alpha==0 vs src==0 issues in pixman-sse2.c Change the SSE2 versions of pix_add_multiply() to produce bit-exact resul Make pix_multiply bit-exact Fix bug in vmx_combine_xor_ca() Do the full four-component IN computation in vmx_combine_in_ca(). Fix vmx_combine_out_ca() In vmx_combine_out_ca() multiply with the alpha of the negated vdest. Fix vmx_combine_over_ca(). Fix vmx_combine_vmx_atop_ca() Multiply with the alpha of dest, not inverse alpha Fix vmx_over_reverse_ca() Fix vmx_combine_out_reverse_ca() Really fix vmx_combine_over_reverse_ca() In vmx_combine_atop_reverse_ca() extract alpha after inversing Misc formatting fixes for pixman-vmx.c Delete commented out code in pixman-vmx.c Reenable commented-out tests in blitter-test. Add the ability to print intermediate CRC values Various formatting fixes Update CRC value in blitters-test. Fix x/y mixup in bits_image_fetch_pixel_convolution() Pre-release version-bump Post-release version bump Check if we have posix_memalign() in configure.ac. [23260, 23261] Pre-release version bump Thomas Jaeger (1): Implement PIXMAN_REPEAT_REFLECT for images William Bonnet (1): Fix build on Sun Studio.