Ben Avison (7):
Tweaks to lowlevel-blt-bench
ARMv6: Lay the groundwork for later patches in the series
ARMv6: New fill routines
ARMv6: New blit routines
ARMv6: New conversion routines
ARMv6: Replacement add_8_8, over_8888_8888, over_8888_n_8888 and over_n_8_8888 routines
Improve L1 and L2 benchmark tests for caches that don't use allocate-on-write
Benjamin Gilbert (1):
Fix thread safety on mingw-w64 and clang
Chris Wilson (6):
sse2: Add a fast path for add_n_8888
sse2: Add a fast path for add_n_8_8888
sse2: Add fast paths for bilinear source with a solid mask
Always return a valid function from lookup_composite()
Always return a valid function from lookup_combiner()
Eliminate duplicate copies of channel flags for pixman_image_composite32()
Jeff Muizelaar (1):
Add a version of bilinear_interpolation for precision <=4
Joshua Root (1):
Fix undeclared variable use and sysctlbyname error handling on ppc
Marko Lindqvist (1):
Fix build with automake-1.13
Matt Turner (2):
Add new demos and tests to .gitignore
Convert INCLUDES to AM_CPPFLAGS
Nemanja Lukic (5):
MIPS: DSPr2: Added more fast-paths for SRC operation:
MIPS: DSPr2: Added more fast-paths for OVER operation:
MIPS: DSPr2: Added several nearest neighbor fast paths with a8 mask:
MIPS: DSPr2: Added more fast-paths for REVERSE operation: - out_reverse_8_0565 - out_reverse_8_8888
MIPS: DSPr2: Added more fast-paths: - over_reverse_n_8888 - in_n_8_8
Siarhei Siamashka (21):
test: Change is_little_endian() into inline function
test: Added a better PRNG (pseudorandom number generator)
test: Search/replace 'lcg_*' -> 'prng_*'
test: Switch to the new PRNG instead of old LCG
test: Get rid of the obsolete 'prng_rand_N' and 'prng_rand_u32'
Improve performance of combine_over_u
test: Workaround unaligned MOVDQA bug (http://gcc.gnu.org/PR55614)
test: add "src_0565_8888" to lowlevel-blt-bench
Change CONVERT_XXXX_TO_YYYY macros into inline functions
Faster conversion from a8r8g8b8 to r5g6b5 in C code
ARM: make use of UQADD8 instruction even in generic C code paths
Rename 'xor' variable to 'filler' (because 'xor' is a C++ keyword)
Define SIZE_MAX if it is not provided by the standard C headers
Use more appropriate types and remove a magic constant
Added C variants of r5g6b5 fetch/write-back iterators
Faster write-back for the C variant of r5g6b5 dest iterator
Faster fetch for the C variant of r5g6b5 src/dest iterator
Add higher precision "pixman_transform_point_*" functions
configure.ac: Added detection for __float128 support
test: Added matrix-test for testing projective transform accuracy
Use pixman_transform_point_31_16() from pixman_transform_point()
Stefan Weil (3):
Always use xmmintrin.h for 64 bit Windows
pixman: Use uintptr_t in type casts from pointer to integral value
test: Fix compiler warnings caused by unused code
Søren Sandmann Pedersen (37):
Post-release version bump to 0.27.5
Pre-release version bump to 0.28.0
Post-release version bump to 0.29.1
pixman_image_composite: Reduce opaque masks to NULL
pixman.h: Add typedefs for pixman_f_transform and pixman_f_vector
Allow src and dst to be identical in pixman_f_transform_invert()
Round fixed-point multiplication
Convolution filter: round color values instead of truncating
Add text file rounding.txt describing how rounding works
Add new filter PIXMAN_FILTER_SEPARABLE_CONVOLUTION
rounding.txt: Describe how SEPARABLE_CONVOLUTION filter works
Add new pixman_filter_create_separable_convolution() API
demos/gtk-utils.[ch]: Add pixman_image_from_file()
demos: Add new demo program, "scale"
Add demos/zone_plate.png
Add demo program for conical gradients
Add fast paths for separable convolution
demos/radial-test: Add zero-radius circles to demonstrate rendering bugs
radial: When comparing t to mindr, use >= rather than >
test/utils.[ch]: Add utility function to draw a checkerboard
demos/conical-test: Use the draw_checkerboard() utility function
demos/radial-test: Add checkerboard to display the alpha channel
Add testing of trapezoids to stress-test
pixman_composite_trapezoids: Return early if mask_format is not of TYPE_ALPHA
pixman_composite_trapezoids(): Check for NULL return from create_bits()
float-combiner.c: Change tests for x == 0.0 tests to - FLT_MIN < x < FLT_MIN
Handle solid images in the noop iterator
pixman-filter.c: Cope with NULL returns from malloc()
README: Add guidelines on how to contribute patches
test/utils.[ch]: Add new function operator_name()
utils.[ch]: Add new format_name() function
test: Use operator_name() and format_name() in composite.c
demo/scale: Add a spin button to set the number of subsample bits
pixman-combine-float.c: Use IS_ZERO() in clip_color() and set_sat()
Change default GPGKEY to 3892336E, which is soren.sandmann@gmail.com
stresstest: Ensure that the rasterizer is only given alpha formats
Pre-release version bump to 0.29.2
Andrea Canciani (2):
mmx: Fix x86 build on MSVC
build: Improve win32 build system
Benny Siegert (1):
configure.ac: PIXMAN_LINK_WITH_ENV fix
Matt Turner (3):
build: Remove useless DEP_CFLAGS/DEP_LIBS variables
sse2: mark pack_565_2x128_128 as static force_inline
iwmmxt: Don't define dummy _mm_empty for >=gcc-4.8
Nemanja Lukic (7):
MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_8888 - over_8888_8_8888
MIPS: DSPr2: Added fast-paths for OVER operation: - over_8888_n_0565 - over_8888_8_0565
MIPS: DSPr2: Added fast-paths for OVER operation: - over_0565_n_0565 - over_0565_8_0565
MIPS: DSPr2: Added OVER combiner and two new fast paths: - over_8888_8888 - over_8888_8888_8888
MIPS: DSPr2: Added fast-paths for ADD operation: - add_n_8_8 - add_n_8_8888 - add_8_8_8
MIPS: DSPr2: Added more fast-paths for ADD operation: - add_0565_8_0565 - add_8888_8_8888 - add_8888_n_8888
MIPS: DSPr2: Added more fast-paths for ADD operation: - add_8888_8888_8888 - add_8_8 - add_8888_8888
Siarhei Siamashka (4):
Add scaled nearest repeat fast paths
MIPS: skip runtime detection for DSPr2 if -mdspr2 option is in CFLAGS
Add missing force_inline to in() function used for C fast paths
Workaround for FTBFS with gcc 4.6 (http://gcc.gnu.org/PR54965)
Søren Sandmann Pedersen (44):
Post-release version bump to 0.27.3
Define TIMER_BEGIN and TIMER_END even when timers are not enabled
Make show_image() cope with more formats
demos: Add srgb_trap_test.c
Remove pointless declaration of _pixman_image_get_scanline_generic_64()
Remove obsolete TODO file
pixel_checker: Move sRGB conversion into get_limits()
test/utils.c: Use pow(), not powf() in sRGB conversion routines
implementation: Write lookup_combiner() in a less convoluted way.
Move blt delegation into pixman-implementation.c
Move fill delegation into pixman-implementation.c
Move delegation of src/dest iter init into pixman-implementation.c
Rename _pixman_lookup_composite_function() to _pixman_implementation_lookup_composite()
_pixman_implementation_create(): Initialize implementation with memset()
implementation: Rename delegate to fallback
Add PIXMAN_x8b8g8r8 and PIXMAN_a8b8g8r8 formats to scaling-test
Fix bug in fast_composite_scaled_nearest()
Fix bugs in component alpha combiners for separable PDF operators
Add rotate-test.c test program
Fix bugs in pixman-image.c
pixman-combine.c.template: Formatting clean-ups
affine-test: Print out the transformation matrix when verbose
test: Add inifinite-loop test
Fix for infinite-loop test
rotate-test: Call image_endian_swap() in make_image()
Make pixman.h more const-correct
glyph-test: Prepare for floating point
blitters-test: Prepare for floating point
Add pixman-combine-float.c
Add combiner test
pixman-utils.c, pixman-private.h: Add floating point conversion routines
pixman-access.c: Add floating point accessor functions
Switch the wide pipeline over to using floating point
Remove 64 bit pipeline
Don't auto-generate pixman-combine32.[ch] anymore
Speed up pixman_expand_to_float()
Remove BUILT_SOURCES
Only regard images as pixbufs if they have identity transformations
region: Formatting fix
region: Remove overlap argument from pixman_op()
Add new pixman_image_create_bits_no_clear() API
pixman_composite_trapezoids(): Factor out extents computation
pixman_composite_trapezoids(): don't clip to extents for some operators
Pre-release version bump to 0.27.4
--HG--
extra : rebase_source : ed5b5f0184dd19b2ae5caa43edee6effce14efaf
Alan Coopersmith (2):
Make mmx code compatible with Solaris Studio 12.3 compilers
Just use xmmintrin.h when building with Solaris Studio compilers
Andrea Canciani (7):
Remove useless checks for NULL before freeing
test: Cleanup includes
Use the ARRAY_LENGTH() macro when possible
test: Reuse the ARRAY_LENGTH() macro
demos: Consistently use G_N_ELEMENTS()
test: Produce autotools-looking report in the win32 build system
build: Fix compilation on win32
Antti S. Lankila (5):
Faster unorm_to_unorm for wide processing.
Remove unnecessary dst initialization
Add support for sRGB surfaces
Add sRGB blending demo program
Add tests to validate new sRGB behavior
Bobby Salazar (2):
Android Runtime Detection Support For ARM NEON
iOS Runtime Detection Support For ARM NEON
Chun-wei Fan (1):
Just include xmmintrin.h on MSVC as well
Colin Walters (1):
autogen.sh: Support GNOME Build API
Ingmar Runge (1):
Fix MSVC compilation
Jeremy Huddleston (7):
configure.ac: Add an --enable-libpng option
Revert "Disable MMX when Clang is being used."
Silence a warning about unused pixman_have_mmx
Disable MMX when incompatible clang is being used.
Expand TLS support beyond __thread to __declspec(thread)
Fix a false-negative in MMX check
configure.ac: Fix a copy-paste-o in TLS detection
Matt Turner (60):
Use AC_LANG_SOURCE for iwMMXt configure program
Make sure to run AC_SUBST IWMMXT_CFLAGS
Convert while (w) to if (w) when possible
autoconf: use #error instead of error
mmx: enable over_x888_8_8888 on ARM/iwMMXt
mmx: Use _mm_mulhi_pu16
mmx: Use _mm_shuffle_pi16
mmx: fix typo in pix_add_mul on MSVC
Update .gitignore with more demos and tests
mmx: make store8888 take uint32_t *dest as argument
mmx: make load8888 take a pointer to data instead of the data itself
lowlevel-blt: add over_8888_8888
lowlevel-blt: add over_x888_n_8888
lowlevel-blt-bench: add in_8_8 and in_n_8_8
Use AC_LANG_SOURCE for DSPr2 configure program
mmx: enable over_n_0565 for b5g6r5
mmx: Use force_inline instead of __inline__ (bug 46906)
configure.ac: require >= gcc-4.5 for ARM iwMMXt
mmx: fix _mm_shuffle_pi16 function when compiling without optimization
configure.ac: fix iwMMXt/gcc version error message
mmx: add store function and use it in add_8888_8888
mmx: add load function and use it in add_8888_8888
mmx: make ldq_u take __m64* directly
mmx: compile on MIPS for Loongson MMI optimizations
mmx: remove unnecessary uint64_t<->__m64 conversions
mmx: simplify srcsrcsrcsrc calculation in over_n_8_0565
mmx: introduce is_equal, is_opaque, and is_zero functions
mmx: don't pack and unpack src unnecessarily
mmx: Use Loongson pinsrh instruction in pack_565
mmx: Use Loongson pextrh instruction in expand565
mmx: add r5g6b5 fetcher
mmx: add a8 fetcher
mmx: add x8f8g8b8 fetcher
mmx: add src_8888_0565
mmx: Use wpackhus in src_x888_0565 on iwMMXt
.gitignore: add demos/checkerboard and demos/quad2quad
configure.ac: make -march=loongson2f come before CFLAGS
mmx: add and use pack_4x565 function
configure.ac: Fix loongson-mmi out-of-tree builds
configure.ac: Rename loongson -> loongson-mmi
configure.ac: Fail the ARM/iwMMXt test if not compiling with -march=iwmmxt
mmx: add and use expand_4xpacked565 function
mmx: implement expand_4x565 in terms of expand_4xpacked565
fast: add add_0565_0565 function
mmx: add add_0565_0565
mmx: add over_reverse_n_8888
mmx: add missing _mm_empty calls
autotools: use custom build rule to build iwMMXt code
configure.ac: add iwmmxt2 configure flag
.gitignore: add test/glyph-test
sse2: enable over_n_0565 for b5g6r5
sse2: add src_x888_0565
Fix distcheck due to custom iwMMXt rules
mmx: Use expand_alpha instead of mask/shift
mmx: add scaled bilinear src_8888_8888
mmx: add scaled bilinear over_8888_8888
mmx: add scaled bilinear over_8888_8_8888
mmx: optimize bilinear function when using 7-bit precision
loongson: optimize _mm_set_pi* functions with shuffle instructions
sse2: add missing ABGR entires for bilinear src_8888_8888
Naohiro Aota (1):
Don't use non-POSIX test
Nemanja Lukic (9):
MIPS: DSPr2: Basic infrastructure for MIPS architecture
MIPS: DSPr2: Added fast-paths for SRC operation.
MIPS: DSPr2: Added mips_dspr2_blt and mips_dspr2_fill routines.
MIPS: DSPr2: Added over_n_8888_8888_ca and over_n_8888_0565_ca fast paths.
MIPS: DSPr2: Added over_n_8_8888 and over_n_8_0565 fast paths.
MIPS: DSPr2: Fix bug in over_n_8888_8888_ca/over_n_8888_0565_ca routines
MIPS: DSPr2: Added bilinear over_8888_8_8888 fast path.
MIPS: DSPr2: Added several bilinear fast paths with a8 mask
MIPS: DSPr2: Added more bilinear fast paths (without mask)
Sebastian Bauer (4):
Qualify the static variables in pixman_f_transform_invert() with the const keyword.
Changed the style of two function headers
Added HAVE_CONFIG_H check before including config.h
Use angle brackets form of including config.h
Siarhei Siamashka (8):
test: OpenMP 2.5 requires signed loop iteration variables
test: fix bisecting issue in fuzzer-find-diff.pl
test: Fix for strict aliasing issue in 'get_random_seed'
test: support nearest/bilinear scaling in lowlevel-blt-bench
sse2: faster bilinear scaling (use _mm_loadl_epi64)
Bilinear interpolation precision is now configurable at compile time
sse2: _mm_madd_epi16 for faster bilinear scaling with 7-bit precision
Change default bilinear interpolation precision to 7 bits
Søren Sandmann Pedersen (81):
Post-release version bump to 0.25.1
region: Add pixman_region{,32}_clear() functions.
Modify gradient-test to show a bug in NONE processing
gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
pixman-image.c: Fix typo in pixman_image_set_transform()
Fix some signed overflow bugs
Add missing cast in _pixman_edge_multi_init()
Fix a bunch of signed overflow issues
In MUL_UNc() cast to comp2_t
Reject trapezoids where top (botttom) is above (below) the edges
Fix rounding for DIV_UNc()
test: In the alphamap test, also test that we get the right red value
Fix bugs with alpha maps
test/alphamap.c: Make dst and orig_dst more independent of each other
Get rid of delegates for combiners
Move the color_correct() function from composite.c to utils.c
Rename color_correct() to round_color()
test: Add a new "pixel_checker_t" object.
test: Port composite test over to use new pixel_checker_t object.
Revert "Reject trapezoids where top (botttom) is above (below) the edges"
mmx: Enable over_x888_8_8888() for x86 as well
mmx: Delete unused function in_over_full_src_alpha()
Disable MMX when Clang is being used.
Disable implementations mentioned in the PIXMAN_DISABLE environment variable.
Move fetching for solid bits images to pixman-noop.c
pixman-accessors.h: Delete unused macros
pixman-access.c: Remove some unused macros
mmx: Squash a warning by making the argument to ldl_u() const
Pre-release version bump to 0.25.2
Post-release version bump to 0.25.3
Use "=a" and "=d" constraints for rdtsc inline assembly
demos: Add quad2quad program
demos: Add checkerboard demo
composite-test.c: Use similar gradient to the one in the PDF spec.
composite-test.c: Add a parrot image
Add the original parrot image.
Rename fast_composite_add_1000_1000 to _add_1_1()
gtk-utils.c: Don't include pixman-private.h
test/utils.c: Rename and export the pngify_pixels() function.
gtk-utils.c: In pixbuf_from_argb32() use a8r8g8b8_to_rgba_np()
test/utils.c: Clip values to the [0, 255] interval
bits_image_fetch_pixel_convolution(): Make sure channels are signed
Add Makefile.win32 and Makefile.win32.common to EXTRA_DIST
demos/Makefile.am: Add parrot.c to EXTRA_DIST
Pre-release version bump to 0.25.6
Post-release version bump to 0.25.7
demos: Add parrot.jpg to EXTRA_DIST
test: Composite with solid images instead of using pixman_image_fill_*
Pre-release version bump to 0.26.0
Post-release version bump to 0.27.1
Pass the full image flags to iterators
Make use of image flags in mmx and sse2 iterators
Add doubly linked lists
Add pixman_glyph_cache_t API
Move CRC32 computation from blitters-test.c into utils.c
Add support for alpha maps to compute_crc32_for_image().
test: Add glyph-test
Speed up pixman_composite_glyphs()
Speed up _pixman_composite_glyphs_no_mask()
Speed up _pixman_image_get_solid() in common cases
bits-image: Turn all the fetchers into iterator getters
test: Make glyph test pass on big endian
test: Add missing break in stress-test.c
test: Make stress-test more likely to actually composite something
In fast_composite_tiled_repeat() don't clone images with a palette
Use a compile-time constant for the "K" constraint in the MMX detection.
pixman-cpu.c: Rename disabled to _pixman_disabled() and export it
Move x86 specific CPU detection to a new file pixman-x86.c
Move ARM specific CPU detection to a new file pixman-arm.c
Move PowerPC specific CPU detection to its own file pixman-ppc.c
Move MIPS specific CPU detection to its own file, pixman-mips.c
Move the remaining bits of pixman-cpu into pixman-implementation.c
Simplify MIPS CPU detection
Simplifications to ARM CPU detection
Simplify CPU detection on PPC.
Cleanups and simplifications in x86 CPU feature detection
Make pixman-mmx.c compile on x86-32 without optimization
Add make-srgb.pl to EXTRA_DIST
stress-test: Avoid overflows in clip rectangles
glyph-test: Avoid setting solid images as alpha maps.
Pre-release version bump to 0.27.2
* * *
--HG--
extra : rebase_source : d5b871a3b10fe0123f6e50cf98c3621532e5d914
Alan Coopersmith (2):
Make mmx code compatible with Solaris Studio 12.3 compilers
Just use xmmintrin.h when building with Solaris Studio compilers
Andrea Canciani (7):
Remove useless checks for NULL before freeing
test: Cleanup includes
Use the ARRAY_LENGTH() macro when possible
test: Reuse the ARRAY_LENGTH() macro
demos: Consistently use G_N_ELEMENTS()
test: Produce autotools-looking report in the win32 build system
build: Fix compilation on win32
Antti S. Lankila (5):
Faster unorm_to_unorm for wide processing.
Remove unnecessary dst initialization
Add support for sRGB surfaces
Add sRGB blending demo program
Add tests to validate new sRGB behavior
Bobby Salazar (2):
Android Runtime Detection Support For ARM NEON
iOS Runtime Detection Support For ARM NEON
Chun-wei Fan (1):
Just include xmmintrin.h on MSVC as well
Colin Walters (1):
autogen.sh: Support GNOME Build API
Ingmar Runge (1):
Fix MSVC compilation
Jeremy Huddleston (7):
configure.ac: Add an --enable-libpng option
Revert "Disable MMX when Clang is being used."
Silence a warning about unused pixman_have_mmx
Disable MMX when incompatible clang is being used.
Expand TLS support beyond __thread to __declspec(thread)
Fix a false-negative in MMX check
configure.ac: Fix a copy-paste-o in TLS detection
Matt Turner (60):
Use AC_LANG_SOURCE for iwMMXt configure program
Make sure to run AC_SUBST IWMMXT_CFLAGS
Convert while (w) to if (w) when possible
autoconf: use #error instead of error
mmx: enable over_x888_8_8888 on ARM/iwMMXt
mmx: Use _mm_mulhi_pu16
mmx: Use _mm_shuffle_pi16
mmx: fix typo in pix_add_mul on MSVC
Update .gitignore with more demos and tests
mmx: make store8888 take uint32_t *dest as argument
mmx: make load8888 take a pointer to data instead of the data itself
lowlevel-blt: add over_8888_8888
lowlevel-blt: add over_x888_n_8888
lowlevel-blt-bench: add in_8_8 and in_n_8_8
Use AC_LANG_SOURCE for DSPr2 configure program
mmx: enable over_n_0565 for b5g6r5
mmx: Use force_inline instead of __inline__ (bug 46906)
configure.ac: require >= gcc-4.5 for ARM iwMMXt
mmx: fix _mm_shuffle_pi16 function when compiling without optimization
configure.ac: fix iwMMXt/gcc version error message
mmx: add store function and use it in add_8888_8888
mmx: add load function and use it in add_8888_8888
mmx: make ldq_u take __m64* directly
mmx: compile on MIPS for Loongson MMI optimizations
mmx: remove unnecessary uint64_t<->__m64 conversions
mmx: simplify srcsrcsrcsrc calculation in over_n_8_0565
mmx: introduce is_equal, is_opaque, and is_zero functions
mmx: don't pack and unpack src unnecessarily
mmx: Use Loongson pinsrh instruction in pack_565
mmx: Use Loongson pextrh instruction in expand565
mmx: add r5g6b5 fetcher
mmx: add a8 fetcher
mmx: add x8f8g8b8 fetcher
mmx: add src_8888_0565
mmx: Use wpackhus in src_x888_0565 on iwMMXt
.gitignore: add demos/checkerboard and demos/quad2quad
configure.ac: make -march=loongson2f come before CFLAGS
mmx: add and use pack_4x565 function
configure.ac: Fix loongson-mmi out-of-tree builds
configure.ac: Rename loongson -> loongson-mmi
configure.ac: Fail the ARM/iwMMXt test if not compiling with -march=iwmmxt
mmx: add and use expand_4xpacked565 function
mmx: implement expand_4x565 in terms of expand_4xpacked565
fast: add add_0565_0565 function
mmx: add add_0565_0565
mmx: add over_reverse_n_8888
mmx: add missing _mm_empty calls
autotools: use custom build rule to build iwMMXt code
configure.ac: add iwmmxt2 configure flag
.gitignore: add test/glyph-test
sse2: enable over_n_0565 for b5g6r5
sse2: add src_x888_0565
Fix distcheck due to custom iwMMXt rules
mmx: Use expand_alpha instead of mask/shift
mmx: add scaled bilinear src_8888_8888
mmx: add scaled bilinear over_8888_8888
mmx: add scaled bilinear over_8888_8_8888
mmx: optimize bilinear function when using 7-bit precision
loongson: optimize _mm_set_pi* functions with shuffle instructions
sse2: add missing ABGR entires for bilinear src_8888_8888
Naohiro Aota (1):
Don't use non-POSIX test
Nemanja Lukic (9):
MIPS: DSPr2: Basic infrastructure for MIPS architecture
MIPS: DSPr2: Added fast-paths for SRC operation.
MIPS: DSPr2: Added mips_dspr2_blt and mips_dspr2_fill routines.
MIPS: DSPr2: Added over_n_8888_8888_ca and over_n_8888_0565_ca fast paths.
MIPS: DSPr2: Added over_n_8_8888 and over_n_8_0565 fast paths.
MIPS: DSPr2: Fix bug in over_n_8888_8888_ca/over_n_8888_0565_ca routines
MIPS: DSPr2: Added bilinear over_8888_8_8888 fast path.
MIPS: DSPr2: Added several bilinear fast paths with a8 mask
MIPS: DSPr2: Added more bilinear fast paths (without mask)
Sebastian Bauer (4):
Qualify the static variables in pixman_f_transform_invert() with the const keyword.
Changed the style of two function headers
Added HAVE_CONFIG_H check before including config.h
Use angle brackets form of including config.h
Siarhei Siamashka (8):
test: OpenMP 2.5 requires signed loop iteration variables
test: fix bisecting issue in fuzzer-find-diff.pl
test: Fix for strict aliasing issue in 'get_random_seed'
test: support nearest/bilinear scaling in lowlevel-blt-bench
sse2: faster bilinear scaling (use _mm_loadl_epi64)
Bilinear interpolation precision is now configurable at compile time
sse2: _mm_madd_epi16 for faster bilinear scaling with 7-bit precision
Change default bilinear interpolation precision to 7 bits
Søren Sandmann Pedersen (81):
Post-release version bump to 0.25.1
region: Add pixman_region{,32}_clear() functions.
Modify gradient-test to show a bug in NONE processing
gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
pixman-image.c: Fix typo in pixman_image_set_transform()
Fix some signed overflow bugs
Add missing cast in _pixman_edge_multi_init()
Fix a bunch of signed overflow issues
In MUL_UNc() cast to comp2_t
Reject trapezoids where top (botttom) is above (below) the edges
Fix rounding for DIV_UNc()
test: In the alphamap test, also test that we get the right red value
Fix bugs with alpha maps
test/alphamap.c: Make dst and orig_dst more independent of each other
Get rid of delegates for combiners
Move the color_correct() function from composite.c to utils.c
Rename color_correct() to round_color()
test: Add a new "pixel_checker_t" object.
test: Port composite test over to use new pixel_checker_t object.
Revert "Reject trapezoids where top (botttom) is above (below) the edges"
mmx: Enable over_x888_8_8888() for x86 as well
mmx: Delete unused function in_over_full_src_alpha()
Disable MMX when Clang is being used.
Disable implementations mentioned in the PIXMAN_DISABLE environment variable.
Move fetching for solid bits images to pixman-noop.c
pixman-accessors.h: Delete unused macros
pixman-access.c: Remove some unused macros
mmx: Squash a warning by making the argument to ldl_u() const
Pre-release version bump to 0.25.2
Post-release version bump to 0.25.3
Use "=a" and "=d" constraints for rdtsc inline assembly
demos: Add quad2quad program
demos: Add checkerboard demo
composite-test.c: Use similar gradient to the one in the PDF spec.
composite-test.c: Add a parrot image
Add the original parrot image.
Rename fast_composite_add_1000_1000 to _add_1_1()
gtk-utils.c: Don't include pixman-private.h
test/utils.c: Rename and export the pngify_pixels() function.
gtk-utils.c: In pixbuf_from_argb32() use a8r8g8b8_to_rgba_np()
test/utils.c: Clip values to the [0, 255] interval
bits_image_fetch_pixel_convolution(): Make sure channels are signed
Add Makefile.win32 and Makefile.win32.common to EXTRA_DIST
demos/Makefile.am: Add parrot.c to EXTRA_DIST
Pre-release version bump to 0.25.6
Post-release version bump to 0.25.7
demos: Add parrot.jpg to EXTRA_DIST
test: Composite with solid images instead of using pixman_image_fill_*
Pre-release version bump to 0.26.0
Post-release version bump to 0.27.1
Pass the full image flags to iterators
Make use of image flags in mmx and sse2 iterators
Add doubly linked lists
Add pixman_glyph_cache_t API
Move CRC32 computation from blitters-test.c into utils.c
Add support for alpha maps to compute_crc32_for_image().
test: Add glyph-test
Speed up pixman_composite_glyphs()
Speed up _pixman_composite_glyphs_no_mask()
Speed up _pixman_image_get_solid() in common cases
bits-image: Turn all the fetchers into iterator getters
test: Make glyph test pass on big endian
test: Add missing break in stress-test.c
test: Make stress-test more likely to actually composite something
In fast_composite_tiled_repeat() don't clone images with a palette
Use a compile-time constant for the "K" constraint in the MMX detection.
pixman-cpu.c: Rename disabled to _pixman_disabled() and export it
Move x86 specific CPU detection to a new file pixman-x86.c
Move ARM specific CPU detection to a new file pixman-arm.c
Move PowerPC specific CPU detection to its own file pixman-ppc.c
Move MIPS specific CPU detection to its own file, pixman-mips.c
Move the remaining bits of pixman-cpu into pixman-implementation.c
Simplify MIPS CPU detection
Simplifications to ARM CPU detection
Simplify CPU detection on PPC.
Cleanups and simplifications in x86 CPU feature detection
Make pixman-mmx.c compile on x86-32 without optimization
Add make-srgb.pl to EXTRA_DIST
stress-test: Avoid overflows in clip rectangles
glyph-test: Avoid setting solid images as alpha maps.
Pre-release version bump to 0.27.2
* * *
--HG--
extra : rebase_source : 979841b7b315ca9ed7995ece39333dce541238fd
win32: Use a font_face hash table to provide unique font faces
win32-font: Improve static data reset function
Bug 717178. Part 2: Import changesets eb29a25d, 6e3e3291 and 101fab7c from upstream.
======
From 101fab7cd8a90f7cf3d8113c792b3f8c2a9afb7d Mon Sep 17 00:00:00 2001
The hashtable is guaranteed to only contain font faces which are
currently referenced, hence there is no need to remove any font face
when it is reset (just like for toy-font).
This makes the function simpler and fixes the assertion
Assertion failed: predicate != NULL, file cairo-hash.c, line 373
hit by multiple tests (the first one being "clear").
See https://bugs.freedesktop.org/show_bug.cgi?id=38049
======
From eb29a25dd6dddc511388bf883c9b95843ecdb823 Mon Sep 17 00:00:00 2001
Similar to the freetype and toy font backends, use a hash table
to map logfont,hfont to font faces.
This fixes the multiple embedding of the same font in PDF.
https://bugs.freedesktop.org/show_bug.cgi?id=24849
======
From 6e3e329170ab4b96bc0d587c8071e869e228e758 Mon Sep 17 00:00:00 2001
some bugs were discovered while testing with firefox
======
--HG--
extra : rebase_source : 6bbb299194f2296522e36bfeb68d1e8ebc2d1f17
Bug 717178. Part 2: Import changesets eb29a25d, 6e3e3291 and 101fab7c from upstream.
======
From 101fab7cd8a90f7cf3d8113c792b3f8c2a9afb7d Mon Sep 17 00:00:00 2001
The hashtable is guaranteed to only contain font faces which are
currently referenced, hence there is no need to remove any font face
when it is reset (just like for toy-font).
This makes the function simpler and fixes the assertion
Assertion failed: predicate != NULL, file cairo-hash.c, line 373
hit by multiple tests (the first one being "clear").
See https://bugs.freedesktop.org/show_bug.cgi?id=38049
======
From eb29a25dd6dddc511388bf883c9b95843ecdb823 Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Tue, 16 Nov 2010 13:18:39 +0000
Subject: win32: Use a font_face hash table to provide unique font faces
Similar to the freetype and toy font backends, use a hash table
to map logfont,hfont to font faces.
This fixes the multiple embedding of the same font in PDF.
https://bugs.freedesktop.org/show_bug.cgi?id=24849
======
From 6e3e329170ab4b96bc0d587c8071e869e228e758 Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Thu, 18 Nov 2010 12:37:45 +0000
Subject: win32: fix font_face hashing
some bugs were discovered while testing with firefox
======
======
From eb29a25dd6dddc511388bf883c9b95843ecdb823 Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Tue, 16 Nov 2010 13:18:39 +0000
Subject: win32: Use a font_face hash table to provide unique font faces
Similar to the freetype and toy font backends, use a hash table
to map logfont,hfont to font faces.
This fixes the multiple embedding of the same font in PDF.
https://bugs.freedesktop.org/show_bug.cgi?id=24849
======
From 6e3e329170ab4b96bc0d587c8071e869e228e758 Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Thu, 18 Nov 2010 12:37:45 +0000
Subject: win32: fix font_face hashing
some bugs were discovered while testing with firefox
======
From 101fab7cd8a90f7cf3d8113c792b3f8c2a9afb7d Mon Sep 17 00:00:00 2001
From: Andrea Canciani <ranma42@gmail.com>
Date: Wed, 15 Jun 2011 09:37:36 +0000
Subject: win32-font: Improve static data reset function
The hashtable is guaranteed to only contain font faces which are
currently referenced, hence there is no need to remove any font face
when it is reset (just like for toy-font).
This makes the function simpler and fixes the assertion
Assertion failed: predicate != NULL, file cairo-hash.c, line 373
hit by multiple tests (the first one being "clear").
See https://bugs.freedesktop.org/show_bug.cgi?id=38049
======
--HG--
extra : rebase_source : 73172c901f80e2f6e9f52035e1d6eab2a220642f
The new version of the code is more obviously correct. Hopefully
the compiler is smart enough to turn it into something fast.
--HG--
extra : rebase_source : bdf2f00c5eae5d5a1bf6dff223b1b05f561384ab
Cairo is a 3rd party project and we decided in bug that silencing the
warnings was easier than patching.
--HG--
extra : rebase_source : aa7a22b208e62d0d84d1b4a6e5c58d366d957bb9
This does a 2x2 ordered dither in the same way that Skia does.
One of the things I'm currently unhappy with is that it duplicates
the gradient walker code for 16 bits. We could turn it into a large
macro that does the appropriate things for 16 bit and 32 bit
versions, but that's not particularly appealing.
This does a 2x2 ordered dither in the same way that Skia does.
One of the things I'm currently unhappy with is that it duplicates
the gradient walker code for 16 bits. We could turn it into a large
macro that does the appropriate things for 16 bit and 32 bit
versions, but that's not particularly appealing.
--HG--
extra : rebase_source : ef89cd53d68166db825bb993e1262db342ba9b5d
Skia uses a value of 0.5, however using such a high value causes some reftest failures.
Switch to 0.3 because we can do that without changing the reftests too much. We
can still use a higher value if we need to later. This should give us sqrt(3)
reduction in the number of segments.
--HG--
extra : rebase_source : 39f1892a61f7e242460deb1bc21adb30778147e3
This takes a trick from skia to go faster. For now, it's only
used on non-NEON devices.
--HG--
extra : rebase_source : c2ddce91cc8cf71ee609420107b0922d1166db43
This will allows us to scale and repeat in a single pass instead
of doing it in two.
--HG--
extra : rebase_source : 8f40aec620494d9c584a3c58cd70ac39723041a4
This takes the bilinear interpolation code from Skia. It
uses 4 bits of precision instead of 8. This lets it interpolate
two components at a time because the results fit in 16 bits.
The lower precision code is only used in the fallback code
and not in any of the specialized code for NEON. This means
pixman gives different results depending on the cpu which isn't
great. However, this was easiest and the NEON code doesn't
gain as much from using lower precision.
Skia actually uses even lower interpolation when working with
565 but that's harder to plug in right now, and this gives
a reasonable improvement.
It seems like we sometimes end up using EXTEND_NONE unintentionally, this is
likely caused by different rounding between cairo and pixman. Pixman already
does a similar reduction to EXTEND_NONE so there's not point in duplicating it
here.
--HG--
extra : rebase_source : 5649a2583a8a01084567bfb06cb3c788437210f5
Alan Coopersmith (2):
Change MMX ldq_u to return _m64 instead of forcing all callers to cast
Make mmx code compatible with Solaris Studio 12.3 compilers
Andrea Canciani (13):
Include noop in win32 builds
Silence autoconf warnings
radial: Improve documentation and naming
radial: Fix typos and trailing whitespace
win32: Build benchmarks
Workaround bug in llvm-gcc
test: Fix compilation on win32
build: Reuse sources and pixman-combine build rules
build: Reuse test sources
build-win32: Share targets and variables across win32 makefiles
build-win32: Add root Makefile.win32
test: Do not include config.h unless HAVE_CONFIG_H is defined
build-win32: Add 'check' target
Benjamin Otte (2):
tests: Add PNG_CFLAGS/LIBS to tests
build: replace @VAR@ with $(VAR) in makefiles
Bobby Salazar (1):
Android Runtime Detection Support For ARM NEON
Chris Wilson (1):
bits: optimise fetching width==1 repeats
Colin Walters (1):
autogen.sh: Support GNOME Build API
Jeff Muizelaar (1):
Add definitions of INT64_MIN and INT64_MAX
Jon TURNEY (1):
Fix build on cygwin after commit efdf65c0c4fff551fb3cd9104deda9adb6261e22
Matt Turner (11):
lowlevel-blt: add over_x888_8_8888
mmx: fix formats in commented code
mmx: convert while (w) to if (w) when possible
mmx: rename USE_MMX to USE_X86_MMX
mmx: wrap x86/MMX inline assembly in ifdef USE_X86_MMX
mmx: fix unaligned accesses
mmx: prepare pixman-mmx.c to be compiled for ARM/iwmmxt
mmx: compile on ARM for iwmmxt optimizations
mmx: optimize unaligned 64-bit ARM/iwmmxt loads
Make sure iwMMXt is only detected on ARM
Correct the minimum gcc version needed for iwmmxt
Naohiro Aota (1):
Don't use non-POSIX test
Nis Martensen (1):
Fix a few typos in pixman-combine.c.template
Siarhei Siamashka (4):
C fast path for scaled src_x888_8888 with nearest filter
ARM: workaround binutils bug #12931 (code sections alignment)
test: better coverage for BILINEAR->NEAREST filter optimization
BILINEAR->NEAREST filter optimization for simple rotation and translation
Søren Sandmann (5):
mmx: Delete some unused variables
sse2: Delete some unused variables
demos: Comment out some unused variables
ARM: Fix two bugs in neon_composite_over_n_8888_0565_ca().
test: Make fuzzer-find-diff.pl executable
Søren Sandmann Pedersen (63):
Add a "noop" implementation.
Add a noop composite function for the DST operator
Move noop dest fetching to noop implementation
Add a noop src iterator
Move NULL iterator into pixman-noop.c
Move NOP src iterator into noop implementation.
Replace instances of "dst_*" with "dest_*"
In pixman-general.c rename image_parameters to {src, mask, dest}_image
Replace argumentxs to composite functions with a pointer to a struct
blitters-test: Make common formats more likely to be tested.
Pre-release version bump to 0.23.2
Post-release version bump to 0.23.3
Makefile.am: Add pixman@lists.freedesktop.org to RELEASE_ANNOUNCE_LIST
Fix lcg_rand_u32() to return 32 random bits.
New test of pixman_region_contains_{rectangle,point}
Speed up pixman_region{,32}_contains_rectangle()
Use find_box_for_y() in pixman_region_contains_point() too
Don't include stdint.h in lowlevel-blt-bench.c
In pixman_image_create_bits() allow images larger than 2GB
Rename pixman-fast-path.h to pixman-inlines.h
Use repeat() function from pixman-inlines.h in pixman-bits-image.c
Move bilinear interpolation to pixman-inlines.h
Pre-release version bump to 0.23.4
Post-release version bump to 0.23.5
test: New function to save a pixman image to .png
Use pkg-config to determine the flags to use with libpng
test: Use smaller boxes in region_contains_test()
A few tweaks to a comment in pixman-combine.c.template
Add a generic unorm_to_unorm() conversion utility
Add general pixel converter
Add initial version of the MAKE_ACCESSORS() macro
Use MAKE_ACCESSORS() to generate all the 32 bit accessors
Use MAKE_ACCESSORS() to generate accessors for all the 16bpp formats
Use MAKE_ACCESSORS() to generate accessors for 8bpp RGB formats
Use MAKE_ACCESSORS() to generate accessors for 4 bpp RGB formats
Use MAKE_ACCESSORS() to generate accessors for 24bpp formats
Use MAKE_ACCESSORS() to generate accessors for the a1 format.
Use MAKE_ACCESSORS() to generate accessors for paletted formats
Remove x and y coordinates from analyze_extents() and compute_sample_extents()
Split computation of sample area into own function
Eliminate compute_sample_extents() function
test: Occasionally use a BILINEAR filter in blitters-test
Strength-reduce BILINEAR filter to NEAREST filter for identity transforms
Don't include stdint.h in scaling-helpers-test.
Add src, mask, and dest flags to the composite args struct.
Pre-release version bump to 0.23.6
Post-release version bump to 0.23.7
Add stable release / development snapshot to draft release notes
gradient walker: Correct types and fix formatting
Use sentinels instead of special casing first and last stops
Simplify gradient_walker_reset()
Merge branch 'gradients'
Fix use of uninitialized fields reported by valgrind
Pre-release version bump to 0.23.8
Post-release version bump to 0.23.9
Pre-release version bump to 0.24.0
Post-release version bump to 0.24.1
gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
pixman-image.c: Fix typo in pixman_image_set_transform()
Fix some signed overflow bugs
Reject trapezoids where top (botttom) is above (below) the edges
Fix bugs with alpha maps
Pre-release version bump to 0.24.2
Taekyun Kim (25):
Replace boolean arguments with flags for bilinear fast path template
REPEAT_NORMAL support for bilinear fast path template
sse2: Declare bilinear src_8888_8888 REPEAT_NORMAL composite function
ARM: Add REPEAT_NORMAL functions to bilinear BIND macros
Enable REPEAT_NORMAL bilinear fast path entries
Bilinear REPEAT_NORMAL source line extension for too short src_width
ARM NEON: Standard fast path out_reverse_8_8888
ARM: NEON better instruction scheduling of over_n_8_8888
ARM: NEON better instruction scheduling of over_n_8888
sse2: Macros for assembling bilinear interpolation code fractions
sse2: Bilinear scaled over_8888_8888
sse2: Bilinear scaled over_8888_8_8888
init/fini functions for pixman_image_t
Add new fast path flag FAST_PATH_BITS_IMAGE
Move _pixman_lookup_composite_function() to pixman-utils.c
Simple repeat fast path
Simple repeat: Extend too short source scanlines into temporary buffer
ARM: NEON: Some cleanup of bilinear scanline functions
ARM: NEON: Bilinear macro template for instruction scheduling
ARM: NEON: Replace old bilinear scanline generator with new template
ARM: NEON: Instruction scheduling of bilinear over_8888_8888
ARM: NEON: Instruction scheduling of bilinear over_8888_8_8888
ARM: NEON: Standard fast path src_n_8_8888
ARM: NEON: Standard fast path src_n_8_8
ARM: NEON: Fix assembly typo error in src_n_8_8888
There's no need to call through _cairo_surface_check_span_renderer() because
we can make the decision directly.
--HG--
extra : rebase_source : 610b624d398665bc1ca9b47c35bd129d601c232b
Currently fixup_unbounded_boxes assumes that the extents are tight when we only
have one box. This is not always true. e.g. when we tesselate boxes we can end
up with only one box which is smaller than the extents and the extents are not
updated.
--HG--
extra : rebase_source : 5e01da7d845c1cd34f9e87d5c7de22dafe9df7a4
Cairo requires image surfaces to have a particular stride alignment.
Sometimes the texture we get back from Direct3D doesn't meet these
requirements. In that case, copy to a different buffer that meets
these requirments.
--HG--
extra : rebase_source : b4a09d5dd33c921d36158f33fc2cd386ebe57883
The glyph cache uses a pointer for a hash value, and uses
that hash value as a pointer. We need to ensure that the
hash type is large enough to fit a pointer.
This will need to be reverted once our build systems are upgraded to a newer
version of FreeType. In the long run, we need to increase our runtime
dependency to this newer version.
Andrea Canciani (1):
test: Fix compilation on win32
Dave Yeo (1):
Check for working mmap()
Gilles Espinasse (2):
Fix missing AC_MSG_RESULT value from Werror test
Fix OpenMP not supported case
Siarhei Siamashka (7):
ARM: tweaked horizontal weights update in NEON bilinear scaling code
ARM: use aligned memory writes in NEON bilinear scaling code
ARM: support for software pipelining in bilinear macros
ARM: use less ARM instructions in NEON bilinear scaling code
ARM: support different levels of loop unrolling in bilinear scaler
ARM: pipelined NEON implementation of bilinear scaled 'src_8888_8888'
ARM: pipelined NEON implementation of bilinear scaled 'src_8888_0565'
Søren Sandmann Pedersen (8):
Makefile.am: Put development releases in "snapshots" directory
ARM: Tiny improvement in over_n_8888_8888_ca_process_pixblock_head
ARM: Add 'neon_composite_over_n_8888_0565_ca' fast path
Offset rendering in pixman_composite_trapezoids() by (x_dst, y_dst)
Pre-release version bump to 0.21.8
Post-release version bump to 0.21.9
Pre-release version bump to 0.22.0
Post-release version bump to 0.23.1
Taekyun Kim (3):
ARM: Common macro for scaled bilinear scanline function with A8 mask
ARM: NEON scanline functions for bilinear scaling
ARM: Enable bilinear fast paths using scanline functions in pixman-arm-neon-asm-bilinear.S
--HG--
extra : rebase_source : aff729718af3e7d25577603241d204bf02ecfb90
Pixman upgrade from bug 640250 resulted in ARM cpu features
not being detected properly in Android. As a result, NEON
optimizations were not used at all.
Alan Coopersmith (1):
Sun's copyrights belong to Oracle now
Alexandros Frantzis (2):
Add simple support for the r8g8b8a8 and r8g8b8x8 formats.
Add support for the r8g8b8a8 and r8g8b8x8 formats to the tests.
Andrea Canciani (14):
Improve precision of linear gradients
Make classification consistent with rasterization
Remove unused enum value
Fix an overflow in the new radial gradient code
Remove unused stop_range field
Fix opacity check
Improve conical gradients opacity check
Improve handling of tangent circles
Add a test for radial gradients
Fix compilation on Win32
test: Fix tests for compilation on Windows
test: Add Makefile for Win32
Do not include unused headers
test: Silence MSVC warnings
Cyril Brulebois (2):
Fix argument quoting for AC_INIT.
Fix linking issues when HAVE_FEENABLEEXCEPT is set.
Jon TURNEY (2):
Plug another leak in alphamap test
Remove stray #include <fenv.h>
Rolland Dudemaine (4):
test: Fix for mismatched 'fence_malloc' prototype/implementation
Correct the initialization of 'max_vx'
test: Use the right enum types instead of int to fix warnings
Fix "variable was set but never used" warnings
Scott McCreary (1):
Added check to find pthread on Haiku.
Siarhei Siamashka (62):
Fixed broken configure check for __thread support
Do CPU features detection from 'constructor' function when compiled with gcc
ARM: fix 'vld1.8'->'vld1.32' typo in add_8888_8888 NEON fast path
ARM: NEON: source image pixel fetcher can be overrided now
ARM: nearest scaling support for NEON scanline compositing functions
ARM: macro template in C code to simplify using scaled fast paths
ARM: performance tuning of NEON nearest scaled pixel fetcher
ARM: NEON optimization for scaled over_8888_8888 with nearest filter
ARM: NEON optimization for scaled over_8888_0565 with nearest filter
ARM: NEON optimization for scaled src_8888_0565 with nearest filter
ARM: NEON optimization for scaled src_0565_8888 with nearest filter
ARM: optimization for scaled src_0565_0565 with nearest filter
C fast path for a1 fill operation
ARM: added 'neon_composite_over_n_8_8' fast path
ARM: introduced 'fetch_mask_pixblock' macro to simplify code
ARM: better NEON instructions scheduling for over_n_8_0565
ARM: added 'neon_composite_over_8888_n_0565' fast path
ARM: reuse common NEON code for over_{n_8|8888_n|8888_8}_0565
ARM: added 'neon_composite_over_0565_n_0565' fast path
ARM: added 'neon_composite_add_8888_8_8888' fast path
ARM: better NEON instructions scheduling for add_8888_8888_8888
ARM: added 'neon_composite_add_n_8_8888' fast path
ARM: added 'neon_composite_add_8888_n_8888' fast path
ARM: added flags parameter to some asm fast path wrapper macros
ARM: added 'neon_composite_in_n_8' fast path
ARM: added 'neon_src_rpixbuf_8888' fast path
Fix for potential unaligned memory accesses
COPYING: added Nokia to the list of copyright holders
Revert "Fix "syntax error: empty declaration" warnings."
Fix for "syntax error: empty declaration" Solaris Studio warnings
Workaround for a preprocessor issue in old Sun Studio
Bugfix for a corner case in 'pixman_transform_is_inverse'
Make 'fast_composite_scaled_nearest_*' less suspicious
A new configure option --enable-static-testprogs
ARM: do /proc/self/auxv based cpu features detection only in linux
The code in 'bitmap_addrect' already assumes non-null 'reg->data'
test: affine-test updated to stress 90/180/270 degrees rotation more
New flags for 90/180/270 rotation
C fast paths for a simple 90/270 degrees rotation
Use const modifiers for source buffers in nearest scaling fast paths
test: Extend scaling-test to support a8/solid mask and ADD operation
Support for a8 and solid mask in nearest scaling main loop template
Better support for NONE repeat in nearest scaling main loop template
ARM: new macro template for using scaled fast paths with a8 mask
ARM: NEON optimization for nearest scaled over_8888_8_0565
ARM: NEON optimization for nearest scaled over_0565_8_0565
SSE2 optimization for nearest scaled over_8888_n_8888
Ensure that tests run as the last step of a build for 'make check'
Main loop template for fast single pass bilinear scaling
test: check correctness of 'bilinear_pad_repeat_get_scanline_bounds'
SSE2 optimization for bilinear scaled 'src_8888_8888'
ARM: NEON optimization for bilinear scaled 'src_8888_8888'
ARM: use prefetch in nearest scaled 'src_0565_0565'
ARM: common macro for nearest scaling fast paths
ARM: assembly optimized nearest scaled 'src_8888_8888'
ARM: new bilinear fast path template macro in 'pixman-arm-common.h'
ARM: NEON: common macro template for bilinear scanline scalers
ARM: use common macro template for bilinear scaled 'src_8888_8888'
ARM: NEON optimization for bilinear scaled 'src_8888_0565'
ARM: NEON optimization for bilinear scaled 'src_0565_x888'
ARM: NEON optimization for bilinear scaled 'src_0565_0565'
ARM: a bit faster NEON bilinear scaling for r5g6b5 source images
Søren Sandmann Pedersen (79):
Remove the class field from source_image_t
Pre-release version bump to 0.19.6
Post-release version bump to 0.19.7
Pre-release version bump to 0.20.0
Post-release version bump to 0.20.1
Version bump 0.21.1.
COPYING: Stop saying that a modification is currently under discussion.
Remove workaround for a bug in the 1.6 X server.
[mmx] Mark some of the output variables as early-clobber.
Delete the source_image_t struct.
Generate {a,x}8r8g8b8, a8, 565 fetchers for nearest/affine images
Pre-release version bump
Post-release version bump to 0.21.3
test: Make composite test use some existing macros instead of defining its own
Add enable_fp_exceptions() function in utils.[ch]
Extend gradient-crash-test
test: Move palette initialization to utils.[ch]
test/utils.c: Initialize palette->rgba to 0.
Make the argument to fence_malloc() an int64_t
Add a stress-test program.
Add a test compositing with the various PDF operators.
Fix divide-by-zero in set_lum().
sse2: Skip src pixels that are zero in sse2_composite_over_8888_n_8888()
Add iterators in the general implementation
Move initialization of iterators for bits images to pixman-bits-image.c
Eliminate the _pixman_image_store_scanline_32/64 functions
Move iterator initialization to the respective image files
Virtualize iterator initialization
Use an iterator in pixman_image_get_solid()
Move get_scanline_32/64 to the bits part of the image struct
Allow NULL property_changed function
Consolidate the various get_scanline_32() into get_scanline_narrow()
Linear: Optimize for horizontal gradients
Get rid of the classify methods
Add direct-write optimization back
Skip fetching pixels when possible
Turn on testing for destination transformation
Fix destination fetching
Fix dangling-pointer bug in bits_image_fetch_bilinear_no_repeat_8888().
Pre-release version bump to 0.21.4
Post-release version bump to 0.21.5
Print a warning when a development snapshot is being configured.
Move fallback decisions from implementations into pixman-cpu.c.
Add a test for over_x888_8_0565 in lowlevel_blt_bench().
Add SSE2 fetcher for x8r8g8b8
Add SSE2 fetcher for a8
Improve performance of sse2_combine_over_u()
Add SSE2 fetcher for 0565
Add pixman-conical-gradient.c to Makefile.win32.
Move all the GTK+ based test programs to a new subdir, "demos"
Add @TESTPROGS_EXTRA_LDFLAGS@ to AM_LDFLAGS
test/Makefile.am: Move all the TEST_LDADD into a new global LDADD.
Add pixman_composite_trapezoids().
Add a test program for pixman_composite_trapezoids().
Add support for triangles to pixman.
Add a test program, tri-test
Optimize adding opaque trapezoids onto a8 destination.
Add new public function pixman_add_triangles()
Avoid marking images dirty when properties are reset
In pixman_image_set_transform() allow NULL for transform
Coding style: core_combine_in_u_pixelsse2 -> core_combine_in_u_pixel_sse2
sse2: Convert all uses of MMX registers to use SSE2 registers instead.
sse2: Delete unused MMX functions and constants and all _mm_empty()s
sse2: Don't compile pixman-sse2.c with -mmmx anymore
sse2: Remove all the core_combine_* functions
sse2: Delete obsolete or redundant comments
sse2: Remove pixman-x64-mmx-emulation.h
sse2: Minor coding style cleanups.
Delete pixman-x64-mmx-emulation.h from pixman/Makefile.am
Minor fix to the RELEASING file
Pre-release version bump to 0.21.6
Post-release version bump to 0.21.7
test: In image_endian_swap() use pixman_image_get_format() to get the bpp.
test: Do endian swapping of the source and destination images.
In delegate_{src,dest}_iter_init() call delegate directly.
Fill out parts of iters in _pixman_implementation_{src,dest}_iter_init()
Simplify the prototype for iterator initializers.
test: Randomize some tests if PIXMAN_RANDOMIZE_TESTS is set
test: Fix infinite loop in composite
Previously we missed a decrement at the end of the recursion.
This caused us to accumulate over time, causing us to misreport.
--HG--
extra : rebase_source : 4129933528b3c40aaefad7f8f8a4c5a76f35a9b1
Andrea Canciani (4):
support single-stop gradients
test: verify that gradients do not crash pixman
Draw radial gradients with PDF semantics
Add comments about errors
Benjamin Otte (2):
region: Add a new test region-translate
region: Fix pixman_region_translate() clipping bug
Brad Smith (1):
Add support for AltiVec detection for OpenBSD/PowerPC.
Dmitri Vorobiev (5):
Move aligned_malloc() to utils
Add gettime() routine to test utils
Add noinline macro
Use <sys/mman.h> macros only when they are available
Some clean-ups in fence_malloc() and fence_free()
Jeff Muizelaar (1):
create getter for component alpha
Jonathan Morton (1):
Add a lowlevel blitter benchmark
Liu Xinyun (2):
add enable-cache-prefetch option
Remove cache prefetch code.
M Joonas Pihlaja (6):
Try harder to find suitable flags for pthreads.
Don't trust OpenBSD's gcc to produce working code for __thread.
Check that the OpenMP pragmas don't cause link errors.
Check for specific flags by actually trying to compile and link.
Avoid trailing slashes on automake install dirs.
Fix thinko in configure.ac's macro to test linking.
Maarten Bosmans (2):
Use windows.h directly for mingw32 build
Add *.exe to .gitignore
Marek Vasut (1):
Add support for 32bpp X14R6G6B6 format.
Mika Yrjola (1):
Fix "syntax error: empty declaration" warnings.
Siarhei Siamashka (25):
test: main loop from blitters-test added as a new function to utils.c
test: blitters-test-bisect.rb converted to perl
test: blitters-test updated to use new fuzzer_test_main() function
test: scaling-test updated to use new fuzzer_test_main() function
test: added OpenMP support for better utilization of multiple CPU cores
test: 'scaling-crash-test' added
test: 'scaling-test' updated to provide better coverage
Code simplification (no need advancing 'vx' at the end of scanline)
ARM: 'neon_combine_out_reverse_u' combiner
ARM: added 'neon_composite_over_8888_8_0565' fast path
ARM: common init/cleanup macro for saving/restoring NEON registers
ARM: helper macros for conversion between 8888/x888/0565 formats
ARM: added 'neon_composite_over_0565_8_0565' fast path
test: detection of possible floating point registers corruption
Nearest scaling fast path macros moved to 'pixman-fast-path.h'
Nearest scaling fast path macro split into two parts
Introduce a fake PIXMAN_REPEAT_COVER constant
PAD repeat support for fast scaling with nearest filter
NONE repeat support for fast scaling with nearest filter
SSE2 optimization for scaled over_8888_8888 operation with nearest filter
ARM: NEON: added forgotten cache preload for over_n_8888/over_n_0565
ARM: added 'neon_composite_add_0565_8_0565' fast path
ARM: added 'neon_composite_out_reverse_8_0565' fast path
Use more unrolling for scaled src_0565_0565 with nearest filter
ARM: restore fallback to ARMv6 implementation from NEON in the delegate chain
Søren Sandmann Pedersen (94):
Don't use __thread on MinGW.
Add macros for thread local storage on MinGW 32
test/gtk-utils: Set the size of the window to the size of the image
Merge branch 'for-master'
Eliminate mask_bits from all the scanline fetchers.
When storing a g1 pixel, store the lowest bit, rather than comparing with 0.
Make separate gray scanline storers.
Fix conical gradients to match QConicalGradient from Qt
Store the conical angle in floating point radians, not fixed point degrees
Minor tweaks to README
Make the combiner macros less likely to cause name collisions.
Fix memory leak in the pthreads thread local storage code
Hide the global implementation variable behind a force_inline function.
Cache the implementation along with the fast paths.
Split the fast path caching into its own force_inline function
test: Make sure the palettes for indexed format roundtrip properly
When converting indexed formats to 64 bits, don't correct for channel widths
Make the repeat mode explicit in the FAST_NEAREST macro.
In the FAST_NEAREST macro call the function 8888_8888 and not x888_x888
fast-path: Some formatting fixes
Check for read accessors before taking the bilinear fast path
[fast] Add fast_composite_src_x888_8888()
[sse2] Add sse2_composite_src_x888_8888()
[sse2] Add sse2_composite_in_n_8()
[sse2] Add sse2_composite_add_n_8()
bits: Fix potential divide-by-zero in projective code
Add x14r6g6b6 format to blitters-test
If we bail out of do_composite, make sure to undo any workarounds.
CODING_STYLE: Delete the stuff about trailing spaces
Fix Altivec/OpenBSD patch
Extend scaling-crash-test in various ways
Replace compute_src_extent_flags() with analyze_extents()
Eliminate recursion from alpha map code
Eliminate get_pixel_32() and get_pixel_64() from bits_image.
Split bits_image_fetch_transformed() into two functions.
Eliminate the store_scanline_{32,64} function pointers.
Remove "_raw_" from all the accessors.
Add some new FAST_PATH flags
Store the various bits image fetchers in a table with formats and flags.
Add alpha-loop test program
pixman_image_set_alpha_map(): Disallow alpha map cycles
Introduce new FAST_PATH_SAMPLES_OPAQUE flag
Only try to compute the FAST_SAMPLES_COVER_CLIP for bits images
Pre-release version bump to 0.19.2
Post-release version bump to 0.19.3
Merge pixman_image_composite32() and do_composite().
Be more paranoid about checking for GTK+
Store a2b2g2r2 pixel through the WRITE macro
When pixman_compute_composite_region32() returns FALSE, don't fini the region.
Silence some warnings about uninitialized variables
Add FAST_PATH_NO_ALPHA_MAP to the standard destination flags.
Do opacity computation with shifts instead of comparing with 0
Add fence_malloc() and fence_free().
Update and extend the alphamap test
Rename FAST_PATH_NO_WIDE_FORMAT to FAST_PATH_NARROW_FORMAT
Remove FAST_PATH_NARROW_FORMAT flag if there is a wide alpha map
Clip composite region against the destination alpha map extents.
Move some of the FAST_PATH_COVERS_CLIP computation to pixman-image.c
analyze_extents: Fast path for non-transformed BITS images
test: Add affine-test
Use a macro to generate some {a,x}8r8g8b8, a8, and r5g6b5 bilinear fetchers.
Enable bits_image_fetch_bilinear_affine_pad_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_none_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_reflect_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_normal_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_pad_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_none_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_reflect_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_normal_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_pad_a8
Enable bits_image_fetch_bilinear_affine_none_a8
Enable bits_image_fetch_bilinear_affine_reflect_a8
Enable bits_image_fetch_bilinear_affine_normal_a8
Enable bits_image_fetch_bilinear_affine_pad_r5g6b5
Enable bits_image_fetch_bilinear_affine_none_r5g6b5
Enable bits_image_fetch_bilinear_affine_reflect_r5g6b5
Enable bits_image_fetch_bilinear_affine_normal_r5g6b5
compute_composite_region32: Zero extents before returning FALSE.
Pre-release version bump to 0.19.4
Post-release version bump to 0.19.5
If MAP_ANONYMOUS is not defined, define it to MAP_ANON.
Revert "add enable-cache-prefetch option"
Rename all the fast paths with _8000 in their names to _8
Fix search-and-replace issue in lowlevel-blt-bench.c
Fix bug in FAST_PATH_STD_FAST_PATH
Delete simple repeat code
Remove broken optimizations in combine_disjoint_over_u()
test: Fix bug in color_correct() in composite.c
test: Fix eval_diff() so that it provides useful error values.
test: Change composite so that it tests randomly generated images
test: Parallize composite.c with OpenMP
test: Add some more colors to the color table in composite.c
Add no-op combiners for DST and the CA versions of the HSL operators.
Plug leak in the alphamap test.
Tor Lillqvist (1):
Support __thread on MINGW 4.5