Commit Graph

1948 Commits

Author SHA1 Message Date
Søren Sandmann Pedersen
273e89750b Remove optimization for 0xffffffff and 0xff the add_n_8888_8888_ca fast path
This is an ADD operation, not an OVER. Fixes bug 23934, reported by
Siarhei Siamashka.
2009-09-14 18:52:10 -04:00
M Joonas Pihlaja
ec7c1affcc Don't prefetch from NULL in the SSE2 fast paths.
On an Athlon64 box prefetch from NULL slows down
the rgba OVER rgba fast for predominantly solid sources
by up to 3.5x in the one-rounded-rectangle test case
when run using a tiling polygon renderer.  This patch
conditionalises the prefetches of the mask everywhere
where the mask pointer may be NULL in a fast path.
2009-09-15 00:35:14 +03:00
Søren Sandmann Pedersen
1b5269a585 Reformat test/composite.c to follow the standard coding style. 2009-09-14 07:32:54 -04:00
Chris Wilson
0431a0af6c [test] Exercise repeating patterns for composite. 2009-09-13 18:02:10 +01:00
Chris Wilson
c28e39f17a [build] Add rule to generate asm for inspection. 2009-09-13 16:38:04 +01:00
Chris Wilson
823bb1a943 [sse2] Don't emit prefetch 0 for an absent mask 2009-09-13 16:37:57 +01:00
Chris Wilson
8f2daa7ca2 [test] Add composite test from rendercheck
Iterate over all destination formats for dst, src and composite and
compare the result of all oprators with a selection of colours.
2009-09-13 16:33:01 +01: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
Chris Wilson
56cc06f89b Merge branch '0.16'
Conflicts:
	configure.ac
	pixman/pixman-sse2.c
2009-09-13 16:32:27 +01:00
Chris Wilson
8035df8bcb Remove duplicated declaration
The pixman_tranform_pixman_f_transform() declaration is repeated 4 lines
down.
2009-09-13 16:29:57 +01:00
Chris Wilson
29e22cf38e Enable component alpha on solid masks. 2009-09-13 16:29:42 +01:00
Chris Wilson
9fe2628702 [sse2] Bit-reversing typo: src != dst 2009-09-13 16:29:19 +01:00
Søren Sandmann Pedersen
8aff99e231 Fix off-by-one error in source_image_needs_out_of_bounds_workaround()
If extents->x2/y2 are equal to image->width/height, then the clip is
still inside the drawable, so no workaround is necessary.
2009-09-10 21:33:24 -04:00
Gaetan Nadon
fefe2a5d24 Remove unused generated libcomp.pc #23801 2009-09-09 14:36:39 -04:00
Siarhei Siamashka
2186bc8948 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-07 00:41:42 +03:00
Siarhei Siamashka
15304e3cdd ARM: Remove fallback to ARMv6 implementation from NEON delegate chain
This can help to fix build problems with '-mthumb' gcc option in CFLAGS.
ARMv6 optimized code can't be compiled for thumb (because of its inline
assembly) and gets automatically disabled in configure. Reference
to it from NEON optimized code resulted in linking problems.

Every ARMv6 optimized fast path function also has a better NEON
counterpart, so there is no need to fallback to ARMv6. Shorter
delegate chain should additionally result in a bit better performance.
2009-09-07 00:41:21 +03: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
Siarhei Siamashka
91232ee40d ARM: Remove fallback to ARMv6 implementation from NEON delegate chain
This can help to fix build problems with '-mthumb' gcc option in CFLAGS.
ARMv6 optimized code can't be compiled for thumb (because of its inline
assembly) and gets automatically disabled in configure. Reference
to it from NEON optimized code resulted in linking problems.

Every ARMv6 optimized fast path function also has a better NEON
counterpart, so there is no need to fallback to ARMv6. Shorter
delegate chain should additionally result in a bit better performance.
2009-09-06 23:03:08 +03:00
M Joonas Pihlaja
61b616067c 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:51:22 +03:00
M Joonas Pihlaja
20acda6fde Work around a Sun Studio 12 code generation bug involving _mm_set_epi32().
Calling a static function wrapper around _mm_set_epi32() when not
using optimisation causes Sun Studio 12's cc to emit a spurious
floating point load which confuses the assembler.  Using a macro wrapper
rather than a function steps around the problem.
2009-09-03 22:51:18 +03:00
M Joonas Pihlaja
e30c0037d4 Work around differing _mm_prefetch() prototypes on Solaris.
Sun Studio 12 expects the address to prefetch to be
a const char pointer rather than a __m128i pointer or
void pointer.
2009-09-03 22:51:14 +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
M Joonas Pihlaja
e7018685f0 Work around a Sun Studio 12 code generation bug involving _mm_set_epi32().
Calling a static function wrapper around _mm_set_epi32() when not
using optimisation causes Sun Studio 12's cc to emit a spurious
floating point load which confuses the assembler.  Using a macro wrapper
rather than a function steps around the problem.
2009-09-03 22:47:24 +03:00
M Joonas Pihlaja
04ade7b68c Work around differing _mm_prefetch() prototypes on Solaris.
Sun Studio 12 expects the address to prefetch to be
a const char pointer rather than a __m128i pointer or
void pointer.
2009-09-03 22:47:22 +03:00
Siarhei Siamashka
698b686d58 ARM: workaround for gcc bug in vshll_n_u8 intrinsic
Some versions of gcc (cs2009q1, 4.4.1) incorrectly reject
shift operand having value >= 8, claiming that it is out of
range. So inline assembly is used as a workaround.
2009-09-03 19:51:47 +03:00
Siarhei Siamashka
3e228377f9 ARM: workaround for gcc bug in vshll_n_u8 intrinsic
Some versions of gcc (cs2009q1, 4.4.1) incorrectly reject
shift operand having value >= 8, claiming that it is out of
range. So inline assembly is used as a workaround.
2009-09-03 19:49:17 +03:00
Søren Sandmann Pedersen
632125d410 Enable the x888_8_8888 sse2 fast path. 2009-09-02 19:29:03 -04:00
Søren Sandmann Pedersen
b02b644d70 Set version number to 0.16.1 2009-09-02 16:09:32 -04:00
Makoto Kato
d465f854b3 Add CPU detection for VC++ x64
VC++ x64 has no inline assembler and x64 mode supports SSE2.
So, it is unnecessary to call cpuid.
2009-09-02 16:04:02 -04:00
Makoto Kato
097342a65d Add CPU detection for VC++ x64
VC++ x64 has no inline assembler and x64 mode supports SSE2.
So, it is unnecessary to call cpuid.
2009-09-02 15:00:46 -04:00
Søren Sandmann Pedersen
64085c91b6 Change names of add_8888_8_8 fast paths to add_n_8_8
The source is solid in those.
2009-09-01 08:23:23 -04:00
Søren Sandmann Pedersen
7af985a69a Post-release version bump 2009-08-28 08:14:04 -04:00
Søren Sandmann Pedersen
57812465bf Pre-release version bump 2009-08-28 07:55:30 -04:00
Chris Wilson
9e1a34a0d1 _pixman_run_fast_path: typo
This is one example of a compiler warning that was lost amit the build
noise.

The error here is that in a list of required conditions we used ';'
instead of '&&' with the result of continuing to use the fast-path
even if we had a wide mask.

Another error is that it was testing src, not mask as it should.
2009-08-28 06:43:39 -04:00
Makoto Kato
83d607cbf1 Remove spurious spaces in pixman-x64-mmx-emulation.h 2009-08-28 04:14:11 -04:00
Julien Cristau
182f32af53 Prepare changelog for upload 2009-08-23 12:45:10 +02:00
Julien Cristau
828b229bec Add README.source with a pointer to the quilt package. 2009-08-23 12:43:57 +02:00
Julien Cristau
3ebff7c552 Add patch to disable use of env vars to force hwcap and platform on arm.
This is just ugly…
2009-08-23 12:36:58 +02:00
Julien Cristau
b3e7c210df Update changelogs 2009-08-23 12:27:53 +02:00
Julien Cristau
19b65800ba Merge tag 'pixman-0.15.20' into debian-experimental 2009-08-23 12:25:41 +02:00
Søren Sandmann Pedersen
ce966f4d8e Check if we have posix_memalign() in configure.ac. [23260, 23261]
Fall back to malloc() in blitters-test.c if we don't.
2009-08-13 12:46:20 -04:00
Siarhei Siamashka
29c2ae4a0c ARM: a fix to pass blitters-test for 'neon_composite_over_n_8_0565'
Inline assembly for handling <8 pixels width did not pass blitters-test.
Fortunately gcc has no problems compiling alternative implementation
which is using RVCT style intrinsics, so it can be used instead.
2009-08-13 18:17:13 +03:00
Søren Sandmann Pedersen
ed4598f08a Post-release version bump 2009-08-11 14:03:24 -04:00
Søren Sandmann Pedersen
bfdae053ea Pre-release version-bump 2009-08-11 13:56:16 -04:00
Søren Sandmann Pedersen
d6016d406a Merge branch 'blitter-test' 2009-08-11 02:04:40 -04:00
Søren Sandmann Pedersen
93923c626f Fix x/y mixup in bits_image_fetch_pixel_convolution()
Bug 23224, reported by Michel Dänzer.
2009-08-10 20:47:36 -04:00
Søren Sandmann Pedersen
e084351b13 Update CRC value in blitters-test.
At this point, the SIMD, SSE2, MMX and general implementations all
agree.
2009-08-08 18:52:55 -04:00
Søren Sandmann Pedersen
ba5c5325e7 Various formatting fixes 2009-08-08 18:50:42 -04:00
Søren Sandmann Pedersen
cc5c59b3f2 Add the ability to print intermediate CRC values 2009-08-08 18:50:42 -04:00
Søren Sandmann Pedersen
0bc4adae3e Reenable commented-out tests in blitter-test.
The crashes and valgrind issues are all fixed at this point.
2009-08-08 18:50:42 -04:00