[Pixman] [PATCH 0/10] Floating point pipeline again

2012-09-26 Thread Søren Sandmann
Hi, Here is a new version of the floating point patches. The main changes since last time are: (a) It is now explicit that the only guarantee wrt. floating point exceptions is that divide-by-zero is not generated. So if an application enables for example FP_INVALID, it may crash. It can

[Pixman] [PATCH 02/10] blitters-test: Prepare for floating point

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com Comment out some formats in blitters-test that are going to rely on floating point in the upcoming patches. --- test/blitters-test.c |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/test/blitters-test.c

[Pixman] [PATCH 03/10] Add pixman-combine-float.c

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com This file contains floating point implementations of combiners for all pixman operators. These combiners operate on buffers containing single precision floating point pixels stored in (a, r, g, b) order in memory. The combiners are added to the

[Pixman] [PATCH 04/10] Add combiner test

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com This test runs the new floating point combiners on random input with divide-by-zero exceptions turned on. With the floating point combiners the only thing we guarantee is that divide-by-zero exceptions are not generated, so change

[Pixman] [PATCH 06/10] pixman-access.c: Add floating point accessor functions

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com Three new function pointer fields are added to bits_image_t: fetch_scanline_float fetch_pixel_float store_scanline_float similar to the existing 32 and 64 bit accessors. The fetcher_info_t struct in pixman_access similarly gets a

[Pixman] [PATCH 07/10] Switch the wide pipeline over to using floating point

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com In pixman-bits-image.c, remove bits_image_fetch_untransformed_64() and add bits_image_fetch_untransformed_float(); change dest_get_scanline_wide() to produce a floating point buffer, In the gradients, change *_get_scanline_wide() to call

[Pixman] [PATCH 08/10] Remove 64 bit pipeline

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com The 64 bit pipeline is not used anymore, so it can now be removed. Don't generate pixman-combine64.[ch] anymore. Don't generate the pixman-srgb.c anymore. Delete all the 64 bit fetchers in pixman-access.c, all the 64 bit iterator functions in

[Pixman] [PATCH 10/10] Speed up pixman_expand_to_float()

2012-09-26 Thread Søren Sandmann
From: Søren Sandmann Pedersen s...@redhat.com GCC doesn't move the divisions out of the loop, so do it manually by looking up the four (1.0f / mask) values in a table. Table lookups are used under the theory that one L2 hit plus three L1 hits is preferable to four floating point divisions. ---

Re: [Pixman] [PATCH 05/10] pixman-utils.c, pixman-private.h: Add floating point conversion routines

2012-09-26 Thread Matt Turner
On Wed, Sep 26, 2012 at 1:43 PM, Søren Sandmann sandm...@cs.au.dk wrote: From: Søren Sandmann Pedersen s...@redhat.com A new struct argb_t containing a floating point pixel is added to pixman-private.h, and conversion routines are added to pixman-utils.c to convert normalized integers to and

Re: [Pixman] [PATCH 05/10] pixman-utils.c, pixman-private.h: Add floating point conversion routines

2012-09-26 Thread Søren Sandmann
Matt Turner matts...@gmail.com writes: +pixman_bool_t +_pixman_lookup_composite_function (pixman_implementation_t *toplevel, + pixman_op_t op, + pixman_format_code_t src_format, +

[Pixman] [PATCH] ARMv5 optimisations

2012-09-26 Thread Andre Renaud
Hi, I've put together an ARMv5 optimised blitter fill routine (heavily based on some code from the Android pixelflinger system). It provides 16 32-bit fills, over - blitting and over - 0565 blitting. I realise that ARMv5 is getting pretty old now, but it's probably still popular