summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-03-05Post-release version bump to 0.17.11HEADmasterSøren Sandmann Pedersen1-1/+1
2010-03-05Pre-release version bump to 0.17.10Søren Sandmann Pedersen1-1/+1
2010-03-04Move __force_align_arg_pointer workaround before composite32()Søren Sandmann Pedersen1-18/+18
Since otherwise the workaround won't take effect when you call pixman_image_composite32() directly.
2010-03-04Merge branch 'more-flags'Søren Sandmann Pedersen4-254/+256
2010-03-03test: Remove obsolete commentSøren Sandmann Pedersen1-2/+0
2010-03-03ARM: added 'neon_composite_over_reverse_n_8888' fast pathSiarhei Siamashka2-0/+58
This fast path function improves performance of 'poppler' cairo-perf trace. Benchmark from ARM Cortex-A8 @720MHz before: [ # ] backend test min(s) median(s) stddev. count [ 0] image poppler 38.986 39.158 0.23% 6/6 after: [ # ] backend test min(s) median(s) stddev. count [ 0] image poppler 24.981 25.136 0.28% 6/6
2010-03-03ARM: added 'neon_composite_src_x888_8888' fast pathSiarhei Siamashka2-0/+45
This fast path function improves performance of 'gnome-system-monitor' cairo-perf trace. Benchmark from ARM Cortex-A8 @720MHz before: [ # ] backend test min(s) median(s) stddev. count [ 0] image gnome-system-monitor 68.838 68.899 0.05% 5/6 after: [ # ] backend test min(s) median(s) stddev. count [ 0] image gnome-system-monitor 53.336 53.384 0.09% 6/6
2010-03-03ARM: added 'neon_composite_over_n_8888_8888_ca' fast pathSiarhei Siamashka2-0/+110
This fast path function improves performance of 'firefox-talos-gfx' cairo-perf trace. Benchmark from ARM Cortex-A8 @720MHz before: [ # ] backend test min(s) median(s) stddev. count [ 0] image firefox-talos-gfx 139.969 141.176 0.35% 6/6 after: [ # ] backend test min(s) median(s) stddev. count [ 0] image firefox-talos-gfx 111.810 112.196 0.23% 6/6
2010-02-24Restructure the flags computation in compute_image_info().Søren Sandmann Pedersen1-36/+59
Restructure the code to use switches instead of ifs. This saves a few comparisons and make the code slightly easier to follow. Also add some comments.
2010-02-24Move workaround code to pixman-image.cSøren Sandmann Pedersen2-58/+55
It is more natural to put it where all the other flags are computed.
2010-02-24Turn need_workaround into another flag.Søren Sandmann Pedersen4-40/+41
Instead of storing it as a boolean in the image struct, just use another flag for it.
2010-02-24Eliminate _pixman_image_is_opaque() in favor of a new FAST_PATH_IS_OPAQUE flagSøren Sandmann Pedersen3-62/+45
The new FAST_PATH_IS_OPAQUE flag is computed along with the others in _pixman_image_validate().
2010-02-24Eliminate _pixman_image_is_solid()Søren Sandmann Pedersen2-28/+15
Instead of calling this function in compute_image_info(), just do the relevant checks when the extended format is computed. Move computation of solidness to validate
2010-02-24Move computation of extended format code to validate.Søren Sandmann Pedersen3-30/+33
Instead of computing the extended format on every composite, just compute it once and store it in the image.
2010-02-24Add new FAST_PATH_SIMPLE_REPEAT flagSøren Sandmann Pedersen2-15/+12
This flags indicates that the image is untransformed an repeating. Such images can be composited quickly by simply repeating the composite operation.
2010-02-24Compute the image flags at validation time instead of composite timeSøren Sandmann Pedersen3-50/+61
Instead of computing all the image flags at composite time, we compute them once in _pixman_image_validate() and cache them in the image.
2010-02-24RELEASING: Update the release instructions.Søren Sandmann Pedersen1-16/+13
2010-02-24Post-release version bumpSøren Sandmann Pedersen1-1/+1
2010-02-24Pre-release version bumpSøren Sandmann Pedersen1-1/+1
2010-02-24Merge branch 'trap-fixes'Søren Sandmann Pedersen3-13/+17
2010-02-24Add a1-trap-testSøren Sandmann Pedersen2-0/+52
When a trapezoid sample point is exactly on a polygon edge, the rule is that it is considered inside the trapezoid if the edge is a top or left edge, but outside for bottom and right edges. This program tests that for a1 trapezoids.
2010-02-21Hide the C++ extern "C" declarations behind macros.Søren Sandmann Pedersen1-4/+8
That way they don't confuse the indenting algorithm in editors such as Emacs.
2010-02-20Merge branch 'eliminate-composite'Søren Sandmann Pedersen11-1008/+750
Conflicts: pixman/pixman-sse2.c
2010-02-20Move all code to do debugging spew into pixman-private.Søren Sandmann Pedersen4-91/+97
Rather than the region code having its own little debug system, move all of it into pixman-private where there is already return_if_fail() macros etc. These macros are now enabled in development snapshots and nowhere else. Previously they were never enabled unless you modified the code. At the same time, remove all the asserts from the region code since we can never turn them on anyway, and replace them with critical_if_fail() macros that will print spew to standard error when DEBUG is defined. Finally, also change the debugging spew in pixman-bits-image.c to use return_val_if_fail() instead of its own fprintf().
2010-02-19Test pixman_region32_init_from_image in region-testbfrAlexander Larsson2-3/+50
2010-02-19Add pixman_region{32}_init_from_imageAlexander Larsson2-1/+261
This creates a region from an image in PIXMAN_a1 format.
2010-02-19Move SCREEN_SHIFT_LEFT/RIGHT to pixman-private.hAlexander Larsson2-8/+8
This is needed for later use in other code.
2010-02-18Compile by USE_SSE2 only without USE_MMXMakoto Kato2-3/+7
Although we added MMX emulation for Microsoft Visual C++ compiler for x64, USE_SSE2 still requires USE_MMX. So we remove dependency of USE_MMX for Windows x64. Signed-off-by: Makoto Kato <m_kato@ga2.so-net.ne.jp>
2010-02-14Move NULL check out of get_image_info()Søren Sandmann Pedersen1-56/+57
The NULL check is only necessary for masks, so there is no reason to do it for destinations and sources.
2010-02-14Add a fast path for non-repeating sources in walk_region_internal().Søren Sandmann Pedersen1-4/+31
In the common case where there is no repeating, the loop in walk_region_internal() reduces to just walking of the boxes involved and calling the composite function.
2010-02-14Move more things out of the inner loop in do_composite().Søren Sandmann Pedersen1-58/+42
Specifically, - the src_ and mask_repeat computations - the check for whether the involved images cover the composite region.
2010-02-14Move region computation out of the loop in do_composite()Søren Sandmann Pedersen1-12/+13
We only need to compute the composite region once, not on every iteration.
2010-02-14Move get_image_info() out of the loop in do_compositeSøren Sandmann Pedersen1-18/+19
The computation of image formats and flags is invariant to the loop, so it can all be moved out.
2010-02-14Manually inline _pixman_run_fast_path()Søren Sandmann Pedersen1-122/+98
Move all of the code into do_composite().
2010-02-14Move compositing functionality from pixman-utils.c into pixman.cSøren Sandmann Pedersen3-515/+498
_pixman_run_fast_path() and pixman_compute_composite_region() are both moved to pixman-image, since at this point that's the only place they are being called from.
2010-02-14Move compositing to its own function, do_composite()Søren Sandmann Pedersen1-13/+37
2010-02-14Optimize for the common case wrt. the workaround.Søren Sandmann Pedersen1-40/+55
In the common case no images need the workaround, so we check for that first, and only if an image does need a workaround do we check which one of the images actually need it.
2010-02-14Eliminate all the composite methods.Søren Sandmann Pedersen9-282/+20
They are no longer necessary because we will just walk the fast path tables, and the general composite path is treated as another fast path. This unfortunately means that sse2_composite() can no longer be responsible for realigning the stack to 16 bytes, so we have to move that to pixman_image_composite().
2010-02-14Delete unused _pixman_walk_composite_region() functionSøren Sandmann Pedersen2-52/+0
2010-02-14Don't call _pixman_implementation_composite() anymore.Søren Sandmann Pedersen1-7/+14
Instead just call _pixman_run_fast_path(). Since we view general_composite() as a fast path now, we know that it will find *some* compositing routine.
2010-02-14Delete unused sources_cover() functionSøren Sandmann Pedersen1-23/+0
2010-02-14Store a pointer to the array of fast paths in the implementation struct.Søren Sandmann Pedersen9-47/+51
Also add an empty fast path table to the vmx implementation, so that we can assume sure the pointer is never NULL.
2010-02-14Make fast_composite_scaled_nearest() another fast path.Søren Sandmann Pedersen3-104/+130
This requires another couple of flags FAST_PATH_SCALE_TRANSFORM FAST_PATH_NEAREST_FILTER
2010-02-14Make general_composite_rect() just another fast path.Søren Sandmann Pedersen3-55/+85
We introduce a new PIXMAN_OP_any fake operator and a PIXMAN_any fake format that match anything. Then general_composite_rect() can be used as another fast path. Because general_composite_rect() does not require the sources to cover the clip region, we add a new flag FAST_PATH_COVERS_CLIP which is part of the set of standard flags for fast paths. Because this flag cannot be computed until after the clip region is available, we have to call pixman_compute_composite_region32() before checking for fast paths. This will resolve itself when we get to the point where _pixman_run_fast_path() is only called once per composite operation.
2010-02-13Post-release version bumpSøren Sandmann Pedersen1-1/+1
2010-02-13Pre-release version bumpSøren Sandmann Pedersen1-1/+1
2010-02-13Once unrolled version of fast_path_composite_nearest_scaled()Søren Sandmann Pedersen1-43/+84
Separate out the fetching and combining code in two inline functions. Then do two pixels per iteration.
2010-02-13Generalize and optimize fast_composite_src_scaled_nearest()Søren Sandmann Pedersen1-83/+118
- Make it work for PIXMAN_OP_OVER - Split repeat computation for x and y, and only the x part in the inner loop. - Move stride multiplication outside of inner loop
2010-02-13Merge branch 'bitmasks'Søren Sandmann Pedersen7-407/+407
2010-02-13Makefile.am: Remove 'check' from release-checkSøren Sandmann Pedersen1-1/+1
It's already included in distcheck.