[FFmpeg-devel] 回复: [PATCH v3 7/8] avcodec/x86/vvc: add avg and avg_w AVX2 optimizations

Wu Jianhua toqsxw at outlook.com
Tue Jan 23 20:23:03 EET 2024


> 发件人: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> 代表 Michael Niedermayer <michael at niedermayer.cc>
> 发送时间: 2024年1月22日 14:46
> 收件人: FFmpeg development discussions and patches
> 主题: Re: [FFmpeg-devel] [PATCH v3 7/8] avcodec/x86/vvc: add avg and avg_w AVX2 optimizations
> 
> On Tue, Jan 23, 2024 at 01:46:27AM +0800, toqsxw at outlook.com wrote:
>> From: Wu Jianhua <toqsxw at outlook.com>
>>
>>  The avg/avg_w is based on dav1d.
>>  See https://code.videolan.org/videolan/dav1d/-/blob/master/src/x86/mc_avx2.asm
>>
>>
>> Signed-off-by: Wu Jianhua <toqsxw at outlook.com>
>>  ---
>>  libavcodec/x86/vvc/Makefile      |   3 +-
>>  libavcodec/x86/vvc/vvc_mc.asm    | 301 +++++++++++++++++++++++++++++++
>>  libavcodec/x86/vvc/vvcdsp_init.c |  52 ++++++
>>  3 files changed, 355 insertions(+), 1 deletion(-)
>>  create mode 100644 libavcodec/x86/vvc/vvc_mc.asm
>
> this seems to break x86-32
>
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w2' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w4' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w8' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w16' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w32' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w64' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:51: error: symbol `ff_vvc_avg_8bpc_avx2.w128' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w2' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w4' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w8' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w16' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w32' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w64' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:52: error: symbol `ff_vvc_avg_16bpc_avx2.w128' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w2' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w4' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w8' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w16' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w32' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w64' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:53: error: symbol `ff_vvc_w_avg_8bpc_avx2.w128' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w2' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w4' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w8' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w16' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w32' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w64' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/libavcodec/x86/vvc/vvc_mc.asm:54: error: symbol `ff_vvc_w_avg_16bpc_avx2.w128' undefined
> src/libavcodec/x86/vvc/vvc_mc.asm:48: ... from macro `AVG_JMP_TABLE' defined here
> src/ffbuild/common.mak:103: recipe for target 'libavcodec/x86/vvc/vvc_mc.o' failed
> make: *** [libavcodec/x86/vvc/vvc_mc.o] Error 1
> make: *** Waiting for unfinished jobs....
> 

It will be fixed in the v4. Thanks for this test.


More information about the ffmpeg-devel mailing list