Bug 1260350 - GFX: 2D: Use ConvolveHorizontally_LS3. r=jrmuizel
authorHeiher <r@hev.cc>
Tue, 05 Apr 2016 11:03:32 +0800
changeset 291690 a82738ebcf080050a3b919502a5f9c6c37f14576
parent 291689 b7ccb58f645c6e89cc0afe04ff041e8a4e940885
child 291691 973bbaa2be7bae42ae7d96dee962fbcfb7ee65b3
push id30144
push usercbook@mozilla.com
push dateTue, 05 Apr 2016 14:52:26 +0000
treeherdermozilla-central@17a0ded9bb99 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjrmuizel
bugs1260350
milestone48.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1260350 - GFX: 2D: Use ConvolveHorizontally_LS3. r=jrmuizel --- gfx/2d/convolver.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
gfx/2d/convolver.cpp
--- a/gfx/2d/convolver.cpp
+++ b/gfx/2d/convolver.cpp
@@ -317,23 +317,23 @@ void ConvolveVertically(const Convolutio
 }
 
 void ConvolveHorizontally(const unsigned char* src_data,
                           const ConvolutionFilter1D& filter,
                           unsigned char* out_row,
                           bool has_alpha, bool use_simd) {
   int width = filter.num_values();
   int processed = 0;
-#if defined(USE_SSE2)
+#if defined(USE_SSE2) || defined(_MIPS_ARCH_LOONGSON3A)
   int simd_width = width & ~3;
   if (use_simd && simd_width) {
     // SIMD implementation works with 4 pixels at a time.
     // Therefore we process as much as we can using SSE and then use
     // C implementation for leftovers
-    ConvolveHorizontally_SSE2(src_data, filter, out_row);
+    ConvolveHorizontally_SIMD(src_data, filter, out_row);
     processed = simd_width;
   }
 #endif
 
   if (width > processed) {
     if (has_alpha) {
       ConvolveHorizontally<true>(src_data, filter, out_row);
     } else {