diff options
author | 2013-10-17 16:29:34 +0000 | |
---|---|---|
committer | 2013-10-17 16:29:34 +0000 | |
commit | cd7992ba55e8b87580f54e7c19fc033bed01640d (patch) | |
tree | 4de48a483e2fd3c2337957c337c6624f092bdeb3 /src/core/SkXfermode.cpp | |
parent | 521a46750d87d3d206617d05d917ad6aad242ca4 (diff) |
ARM Skia NEON patches - 30 - Xfermode: NEON modeprocs
Xfermode: NEON implementation of SIMD procs
This patch contains a NEON implementation for a number of Xfermodes.
It provides a big speedup on Xfermode benchmarks (currently up to 3x
with gcc4.7 but up to 10x when gcc produces optimal code for it).
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
BUG=
Committed: http://code.google.com/p/skia/source/detail?r=11777
Committed: http://code.google.com/p/skia/source/detail?r=11813
R=djsollen@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com
Author: kevin.petit.arm@gmail.com
Review URL: https://codereview.chromium.org/26627004
git-svn-id: http://skia.googlecode.com/svn/trunk@11843 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkXfermode.cpp')
-rw-r--r-- | src/core/SkXfermode.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 993c754711..6cdd97bb4c 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -13,6 +13,11 @@ #include "SkFlattenableBuffers.h" #include "SkMathPriv.h" #include "SkString.h" +#include "SkUtilsArm.h" + +#if !SK_ARM_NEON_IS_NONE +#include "SkXfermode_opts_arm_neon.h" +#endif SK_DEFINE_INST_COUNT(SkXfermode) @@ -1950,4 +1955,7 @@ SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSrcXfermode) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstInXfermode) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDstOutXfermode) +#if !SK_ARM_NEON_IS_NONE + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkNEONProcCoeffXfermode) +#endif SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |