Bug 1372767 - opus: enable SSE simd optimization. r=kinetik,ted draft
authorRalph Giles <giles@mozilla.com>
Tue, 13 Jun 2017 16:41:35 -0700
changeset 594882 ee971729b844a7826a531f8ef9ec59b00e3ab9a9
parent 594881 2f7fc83cbe0184b38710dd5c2e74d9e7a494c31f
child 633570 6d10d9322d81c659dfc171ae754514c4bf238002
push id64189
push userbmo:giles@thaumas.net
push dateThu, 15 Jun 2017 17:38:24 +0000
reviewerskinetik, ted
bugs1372767
milestone56.0a1
Bug 1372767 - opus: enable SSE simd optimization. r=kinetik,ted Opus now has SSE, SSE2 and SSE 4.1 optimizations. Enable these in our build by adding the extra source files and defines. MozReview-Commit-ID: BKMATikknBU
media/libopus/moz.build
--- a/media/libopus/moz.build
+++ b/media/libopus/moz.build
@@ -81,16 +81,39 @@ if CONFIG['MOZ_SAMPLE_TYPE_FLOAT32']:
     UNIFIED_SOURCES += silk_sources_float
     UNIFIED_SOURCES += opus_sources_float
 else:
     LOCAL_INCLUDES += [
         'silk/fixed',
     ]
     UNIFIED_SOURCES += silk_sources_fixed
 
+if CONFIG['CPU_ARCH'] in ('x86', 'x86_64'):
+    DEFINES['OPUS_HAVE_RTCD'] = True
+    DEFINES['OPUS_X86_MAY_HAVE_SSE'] = True
+    DEFINES['OPUS_X86_MAY_HAVE_SSE2'] = True
+    DEFINES['OPUS_X86_MAY_HAVE_SSE4_1'] = True
+    DEFINES['OPUS_X86_MAY_HAVE_AVX'] = True
+    SOURCES += celt_sources_sse
+    SOURCES += celt_sources_sse2
+    SOURCES += celt_sources_sse4_1
+    SOURCES += silk_sources_sse4_1
+    if not CONFIG['MOZ_SAMPLE_TYPE_FLOAT32']:
+        SOURCES += silk_sources_fixed_sse4_1
+    if not CONFIG['_MSC_VER'] or CONFIG['CLANG_CL']:
+        for f in SOURCES:
+            if f in celt_sources_sse:
+                SOURCES[f].flags += CONFIG['SSE_FLAGS']
+            if f in celt_sources_sse2:
+                SOURCES[f].flags += CONFIG['SSE2_FLAGS']
+            if f in celt_sources_sse4_1 or \
+               f in silk_sources_sse4_1 or \
+               f in silk_sources_fixed_sse4_1:
+                SOURCES[f].flags += ['-msse4.1']
+
 if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_AS']:
     SOURCES += celt_sources_arm
     SOURCES += [
         '!celt_pitch_xcorr_arm-gnu.s'
     ]
     # -Os is significantly slower, enable -O3 unless optimization is disabled
     if CONFIG['MOZ_OPTIMIZE']:
         CFLAGS += [