diff options
author | Henrik Smiding <henrik.smiding@stericsson.com> | 2012-08-11 23:08:19 +0200 |
---|---|---|
committer | Evan McClain <aeroevan@gmail.com> | 2013-05-26 09:30:04 -0400 |
commit | 49cd20ffc0969087a8b6c1406e7cb7e59738a7f5 (patch) | |
tree | 1ad355c7ba07d50a7ea324d835bd46633a4149df /src/opts/SkBlitRow_opts_arm.cpp | |
parent | 1f089a2a9abd7fbb7f9cdf7a57a37a3639fb84c2 (diff) | |
download | external_skia-49cd20ffc0969087a8b6c1406e7cb7e59738a7f5.zip external_skia-49cd20ffc0969087a8b6c1406e7cb7e59738a7f5.tar.gz external_skia-49cd20ffc0969087a8b6c1406e7cb7e59738a7f5.tar.bz2 |
Add optimization of Skia S32A_Opaque blitter
Adds optimization of Skia S32A_Opaque_BlitRow32 blitter using ARM NEON
instruction set. Special cases for when alpha is zero or opaque.
Improves performance platform wide.
Change-Id: I0ffeb23b128e61cfe581ad121f227631d2918686
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Diffstat (limited to 'src/opts/SkBlitRow_opts_arm.cpp')
-rw-r--r-- | src/opts/SkBlitRow_opts_arm.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/opts/SkBlitRow_opts_arm.cpp b/src/opts/SkBlitRow_opts_arm.cpp index 361acbe..f41c342 100644 --- a/src/opts/SkBlitRow_opts_arm.cpp +++ b/src/opts/SkBlitRow_opts_arm.cpp @@ -508,7 +508,16 @@ static void S32A_D565_Opaque_v7(uint16_t* SK_RESTRICT dst, /////////////////////////////////////////////////////////////////////////////// -#if defined(__ARM_HAVE_NEON) && defined(SK_CPU_LENDIAN) && defined(TEST_SRC_ALPHA) +#if defined(__ARM_HAVE_NEON) && defined(SK_CPU_LENDIAN) && defined(ENABLE_OPTIMIZED_S32A_BLITTERS) + +/* External function in file S32A_Opaque_BlitRow32_neon.S */ +extern "C" void S32A_Opaque_BlitRow32_neon(SkPMColor* SK_RESTRICT dst, + const SkPMColor* SK_RESTRICT src, + int count, U8CPU alpha); + +#define S32A_Opaque_BlitRow32_PROC S32A_Opaque_BlitRow32_neon + +#elif defined(__ARM_HAVE_NEON) && defined(SK_CPU_LENDIAN) && defined(TEST_SRC_ALPHA) static void S32A_Opaque_BlitRow32_neon_test_alpha(SkPMColor* SK_RESTRICT dst, const SkPMColor* SK_RESTRICT src, |