Søren Sandmann Pedersen [Sun, 21 Jun 2009 22:29:39 +0000 (18:29 -0400)]
Implement fbComposeGetSolid() as a call to pixman_image_get_scanline()
Søren Sandmann Pedersen [Sun, 21 Jun 2009 20:45:17 +0000 (16:45 -0400)]
Eliminate FbStipMask macro.
It was only used for storing into a1 images, and that code could be
written more clearly by computing the bit index directly.
Søren Sandmann Pedersen [Sun, 21 Jun 2009 20:07:50 +0000 (16:07 -0400)]
Implement pixman_format_supported_destination() in terms of pixman_format_supported_source()
Søren Sandmann Pedersen [Sun, 21 Jun 2009 19:09:02 +0000 (15:09 -0400)]
Move FbGen macro into pixman-combine.c
Søren Sandmann Pedersen [Sun, 21 Jun 2009 17:18:46 +0000 (13:18 -0400)]
Use DIV instead of _div In pixman-trap.c.
Søren Sandmann Pedersen [Sun, 21 Jun 2009 15:19:00 +0000 (11:19 -0400)]
Move edge utilities into pixman-trap.c
Søren Sandmann Pedersen [Sun, 21 Jun 2009 15:15:30 +0000 (11:15 -0400)]
Move compiler dependencies to a new pixman-compiler.h file
Søren Sandmann Pedersen [Sun, 21 Jun 2009 14:12:15 +0000 (10:12 -0400)]
Rename FastPathInfo to pixman_fast_path_t
Søren Sandmann Pedersen [Sun, 21 Jun 2009 14:09:22 +0000 (10:09 -0400)]
Eliminate MSBFirst, LSBFirst, IMAGE_BYTE_ORDER, and BITMAP_BIT_ORDER.
Just use WORDS_BIGENDIAN instead.
Søren Sandmann Pedersen [Sun, 21 Jun 2009 13:50:24 +0000 (09:50 -0400)]
Rename combine.inc and combine.h.inc to pixman-combine.{c,h}.template.
Søren Sandmann Pedersen [Sun, 21 Jun 2009 13:44:22 +0000 (09:44 -0400)]
Only use force_align_arg_pointer on gcc/x86-32
Søren Sandmann Pedersen [Sun, 21 Jun 2009 00:28:36 +0000 (20:28 -0400)]
Rename pixman-pict.c to pixman.c
There are no traces of fbpict.c in it anymore.
M Joonas Pihlaja [Fri, 19 Jun 2009 14:29:11 +0000 (17:29 +0300)]
Remove redundant NULL checks from general_composite_rect().
The general_composite_rect() function has two invocations
of the return_if_fail() macro before any of its variable
declarations. Removing them allows for compilation to
succeed using a pre-C99 compiler.
Søren Sandmann Pedersen [Fri, 19 Jun 2009 17:19:02 +0000 (13:19 -0400)]
Get rid of pixman_region_internal_set_static_pointers()
Instead just define the function in pixman-region16.c
Søren Sandmann Pedersen [Thu, 4 Jun 2009 11:31:39 +0000 (07:31 -0400)]
Rename PixmanTimer to pixman_timer_t
Søren Sandmann Pedersen [Thu, 4 Jun 2009 11:29:14 +0000 (07:29 -0400)]
Rename GradientWalker to pixman_gradient_walker_t
Søren Sandmann Pedersen [Fri, 19 Jun 2009 17:14:11 +0000 (13:14 -0400)]
Delete unused IS_SOURCE_IMAGE() macro
Søren Sandmann Pedersen [Thu, 4 Jun 2009 11:17:36 +0000 (07:17 -0400)]
Remove commented-out fbAddTriangles
Søren Sandmann Pedersen [Fri, 19 Jun 2009 17:04:26 +0000 (13:04 -0400)]
Remove useless FbBits typedef
Søren Sandmann Pedersen [Thu, 4 Jun 2009 10:52:32 +0000 (06:52 -0400)]
Delete unused CombineFunc{32,64} types
Søren Sandmann Pedersen [Fri, 19 Jun 2009 16:57:56 +0000 (12:57 -0400)]
Rename bits_image.fetch_pixels_{32,64} to fetch_pixels_raw_{32,64}
Also add a couple of comments about what these functions do.
Søren Sandmann Pedersen [Fri, 19 Jun 2009 16:28:59 +0000 (12:28 -0400)]
Delete empty FASTCALL macro
Søren Sandmann Pedersen [Fri, 19 Jun 2009 16:15:19 +0000 (12:15 -0400)]
Delete FbComposeData type
Søren Sandmann Pedersen [Thu, 4 Jun 2009 10:02:32 +0000 (06:02 -0400)]
Remove unused pixmanFetchGradient() declaration
Søren Sandmann Pedersen [Thu, 4 Jun 2009 02:51:18 +0000 (22:51 -0400)]
Remove dstMask from pixman-fast-path.c
These were used to zero the x8 channel of PIXMAN_x8r8g8b8
destinations. However, we treat this channel as undefined, so there is
no need to zero it.
Søren Sandmann Pedersen [Thu, 4 Jun 2009 02:48:57 +0000 (22:48 -0400)]
Eliminate trivial READ and WRITE macros in pixman-fast-path.c
William Bonnet [Fri, 19 Jun 2009 11:27:28 +0000 (07:27 -0400)]
Fix build on Sun Studio.
Don't use return in a void function.
Jonathan Morton [Tue, 16 Jun 2009 16:08:29 +0000 (12:08 -0400)]
[NEON] Add ARGB8-over-RGB565 compositing blitter.
Jonathan Morton [Tue, 16 Jun 2009 16:08:29 +0000 (12:08 -0400)]
[NEON] Add transparent rect blitter.
Jonathan Morton [Tue, 16 Jun 2009 16:08:29 +0000 (12:08 -0400)]
[NEON] Replace Ian's glyph-blitter with a better one.
Each scanline of the destination is bulk-loaded into a cached buffer on
the stack (using the QuadWordCopy routine) before being processed. This
is the primary benefit on uncached framebuffers, since it is necessary
to minimise the number of accesses to such things and avoid
write-to-read turnarounds.
This also simplifies edge handling, since QuadWordCopy() can do a
precise writeback efficiently via the write-combiner, allowing the main
routine to "over-read" the scanline edge safely when required. This is
why the glyph's mask data is also copied into a temporary buffer of
known size.
Each group of 8 pixels is then processed using fewer instructions,
taking advantage of the lower precision requirements of the 6-bit
destination (so a simpler pixel multiply can be used) and using a more
efficient bit-repacking method.
(As an aside, this patch removes nearly twice as much code as it
introduces. Most of this is due to duplication of Ian's inner loop,
since he has to handle narrow cases separately. RVCT support is of
course preserved.)
We measured the doubling of performance by rendering 96-pixel height
glyph strings, which are fillrate limited rather than latency/overhead
limited. The performance is also improved, albeit by a smaller amount,
on the more usual smaller text, demonstrating that internal overhead is
not a problem.
Søren Sandmann Pedersen [Tue, 16 Jun 2009 15:59:20 +0000 (11:59 -0400)]
Post-release version bump
Søren Sandmann Pedersen [Tue, 16 Jun 2009 15:52:48 +0000 (11:52 -0400)]
Pre-release version bump
Jonathan Morton [Mon, 15 Jun 2009 13:09:32 +0000 (16:09 +0300)]
Add RVCT support for straight blitter.
Jonathan Morton [Mon, 15 Jun 2009 13:02:04 +0000 (16:02 +0300)]
Better CFLAGS handling for recent ARM platforms.
Jonathan Morton [Wed, 27 May 2009 12:31:59 +0000 (15:31 +0300)]
Misc warning fixes.
Søren Sandmann Pedersen [Sat, 13 Jun 2009 13:32:59 +0000 (09:32 -0400)]
Add API to set a function to be called when the image is destroyed.
Søren Sandmann Pedersen [Wed, 10 Jun 2009 12:52:31 +0000 (08:52 -0400)]
Work around X server bug.
X servers prior to
ebfd6688d1927288155221e7a78fbca9f9293952
relied on pixman not clipping to destination geometry whenever an
explicit clip region was set. Since only X servers set
source_clipping, we can just trigger off of that.
Søren Sandmann Pedersen [Wed, 3 Jun 2009 09:21:29 +0000 (05:21 -0400)]
Move region computation closer to the region walking.
Computing the composite is region is a bit expensive, so only compute
it if we are likely to actually walk it.
Søren Sandmann Pedersen [Wed, 3 Jun 2009 03:17:34 +0000 (23:17 -0400)]
Simplify clipping rule
The new rule is:
- Output is clipped to the destination clip region.
- If a source image has the clip_sources property set, then there
is an additional step, after repeating and transforming, but before
compositing, where pixels that are not in the source clip are
rejected. Rejected means no compositing takes place (not that the
pixel is treated as 0). By default source clipping is turned off;
when they are turned on, only client-set clips are honored.
The old rules were unclear and inconsistently implemented.
Søren Sandmann Pedersen [Wed, 3 Jun 2009 04:25:54 +0000 (00:25 -0400)]
Fix pixman_image_is_opaque()
- Don't claim that non-repeating bits images are opaque.
- Don't claim that conical gradients are opaque ever.
Søren Sandmann Pedersen [Wed, 3 Jun 2009 02:57:23 +0000 (22:57 -0400)]
Only call fast paths when the images cover the composite region
Søren Sandmann Pedersen [Wed, 3 Jun 2009 02:17:00 +0000 (22:17 -0400)]
Pass the region to walk_region_internal()
Søren Sandmann Pedersen [Wed, 3 Jun 2009 02:08:02 +0000 (22:08 -0400)]
Remove srcRepeat and maskRepeat arguments from _pixman_walk_composite_region()
Søren Sandmann Pedersen [Wed, 3 Jun 2009 02:04:47 +0000 (22:04 -0400)]
Remove all the srcRepeat/srcTransform stuff from the general implementation.
Søren Sandmann Pedersen [Wed, 3 Jun 2009 02:02:52 +0000 (22:02 -0400)]
Make _pixman_walk_composite_region() a wrapper around an internal function
Søren Sandmann Pedersen [Wed, 3 Jun 2009 01:31:58 +0000 (21:31 -0400)]
Handle repeat_none/normal for 64 bit fetchers
Søren Sandmann Pedersen [Wed, 3 Jun 2009 01:20:42 +0000 (21:20 -0400)]
Make the untransformed path handle REPEAT_NONE and REPEAT_NORMAL
Søren Sandmann Pedersen [Fri, 5 Jun 2009 05:33:28 +0000 (01:33 -0400)]
Post-release version bump
Søren Sandmann Pedersen [Fri, 5 Jun 2009 05:10:00 +0000 (01:10 -0400)]
Pre-release version bump
Also squash some warnings and correct the variable name in RELEASING.
Jonathan Morton [Thu, 4 Jun 2009 15:24:26 +0000 (11:24 -0400)]
[NEON] Really fix filler bug.
Advance the destination pointer (r4 register) properly.
Found by Siarhei Siamashka.
Jonathan Morton [Thu, 4 Jun 2009 15:24:22 +0000 (11:24 -0400)]
[NEON] Fix filler bug.
r5 is being sourced explicitly instead of the %[width] reference.
It's probably a copy-paste bug, not spotted because I didn't
originally write it.
Søren Sandmann Pedersen [Thu, 4 Jun 2009 04:05:06 +0000 (00:05 -0400)]
Add an --enable-timers configure option to enable the TIMER_BEGIN/END macros
Søren Sandmann Pedersen [Thu, 4 Jun 2009 03:54:57 +0000 (23:54 -0400)]
Some cleanups in the configure.ac file
Søren Sandmann Pedersen [Thu, 4 Jun 2009 02:25:25 +0000 (22:25 -0400)]
Correct link to bugzilla in README
Søren Sandmann Pedersen [Thu, 4 Jun 2009 01:49:59 +0000 (21:49 -0400)]
Merge branch 'many-pixels'
Jonathan Morton [Wed, 3 Jun 2009 14:43:42 +0000 (10:43 -0400)]
Delete now-unused fbCompositeSrc_x888x0565neon().
Jonathan Morton [Wed, 3 Jun 2009 14:43:42 +0000 (10:43 -0400)]
Replace fbCompositeSrc_x888x0565neon with fbCompositeSrc_24x16neon.
Jonathan Morton [Wed, 3 Jun 2009 14:43:41 +0000 (10:43 -0400)]
Enable NEON straight blits.
Jonathan Morton [Wed, 3 Jun 2009 14:43:41 +0000 (10:43 -0400)]
Enable NEON copies.
Jonathan Morton [Wed, 3 Jun 2009 14:43:41 +0000 (10:43 -0400)]
Enable NEON fills.
Jonathan Morton [Wed, 3 Jun 2009 14:43:41 +0000 (10:43 -0400)]
Add more NEON fast paths
Søren Sandmann Pedersen [Tue, 2 Jun 2009 07:27:46 +0000 (03:27 -0400)]
Only advance the Z coordinate for non-affine transformations
Søren Sandmann Pedersen [Tue, 2 Jun 2009 07:25:46 +0000 (03:25 -0400)]
Consistently use 256 pixels as the size of the temp buffers
Søren Sandmann Pedersen [Mon, 1 Jun 2009 23:51:06 +0000 (19:51 -0400)]
Inline repeating instead of doing it as a separate pass
Søren Sandmann Pedersen [Sun, 24 May 2009 01:10:46 +0000 (21:10 -0400)]
Move pixman_expand/contract to pixman-utils.c
Søren Sandmann Pedersen [Sun, 24 May 2009 01:03:39 +0000 (21:03 -0400)]
Change pixel wise fetcher to fetch many pixels at a time instead of just one
Søren Sandmann Pedersen [Fri, 22 May 2009 15:37:01 +0000 (11:37 -0400)]
Remove unused access macro
Søren Sandmann Pedersen [Fri, 22 May 2009 13:00:24 +0000 (09:00 -0400)]
Add a 64 bit pixel fetcher and use it for solid colors
Søren Sandmann Pedersen [Fri, 22 May 2009 12:47:51 +0000 (08:47 -0400)]
Move simple fetchers after transformed fetcher
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.