Søren Sandmann Pedersen [Fri, 22 May 2009 12:39:18 +0000 (08:39 -0400)]
Rename some of the fetchers
Søren Sandmann Pedersen [Fri, 22 May 2009 12:31:50 +0000 (08:31 -0400)]
Split filter switching into its own bits_image_fetch_filtered() function
Søren Sandmann Pedersen [Fri, 22 May 2009 12:28:35 +0000 (08:28 -0400)]
Move 'adjust' code into the individual filters
Søren Sandmann Pedersen [Fri, 22 May 2009 12:18:40 +0000 (08:18 -0400)]
Add bits_image prefix to fetchers
Søren Sandmann Pedersen [Fri, 22 May 2009 12:15:35 +0000 (08:15 -0400)]
Move some code around - use image->fetch_pixel in FbFetchSolid
Søren Sandmann Pedersen [Fri, 22 May 2009 12:13:39 +0000 (08:13 -0400)]
Rename _pixman_image_fetch_pixels() to bits_image_fetch_alpha_pixels
Søren Sandmann Pedersen [Fri, 22 May 2009 12:04:38 +0000 (08:04 -0400)]
Get rid of the StoreExternalAlpha() functions
Søren Sandmann Pedersen [Fri, 22 May 2009 11:49:55 +0000 (07:49 -0400)]
Add fetch_scanline_raw{32,64}
Søren Sandmann Pedersen [Fri, 22 May 2009 11:13:51 +0000 (07:13 -0400)]
Add store_scanline_raw_{32,64} virtual functions to bits image
Søren Sandmann Pedersen [Thu, 21 May 2009 00:32:42 +0000 (20:32 -0400)]
Move remaining pixman-transformed.c code into pixman-bits-image.c
Søren Sandmann Pedersen [Thu, 21 May 2009 00:27:51 +0000 (20:27 -0400)]
Fix coordinate computation for perspective transformations
- Don't convert to integer
- Saturate to INT16_MIN/MAX on overflow
Søren Sandmann Pedersen [Wed, 20 May 2009 22:39:26 +0000 (18:39 -0400)]
Get rid of pixman-transformed-accessors
Søren Sandmann Pedersen [Wed, 20 May 2009 20:52:31 +0000 (16:52 -0400)]
Remove unused code from pixman-transformed.c
Søren Sandmann Pedersen [Wed, 20 May 2009 16:44:55 +0000 (12:44 -0400)]
Handle alpha maps in _pixman_image_fetch_pixels()
Søren Sandmann Pedersen [Wed, 20 May 2009 12:28:54 +0000 (08:28 -0400)]
Only do region lookups when the source region is different from the full region
Søren Sandmann Pedersen [Wed, 20 May 2009 11:40:29 +0000 (07:40 -0400)]
Fix typo in fetch_bilinear_pixels()
Change the number of temp pixels in FbFetchTransformed() to something a little more reasonable.
Søren Sandmann Pedersen [Tue, 19 May 2009 14:04:33 +0000 (10:04 -0400)]
Process the correct number of coordinates for the NEAREST filter
The number of coordinates to process is twice the number of pixels.
Søren Sandmann Pedersen [Tue, 19 May 2009 13:23:01 +0000 (09:23 -0400)]
Fix a couple of bugs in the bilinear fetcher
- The x and y distances are the most significant fractional bits.
- We need to fetch four times the number pixels produced.
Søren Sandmann Pedersen [Tue, 19 May 2009 12:30:01 +0000 (08:30 -0400)]
Make fbFetchTransformed() used the new filtered many-pixel fetchers
Søren Sandmann Pedersen [Tue, 19 May 2009 12:09:03 +0000 (08:09 -0400)]
Add fetch_convolution_pixels() function
Søren Sandmann Pedersen [Tue, 19 May 2009 10:59:13 +0000 (06:59 -0400)]
Add fetch_bilinear_pixels() function
A bilinear fetcher that fetches many pixels instead of just one.
Søren Sandmann Pedersen [Tue, 19 May 2009 10:18:00 +0000 (06:18 -0400)]
Add fetch_extended() function
This function takes a list of coordinates and transforms it into
another list of coordinates, according to the repeat method of the
picture.
Søren Sandmann Pedersen [Tue, 19 May 2009 09:23:29 +0000 (05:23 -0400)]
Add _pixman_image_fetch_pixels()
Including a virtual fetch_pixel() function in bits_image_t.
Søren Sandmann Pedersen [Tue, 2 Jun 2009 20:51:28 +0000 (16:51 -0400)]
Get rid of toplevel argument to implementation constructors.
It was always NULL anyway.
Søren Sandmann Pedersen [Tue, 2 Jun 2009 11:47:29 +0000 (07:47 -0400)]
Make sure the whole delegate chain has the correct toplevel
Søren Sandmann Pedersen [Sun, 31 May 2009 02:23:27 +0000 (22:23 -0400)]
Post-release version bump
Søren Sandmann Pedersen [Sun, 31 May 2009 02:09:11 +0000 (22:09 -0400)]
Pre-release version bump.
Also delete non-existant header files from pixman/Makefile.am
Søren Sandmann Pedersen [Sun, 31 May 2009 01:44:08 +0000 (21:44 -0400)]
Create a vmx pixman_implementation_t
Luca Barbato [Sun, 24 May 2009 16:41:06 +0000 (18:41 +0200)]
Update vmxCombine*U to the new interface
Make the functions use different codepaths depending on mask being non
NULL. It could be speed up a bit more but should work as before
speedwise. Conformance checked with cairo tests.
Siarhei Siamashka [Wed, 27 May 2009 19:46:23 +0000 (22:46 +0300)]
Scaling test updated to provide better coverage for problematic cases
Now scaling test should reliably detect problems in new scaling code.
Maximum image size reduced to improve performance (more tests can be
run per second) and also simplify detected errors analysis.
Søren Sandmann Pedersen [Sat, 30 May 2009 02:21:37 +0000 (22:21 -0400)]
In pixman-sse2.c test for non-zero source, not just non-zero source alpha.
Søren Sandmann Pedersen [Sat, 30 May 2009 01:20:20 +0000 (21:20 -0400)]
In the mmx implementation, check for source == 0 rather than alpha == 0.
Otherwise we compute the incorrect value when the source has zero in
the alpha channel, but non-zero in the color channels.
Jonathan Morton [Fri, 29 May 2009 20:38:45 +0000 (13:38 -0700)]
Fixup the arm-simd and arm-neon implementations.
Magnus Kessler [Thu, 28 May 2009 11:09:07 +0000 (12:09 +0100)]
pixman: define pixman_have_{mmx,sse2} on 64-bit Linux
The refactoring of pixman removed pixman-sse2.h and pixman-mmx.h in commit
41a9a17e0308f2075bb1bd59c4411e43a67d49ec
(http://cgit.freedesktop.org/pixman/commit/?id=
41a9a17e0308f2075bb1bd59c4411e43a67d49ec).
On 64-bit Linux this breaks linking of new programs as well as execution of
existing programs with the following errors:
../pixman/.libs/libpixman-1.so: undefined reference to `pixman_have_mmx'
../pixman/.libs/libpixman-1.so: undefined reference to `pixman_have_sse2'
This patch fixes the issue for me by re-introducing the definitions for these
functions. It might be preferable, though, to create proper trivial static
inline functions instead.
Signed-off-by: Magnus Kessler <Magnus.Kessler@gmx.net>
Søren Sandmann Pedersen [Thu, 28 May 2009 01:51:00 +0000 (21:51 -0400)]
Really fix PPC build.
Add a pixman_composeFunctions variable to pixman-vmx.c.
Søren Sandmann Pedersen [Thu, 28 May 2009 01:15:18 +0000 (21:15 -0400)]
Add back pixman_composeFunctions since vmx is not ported to implementations yet
Søren Sandmann Pedersen [Wed, 20 May 2009 10:04:15 +0000 (06:04 -0400)]
In _pixman_implementation_fill() don't call the delegate; call the actual implementation
Søren Sandmann Pedersen [Sun, 17 May 2009 08:56:13 +0000 (04:56 -0400)]
Call the toplevel implementation for combining
Søren Sandmann Pedersen [Sat, 16 May 2009 15:22:54 +0000 (11:22 -0400)]
Set up combiner functions for an implementation directly in combine.inc.
Previously it would go through two big tables, and the general
implementation would select the correct one dynmcailly.
Søren Sandmann Pedersen [Sat, 16 May 2009 14:24:30 +0000 (10:24 -0400)]
Consolidate the general implementation into one function
Søren Sandmann Pedersen [Sat, 16 May 2009 13:56:31 +0000 (09:56 -0400)]
Move the argument struct into pixman_image_composite_rect
Søren Sandmann Pedersen [Wed, 13 May 2009 15:32:59 +0000 (11:32 -0400)]
Make a couple of functions static
Søren Sandmann Pedersen [Wed, 13 May 2009 15:31:30 +0000 (11:31 -0400)]
Delete pixman-sse2.h and pixman-mmx.h
Søren Sandmann Pedersen [Wed, 13 May 2009 15:27:01 +0000 (11:27 -0400)]
Make the fast_path implementation run the c_fast_paths
Søren Sandmann Pedersen [Wed, 13 May 2009 15:24:28 +0000 (11:24 -0400)]
Split fill implementations out in the implementations
Søren Sandmann Pedersen [Wed, 13 May 2009 15:04:07 +0000 (11:04 -0400)]
Add alignment workaround to sse2
Søren Sandmann Pedersen [Wed, 13 May 2009 15:03:15 +0000 (11:03 -0400)]
Add a general_blt() that just returns FALSE
Søren Sandmann Pedersen [Wed, 13 May 2009 14:56:15 +0000 (10:56 -0400)]
Move sse2 and mmx blt implementations to their respective files
Søren Sandmann Pedersen [Wed, 13 May 2009 14:32:36 +0000 (10:32 -0400)]
Move gcc alignment workaround to pixman-sse2.c
Søren Sandmann Pedersen [Wed, 13 May 2009 14:28:41 +0000 (10:28 -0400)]
Set up SSE2 combiners
Søren Sandmann Pedersen [Wed, 13 May 2009 14:23:01 +0000 (10:23 -0400)]
Make pixman_implementation call the right combiner
Søren Sandmann Pedersen [Wed, 13 May 2009 14:15:58 +0000 (10:15 -0400)]
Use the implementation's combiner's
Søren Sandmann Pedersen [Wed, 13 May 2009 14:06:29 +0000 (10:06 -0400)]
Move SSE2 variable initializations to pixman_implementations_create_sse2
Søren Sandmann Pedersen [Wed, 13 May 2009 13:50:55 +0000 (09:50 -0400)]
Move mmx fast path code to pixman-mmx.c
Søren Sandmann Pedersen [Wed, 13 May 2009 13:44:45 +0000 (09:44 -0400)]
Move sse2 fast path running to the sse2 implementation
Søren Sandmann Pedersen [Wed, 13 May 2009 13:42:42 +0000 (09:42 -0400)]
Change pixman_lookup_fast_path() to actually run the fast path
Then just return in the general implementation if we ran a fast path.
Søren Sandmann Pedersen [Wed, 13 May 2009 13:26:42 +0000 (09:26 -0400)]
Add _pixman_choose_implementation
Søren Sandmann Pedersen [Wed, 13 May 2009 13:21:37 +0000 (09:21 -0400)]
Remove fast path lookup code from pixman-general
Søren Sandmann Pedersen [Wed, 13 May 2009 13:12:04 +0000 (09:12 -0400)]
Beginning of sse2 implementation
Søren Sandmann Pedersen [Wed, 13 May 2009 13:06:19 +0000 (09:06 -0400)]
Copy fast path lookup code into pixman-utils.c
Søren Sandmann Pedersen [Wed, 13 May 2009 12:51:09 +0000 (08:51 -0400)]
Initial fast path implementation
Move fbSrcScaleNearest() here, and move
_pixman_walk_composite_region() to pixman-utils.c
Søren Sandmann Pedersen [Wed, 13 May 2009 12:14:01 +0000 (08:14 -0400)]
Change prototypes for compositing functions to use 32 bit integers
Søren Sandmann Pedersen [Wed, 13 May 2009 09:12:52 +0000 (05:12 -0400)]
Add component alpha combiners in pixman-implementation.c
Søren Sandmann Pedersen [Wed, 13 May 2009 08:52:28 +0000 (04:52 -0400)]
Beginning of MMX implementation
Søren Sandmann Pedersen [Wed, 13 May 2009 08:32:32 +0000 (04:32 -0400)]
Move entire C implementation into pixman-general.c
Søren Sandmann Pedersen [Wed, 13 May 2009 08:04:36 +0000 (04:04 -0400)]
Add beginning of general implementation
Søren Sandmann Pedersen [Wed, 13 May 2009 07:40:05 +0000 (03:40 -0400)]
Formatting
Søren Sandmann Pedersen [Wed, 13 May 2009 07:31:11 +0000 (03:31 -0400)]
Beginning of pluggable implementations
Søren Sandmann Pedersen [Wed, 20 May 2009 22:28:03 +0000 (18:28 -0400)]
Move fbStoreExternalAlpha{,64} into pixman-bits-image.c
Søren Sandmann Pedersen [Thu, 21 May 2009 14:45:51 +0000 (10:45 -0400)]
Add new store_scanline_{32,64} in bits_image_t
Also move fbStore and fbStore64 into pixman-bits-image.c
Søren Sandmann Pedersen [Sat, 23 May 2009 15:33:21 +0000 (11:33 -0400)]
Post-release version bump
Jeff Muizelaar [Fri, 22 May 2009 19:13:57 +0000 (12:13 -0700)]
NEON: Remove some unneeded casts
There are some unnecessary (void*) casts. Eliminate some of them. Doesn't
change the generated code.
Jeff Muizelaar [Fri, 22 May 2009 18:56:44 +0000 (11:56 -0700)]
Fix uses of dst_keep
Søren Sandmann Pedersen [Fri, 22 May 2009 16:07:55 +0000 (12:07 -0400)]
Pre-release version bump
Jonathan Morton [Fri, 22 May 2009 16:01:26 +0000 (12:01 -0400)]
Initialize the ARM SIMD fast path array.
Jonathan Morton [Fri, 22 May 2009 15:25:26 +0000 (08:25 -0700)]
Søren Sandmann Pedersen [Wed, 20 May 2009 14:45:29 +0000 (10:45 -0400)]
Fix alpha map computation in pixman_compute_composite_region()
According to the RENDER spec, the origin of the alpha map is
interpreted relative to the origin of the drawable of the image, not
the origin of the drawable of the alpha map.
This commit fixes that and adds an alpha-test.c test program.
The only use of alpha maps I have been able to find is in Qt and they
don't use a non-zero alpha origin.
Jonathan Morton [Thu, 21 May 2009 11:16:34 +0000 (07:16 -0400)]
Avoid malloc() by allocating a fixed set of boxes on the stack
Søren Sandmann Pedersen [Thu, 21 May 2009 09:07:19 +0000 (05:07 -0400)]
Fix build on ppc. Pointed out by Chris Ball
Søren Sandmann Pedersen [Wed, 13 May 2009 09:53:40 +0000 (05:53 -0400)]
Make SSE2 fast paths static and remove them from the header file
Søren Sandmann Pedersen [Wed, 13 May 2009 09:49:13 +0000 (05:49 -0400)]
Make MMX fast paths static and remove them from the header file
Søren Sandmann Pedersen [Tue, 5 May 2009 13:07:32 +0000 (09:07 -0400)]
Notes on component alpha
Søren Sandmann Pedersen [Tue, 5 May 2009 12:49:49 +0000 (08:49 -0400)]
Note about glyphs polygons
Søren Sandmann Pedersen [Tue, 5 May 2009 11:31:52 +0000 (07:31 -0400)]
Notes on output kernels
Søren Sandmann Pedersen [Tue, 5 May 2009 07:10:44 +0000 (03:10 -0400)]
Further notes on the rendering pipeline
Søren Sandmann Pedersen [Tue, 5 May 2009 05:58:48 +0000 (01:58 -0400)]
Some roadmap notes
Søren Sandmann Pedersen [Mon, 4 May 2009 21:39:19 +0000 (17:39 -0400)]
Describe alpha map in the pipeline
Søren Sandmann Pedersen [Mon, 4 May 2009 02:46:34 +0000 (22:46 -0400)]
Notes on the rendering pipeline
Søren Sandmann Pedersen [Mon, 4 May 2009 01:07:06 +0000 (21:07 -0400)]
Move C fast paths to their own file pixman-fast-path.c
Søren Sandmann Pedersen [Mon, 4 May 2009 01:05:45 +0000 (21:05 -0400)]
Move the arch specific fast path tables into their arch files
Søren Sandmann Pedersen [Sun, 3 May 2009 23:12:02 +0000 (19:12 -0400)]
Move CPU detection code to its own file
Søren Sandmann Pedersen [Sun, 3 May 2009 05:18:49 +0000 (01:18 -0400)]
Move conical gradient code to pixman-conical-gradient.c and delete pixman-source.c
Søren Sandmann Pedersen [Sun, 3 May 2009 05:08:54 +0000 (01:08 -0400)]
Move the radial gradient code form pixman-source.c into pixman-radial-gradient.c
Søren Sandmann Pedersen [Sun, 3 May 2009 04:59:36 +0000 (00:59 -0400)]
Duplicate some code that was shared between radial and conical gradients.
It is going to live in separate files.
Søren Sandmann Pedersen [Sun, 3 May 2009 04:56:16 +0000 (00:56 -0400)]
Move the linear gradient code from pixman-source.c into pixman-linear-gradient.c
Søren Sandmann Pedersen [Sun, 3 May 2009 04:46:30 +0000 (00:46 -0400)]
Rename pixmanFetchSourcePict to pixmanFetchGradient
Move the solid fill parts into pixman-solid-fill.c
Søren Sandmann Pedersen [Sun, 3 May 2009 03:26:30 +0000 (23:26 -0400)]
Add a generic 64 bit fetcher and use it for gradients and transformed images
Søren Sandmann Pedersen [Sun, 3 May 2009 03:08:59 +0000 (23:08 -0400)]
Move the gradient walker code to its own file
Søren Sandmann Pedersen [Sun, 3 May 2009 02:55:56 +0000 (22:55 -0400)]
Replace pixman_image_get_fetchers() with pixman_image_get_scanline_{32,64}
Søren Sandmann Pedersen [Sun, 3 May 2009 02:46:20 +0000 (22:46 -0400)]
Set up scanline getters for bits images