History

add option for enable/disable AVX2

Guangwei Wang committed 10 years ago

Commit 7d00e8b1 parent 898073114 files · +56 −1Browse files

Showing the changes to codec/processing (5 of 14 files). Show all

Unified · Split

5 files
  1. codec/processing/src/downsample/downsample.cpp +2 −0
  2. codec/processing/src/downsample/downsample.h +4 −0
  3. codec/processing/src/downsample/downsamplefuncs.cpp +2 −0
  4. codec/processing/src/x86/downsample_bilinear.asm +3 −0
  5. codec/processing/src/x86/vaa.asm +4 −0
codec/processing/src/downsample/downsample.cpp+2−0
@@ -107,10 +107,12 @@ void CDownsampling::InitDownsampleFuncs (SDownsampleFuncs& sDownsampleFunc, int · 106 unmodified lines
107107 sDownsampleFunc.pfQuarterDownsampler = DyadicBilinearQuarterDownsampler_sse4;
108108 sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_sse41;
109109 }
110+#ifdef HAVE_AVX2
110111 if (iCpuFlag & WELS_CPU_AVX2) {
111112 sDownsampleFunc.pfGeneralRatioChroma = GeneralBilinearAccurateDownsamplerWrap_avx2;
112113 sDownsampleFunc.pfGeneralRatioLuma = GeneralBilinearFastDownsamplerWrap_avx2;
113114 }
115+#endif
114116 #endif//X86_ASM
115117
116118 #if defined(HAVE_NEON)
codec/processing/src/downsample/downsample.h+4−0
@@ -99,8 +99,10 @@ GeneralDownsampleFunc GeneralBilinearFastDownsamplerWrap_sse2; · 98 unmodified lines
9999 GeneralDownsampleFunc GeneralBilinearAccurateDownsamplerWrap_sse2;
100100 GeneralDownsampleFunc GeneralBilinearFastDownsamplerWrap_ssse3;
101101 GeneralDownsampleFunc GeneralBilinearAccurateDownsamplerWrap_sse41;
102+#ifdef HAVE_AVX2
102103 GeneralDownsampleFunc GeneralBilinearFastDownsamplerWrap_avx2;
103104 GeneralDownsampleFunc GeneralBilinearAccurateDownsamplerWrap_avx2;
105+#endif
104106
105107 SpecificDownsampleFunc DyadicBilinearOneThirdDownsampler_ssse3;
106108 SpecificDownsampleFunc DyadicBilinearOneThirdDownsampler_sse4;
@@ -120,12 +122,14 @@ void GeneralBilinearFastDownsampler_ssse3 (uint8_t* pDst, int32_t iDstStride, in · 13 unmodified lines
120122 void GeneralBilinearAccurateDownsampler_sse41 (uint8_t* pDst, int32_t iDstStride, int32_t iDstWidth,
121123 int32_t iDstHeight, uint8_t* pSrc, int32_t iSrcStride, uint32_t uiScaleX,
122124 uint32_t uiScaleY);
125+#ifdef HAVE_AVX2
123126 void GeneralBilinearFastDownsampler_avx2 (uint8_t* pDst, int32_t iDstStride, int32_t iDstWidth,
124127 int32_t iDstHeight, uint8_t* pSrc, int32_t iSrcStride, uint32_t uiScaleX,
125128 uint32_t uiScaleY);
126129 void GeneralBilinearAccurateDownsampler_avx2 (uint8_t* pDst, int32_t iDstStride, int32_t iDstWidth,
127130 int32_t iDstHeight, uint8_t* pSrc, int32_t iSrcStride, uint32_t uiScaleX,
128131 uint32_t uiScaleY);
132+#endif
129133
130134 WELSVP_EXTERN_C_END
131135 #endif
codec/processing/src/downsample/downsamplefuncs.cpp+2−0
@@ -284,8 +284,10 @@ DEFINE_GENERAL_BILINEAR_FAST_DOWNSAMPLER_WRAP (sse2) · 283 unmodified lines
284284 DEFINE_GENERAL_BILINEAR_ACCURATE_DOWNSAMPLER_WRAP (sse2)
285285 DEFINE_GENERAL_BILINEAR_FAST_DOWNSAMPLER_WRAP (ssse3)
286286 DEFINE_GENERAL_BILINEAR_ACCURATE_DOWNSAMPLER_WRAP (sse41)
287+#ifdef HAVE_AVX2
287288 DEFINE_GENERAL_BILINEAR_FAST_DOWNSAMPLER_WRAP (avx2)
288289 DEFINE_GENERAL_BILINEAR_ACCURATE_DOWNSAMPLER_WRAP (avx2)
290+#endif
289291 #endif //X86_ASM
290292
291293 #ifdef HAVE_NEON
codec/processing/src/x86/downsample_bilinear.asm+3−0
@@ -3254,6 +3254,7 @@ WELS_EXTERN GeneralBilinearAccurateDownsampler_sse41 · 3253 unmodified lines
32543254 %undef xmm_xfrac1_begin
32553255 %undef xmm_xfrac_inc
32563256
3257+%ifdef HAVE_AVX2
32573258 ; xpos_int=%1 xpos_frac=%2 inc_int+1=%3 inc_frac=%4 tmp=%5
32583259 %macro AVX2_BilinearIncXposuw 5
32593260 vpaddusw %5, %2, %4
@@ -4552,3 +4553,5 @@ WELS_EXTERN GeneralBilinearAccurateDownsampler_avx2 · 1292 unmodified lines
45524553 %undef ymm_xfrac0_begin
45534554 %undef ymm_xfrac1_begin
45544555 %undef ymm_xfrac_inc
4556+%endif
4557+
codec/processing/src/x86/vaa.asm+4−0
@@ -2088,6 +2088,7 @@ sqdiff_bgd_width_loop: · 2087 unmodified lines
20882088 %assign push_num push_num - stack_alloc_num
20892089 %endmacro
20902090
2091+%ifdef HAVE_AVX2
20912092 ; Max unsigned byte per quadword
20922093 ; out=%1 in=%2 tmp=%3
20932094 %macro AVX2_Maxubq 3
@@ -3557,3 +3558,6 @@ WELS_EXTERN VAACalcSadSsdBgd_avx2 · 1463 unmodified lines
35573558 %undef p_sd8x8
35583559 %undef p_mad8x8
35593560 ret
3561+
3562+%endif
3563+

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t