[Pixman] [PATCH 25/32] armv6: Add src_1555_8888 fast path

Ben Avison bavison at riscosopen.org
Mon Apr 20 17:05:46 PDT 2015

I hope this doesn't confuse threading too much... I've been working on
ARMv7 with the aim of bringing it up to par with the ARMv6 features that
I've been writing over the last couple of years, and I'm trying to drip
feed them to the mailing list to avoid a big bang at the end this time.
I've just added src_1555_8888 for ARMv7, and it makes sense to address
Søren's review comment for the ARMv6 version while I am at it, even
though many earlier ARMv6 patches in the series haven't been accepted yet.

On Thu, 07 Aug 2014 17:50:21 +0100, I wrote:
> diff --git a/pixman/pixman-arm-simd.c b/pixman/pixman-arm-simd.c
> index e6c5d81..f028794 100644
> --- a/pixman/pixman-arm-simd.c
> +++ b/pixman/pixman-arm-simd.c
> @@ -277,6 +279,9 @@ static const pixman_fast_path_t arm_simd_fast_paths[] =
>      PIXMAN_STD_FAST_PATH (SRC, a8b8g8r8, null, b5g6r5, armv6_composite_src_x888_0565),
>      PIXMAN_STD_FAST_PATH (SRC, x8b8g8r8, null, b5g6r5, armv6_composite_src_x888_0565),
>+    PIXMAN_STD_FAST_PATH (SRC, a1r5g5b5, null, a8r8g8b8, armv6_composite_src_1555_8888),
> +    PIXMAN_STD_FAST_PATH (SRC, a1b5g5r5, null, a8b8g8r8, armv6_composite_src_1555_8888),
> +
>      PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, a8r8g8b8, armv6_composite_over_8888_8888),
>      PIXMAN_STD_FAST_PATH (OVER, a8r8g8b8, null, x8r8g8b8, armv6_composite_over_8888_8888),
>      PIXMAN_STD_FAST_PATH (OVER, a8b8g8r8, null, a8b8g8r8, armv6_composite_over_8888_8888),

On Sun, 05 Oct 2014 20:03:42 +0100, Søren Sandmann <soren.sandmann at gmail.com> wrote:
> Can these be used for x8r8g8b8/x8b8g8r8 targets as well?

This is true. In fact, it can be used for x1r5g5b5/x1b5g5r5 sources as
well if the destination is x8r8g8b8/x8b8g8r8.

The ARMv6 fast path table is otherwise quite rigorous in including x888
type pixel formats whenever possible. The same cannot be said for the
ARMv7 table; logically, the same rules should apply to both. So I will
shortly be following the updated version of this patch with a couple more
patches to improve the ARMv7 table in the same way.

Following that will be a short patch series adding some of the unscaled
fast paths which had been encountered on the Raspberry Pi 1 (ARMv6) but
for which an ARMv7 implementation was missing. These are presented as a
dependent series because without the first patch in that series to
improve the ARMv7 prefetch logic for small images, the RT benchmark
scores for these fast paths showed a sizeable regression compared to the
ARMv6 version.


More information about the Pixman mailing list