aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2017-03-13 08:47:30 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-13 15:08:29 +0000
commit52fe583a7b21ee1cb04e95b05db9946be899b26d (patch)
tree83c4f4c1e406eb73e27a9c2a42873a270f951905 /src/opts
parent8d2f90b37b9caa120599a71530545dd11853c0bc (diff)
Remove SK_SUPPORT_LEGACY_BROKEN_LERP support
Chromium change landed. BUG=chromium:696216 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I3e67392b0fdad8c5a3ad256e4f190123dff6c846 Reviewed-on: https://skia-review.googlesource.com/9551 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/opts')
-rw-r--r--src/opts/SkBlitRow_opts_arm_neon.cpp22
-rw-r--r--src/opts/SkColor_opts_SSE2.h16
2 files changed, 0 insertions, 38 deletions
diff --git a/src/opts/SkBlitRow_opts_arm_neon.cpp b/src/opts/SkBlitRow_opts_arm_neon.cpp
index 7998a89517..623d08be23 100644
--- a/src/opts/SkBlitRow_opts_arm_neon.cpp
+++ b/src/opts/SkBlitRow_opts_arm_neon.cpp
@@ -909,12 +909,8 @@ void S32_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
vdst_wide = vmull_u8(vdst, vdup_n_u8(dst_scale));
// Combine
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- vres = vshrn_n_u16(vdst_wide, 8) + vshrn_n_u16(vsrc_wide, 8);
-#else
vdst_wide += vsrc_wide;
vres = vshrn_n_u16(vdst_wide, 8);
-#endif
// Store
vst1_u32(dst, vreinterpret_u32_u8(vres));
@@ -936,12 +932,8 @@ void S32_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
vsrc_wide = vmovl_u8(vsrc);
vsrc_wide = vmulq_u16(vsrc_wide, vdupq_n_u16(src_scale));
vdst_wide = vmull_u8(vdst, vdup_n_u8(dst_scale));
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- vres = vshrn_n_u16(vdst_wide, 8) + vshrn_n_u16(vsrc_wide, 8);
-#else
vdst_wide += vsrc_wide;
vres = vshrn_n_u16(vdst_wide, 8);
-#endif
// Store
vst1_lane_u32(dst, vreinterpret_u32_u8(vres), 0);
@@ -984,12 +976,8 @@ void S32A_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
vdst_wide = vmulq_n_u16(vdst_wide, dst_scale);
// Combine
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- vres = vshrn_n_u16(vdst_wide, 8) + vshrn_n_u16(vsrc_wide, 8);
-#else
vdst_wide += vsrc_wide;
vres = vshrn_n_u16(vdst_wide, 8);
-#endif
vst1_lane_u32(dst, vreinterpret_u32_u8(vres), 0);
dst++;
@@ -1020,11 +1008,6 @@ void S32A_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
// Calc dst_scale
vsrc_alphas = vtbl1_u8(vsrc, alpha_mask);
vdst_scale = vmovl_u8(vsrc_alphas);
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- vdst_scale *= vsrc_scale;
- vdst_scale = vshrq_n_u16(vdst_scale, 8);
- vdst_scale = vsubq_u16(vdupq_n_u16(256), vdst_scale);
-#else
// Calculate SkAlphaMulInv256(vdst_scale, vsrc_scale).
// A 16-bit lane would overflow if we used 0xFFFF here,
// so use an approximation with 0xFF00 that is off by 1,
@@ -1033,7 +1016,6 @@ void S32A_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
vdst_scale = vmlsq_u16(vdupq_n_u16(0xFF00), vdst_scale, vsrc_scale);
vdst_scale = vsraq_n_u16(vdst_scale, vdst_scale, 8);
vdst_scale = vsraq_n_u16(vdupq_n_u16(1), vdst_scale, 8);
-#endif
// Process src
vsrc_wide = vmovl_u8(vsrc);
@@ -1044,12 +1026,8 @@ void S32A_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
vdst_wide *= vdst_scale;
// Combine
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- vres = vshrn_n_u16(vdst_wide, 8) + vshrn_n_u16(vsrc_wide, 8);
-#else
vdst_wide += vsrc_wide;
vres = vshrn_n_u16(vdst_wide, 8);
-#endif
vst1_u32(dst, vreinterpret_u32_u8(vres));
diff --git a/src/opts/SkColor_opts_SSE2.h b/src/opts/SkColor_opts_SSE2.h
index a3db880598..5453f20d4b 100644
--- a/src/opts/SkColor_opts_SSE2.h
+++ b/src/opts/SkColor_opts_SSE2.h
@@ -109,11 +109,7 @@ static inline __m128i SkFastFourByteInterp256_SSE2(const __m128i& src, const __m
// Portable version SkPMLerp is in SkColorPriv.h
static inline __m128i SkPMLerp_SSE2(const __m128i& src, const __m128i& dst, const unsigned scale) {
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- return _mm_add_epi8(SkAlphaMulQ_SSE2(src, scale), SkAlphaMulQ_SSE2(dst, 256 - scale));
-#else
return SkFastFourByteInterp256_SSE2(src, dst, scale);
-#endif
}
static inline __m128i SkGetPackedA32_SSE2(const __m128i& src) {
@@ -253,17 +249,6 @@ static inline __m128i SkPMSrcOver_SSE2(const __m128i& src, const __m128i& dst) {
static inline __m128i SkBlendARGB32_SSE2(const __m128i& src, const __m128i& dst,
const unsigned aa) {
unsigned alpha = SkAlpha255To256(aa);
-#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP
- __m128i src_scale = _mm_set1_epi32(alpha);
- // SkAlpha255To256(255 - SkAlphaMul(SkGetPackedA32(src), src_scale))
- __m128i dst_scale = SkGetPackedA32_SSE2(src);
- dst_scale = _mm_mullo_epi16(dst_scale, src_scale);
- dst_scale = _mm_srli_epi16(dst_scale, 8);
- dst_scale = _mm_sub_epi32(_mm_set1_epi32(256), dst_scale);
-
- __m128i result = SkAlphaMulQ_SSE2(src, alpha);
- return _mm_add_epi8(result, SkAlphaMulQ_SSE2(dst, dst_scale));
-#else
__m128i src_scale = _mm_set1_epi16(alpha);
// SkAlphaMulInv256(SkGetPackedA32(src), src_scale)
__m128i dst_scale = SkGetPackedA32_SSE2(src);
@@ -298,7 +283,6 @@ static inline __m128i SkBlendARGB32_SSE2(const __m128i& src, const __m128i& dst,
dst_rb = _mm_srli_epi16(dst_rb, 8);
dst_ag = _mm_andnot_si128(mask, dst_ag);
return _mm_or_si128(dst_rb, dst_ag);
-#endif
}
#undef ASSERT_EQ