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

Unified Diff: src/opts/opts_check_x86.cpp

Issue 264603002: Cleanup of SSE optimization files. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Added chromium sync patch Created 6 years, 8 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
« no previous file with comments | « src/opts/opts_check_SSE2.cpp ('k') | tools/chromium/chrome_changes » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/opts/opts_check_x86.cpp
diff --git a/src/opts/opts_check_SSE2.cpp b/src/opts/opts_check_x86.cpp
similarity index 92%
rename from src/opts/opts_check_SSE2.cpp
rename to src/opts/opts_check_x86.cpp
index 6c684c27bdcfc447443b6b9b557b1334ff349e40..0b0debb2708a80bd00cdc8e68b377917935f508b 100644
--- a/src/opts/opts_check_SSE2.cpp
+++ b/src/opts/opts_check_x86.cpp
@@ -5,23 +5,22 @@
* found in the LICENSE file.
*/
+#include "SkBitmapFilter_opts_SSE2.h"
#include "SkBitmapProcState_opts_SSE2.h"
#include "SkBitmapProcState_opts_SSSE3.h"
-#include "SkBitmapFilter_opts_SSE2.h"
#include "SkBlitMask.h"
-#include "SkBlitRow.h"
#include "SkBlitRect_opts_SSE2.h"
+#include "SkBlitRow.h"
#include "SkBlitRow_opts_SSE2.h"
#include "SkBlurImage_opts_SSE2.h"
-#include "SkUtils_opts_SSE2.h"
-#include "SkUtils.h"
#include "SkMorphology_opts.h"
#include "SkMorphology_opts_SSE2.h"
+#include "SkRTConf.h"
+#include "SkUtils.h"
+#include "SkUtils_opts_SSE2.h"
#include "SkXfermode.h"
#include "SkXfermode_proccoeff.h"
-#include "SkRTConf.h"
-
#if defined(_MSC_VER) && defined(_WIN64)
#include <intrin.h>
#endif
@@ -32,6 +31,7 @@
in this directory should be compiled with -msse2. */
+/* Function to get the CPU SSE-level in runtime, for different compilers. */
#ifdef _MSC_VER
static inline void getcpuid(int info_type, int info[4]) {
#if defined(_WIN64)
@@ -72,6 +72,8 @@ static inline void getcpuid(int info_type, int info[4]) {
#endif
#endif
+////////////////////////////////////////////////////////////////////////////////
+
#if defined(__x86_64__) || defined(_WIN64) || SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
/* All x86_64 machines have SSE2, or we know it's supported at compile time, so don't even bother checking. */
static inline bool hasSSE2() {
@@ -120,6 +122,8 @@ static bool cachedHasSSSE3() {
return gHasSSSE3;
}
+////////////////////////////////////////////////////////////////////////////////
+
SK_CONF_DECLARE( bool, c_hqfilter_sse, "bitmap.filter.highQualitySSE", false, "Use SSE optimized version of high quality image filters");
void SkBitmapProcState::platformConvolutionProcs(SkConvolutionProcs* procs) {
@@ -132,6 +136,8 @@ void SkBitmapProcState::platformConvolutionProcs(SkConvolutionProcs* procs) {
}
}
+////////////////////////////////////////////////////////////////////////////////
+
void SkBitmapProcState::platformProcs() {
/* Every optimization in the function requires at least SSE2 */
if (!cachedHasSSE2()) {
@@ -185,6 +191,8 @@ void SkBitmapProcState::platformProcs() {
}
}
+////////////////////////////////////////////////////////////////////////////////
+
static SkBlitRow::Proc platform_16_procs[] = {
S32_D565_Opaque_SSE2, // S32_D565_Opaque
NULL, // S32_D565_Blend
@@ -196,6 +204,14 @@ static SkBlitRow::Proc platform_16_procs[] = {
NULL, // S32A_D565_Blend_Dither
};
+SkBlitRow::Proc SkBlitRow::PlatformProcs565(unsigned flags) {
+ if (cachedHasSSE2()) {
+ return platform_16_procs[flags];
+ } else {
+ return NULL;
+ }
+}
+
static SkBlitRow::Proc32 platform_32_procs[] = {
NULL, // S32_Opaque,
S32_Blend_BlitRow32_SSE2, // S32_Blend,
@@ -203,9 +219,9 @@ static SkBlitRow::Proc32 platform_32_procs[] = {
S32A_Blend_BlitRow32_SSE2, // S32A_Blend,
};
-SkBlitRow::Proc SkBlitRow::PlatformProcs565(unsigned flags) {
+SkBlitRow::Proc32 SkBlitRow::PlatformProcs32(unsigned flags) {
if (cachedHasSSE2()) {
- return platform_16_procs[flags];
+ return platform_32_procs[flags];
} else {
return NULL;
}
@@ -219,14 +235,20 @@ SkBlitRow::ColorProc SkBlitRow::PlatformColorProc() {
}
}
-SkBlitRow::Proc32 SkBlitRow::PlatformProcs32(unsigned flags) {
+SkBlitRow::ColorRectProc PlatformColorRectProcFactory(); // suppress warning
+
+SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
+/* Return NULL for now, since the optimized path in ColorRect32_SSE2 is disabled.
if (cachedHasSSE2()) {
- return platform_32_procs[flags];
+ return ColorRect32_SSE2;
} else {
return NULL;
}
+*/
+ return NULL;
}
+////////////////////////////////////////////////////////////////////////////////
SkBlitMask::ColorProc SkBlitMask::PlatformColorProcs(SkBitmap::Config dstConfig,
SkMask::Format maskFormat,
@@ -264,12 +286,15 @@ SkBlitMask::BlitLCD16RowProc SkBlitMask::PlatformBlitRowProcs16(bool isOpaque) {
}
}
+
SkBlitMask::RowProc SkBlitMask::PlatformRowProcs(SkBitmap::Config dstConfig,
SkMask::Format maskFormat,
RowFlags flags) {
return NULL;
}
+////////////////////////////////////////////////////////////////////////////////
+
SkMemset16Proc SkMemset16GetPlatformProc() {
if (cachedHasSSE2()) {
return sk_memset16_SSE2;
@@ -286,6 +311,8 @@ SkMemset32Proc SkMemset32GetPlatformProc() {
}
}
+////////////////////////////////////////////////////////////////////////////////
+
SkMorphologyImageFilter::Proc SkMorphologyGetPlatformProc(SkMorphologyProcType type) {
if (!cachedHasSSE2()) {
return NULL;
@@ -304,6 +331,8 @@ SkMorphologyImageFilter::Proc SkMorphologyGetPlatformProc(SkMorphologyProcType t
}
}
+////////////////////////////////////////////////////////////////////////////////
+
bool SkBoxBlurGetPlatformProcs(SkBoxBlurProc* boxBlurX,
SkBoxBlurProc* boxBlurY,
SkBoxBlurProc* boxBlurXY,
@@ -318,15 +347,7 @@ bool SkBoxBlurGetPlatformProcs(SkBoxBlurProc* boxBlurX,
#endif
}
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory(); // suppress warning
-
-SkBlitRow::ColorRectProc PlatformColorRectProcFactory() {
- if (cachedHasSSE2()) {
- return ColorRect32_SSE2;
- } else {
- return NULL;
- }
-}
+////////////////////////////////////////////////////////////////////////////////
extern SkProcCoeffXfermode* SkPlatformXfermodeFactory_impl_SSE2(const ProcCoeff& rec,
SkXfermode::Mode mode);
« no previous file with comments | « src/opts/opts_check_SSE2.cpp ('k') | tools/chromium/chrome_changes » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698