On 14 May 2014 21:12, James Yu <[email protected]> wrote: > > > On Wednesday, May 14, 2014, Janne Grunau <[email protected]> wrote: > >> On 2014-05-13 23:25:12 +0800, [email protected] wrote: >> > From: James Yu <[email protected]> >> > >> > Using NEON intrinsics to support ARMv7 and ARMv8 simultaneously. >> > Rewrite ARMv7 assembly to intinsics version. >> >> Thanks for the patch. We prefer asm over intrinsics especially for >> functions >> with existing ARMv7 NEON asm. >> For new functions intrinsics have the advantage that they can be shared >> between AArch64 and ARMv7. That is reason enough to support intrinsics. >> >> Rewrite neon asm to neon intrinsics is a way to port and optimize libs to > aarch64. However it has some performance problem we already know. > > > >> > Toolchain: >> > armv7: gcc-linaro-arm-linux-gnueabihf-4.8-2014.01_linux >> > armv8: gcc-linaro-aarch64-linux-gnu-4.8-2013.10_linux >> >> clang 3.4 on AArch64 seems to fail over its own arm_neon.h header >> >> I didn't try to build by clang. > > >> > [RFC] Currently, libavcodec had a aarch64 dir includes all related >> > assembly code. However, I put this file under libavcodec/arm dir first, >> > since this > support ARMv7 and ARMv8 simultaneously. And RFC how could >> we >> > port and optimize libav to aarch64. >> > >> > Add libavcodec/arm/mpegvideo_neon.c. >> >> That conflicts with the existing libavcodec/arm/mpegvideo_neon.S since >> both >> result in the object file libavcodec/arm/mpegvideo_neon.o >> >> Yes, I know. But if we rebuild all, it should build .c file. Anyway I > just put there first and wait for comments, thanks. How about put in > libavcodec/aarch64? Since it support aarch64. > > >> I think a cleaner solution would be to put the shared intrinsics code in >> another directory, libavcodec/neon for example. I have a working patch for >> that including configure checks we need for arm_neon.h. >> >> > Signed-off-by: James Yu <[email protected]> >> > --- >> > libavcodec/aarch64/Makefile | 1 + >> > libavcodec/arm/mpegvideo_neon.c | 127 >> +++++++++++++++++++++++++++++++++++++++ >> > 2 files changed, 128 insertions(+) >> > create mode 100644 libavcodec/arm/mpegvideo_neon.c >> >> It looks like you sent the wrong patch. The added function are not called >> nor assigned to function pointers. >> >> Hmm, this is strange. I'm sure it was called when I decode a mpeg4 file. > > >> The function is not bit exact to the arm asm. fate-vsynth1-mpeg4 fails for >> example after fixing the setup. >> >> I will take a look on this. Thanks. > > Hi,
I found this fails even in master branch. Could you help check? Thanks commit 7e90133f6420b1c53652f972b9561600822881ee Author: Janne Grunau <[email protected]> Date: Wed May 14 00:05:27 2014 +0200 build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined Avoids including disabled library Makefiles. ..... TEST vsynth1-mpeg4 --- ./tests/ref/vsynth/vsynth1-mpeg4 2014-05-13 12:17:43.000000000 +0000 +++ tests/data/fate/vsynth1-mpeg4 2014-05-15 00:12:50.220000001 +0000 @@ -1,4 +0,0 @@ -dc927acd770e19a97456ecbd4d786938 *tests/data/fate/vsynth1-mpeg4.mp4 -540180 tests/data/fate/vsynth1-mpeg4.mp4 -8828a375448dc5c2215163ba70656f89 *tests/data/fate/vsynth1-mpeg4.out.rawvideo -stddev: 7.97 PSNR: 30.10 MAXDIFF: 105 bytes: 7603200/ 7603200 make: *** [fate-vsynth1-mpeg4] Error 127 -James -James > > > >> Janne >> _______________________________________________ >> libav-devel mailing list >> [email protected] >> https://lists.libav.org/mailman/listinfo/libav-devel >> > > > -- > ...Please excuse the terse message sent from my mobile... > _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
