Without this, we get "subscripted value is neither array nor pointer"
error from the compiler.
Since this is a build fix for powerpc platforms, no PKGREVISION bump.
A new pixman release 0.34.0 is now available. This is a major release,
following three development releases in the past six months. It contains
all the changes detailed in the last three development releases in the 0.33
series.
For those who didn't follow the development release announcements, the 0.34
version contains major improvements to ARMv6 and POWER (both BE and LE)
architectures, enhancements of tests and utilities and important bug fixes.
See below the full git log since the previous major release (0.32).
Andrea Canciani (3):
test: Fix the win32 build
test: Fix fence-image-self-test on Mac
mmx: Improve detection of support for "K" constraint
Ben Avison (27):
ARMv6: Fix indentation in the composite macros
ARMv6: remove 1 instr per row in generate_composite_function
lowlevel-blt-bench: over_reverse_n_8888 needs solid source
lowlevel-blt-bench: add in_reverse_8888_8888 test
ARMv6: Add fast path for over_reverse_n_8888
ARMv6: Support for very variable-hungry composite operations
ARMv6: Add fast path for over_n_8888_8888_ca
ARMv6: Add fast path flag to force no preload of destination buffer
ARMv6: Add fast path for in_reverse_8888_8888
ARMv6: Add fast path for src_x888_0565
armv6: Fix typo in preload macro
pixman.c: Coding style
test: Move format and operator string functions to utils.[ch]
test: Add a new benchmarker targeting affine operations
test: Add new fuzz tester targeting solid images
test: Fix solid-test for big-endian targets
arm: Retire PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH
arm: Simplify PIXMAN_ARM_SIMPLE_NEAREST_A8_MASK_FAST_PATH
mips: Retire PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH
mmx/sse2: Use SIMPLE_NEAREST_FAST_PATH macro
mmx/sse2: Use SIMPLE_NEAREST_SOLID_MASK_FAST_PATH for NORMAL repeat
scaling-test: list more details when verbose
test: Add cover-test v5
armv6: Add over_n_8888 fast path (disabled)
pixman-general: Tighten up calculation of temporary buffer sizes
Remove the 8e extra safety margin in COVER_CLIP analysis
affine-bench: remove 8e margin from COVER area
Bill Spitzak (1):
test: Added more demos and tests to .gitignore file
Fernando Seiti Furusato (1):
vmx: adjust macros when loading vectors on ppc64le
Jakub Bogusz (1):
Fix the SSSE3 CPUID detection.
James Cowgill (1):
MIPS: Drop #ifdef __ELF__ in definition of LEAF_MIPS32R2
Matt Turner (4):
mmx: Add nearest over_8888_n_8888
mmx: Add nearest over_8888_8888
mmx: Use MMX2 intrinsics from xmmintrin.h directly.
Revert "mmx: Use MMX2 intrinsics from xmmintrin.h directly."
Nemanja Lukic (2):
MIPS: Fix exported symbols in public API.
MIPS: update author's e-mail address
Oded Gabbay (28):
vmx: fix splat_alpha for ppc64le
vmx: encapsulate the temporary variables inside the macros
vmx: fix unused var warnings
vmx: fix pix_multiply for ppc64le
vmx: add LOAD_VECTOR macro
vmx: add helper functions
vmx: implement fast path vmx_fill
vmx: implement fast path composite_over_8888_8888
vmx: implement fast path composite_add_8_8
vmx: implement fast path composite_add_8888_8888
vmx: implement fast path vmx_composite_over_n_8888_8888_ca
vmx: implement fast path vmx_composite_src_x888_8888
vmx: implement fast path scaled nearest vmx_8888_8888_OVER
vmx: implement fast path iterator vmx_fetch_x8r8g8b8
vmx: implement fast path iterator vmx_fetch_a8
Pre-release version bump to 0.33.2
Post-release version bump to 0.33.3
vmx: optimize scaled_nearest_scanline_vmx_8888_8888_OVER
vmx: optimize vmx_composite_over_n_8888_8888_ca
vmx: implement fast path vmx_composite_over_n_8_8888
vmx: Remove unused expensive functions
Pre-release version bump to 0.33.4
Post-release version bump to 0.33.5
configura.ac: fix test for SSE2 & SSSE3 assembler support
Pre-release version bump to 0.33.6
Post-release version bump to 0.33.7
Pre-release version bump to 0.34.0
Post-release version bump to 0.34.1
Pekka Paalanen (26):
ARM: share pixman_asm_function definition
ARM: use pixman_asm_function in internal headers
test/utils: support operator name aliases
test/utils: support format name aliases
test/utils: add operator aliases for lowlevel-blt-bench
test/utils: add format aliases used by lowlevel-blt-bench
lowlevel-blt-bench: add test name parser and self-test
lowlevel-blt-bench: use the test pattern parser
lowlevel-blt-bench: use a8r8g8b8 for CA solid masks
lowlevel-blt-bench: move usage to a function
lowlevel-blt-bench: move explanation printing
lowlevel-blt-bench: make test_entry::testname const
lowlevel-blt-bench: print single pattern details
lowlevel-blt-bench: move speed and scaling printing
lowlevel-blt-bench: all bench funcs to return pix_cnt
lowlevel-blt-bench: refactor to Mpx_per_sec()
lowlevel-blt-bench: add CSV output mode
lowlevel-blt-bench: add option to skip memcpy measurement
lowlevel-blt-bench: make extra arguments an error
utils.[ch]: add FENCE_MALLOC_ACTIVE
utils.[ch]: add fence_image_create_bits ()
test: add fence-image-self-test
utils.c: fix fallback code for fence_image_create_bits()
utils.[ch]: add fence_get_page_size()
implementation: add PIXMAN_DISABLE=wholeops
armv6: enable over_n_8888
Siarhei Siamashka (5):
configure.ac: Check if the compiler supports GCC vector extensions
test: Fix OpenMP clauses for the tolerance-test
mmx: Fix _mm_empty problems for over_8888_8888/over_8888_n_8888
pixman-general: Fix stack related pointer arithmetic overflow
vmx: implement fast path vmx_composite_over_n_8888
Søren Sandmann (24):
Post-release version bump to 0.33.1
demos/Makefile.am: Move EXTRA_DIST outside "if HAVE_GTK"
test/utils.c: Make the stack unaligned only on 32 bit Windows
general: Support component alpha for all image types
Soft Light: The first comparison should be <=, not <
configure.ac: Check and use -Wno-unused-local-typedefs GCC option
pixel-test: Add support for mask pixels
pixel-test: Command line argument to specify the regression to run
pixel-test.c: Add a number of pixels that have failed at some point
Soft Light: Consistent approach to division by zero
Use floating point combiners for all operators that involve divisions
Copy the comments from pixman-combine32.c to pixman-combine-float.c
Remove all the operators that use division from pixman-combine32.c
create_bits(): Cast the result of height * stride to size_t
test/utils.c: Add support for separable blend mode ops to do_composite()
test/check-formats.c: Add support for separable blend modes
test/tolerance-test: New test program
pixman/pixman-combine32.c: Bug fixes for separable blend modes
pixman-combine32.c: Fix bugs related to integer promotion
utils.c: Set DEVIATION to 0.0128
test: Add radial-invalid test program
pixman-gradient-walker: Make left_x and right_x 64 bit variables
test: Rearrange tests in order of increasing runtime
Fix comment about BILINEAR_INTERPOLATION_BITS to say < 8 rather than <= 8
Thomas Petazzoni (1):
test: add a check for FE_DIVBYZERO
0.32.2:
A new pixman release 0.32.2 is now available. This is a stable release
in the 0.32 series.
This release corrects the problem that the 0.32.0 tarball was missing
some files required to build the GTK+ based demo programs. Also included
is a fix for a build problem with MSVC.
0.32.0:
A new pixman release 0.32.0 is now available. This is new major release
with performance improvements for image scaling, and a large number of
bug fixes.
XXX: these patches should go away, or be fed upstream.
A new major release 0.30.0 of the pixman rendering library is now
available. Highlights of this release:
- Support for high-quality image downscaling [Søren]
- Much improved ARMv6 assembly [Ben Avison]
- Improved rendering quality for gradients [Søren]
- Improvements to the SSE2 backend [Chris Wilson, Siarhei Siamashka]
- Improvements to MIPS DSPr2 backend [Nemanja Lukic]
- Improvements to test suite [Siarhei, Søren Sandmann]
0.28.2:
This stable release in the 0.28 series contains fixes for 64 bit
Windows, clang, and PowerPC on MacOS and OpenBSD.
0.28.0:
A new major release 0.28.0 of the pixman rendering library is now
available. Highlights of this release:
* Support for sRGB coded images [Antti Lankila]
* New API for fast glyph rendering [Soren Sandmann]
* Faster bilinear scaling on iwMMX, Loongson and MMX [Matt Turner]
* More fast paths in the MIPS DSPr2 backend [Nemanja Lukic]
* Faster scaling in general and on SSE2 in particular [Siarhei
Siamashka]
0.26.2:
A new pixman release 0.26.2 is now available. This is a stable release. It
contains some bug fixes, custom build rules for ARM/iwMMXt, and an important
bug fix for MMX/x86.
0.26.0:
A new stable pixman release 0.26.0 is now available. Highlights of
this release:
* New support for MIPS DSPr2 ASE. [Nemanja Lukic]
* Improved performance with the iwMMXt instruction set. [Matt Turner]
* New support for the Loongson SIMD instruction set. [Matt]
Performance results from a number of cairo based benchmarks:
Benchmark Improvement
evolution .............. image: 12.8 %
image16: 15.9 %
firefox-planet-gnome ... image: 14.4 %
image16: 10.0 %
gnome-terminal-vim ..... image: 16.5 %
image16: 15.7 %
gvim ................... image: 13.1 %
image16: 7.0 %
ocitysmap .............. image: 24.1 %
image16: 23.9 %
poppler ................ image: 18.7 %
image16: 17.5 %
swfdec-giant-steps ..... image: no change
image16: 35.3 %
swfdec-youtube ......... image: 23.5 %
image16: 12.4 %
xfce4-terminal-a1 ...... image: 26.9 %
image16: 28.8 %
Please see
http://mattst88.com/blog/2012/05/17/Optimizing%20pixman%20for%20Loongson:%20Process%20and%20Results/
for more information.
In addition to a number of bug fixes, cleanups and performance
improvements, this release also contains improved support for Android
and iOS thanks to Bobby Salazar.
Thanks to everybody who contributed to pixman 0.26.0, including Alan
Coopersmith, Andrea Canciani, Bobby Salazar, Chun-wei Fan, Colin
Walters, Ingmar Runge, Jeremy Huddleston, Matt Turner, Naohiro Aota,
Nemanja Lukic, and Søren Sandmann Pedersen.
0.23.2:
Check for working mmap()
test: Fix compilation on win32
Add a "noop" fast path for operations which require no or almost no data
processing
Fix a few typos in pixman-combine.c.template
Move many operations from various files into the new noop one.
Delete some unused variables in examples, mmx and sse2 functions
Replace arguments to composite functions
Silence autoconf warnings
blitters-test: Make common formats more likely to be tested
ARM: Fix two bugs in neon_composite_over_n_8888_0565_ca()
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
0.23.4:
radial: Improve documentation and naming
C fast path for scaled src_x888_8888 with nearest filter
ARM: workaround binutils bug #12931 (code sections alignment)
radial: Fix typos and trailing whitespace
ARM NEON: Standard fast path out_reverse_8_8888
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
In pixman_image_create_bits() allow images larger than 2GB
win32: Build benchmarks
Workaround bug in llvm-gcc
ARM: better NEON instruction scheduling of over_n_8888 and over_n_8_8888
bits: optimise fetching width==1 repeats
0.23.6:
test: New function to save a pixman image to .png
Use pkg-config to determine the flags to use with libpng
Various build system fixes and improvements
test: Use smaller boxes in region_contains_test()
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 accessors for various image 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
test: better coverage for BILINEAR->NEAREST filter optimization
Strength-reduce BILINEAR filter to NEAREST filter for identity transforms
BILINEAR->NEAREST filter optimization for simple rotation and translation
lowlevel-blt: add over_x888_8_8888
Various MMX fixes
mmx: rename USE_MMX to USE_X86_MMX
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
sse2: Macros for assembling bilinear interpolation code fractions
sse2: Bilinear scaled over_8888_8888 and over_8888_8_8888
init/fini functions for pixman_image_t
Add new fast path flag FAST_PATH_BITS_IMAGE
Add src, mask, and dest flags to the composite args struct
Simple repeat fast path
0.23.8:
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()
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 and over_8888_8_8888
ARM: NEON: Standard fast path src_n_8_8888 and src_n_8_8
ARM: NEON: Fix assembly typo error in src_n_8_8888
Fix use of uninitialized fields reported by valgrind
0.24.0:
Add definitions of INT64_MIN and INT64_MAX
Change MMX ldq_u to return _m64 instead of forcing all callers to cast
0.24.2:
Don't use non-POSIX test
Android Runtime Detection Support For ARM NEON
gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
autogen.sh: Support GNOME Build API
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
Make mmx code compatible with Solaris Studio 12.3 compilers
Fix bugs with alpha maps
0.24.4:
iOS Runtime Detection Support For ARM NEON
Revert "Reject trapezoids where top (botttom) is above (below) the edges"
other platforms.
The pthread check macro in pixman's configure is fundamentally broken,
it seems. It would be better to fix it instead of working around ...
Reviewed by Thomas Klausner.
This was removed upstream but is still needed for pkgsrc's
modular-xorg.
Fixes PR pkg/45509 by Francois Tigeot.
Thankd for Francois for providing a pointer to the
offending change.
bump PKGREV
- A new test program for compositing operators [Siarhei Siamashka]
- Bugs and performance fixes [Benjamin Otte, Chris Wilson,
Andre Tupinamba, Soren Sandmann]
News:
- ARM bug fixes [Siarhei Siamashka]
- No more asserts on malformed regions [Søren Sandmann Pedersen]
- SSE2 support for 64 bit windows [George Yohng]
- Improvements to the region code [Benjamin Otte]
- Misc. bug fixes
[Adrian Bunk, Chris Wilson, M Joonas Pihlaja, Miha Vrhovnik]
anyway). It fails to link under Mac OS X because it tries to call
various symbols that are apparently now hidden. No changes to the
binary package on other platforms.
0.15.8:
- Phase three of the refactoring [Søren Sandmann Pedersen]
- Fixes for refactoring fallout [Jonathan Morton, Jeff Muizelaar,
Luca Barbato, Magnus Kessler]
- Improved testing code [Siarhei Siamashka]
0.15.6:
Apart from a few bug fixes, this release contains phase two of the
refactoring; in this phase the various types of images are split
into their own files.
0.15.4:
A new pixman release 0.15.4 is now available. This is a development
release leading up to a stable 0.16.0 release. News:
- New ARM NEON fast paths [Ian Rickards, Jeff Muizelaar]
- The first part of a large refactoring of the pixman code
base [Søren Sandmann]
- Bug fixes [Adam Jackson, Alan Coopersmith, Siarhei
Siamashka, Jonathan Morton]
Upstream changes (since 0.12.0):
- Fix MMX & SSE intrinsics to work with Sun compilers & Solaris
- More SSE2 optimizations
- Optimize rectilinear nearest-neighbour scaling
- Add support for BGRA and BGRx formats
and a lot of minor bug fixes and optimizations
Oked by wiz@
In addition to many bug fixes, new features [since approximately 0.10.0]
include:
- New image formats with 10 bits per channel
- SSE2 optimizations for many operations
- Opacity based optimizations for operators
- Altivec optimizations for many operations
- A 32 bit region implementation
- Fix bug in pixman_image_is_opaque().
- Fix for bug 17477 (see patch-ag).
While here, add missing .PHONY attribute for gen-symfile target.
PKGREVISION++, but no recursive dependency bump necessary.
add a 'gen-symfile' target for regenerating the libtool
export symfile. This should be run upon updating the package.
While here, silence needless autotools warnings and update
sse2 conditional in hacks.mk.
Changes since 0.11.8:
Add depth 30 formats to pixman_format_supported_source.
[sse2] Change pixman-sse to pass __mm128i args as
pointers, so as not to
Use CopyAreasse2, plus a compatibility fix
Use hidden attribute for private functions when
compiling with Sun Studio
Minor portability fixes
Post-release version-bump
Update RELEASING and release targets in Makefile.am
Fix typo in sse2 configure logic
TODO
Don't require GCC 4.2 on x86-64
Bug 16921. MMX and SSE2 intrinsics not enabled when
compiling with Intel'
Remove use of MMX extensions.
Be consistent in naming SSE2 related things SSE2
A few other renamings of SSE->SSE2
Rename pixman-sse.h pixman-sse2.h
Make sure pixman-combine{32,64}.h are disted
Use error instead of #error in a couple of other places
Check for __sun || __sun in pixman.h. Update TODO
Bump release
Update RELEASING
Add sys/inttypes.h include for AIX
(just a reminder: when updating this package, be sure to adjust
files/pixman.sym appropriately)
commit 411c0e990f7a96d4e15f2cbbe07d3b50b6a20f95
Make a couple of functions static
commit 96f57c07f24cd6d86c0aad624bd1a16b85f08e04
Speed up fbOver
Use FbByteMulAdd to operate on two components at a time and force
the function to be inlined.
commit dcbe4b3f80fb8dc6a83efa7e66a891f8b102608d
fix --enable-{mmx,sse2,vmx}
If --enable-foo is used, don't treat it as --disable-foo, and
error out if the appropriate compiler support isn't detected.
commit e21f00db50c30e80c8969fbf63982aeb7434dc1d
Add pixman-1-uninstalled.pc file
commit 1570746350baf82d36aeb7ea1702350700b795d7
Use -no-undefined -- fixes bug 15927
commit 99fead412e7602daf193035831b952e252dac0e1
Use <inttypes.h> on most types of Unix.
Fix for bug 15560.
commit 2070f10db927a97d7d38024e607093f5a6e00291
Remove unused pixman-combine.c
commit 9d54568d5f93701313fdbb49c1ef9dc79fe5850c
Fix SSE2 bug where x888 pixels were treated as 8888
commit 7dfd023e94d9ab5940d7062c2e5cde11ab02f43e
fix Altivec detection
the old code used to cause infinite looping on G3 machines.
commit 0a92401678286eb438fe24979fd032efba540a0a
Fix fbCompositeSrc_x888xnx8888mmx to properly ignore source alpha
commit 687176023caf53f2fe234827d152f270048b1cd3
make --{en,dis}able-gtk work correctly
--enable-gtk had the same effect as --disable-gtk.
Now we check for it by default, and error out if we can't
find it and it was explicitly enabled.
commit 9d97716d2fd91d5611a5e7a7b29b38887b672e9f
Fix bug 16310 in the SSE2 fast path in function
fbCompositeSolidMask_nx8888x0565Csse2
commit eb53d111bd8651cd00c1b728b09e8be09b8482f7
Add a lossy 32-bit generic pixel fetch function for wide surfaces.
The transformed fetch path currently only works at 32-bit precision.
Until a wide version of that function is added, we need to have a
path to perform a wide FetchPixel and then contract it down to
a8r8g8b8.
Also, use the right format when expanding the result in
fbFetchTransformed64. fbFetchTransformed returns a8r8g8b8 results.
commit 3c43b869f3821495978c61b9195f0b0e9e9e1245
Unexport or delete various functions
- Delete pixman_region_append()
- Delete pixman_region_empty()
- Make pixman_region_validate() static and don't export it.
Reported by Julien Cristau.
commit 36b05f2cac7fa28e31131ca0d6b8b133ccd95ab8
Only export the 16 bit version of pixman_region_set_static_pointers()
commit a766b62880108f278478888f5167a5fbf2819a97
Add configure time options to disable mmx/sse2/vmx
commit 02268903e4311709744c11e495f9b17f171ec5e9
pixman-sse.c: silence pointer-cast compiler warnings.
Cast pointers to words of the same size, not 32-bits.
commit eb2d95de98683a387153f010077ad9c3c3b1b01d
Fix implicit declaration of function 'free'.
Otherwise pointer will be truncated on 64bit arch and
your programs will crash.
commit 29d144712e558aaeb49f4384028dd669d76a410b
Fix memory leak by freeing boxes{16,32}.
After calling pixman_region_init_rects() or
pixman_region32_init_rects(), boxes{16,32} were not freed before
returning. Fixes bug 16312.
commit 5d32519316b40b35113c6df9e15d955a16709ba2
Use pixman_malloc_ab instead of plain malloc for the
fbStore64_generic scratch buffer.
commit b1c70c4e6435d7f15751111828c381feb1d139cf
Move PIXMAN_FORMAT_16BPC to pixman-private.h
commit 7fa966df0ee781fa486715710f389b148c11d36e
Decide based on the image formats whether we need wide compositing.
commit 7cb735c9c0fa55ae1f4d8d13da9f33e3da2ae8fe
Take the source format into account in pixman_expand.
Extract the original bits of the source image for each
component and then replicate up to 16 bits to fill the wide
components. Make sure to hard-code the alpha value to 1 if
the source format didn't have alpha.
commit c0d98e96605c6d03f4b02f337f2f5827165bb092
Make expansion and contraction loops clearer.
commit fc0b28bf6af81428b7ac045614eea97fbf9c4a70
Add wide source picture, external alpha, and transformed
image routines. The wide external alpha path should work
correctly with wide formats. The wide transformed fetch code for
now just does a 32-bit fetch and then expands, which will lose
precision. Source pictures, for now, are evaluated at depth 32
and then are expanded to depth 64. We could get higher precision
by evaluating them directly at depth 64, but this should be good
enough for now.
commit 42a3a2d6fc8d3e521c6914ff8fb89f1fbc673e28
Add wide fetch/store functions.
Use the narrow ones and expand/contract where necessary. Still
need wide paths for fancy pictures, but this gets the
basic stuff working.
commit 7591d3f1d7e0884f9362018edf720724095cf380
Add expand and contract functions to convert between ARGB8
and ARGB16. The expansion function isn't quite correct,
but gives reasonable results.
date: 2008/04/27 11:58:09; author: tnn; state: Exp; lines: +2 -2
Skip the SSE2 configure test if we already know we don't have SSE,
because Sun Studio gets the result of the SSE2 test wrong.
if you're curious.
Also (this is noted in the Makefile):
The configure script is written to fail if it detects gcc<4.0
for lack of -fvisibility=hidden. In keeping with the pkgsrc
tradition of portability, we'll opt to use libtool to export
the desired symbols, hiding the rest.
I have verified the list of visible symbols is unchanged from
the "factory" build.
snapshots. This was mostly done to fold the patches into
a new distfile, but a NULL pointer dereference and the EXTEND_PAD
macro were fixed also (see git history).
Bump rev.
routines, currently used (at least) by xorg-server>=1.4 and cairo>=1.5.
Presently, nothing depends on this library, but probably will soon.
Also, those building their own Xorg servers will need this.