From 377b6682f93ecbae5a8b28ccd2c0b521accaca9c Mon Sep 17 00:00:00 2001 From: Johann Date: Fri, 19 Dec 2014 15:00:04 -0800 Subject: [PATCH] Disable vp9 _8_ loopfilters Investigating https://code.google.com/p/chromium/issues/detail?id=443839 Change-Id: Ibb7485d835c5aa5e1d40f31715596ba8d208eedb --- test/lpf_8_test.cc | 22 +++++++++++---------- vp9/common/arm/neon/vp9_loopfilter_neon.c | 24 +++++++++++------------ vp9/common/vp9_rtcd_defs.pl | 12 ++++++++---- vp9/vp9_common.mk | 6 ++++-- 4 files changed, 36 insertions(+), 28 deletions(-) diff --git a/test/lpf_8_test.cc b/test/lpf_8_test.cc index b6c1653fa..c836facb3 100644 --- a/test/lpf_8_test.cc +++ b/test/lpf_8_test.cc @@ -640,26 +640,28 @@ INSTANTIATE_TEST_CASE_P( &wrapper_vertical_16_c, 8), make_tuple(&wrapper_vertical_16_dual_neon, &wrapper_vertical_16_dual_c, 8), + make_tuple(&vp9_lpf_horizontal_8_neon, + &vp9_lpf_horizontal_8_c, 8), + make_tuple(&vp9_lpf_vertical_8_neon, + &vp9_lpf_vertical_8_c, 8), #endif // HAVE_NEON_ASM make_tuple(&vp9_lpf_horizontal_4_neon, &vp9_lpf_horizontal_4_c, 8), - make_tuple(&vp9_lpf_horizontal_8_neon, - &vp9_lpf_horizontal_8_c, 8), make_tuple(&vp9_lpf_vertical_4_neon, - &vp9_lpf_vertical_4_c, 8), - make_tuple(&vp9_lpf_vertical_8_neon, - &vp9_lpf_vertical_8_c, 8))); + &vp9_lpf_vertical_4_c, 8))); INSTANTIATE_TEST_CASE_P( NEON, Loop8Test9Param, ::testing::Values( - make_tuple(&vp9_lpf_horizontal_4_dual_neon, - &vp9_lpf_horizontal_4_dual_c, 8), +#if HAVE_NEON_ASM make_tuple(&vp9_lpf_horizontal_8_dual_neon, &vp9_lpf_horizontal_8_dual_c, 8), - make_tuple(&vp9_lpf_vertical_4_dual_neon, - &vp9_lpf_vertical_4_dual_c, 8), make_tuple(&vp9_lpf_vertical_8_dual_neon, - &vp9_lpf_vertical_8_dual_c, 8))); + &vp9_lpf_vertical_8_dual_c, 8), +#endif // HAVE_NEON_ASM + make_tuple(&vp9_lpf_horizontal_4_dual_neon, + &vp9_lpf_horizontal_4_dual_c, 8), + make_tuple(&vp9_lpf_vertical_4_dual_neon, + &vp9_lpf_vertical_4_dual_c, 8))); #endif // CONFIG_VP9_HIGHBITDEPTH #endif // HAVE_NEON diff --git a/vp9/common/arm/neon/vp9_loopfilter_neon.c b/vp9/common/arm/neon/vp9_loopfilter_neon.c index 6432c6cac..31fcc63ba 100644 --- a/vp9/common/arm/neon/vp9_loopfilter_neon.c +++ b/vp9/common/arm/neon/vp9_loopfilter_neon.c @@ -14,17 +14,6 @@ #include "./vpx_config.h" #include "vpx/vpx_integer.h" -void vp9_lpf_horizontal_8_dual_neon(uint8_t *s, int p /* pitch */, - const uint8_t *blimit0, - const uint8_t *limit0, - const uint8_t *thresh0, - const uint8_t *blimit1, - const uint8_t *limit1, - const uint8_t *thresh1) { - vp9_lpf_horizontal_8_neon(s, p, blimit0, limit0, thresh0, 1); - vp9_lpf_horizontal_8_neon(s + 8, p, blimit1, limit1, thresh1, 1); -} - void vp9_lpf_vertical_4_dual_neon(uint8_t *s, int p, const uint8_t *blimit0, const uint8_t *limit0, @@ -36,6 +25,18 @@ void vp9_lpf_vertical_4_dual_neon(uint8_t *s, int p, vp9_lpf_vertical_4_neon(s + 8 * p, p, blimit1, limit1, thresh1, 1); } +#if HAVE_NEON_ASM +void vp9_lpf_horizontal_8_dual_neon(uint8_t *s, int p /* pitch */, + const uint8_t *blimit0, + const uint8_t *limit0, + const uint8_t *thresh0, + const uint8_t *blimit1, + const uint8_t *limit1, + const uint8_t *thresh1) { + vp9_lpf_horizontal_8_neon(s, p, blimit0, limit0, thresh0, 1); + vp9_lpf_horizontal_8_neon(s + 8, p, blimit1, limit1, thresh1, 1); +} + void vp9_lpf_vertical_8_dual_neon(uint8_t *s, int p, const uint8_t *blimit0, const uint8_t *limit0, @@ -47,7 +48,6 @@ void vp9_lpf_vertical_8_dual_neon(uint8_t *s, int p, vp9_lpf_vertical_8_neon(s + 8 * p, p, blimit1, limit1, thresh1, 1); } -#if HAVE_NEON_ASM void vp9_lpf_vertical_16_dual_neon(uint8_t *s, int p, const uint8_t *blimit, const uint8_t *limit, diff --git a/vp9/common/vp9_rtcd_defs.pl b/vp9/common/vp9_rtcd_defs.pl index d2ab875e9..88f85a86d 100644 --- a/vp9/common/vp9_rtcd_defs.pl +++ b/vp9/common/vp9_rtcd_defs.pl @@ -224,10 +224,12 @@ specialize qw/vp9_lpf_vertical_16_dual sse2 neon_asm dspr2/; $vp9_lpf_vertical_16_dual_neon_asm=vp9_lpf_vertical_16_dual_neon; add_proto qw/void vp9_lpf_vertical_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; -specialize qw/vp9_lpf_vertical_8 sse2 neon dspr2/; +specialize qw/vp9_lpf_vertical_8 sse2 neon_asm dspr2/; +$vp9_lpf_vertical_8_neon_asm=vp9_lpf_vertical_8_neon; add_proto qw/void vp9_lpf_vertical_8_dual/, "uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1"; -specialize qw/vp9_lpf_vertical_8_dual sse2 neon dspr2/; +specialize qw/vp9_lpf_vertical_8_dual sse2 neon_asm dspr2/; +$vp9_lpf_vertical_8_dual_neon_asm=vp9_lpf_vertical_8_dual_neon; add_proto qw/void vp9_lpf_vertical_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; specialize qw/vp9_lpf_vertical_4 mmx neon dspr2/; @@ -240,10 +242,12 @@ specialize qw/vp9_lpf_horizontal_16 sse2 avx2 neon_asm dspr2/; $vp9_lpf_horizontal_16_neon_asm=vp9_lpf_horizontal_16_neon; add_proto qw/void vp9_lpf_horizontal_8/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; -specialize qw/vp9_lpf_horizontal_8 sse2 neon dspr2/; +specialize qw/vp9_lpf_horizontal_8 sse2 neon_asm dspr2/; +$vp9_lpf_horizontal_8_neon_asm=vp9_lpf_horizontal_8_neon; add_proto qw/void vp9_lpf_horizontal_8_dual/, "uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1"; -specialize qw/vp9_lpf_horizontal_8_dual sse2 neon dspr2/; +specialize qw/vp9_lpf_horizontal_8_dual sse2 neon_asm dspr2/; +$vp9_lpf_horizontal_8_dual_neon_asm=vp9_lpf_horizontal_8_dual_neon; add_proto qw/void vp9_lpf_horizontal_4/, "uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count"; specialize qw/vp9_lpf_horizontal_4 mmx neon dspr2/; diff --git a/vp9/vp9_common.mk b/vp9/vp9_common.mk index a7ba074ba..76602c2d7 100644 --- a/vp9/vp9_common.mk +++ b/vp9/vp9_common.mk @@ -134,6 +134,7 @@ VP9_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/vp9_idct_ssse3_x86_64.asm endif VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_loopfilter_16_neon_asm$(ASM) +VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_loopfilter_8_neon_asm$(ASM) VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_mb_lpf_neon$(ASM) VP9_COMMON_SRCS-$(HAVE_NEON_ASM) += common/arm/neon/vp9_save_reg_neon$(ASM) @@ -159,7 +160,6 @@ VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct4x4_add_neon_asm$(ASM) VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_1_add_neon_asm$(ASM) VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_add_neon_asm$(ASM) VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_4_neon_asm$(ASM) -VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_8_neon_asm$(ASM) VP9_COMMON_SRCS-yes += common/arm/neon/vp9_reconintra_neon_asm$(ASM) else ifeq ($(HAVE_NEON), yes) @@ -179,7 +179,9 @@ VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_1_add_neon.c VP9_COMMON_SRCS-yes += common/arm/neon/vp9_idct8x8_add_neon.c VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_16_neon.c VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_4_neon.c -VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_8_neon.c +# TODO(johannkoenig): re-enable when chromium build is fixed +# # https://code.google.com/p/chromium/issues/detail?id=443839 +#VP9_COMMON_SRCS-yes += common/arm/neon/vp9_loopfilter_8_neon.c VP9_COMMON_SRCS-yes += common/arm/neon/vp9_reconintra_neon.c endif # HAVE_NEON endif # HAVE_NEON_ASM