diff options
author | Florin Malita <fmalita@chromium.org> | 2017-03-13 08:47:30 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-13 15:08:29 +0000 |
commit | 52fe583a7b21ee1cb04e95b05db9946be899b26d (patch) | |
tree | 83c4f4c1e406eb73e27a9c2a42873a270f951905 /src/opts | |
parent | 8d2f90b37b9caa120599a71530545dd11853c0bc (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.cpp | 22 | ||||
-rw-r--r-- | src/opts/SkColor_opts_SSE2.h | 16 |
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 |