diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 3 | ||||
-rw-r--r-- | src/opts/SkNx_avx.h | 2 | ||||
-rw-r--r-- | src/opts/SkNx_neon.h | 2 | ||||
-rw-r--r-- | src/opts/SkNx_sse.h | 2 |
4 files changed, 8 insertions, 1 deletions
diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index b224474536..c7d52fb0d9 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -282,7 +282,8 @@ void SkLinearGradient::LinearGradientContext::shadeSpan(int x, int y, SkPMColor* SkASSERT(count > 0); const SkLinearGradient& linearGradient = static_cast<const SkLinearGradient&>(fShader); -#ifndef SK_SUPPORT_LEGACY_LINEAR_GRADIENT_TABLE +// Only use the Sk4f impl when known to be fast. +#if defined(SKNX_IS_FAST) if (SkShader::kClamp_TileMode == linearGradient.fTileMode && kLinear_MatrixClass == fDstToIndexClass) { diff --git a/src/opts/SkNx_avx.h b/src/opts/SkNx_avx.h index 9697303e37..6236769652 100644 --- a/src/opts/SkNx_avx.h +++ b/src/opts/SkNx_avx.h @@ -13,6 +13,8 @@ // All the SSE specializations are still good ideas. We'll just add Sk8f. #include "SkNx_sse.h" +// SkNx_sse.h defines SKNX_IS_FAST. + namespace { // See SkNx.h template <> diff --git a/src/opts/SkNx_neon.h b/src/opts/SkNx_neon.h index 6fe6137e5f..43409bee44 100644 --- a/src/opts/SkNx_neon.h +++ b/src/opts/SkNx_neon.h @@ -8,6 +8,8 @@ #ifndef SkNx_neon_DEFINED #define SkNx_neon_DEFINED +#define SKNX_IS_FAST + namespace { // See SkNx.h // Well, this is absurd. The shifts require compile-time constant arguments. diff --git a/src/opts/SkNx_sse.h b/src/opts/SkNx_sse.h index a4f8656536..9092f44480 100644 --- a/src/opts/SkNx_sse.h +++ b/src/opts/SkNx_sse.h @@ -10,6 +10,8 @@ // This file may assume <= SSE2, but must check SK_CPU_SSE_LEVEL for anything more recent. +#define SKNX_IS_FAST + namespace { // See SkNx.h |