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

Unified Diff: src/opts/opts_check_x86.cpp

Issue 289473009: Add SSE4 optimization of S32A_Opaque_Blitrow (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 7 months 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
Index: src/opts/opts_check_x86.cpp
diff --git a/src/opts/opts_check_x86.cpp b/src/opts/opts_check_x86.cpp
index e3b6b470786f9825f04857bcf9b535f1a194a052..272d75944a915bb066844aa633a3cdb78f1a7d57 100644
--- a/src/opts/opts_check_x86.cpp
+++ b/src/opts/opts_check_x86.cpp
@@ -12,6 +12,7 @@
#include "SkBlitRect_opts_SSE2.h"
#include "SkBlitRow.h"
#include "SkBlitRow_opts_SSE2.h"
+#include "SkBlitRow_opts_SSE4.h"
#include "SkBlurImage_opts_SSE2.h"
#include "SkMorphology_opts.h"
#include "SkMorphology_opts_SSE2.h"
@@ -206,16 +207,30 @@ SkBlitRow::Proc SkBlitRow::PlatformProcs565(unsigned flags) {
}
}
-static SkBlitRow::Proc32 platform_32_procs[] = {
+static SkBlitRow::Proc32 platform_32_procs_SSE2[] = {
NULL, // S32_Opaque,
S32_Blend_BlitRow32_SSE2, // S32_Blend,
S32A_Opaque_BlitRow32_SSE2, // S32A_Opaque
S32A_Blend_BlitRow32_SSE2, // S32A_Blend,
};
+#if !defined(_MSC_VER)
+static SkBlitRow::Proc32 platform_32_procs_SSE4[] = {
+ NULL, // S32_Opaque,
+ S32_Blend_BlitRow32_SSE2, // S32_Blend,
+ S32A_Opaque_BlitRow32_SSE4_asm, // S32A_Opaque
+ S32A_Blend_BlitRow32_SSE2, // S32A_Blend,
+};
+#endif
+
SkBlitRow::Proc32 SkBlitRow::PlatformProcs32(unsigned flags) {
+#if !defined(_MSC_VER)
+ if (supports_simd(SK_CPU_SSE_LEVEL_SSE42)) {
+ return platform_32_procs_SSE4[flags];
+ } else
+#endif
if (supports_simd(SK_CPU_SSE_LEVEL_SSE2)) {
- return platform_32_procs[flags];
+ return platform_32_procs_SSE2[flags];
} else {
return NULL;
}
« src/opts/SkBlitRow_opts_SSE4_x64_asm.S ('K') | « src/opts/SkBlitRow_opts_SSE4_x64_asm.S ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698