Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Unified Diff: src/opts/opts_check_SSE2.cpp

Issue 61643011: SSE2 implementation of RGBA box blurs. This yields ~2X perf improvement on (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Add another missing file. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/opts/SkBlurImage_opts_SSE2.cpp ('K') | « src/opts/SkBlurImage_opts_none.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/opts/opts_check_SSE2.cpp
diff --git a/src/opts/opts_check_SSE2.cpp b/src/opts/opts_check_SSE2.cpp
index b40ca9d4b846d3dbdd185f195ecf7f5dd5f31b0e..e419ec1866df60a1175459529b1713708daba654 100644
--- a/src/opts/opts_check_SSE2.cpp
+++ b/src/opts/opts_check_SSE2.cpp
@@ -12,6 +12,7 @@
#include "SkBlitRow.h"
#include "SkBlitRect_opts_SSE2.h"
#include "SkBlitRow_opts_SSE2.h"
+#include "SkBlurImage_opts_SSE2.h"
#include "SkUtils_opts_SSE2.h"
#include "SkUtils.h"
#include "SkMorphology_opts.h"
@@ -268,6 +269,30 @@ SkMorphologyProc SkMorphologyGetPlatformProc(SkMorphologyProcType type) {
}
}
+SkBoxBlurProc SkBoxBlurGetPlatformProc(SkBlurDirection srcDirection, SkBlurDirection dstDirection) {
+#ifdef SK_DISABLE_BLUR_DIVISION_OPTIMIZATION
+ return NULL;
mtklein 2013/11/08 02:11:03 Line counter in me cries out for: #ifndef SK_DISA
+#else
+ if (!cachedHasSSE2()) {
+ return NULL;
+ }
+ if (srcDirection == kX_BlurDirection) {
+ if (dstDirection == kX_BlurDirection) {
+ return SkBoxBlur_SSE2<kX_BlurDirection, kX_BlurDirection>;
+ } else if (dstDirection == kY_BlurDirection) {
+ return SkBoxBlur_SSE2<kX_BlurDirection, kY_BlurDirection>;
+ }
+ } else {
+ if (dstDirection == kX_BlurDirection) {
+ return SkBoxBlur_SSE2<kY_BlurDirection, kX_BlurDirection>;
+ } else if (dstDirection == kY_BlurDirection) {
+ return SkBoxBlur_SSE2<kY_BlurDirection, kY_BlurDirection>;
+ }
+ }
+ return NULL;
+#endif
+}
+
SkBlitRow::ColorRectProc PlatformColorRectProcFactory(); // suppress warning
SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
« src/opts/SkBlurImage_opts_SSE2.cpp ('K') | « src/opts/SkBlurImage_opts_none.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698