[FFmpeg-devel] [PATCH] Moves yuv2yuvX_sse3 to yasm, unrolls main loop and other small optimizations for ~20% speedup.
Michael Niedermayer
michael at niedermayer.cc
Tue Nov 10 18:43:10 EET 2020
On Tue, Nov 10, 2020 at 09:43:47AM +0100, Alan Kelly wrote:
> ---
> yuv2yuvX.asm: Ports yuv2yuvX to asm, unrolls main loop and adds
> other small optimizations for ~20% speed-up. Copyright updated to
> include the original from swscale.c
> swscale.c: Removes yuv2yuvX_sse3 and calls new function ff_yuv2yuvX_sse3.
> Calls yuv2yuvX_mmxext on remainining elements if required.
> Makefile: Compiles yuv2yuvX.asm
>
> libswscale/x86/Makefile | 1 +
> libswscale/x86/swscale.c | 75 ++++--------------------
> libswscale/x86/yuv2yuvX.asm | 110 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 121 insertions(+), 65 deletions(-)
> create mode 100644 libswscale/x86/yuv2yuvX.asm
on x86-32
X86ASM libswscale/x86/yuv2yuvX.o
src/libswscale/x86/yuv2yuvX.asm:110: error: invalid combination of opcode and operands
src/libswscale/x86/yuv2yuvX.asm:55: ... from macro `YUV2YUVX_FUNC' defined here
src//libavutil/x86/x86inc.asm:1395: ... from macro `movd' defined here
src//libavutil/x86/x86inc.asm:1263: ... from macro `RUN_AVX_INSTR' defined here
/home/michael/ffmpeg-git/ffmpeg/ffbuild/common.mak:89: recipe for target 'libswscale/x86/yuv2yuvX.o' failed
make: *** [libswscale/x86/yuv2yuvX.o] Error 1
make: Target 'all' not remade because of errors.
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
"Nothing to hide" only works if the folks in power share the values of
you and everyone you know entirely and always will -- Tom Scott
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20201110/14bdb1e0/attachment.sig>
More information about the ffmpeg-devel
mailing list