diff options
author | 2014-04-09 15:43:46 +0000 | |
---|---|---|
committer | 2014-04-09 15:43:46 +0000 | |
commit | c524e98f1edf06b53e65543f5f28217fa13b7aa9 (patch) | |
tree | c455bd103111faa286c8bcd1ee94cee52dccac36 /src/core/SkXfermode.cpp | |
parent | d715aaa33fc52d36f566caf941787a2cca24d85b (diff) |
Xfermode: SSE2 implementation of multiply_modeproc
This patch implements basics for Xfermode SSE optimization. Based on
these basics, SSE2 implementation of multiply_modeproc is provided. SSE2
implementation for other modes will come in future. With this patch
performance of Xfermode_Multiply will improve about 45%. Here are the
data on desktop i7-3770.
before:
Xfermode_Multiply 8888: cmsecs = 33.30 565: cmsecs = 45.65
after:
Xfermode_Multiply 8888: cmsecs = 17.18 565: cmsecs = 24.87
BUG=
Committed: http://code.google.com/p/skia/source/detail?r=14006
Committed: http://code.google.com/p/skia/source/detail?r=14050
R=mtklein@google.com, robertphillips@google.com
Author: qiankun.miao@intel.com
Review URL: https://codereview.chromium.org/202903004
git-svn-id: http://skia.googlecode.com/svn/trunk@14107 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkXfermode.cpp')
-rw-r--r-- | src/core/SkXfermode.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 78b85daa3e..7914fdc034 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -8,6 +8,7 @@ #include "SkXfermode.h" +#include "SkXfermode_opts_SSE2.h" #include "SkXfermode_proccoeff.h" #include "SkColorPriv.h" #include "SkMathPriv.h" @@ -1996,4 +1997,5 @@ SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkXfermode) #if !SK_ARM_NEON_IS_NONE SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkNEONProcCoeffXfermode) #endif + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSSE2ProcCoeffXfermode) SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |