aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/effects/gradients/SkLinearGradient.cpp3
-rw-r--r--src/opts/SkNx_avx.h2
-rw-r--r--src/opts/SkNx_neon.h2
-rw-r--r--src/opts/SkNx_sse.h2
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