diff options
Diffstat (limited to 'media/libyuv/allow_disabling_asm_avx2.patch')
-rw-r--r-- | media/libyuv/allow_disabling_asm_avx2.patch | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/media/libyuv/allow_disabling_asm_avx2.patch b/media/libyuv/allow_disabling_asm_avx2.patch new file mode 100644 index 0000000000..aa7e33ebf7 --- /dev/null +++ b/media/libyuv/allow_disabling_asm_avx2.patch @@ -0,0 +1,96 @@ +# HG changeset patch +# User Randell Jesup <rjesup@jesup.org> +# Parent f380aa97b5a46b07574edbef19f75fc9ff0388a5 + +diff --git a/media/libyuv/libyuv/include/libyuv/row.h b/media/libyuv/libyuv/include/libyuv/row.h +--- a/media/libyuv/libyuv/include/libyuv/row.h ++++ b/media/libyuv/libyuv/include/libyuv/row.h +@@ -57,17 +57,17 @@ extern "C" { + + // Visual C 2012 required for AVX2. + #if defined(_M_IX86) && !defined(__clang__) && defined(_MSC_VER) && \ + _MSC_VER >= 1700 + #define VISUALC_HAS_AVX2 1 + #endif // VisualStudio >= 2012 + + // The following are available on all x86 platforms: +-#if !defined(LIBYUV_DISABLE_X86) && \ ++#if !defined(LIBYUV_DISABLE_AVX2) && !defined(LIBYUV_DISABLE_X86) && \ + (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) + // Conversions: + #define HAS_ABGRTOUVROW_SSSE3 + #define HAS_ABGRTOYROW_SSSE3 + #define HAS_ARGB1555TOARGBROW_SSE2 + #define HAS_ARGB4444TOARGBROW_SSE2 + #define HAS_ARGBEXTRACTALPHAROW_SSE2 + #define HAS_ARGBSETROW_X86 +diff --git a/media/libyuv/libyuv/libyuv.gyp b/media/libyuv/libyuv/libyuv.gyp +--- a/media/libyuv/libyuv/libyuv.gyp ++++ b/media/libyuv/libyuv/libyuv.gyp +@@ -21,16 +21,18 @@ + # Can be enabled if your jpeg has GYP support. + 'libyuv_disable_jpeg%': 1, + # 'chromium_code' treats libyuv as internal and increases warning level. + 'chromium_code': 1, + # clang compiler default variable usable by other apps that include libyuv. + 'clang%': 0, + # Link-Time Optimizations. + 'use_lto%': 0, ++ 'yuv_disable_asm%': 0, ++ 'yuv_disable_avx2%': 0, + 'mips_msa%': 0, # Default to msa off. + 'build_neon': 0, + 'build_msa': 0, + 'conditions': [ + ['(target_arch == "armv7" or target_arch == "armv7s" or \ + (target_arch == "arm" and arm_version >= 7) or target_arch == "arm64")\ + and (arm_neon == 1 or arm_neon_optional == 1)', { + 'build_neon': 1, +@@ -95,16 +97,29 @@ + }], + ], + }], + ['build_msa != 0', { + 'defines': [ + 'LIBYUV_MSA', + ], + }], ++ [ 'yuv_disable_asm != 0', { ++ 'defines': [ ++ # Enable the following 3 macros to turn off assembly for specified CPU. ++ 'LIBYUV_DISABLE_X86', ++ 'LIBYUV_DISABLE_NEON', ++ 'LIBYUV_DISABLE_DSPR2', ++ ], ++ }], ++ [ 'yuv_disable_avx2 == 1', { ++ 'defines': [ ++ 'LIBYUV_DISABLE_AVX2', ++ ] ++ }], + ['build_with_mozilla == 1', { + 'defines': [ + 'HAVE_JPEG' + ], + 'cflags_mozilla': [ + '$(MOZ_JPEG_CFLAGS)', + ], + }], +@@ -133,15 +148,17 @@ + ], + }], + ], #conditions + 'defines': [ + # Enable the following 3 macros to turn off assembly for specified CPU. + # 'LIBYUV_DISABLE_X86', + # 'LIBYUV_DISABLE_NEON', ++ # This disables AVX2 (Haswell) support, overriding compiler checks ++ # 'LIBYUV_DISABLE_AVX2', + # Enable the following macro to build libyuv as a shared library (dll). + # 'LIBYUV_USING_SHARED_LIBRARY', + # TODO(fbarchard): Make these into gyp defines. + ], + 'include_dirs': [ + 'include', + '.', + ], |