Commit Graph

151 Commits

Author SHA1 Message Date
Søren Sandmann Pedersen
c5e048d46c Pre-release version bump to 0.20.0 2010-10-27 16:51:40 -04:00
Scott McCreary
6a6d9758af Added check to find pthread on Haiku. 2010-10-27 16:49:02 -04:00
Søren Sandmann Pedersen
1c23142efa Post-release version bump to 0.19.7 2010-10-20 16:31:57 -04:00
Søren Sandmann Pedersen
d105134015 Pre-release version bump to 0.19.6 2010-10-20 16:25:55 -04:00
Søren Sandmann Pedersen
edd1733966 Post-release version bump to 0.19.5 2010-09-21 10:18:44 -04:00
Søren Sandmann Pedersen
e5b3a6e710 Pre-release version bump to 0.19.4 2010-09-21 10:11:34 -04:00
Dmitri Vorobiev
cab3261c0d Add gettime() routine to test utils
Impending benchmark code will need a function to get current time
in seconds, and this patch introduces such routine. We try to use
the POSIX gettimeofday() function when available, and fall back to
clock() when not.
2010-09-21 08:50:17 -04:00
Tor Lillqvist
3411f9399c Support __thread on MINGW 4.5
By the way, it seems that with gcc 4.5.0 from mingw.org, __thread, sse
and mmx work fine.

I added the below to pixman 0.18 and as far as I can see, it works.
make check reports no problems. (Earlier I had to use --disable-mmx
and --disable-sse2.) Also gtk-demo and gimp run fine.

(Also a change to get rid of the warnings about -fvisibility being ignored.)
2010-09-21 08:31:08 -04:00
Søren Sandmann Pedersen
dc9fe269ea Add fence_malloc() and fence_free().
These variants of malloc() and free() try to surround the allocated
memory with protected pages so that out-of-bounds accessess will cause
a segmentation fault.

If mprotect() and getpagesize() are not available, these functions are
simply equivalent to malloc() and free().
2010-09-21 08:28:55 -04:00
Søren Sandmann Pedersen
5b99710042 Be more paranoid about checking for GTK+
From time to time people run into issues where the configure script
detects GTK+ when it is either not installed, or not functional due to
a missing pixman. Most recently:

  https://bugs.freedesktop.org/show_bug.cgi?id=29736

This patch makes the configure script more paranoid by

- always using PKG_CHECK_MODULES and not PKG_CHECK_EXISTS, since it
seems PKG_CHECK_EXISTS will sometimes return true even if a dependency
of GTK+, such as pixman-1, is missing.

- explicitly checking that pixman-1 is installed before enabling GTK+.

Cc: my.somewhat.lengthy.loginname@gmail.com
2010-08-24 08:12:20 -04:00
Søren Sandmann Pedersen
5ff359b8a0 Post-release version bump to 0.19.3 2010-08-21 06:39:44 -04:00
Søren Sandmann Pedersen
39308ed3b0 Pre-release version bump to 0.19.2 2010-08-21 06:33:19 -04:00
Søren Sandmann Pedersen
9fe7d32c4b Add alpha-loop test program
This tests what happens if you attempt to make an image with an alpha
map that has the image as its alpha map. This results in an infinite
loop in _pixman_image_validate(), so the test sets up a SIGALRM to
exit if it runs for more than five seconds.
2010-08-15 21:57:18 -04:00
M Joonas Pihlaja
9399b1a5af Fix thinko in configure.ac's macro to test linking.
Copy-paste carnage.  Renames save_{cflags,libs,ldflags} to
save_{CFLAGS,LIBS,LDFLAGS}.
2010-07-21 23:52:23 +03:00
M Joonas Pihlaja
1d9c6fa623 Check for specific flags by actually trying to compile and link.
Instead of relying on preprocessor version checks to see if a
some compiler flags are supported, actually try to compile and
link a test program with the flags.
2010-07-21 23:52:23 +03:00
M Joonas Pihlaja
d95ae70604 Check that the OpenMP pragmas don't cause link errors.
This patch adds extra guards around our use of
OpenMP pragmas and checks that the pragmas won't
cause link errors.  This fixes the build on
Tru64 and Solaris with the native compilers and clang.
2010-07-21 23:52:23 +03:00
M Joonas Pihlaja
eb247ac377 Don't trust OpenBSD's gcc to produce working code for __thread.
The gcc on OpenBSD 4.5 to 4.7 at least produces bad code for __thread,
without as much as a warning.

See PR #6410 "Using __thread TLS variables compiles ok but segfault at runtime."

http://cvs.openbsd.org/cgi-bin/query-pr-wrapper?full=yes&numbers=6410
2010-07-21 23:52:22 +03:00
M Joonas Pihlaja
dbf35f1f27 Try harder to find suitable flags for pthreads.
The flags -D_REENTRANT -lpthread work on more systems than
does -pthread unfortunately, so give that a go too.
2010-07-21 23:52:22 +03:00
Siarhei Siamashka
cfc4e38852 test: added OpenMP support for better utilization of multiple CPU cores
Some of the tests are quite heavy CPU users and may benefit from
using multiple CPU cores, so the programs from 'test' directory
are now built with OpenMP support. OpenMP is easy to use, portable
and also takes care of making a decision about how many threads
to spawn.
2010-05-13 21:04:55 +03:00
Søren Sandmann Pedersen
582fa58bba Don't use __thread on MinGW.
It is apparently broken. See this:

http://mingw-users.1079350.n2.nabble.com/gcc-4-4-multi-threaded-exception-handling-thread-specifier-not-working-td3440749.html

We'll need to support thread local storage on MinGW32 some other way.

Cc: tml@iki.fi
2010-05-03 11:12:24 +03:00
Søren Sandmann Pedersen
0345c343e5 Post-release version bump to 0.19.1 2010-04-01 06:21:21 -04:00
Søren Sandmann Pedersen
e9dc568d6f Pre-release version bump to 0.18.0 2010-04-01 05:23:31 -04:00
Søren Sandmann Pedersen
c0f8d417b5 Post-release version bump to 0.17.15 2010-03-23 17:25:54 -04:00
Søren Sandmann Pedersen
b35f0b0158 Pre-release version bump to 0.17.14 2010-03-23 16:52:02 -04:00
Siarhei Siamashka
3ef203331f ARM: SIMD optimizations moved to a separate .S file
This should be the last step in providing full armv4t compatibility
with CPU features runtime autodetection in pixman.
2010-03-22 21:56:17 +02:00
Siarhei Siamashka
68d8d83223 ARM: Use '.object_arch' directive in NEON assembly file
This can be used to override the architecture recorded in the EABI object
attribute section. We set a minimum arch to 'armv4'. Binutils documentation
recommends to use this directive with the code performing runtime detection
of CPU features.

Additionally NEON/VFP EABI attributes are suppressed. And the instruction
set to use is explicitly set to '.arm'.

Configure test for NEON support is also updated to include a bunch of
these new directives (if any of these is unsupported by the assembler,
it is better to fail configure test than to fail library build).

All these changes are required to fix SIGILL problem on armv4t, reported in
http://lists.freedesktop.org/archives/pixman/2010-March/000123.html
2010-03-22 12:12:03 +02:00
Søren Sandmann Pedersen
50713d9d0d Post-release version bump to 0.17.13 2010-03-17 15:12:06 -04:00
Søren Sandmann Pedersen
fb68d6c14d Pre-release version bump to 0.17.12 2010-03-17 13:46:44 -04:00
Søren Sandmann Pedersen
6532f8488a Fix contact address in configure.ac 2010-03-16 14:58:18 -04:00
Søren Sandmann Pedersen
6b9c548200 Add checks for various types of thread local storage.
OS X does not support __thread, so we have to check for it before
using it.  It does however support pthread_get/setspecific(), so if we
don't have __thread, check if those are available.
2010-03-16 12:01:51 -04:00
Loïc Minier
18f0de452d ARM: SIMD: Try without any CFLAGS before forcing -mcpu=
http://bugs.launchpad.net/bugs/535183
2010-03-14 13:15:34 +02:00
Søren Sandmann Pedersen
84b009ae9f Post-release version bump to 0.17.11 2010-03-05 20:40:41 -05:00
Søren Sandmann Pedersen
14fd287efb Pre-release version bump to 0.17.10 2010-03-05 20:06:08 -05:00
Søren Sandmann Pedersen
7392a350f2 Post-release version bump 2010-02-24 22:02:13 -05:00
Søren Sandmann Pedersen
4d1c216af3 Pre-release version bump 2010-02-24 21:52:30 -05:00
Søren Sandmann Pedersen
d7e281e0a1 Post-release version bump 2010-02-13 18:23:34 -05:00
Søren Sandmann Pedersen
9bcadc3408 Pre-release version bump 2010-02-13 18:12:32 -05:00
Søren Sandmann Pedersen
8fce7b18f3 Post-release version bump 2010-01-17 19:34:27 -05:00
Søren Sandmann Pedersen
23e1ba3c06 Pre-release version bump 2010-01-17 18:56:11 -05:00
Benjamin Otte
3fba7dc6fa Make test program not throw warnings about undefined variables 2009-12-04 15:04:24 +01:00
Søren Sandmann Pedersen
c97b1e803f Post-release version bump 2009-11-20 12:02:50 +01:00
Søren Sandmann Pedersen
5a7597f818 Pre-release version bump 2009-11-20 11:55:40 +01:00
Siarhei Siamashka
bcb4bc7932 ARM: introduction of the new framework for NEON fast path optimizations
GNU assembler and its macro preprocessor is now used to generate
NEON optimized functions from a common template. This automatically
takes care of nuisances like ensuring optimal alignment, dealing with
leading/trailing pixels, doing prefetch, etc.

Implementations for a lot of compositing functions are also added,
but not enabled.
2009-11-11 18:12:56 +02:00
Søren Sandmann Pedersen
b8898d77d0 Define PIXMAN_USE_INTERNAL_API in pixman-private.h
Instead of mucking around with CFLAGS in configure.ac, preventing
users from setting their own CFLAGS, just define the
PIXMAN_USE_INTERNAL_API and PIXMAN_DISABLE_DEPRECATED in
pixman-private.h
2009-11-07 14:47:22 -05:00
André Tupinambá
88323c5abe Speed up bilinear interpolation.
Speed up bilinear interpolation by processing more than one component
at a time on 64 bit architectures, and by precomputing the dist{ixiy}
products on 32 bit architectures.

Previously bilinear interpolation for one pixel would take 24
multiplications. With this improvement it takes 12 on 64 bit, and 20
on 32 bit.

This is a small but consistent speedup on the swfdec-youtube
benchmark:

[ # ]  backend                         test   min(s) median(s) stddev. count
Before:
[  0]    image               swfdec-youtube   18.010   18.020   0.09%    4/5

After:
[  0]    image               swfdec-youtube   17.488   17.584   0.22%    5/6

Signed-off-by: Søren Sandmann Pedersen <sandmann@redhat.com>
2009-10-26 13:04:21 -04:00
Jeremy Huddleston
eab882ef38 This is not a GNU project, so declare it foreign.
On Wed, 2009-10-21 at 13:36 +1000, Peter Hutterer wrote:
> On Tue, Oct 20, 2009 at 08:23:55PM -0700, Jeremy Huddleston wrote:
> > I noticed an INSTALL file in xlsclients and libXvMC today, and it
> > was quite annoying to work around since 'autoreconf -fvi' replaces
> > it and git wants to commit it.  Should these files even be in git?
> > Can I nuke them for the betterment of humanity and since they get
> > created by autoreconf anyways?
>
> See https://bugs.freedesktop.org/show_bug.cgi?id=24206

As an interim measure, replace AM_INIT_AUTOMAKE([dist-bzip2]) with
AM_INIT_AUTOMAKE([foreign dist-bzip2]). This will prevent the generation
of the INSTALL file. It is also part of the 24206 solution.

Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
2009-10-21 12:47:27 -07:00
Søren Sandmann Pedersen
3d1714cd1f Hide PIXMAN_OP_NONE and PIXMAN_N_OPERATORS behind PIXMAN_INTERNAL_API.
These cannot sanely be used by applications since they may change in
new versions.
2009-09-24 07:06:34 -04:00
Chris Wilson
cda0ee5165 build: Suppress verbose compile lines
Compile warnings are being lost in the sea of noise. Automake-1.11 finally
introduced AM_SILENT_RULES to suppress the echoing of the compile line for
every object. Enable this to bring sanity to the pixman build.
2009-09-13 16:32:44 +01:00
Siarhei Siamashka
2679d93e22 Change CFLAGS order for PPC and ARM configure tests
CFLAGS are always appended to the end of gcc options when compiling
sources in autotools based projects. Configure tests should do the
same. Otherwise build fails on PPC when using CFLAGS="-O2 -mno-altivec"
for example. Similar problem affects ARM.
2009-09-06 23:03:21 +03:00
M Joonas Pihlaja
29e7d6063f Default to optimised builds when using a Sun Studio compiler.
Autoconf's AC_PROG_CC sets the default CFLAGS to -O2 -g for
gcc and -g for every other compiler.  This patch defaults
CFLAGS to the equivalent -O -g when we're using Sun Studio's cc
if the user or site admin hasn't already set CFLAGS.
2009-09-03 22:50:38 +03:00