diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h index 47e83d19e8..1c2e24fba6 100644 --- a/include/core/SkPreConfig.h +++ b/include/core/SkPreConfig.h @@ -144,6 +144,12 @@ #endif #endif +// Android x86 NDK ABI requires SSE3 support +#if defined(SK_BUILD_FOR_ANDROID) + #undef SK_CPU_SSE_LEVEL + #define SK_CPU_SSE_LEVEL SK_CPU_SSE_LEVEL_SSE3 +#endif + ////////////////////////////////////////////////////////////////////// // ARM defines diff --git a/src/opts/SkBitmapProcState_opts_SSSE3.cpp b/src/opts/SkBitmapProcState_opts_SSSE3.cpp index 1f0477378e..f8342ecaad 100644 --- a/src/opts/SkBitmapProcState_opts_SSSE3.cpp +++ b/src/opts/SkBitmapProcState_opts_SSSE3.cpp @@ -5,13 +5,11 @@ * found in the LICENSE file. */ +#include // SSSE3 #include "SkBitmapProcState_opts_SSSE3.h" #include "SkPaint.h" #include "SkUtils.h" -#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 -#include // SSSE3 - // adding anonymous namespace seemed to force gcc to inline directly the // instantiation, instead of creating the functions // S32_generic_D32_filter_DX_SSSE3 and @@ -724,31 +722,3 @@ void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, int count, uint32_t* colors) { S32_generic_D32_filter_DXDY_SSSE3(s, xy, count, colors); } - -#else //SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3 - -void S32_opaque_D32_filter_DX_SSSE3(const SkBitmapProcState& s, - const uint32_t* xy, - int count, uint32_t* colors) { - sk_throw(); -} - -void S32_alpha_D32_filter_DX_SSSE3(const SkBitmapProcState& s, - const uint32_t* xy, - int count, uint32_t* colors) { - sk_throw(); -} - -void S32_opaque_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, - const uint32_t* xy, - int count, uint32_t* colors) { - sk_throw(); -} - -void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s, - const uint32_t* xy, - int count, uint32_t* colors) { - sk_throw(); -} - -#endif