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
When we do "newSurf->backBuf->QueryInterface(&newSurf->surface);", PIX returns
the original interface instead of the hooked one, so I swapped newSurf->backBuf
and newSurf->surface, to get the two interfaces in the reverse order. In this
case PIX returns hooked interfaces which will work when used as argument of
hooked methods.
Rotated text was sometimes broken because there was a mismatch of
assumptions between cairo and Gecko about how important it was
for the ctm of a scaled_font to match the ctm of a context. This
temporarily fixes the problem by disabling the previous_scaled_font
cache with bug #583035 tracking a more permanent fix.
This switches from using CombineGeometry() to accumulate
clip paths to using a stack of Layers each with a
geometric mask. This avoids any imprecision that occurs
when using CombineGeometry().
There maybe some performance regressions but we need the
correctness and may be able to get some of the performance
back.