[MPlayer-dev-eng] Adapt config.h's generation with some ffmpeg's commits
Etienne Buira
etienne.buira at free.fr
Thu Jan 4 19:27:19 EET 2018
On Thu, Jan 04, 2018 at 12:52:07PM +0100, Alexander Strasser wrote:
> Hi Etienne,
>
> thank you for working on this!
>
> On 2018-01-01 16:38 +0100, Etienne Buira wrote:
> > On Mon, Jan 01, 2018 at 12:19:24AM -0500, Compn wrote:
> > > On Sat, 30 Dec 2017 22:12:28 +0100, Etienne Buira
> > > <etienne.buira at free.fr> wrote:
> > >
> > > probably you can put CONFIG_LINUX_PERF in the block above it
> > > next to this line
> > > #define CONFIG_POWERPC_PERF 0
> >
> > Hi, thanks for reviewing
> >
> > Done, also removed unconditional define HAVE_MACH_MACH_TIME_H 0 i did
> > not notice at first.
>
> Unfortunately it is not good for the VCS history to have all
> changes in one patch. It's much better to have them separated
> with individual commit messages. Additionally it is also easier
> to review smaller patches.
Hi Alexander,
Head email's text were supposed to be commit message. I did only one
patch because official repo is svn, that AFAIK does not support local
patchset, and i were not going to fetch a git svn for this small patch.
It is still relevant for patch's latest version.
> I am currently working on AVX512 myself, because it for sure
> breaks the build (for internal FFmpeg).
That's the very reason i came into this (and wanted to limit console
spamming while at it).
> If you would be willing to split this up into one patch per topic
> (ideally accompanied by a commit message), that would be great.
>
> I will work on the AVX512 part this weekend. As far as time permits
A thing i noticed on this topic: ffmpeg only has 'avx512' support,
although avx512 does not refer to a consistent instruction set, but a
family of instruction sets (avx512f stands for avx512 Foundation for
instance).
In my patch, i tested for avx512f only, as ffmpeg does.
Regards
> I will also commit the remaining parts of your submission.
>
>
> Best regards,
> Alexander
>
> > Index: configure
> > ===================================================================
> > --- configure (revision 38010)
> > +++ configure (working copy)
> > @@ -177,6 +177,17 @@
> > compile_check $TMPC $@
> > }
> >
> > +statement_check_3headers() {
> > + cat > $TMPC << EOF
> > +#include <$1>
> > +#include <$2>
> > +#include <$3>
> > +int main(void) { $4; return 0; }
> > +EOF
> > + shift 4
> > + compile_check $TMPC $@
> > +}
> > +
> > yasm_check() {
> > echo >> "$TMPLOG"
> > cat "$TMPS" >> "$TMPLOG"
> > @@ -573,6 +584,7 @@
> > --enable-sse42 enable SSE4.2 [autodetect]
> > --enable-avx enable AVX [autodetect]
> > --enable-avx2 enable AVX2 [autodetect]
> > + --enable-avx512 enable AVX512 [autodetect]
> > --enable-xop enable XOP [autodetect]
> > --enable-fma3 enable FMA3 [autodetect]
> > --enable-fma4 enable FMA4 [autodetect]
> > @@ -632,6 +644,7 @@
> > _sse4_2=auto
> > _avx=auto
> > _avx2=auto
> > +_avx512f=auto
> > _xop=auto
> > _fma3=auto
> > _fma4=auto
> > @@ -870,6 +883,7 @@
> > def_priority="#undef CONFIG_PRIORITY"
> > def_pthread_cache="#undef PTHREAD_CACHE"
> > def_simd_align_32='#define HAVE_SIMD_ALIGN_32 0'
> > +def_simd_align_64='#define HAVE_SIMD_ALIGN_64 0'
> > shmem=no
> >
> > option_value(){
> > @@ -1420,6 +1434,8 @@
> > --disable-avx) _avx=no;;
> > --enable-avx2) _avx2=yes;;
> > --disable-avx2) _avx2=no;;
> > + --enable-avx512) _avx512f=yes;;
> > + --disable-avx512) _avx512f=no;;
> > --enable-xop) _xop=yes;;
> > --disable-xop) _xop=no;;
> > --enable-fma3) _fma3=yes;;
> > @@ -2031,6 +2047,7 @@
> > extcheck $_sse4_2 'sse4_2' 'pcmpgtq %%xmm0, %%xmm0'
> > extcheck $_avx 'avx' 'vpabsw %%xmm0, %%xmm0'
> > extcheck $_avx2 'avx2' 'vextracti128 $0, %%ymm0, %%xmm0'
> > + extcheck $_avx512f 'avx512' 'vmovdqa32 %%zmm0, %%zmm1{k1}{z}'
> > extcheck $_xop 'xop' 'vpmacsdd %%xmm0, %%xmm1, %%xmm2, %%xmm3'
> > extcheck $_fma3 'fma3' 'vfmadd132ps %%ymm0, %%ymm1, %%ymm2'
> > extcheck $_fma4 'fma4' 'vfmaddps %%ymm0, %%ymm1, %%ymm2, %%ymm3'
> > @@ -2056,6 +2073,7 @@
> > def_fast_64bit='#define HAVE_FAST_64BIT 0'
> > def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
> > def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 0'
> > +def_local_aligned='#define HAVE_LOCAL_ALIGNED 0'
> > def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
> > def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
> > def_local_aligned_32='#define HAVE_LOCAL_ALIGNED_32 0'
> > @@ -2068,6 +2086,7 @@
> > subarch='x86_32'
> > def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
> > def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
> > + def_local_aligned='#define HAVE_LOCAL_ALIGNED 1'
> > def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
> > def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
> > def_local_aligned_32='#define HAVE_LOCAL_ALIGNED_32 1'
> > @@ -2323,6 +2342,7 @@
> > subarch='x86_64'
> > def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
> > def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
> > + def_local_aligned='#define HAVE_LOCAL_ALIGNED 1'
> > def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
> > def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
> > def_local_aligned_32='#define HAVE_LOCAL_ALIGNED_32 1'
> > @@ -2493,6 +2513,7 @@
> > def_vsx='#define HAVE_VSX 0'
> > def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
> > def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
> > + def_local_aligned='#define HAVE_LOCAL_ALIGNED 1'
> > def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
> > def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
> > def_local_aligned_32='#define HAVE_LOCAL_ALIGNED_32 1'
> > @@ -2769,6 +2790,9 @@
> > fi
> >
> > test "$_avx" != no && def_simd_align_32='#define HAVE_SIMD_ALIGN_32 1'
> > +def_avx512='#define HAVE_AVX512 0'
> > +test "$_avx512f" == yes &&
> > + { def_simd_align_64='#define HAVE_SIMD_ALIGN_64 1'; def_avx512='#define HAVE_AVX512 1'; }
> >
> > # endian testing
> > echocheck "byte order"
> > @@ -3300,6 +3324,7 @@
> > test "$_sse4_2" = yes && cpuexts="SSE42 $cpuexts"
> > test "$_avx" = yes && cpuexts="AVX $cpuexts"
> > test "$_avx2" = yes && cpuexts="AVX2 $cpuexts"
> > +test "$_avx512" = yes && cpuexts="AVX512 $cpuexts"
> > test "$_xop" = yes && cpuexts="XOP $cpuexts"
> > test "$_fma3" = yes && cpuexts="FMA3 $cpuexts"
> > test "$_fma4" = yes && cpuexts="FMA4 $cpuexts"
> > @@ -4518,7 +4543,64 @@
> > fi
> > echores "$_smb"
> >
> > +echocheck "mach/mach_time.h"
> > +_mach_mach_time_h=no
> > +def_mach_mach_time_h='#define HAVE_MACH_MACH_TIME_H 0'
> > +header_check 'mach/mach_time.h' &&
> > + { _mach_mach_time_h=yes; def_mach_mach_time_h='#define HAVE_MACH_MACH_TIME_H 1'; }
> > +echores "$_mach_mach_time_h"
> >
> > +echocheck "mach_absolute_time()"
> > +_mach_absolute_time=no
> > +def_mach_absolute_time='#define HAVE_MACH_ABSOLUTE_TIME 0'
> > +cat > "$TMPC" << EOF
> > +$def_have_mach_mach_time_h
> > +#if HAVE_MACH_MACH_TIME_H
> > +#include <mach/mach_time.h>
> > +#endif
> > +int main(void) { mach_absolute_time(); return 0; }
> > +EOF
> > +compile_check "$TMPC" &&
> > + { _mach_absolute_time=yes; def_mach_absolute_time='#define HAVE_MACH_ABSOLUTE_TIME 1'; }
> > +echores "$_mach_absolute_time"
> > +
> > +echocheck "dirent.h"
> > +_dirent_h=no
> > +def_dirent_h='#define HAVE_DIRENT_H 0'
> > +header_check 'dirent.h' &&
> > + { _dirent_h=yes; def_dirent_h='#define HAVE_DIRENT_H 1'; }
> > +echores "$_dirent_h"
> > +
> > +echocheck "access()"
> > +_access=no
> > +def_access='#define HAVE_ACCESS 0'
> > +statement_check 'unistd.h' 'access("", 0)' &&
> > + { _access=yes; def_access='#define HAVE_ACCESS 1'; }
> > +echores "$_access"
> > +
> > +echocheck "lstat()"
> > +_lstat=no
> > +def_lstat='#define HAVE_LSTAT 0'
> > +statement_check_3headers 'sys/types.h' 'sys/stat.h' 'unistd.h' 'lstat("", NULL)' &&
> > + { _lstat=yes; def_lstat='#define HAVE_LSTAT 1'; }
> > +echores "$_lstat"
> > +
> > +echocheck "struct stat.st_mtim.tv_nsec"
> > +_struct_stat_st_mtim_tv_nsec=no
> > +def_struct_stat_st_mtim_tv_nsec='#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 0'
> > +statement_check 'sys/stat.h' 'struct stat ss; ss.st_mtim.tv_nsec = 0;' &&
> > + { _struct_stat_st_mtim_tv_nsec=yes; def_struct_stat_st_mtim_tv_nsec='#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1'; }
> > +echores "$_struct_stat_st_mtim_tv_nsec"
> > +
> > +echocheck "fcntl()"
> > +_fcntl=no
> > +def_fcntl='#define HAVE_FCNTL 0'
> > +statement_check_broken 'unistd.h' 'fcntl.h' 'fcntl(0, 0)' &&
> > + { _fcntl=yes; def_fcntl='#define HAVE_FCNTL 1'; }
> > +echores "$_fcntl"
> > +
> > +
> > +
> > #########
> > # VIDEO #
> > #########
> > @@ -8948,10 +9030,12 @@
> > /* system headers */
> > $def_alloca_h
> > $def_altivec_h
> > +$def_dirent_h
> > $def_malloc_h
> > $def_mman_h
> > $def_mman_has_map_failed
> > $def_soundcard_h
> > +$def_struct_stat_st_mtim_tv_nsec
> > $def_sys_soundcard_h
> > $def_sys_sysinfo_h
> > $def_sys_videoio_h
> > @@ -8963,13 +9047,16 @@
> >
> >
> > /* system functions */
> > +$def_access
> > $def_gethostbyname2
> > $def_gettimeofday
> > $def_clock_gettime
> > +$def_fcntl
> > $def_glob
> > $def_gmtime_r
> > $def_langinfo
> > $def_localtime_r
> > +$def_lstat
> > $def_map_memalign
> > $def_memalign
> > $def_nanosleep
> > @@ -9032,6 +9119,7 @@
> > $(ff_config_enable "$cpuexts_all" "$cpuexts" "#" "HAVE")
> > $(ff_config_enable "$cpuexts_all" "$cpuexts_external" "#" "HAVE" "_EXTERNAL")
> > $(ff_config_enable "$cpuexts_all" "$cpuexts" "#" "HAVE" "_INLINE")
> > +$def_avx512
> >
> >
> > /* Blu-ray/DVD/VCD/CD */
> > @@ -9290,9 +9378,11 @@
> > $def_fast_unaligned
> > $def_gnu_as
> > $def_ibm_asm
> > +$def_local_aligned
> > $def_local_aligned_8
> > $def_local_aligned_16
> > $def_local_aligned_32
> > +$def_mach_mach_time_h
> > $def_os2threads
> > $def_pic
> > $def_pthreads
> > @@ -9336,6 +9426,7 @@
> > $def_log10f
> > $def_lrint
> > $def_lrintf
> > +$def_mach_absolute_time
> > $def_mkstemp
> > $def_mmap
> > $def_posix_memalign
> > @@ -9367,6 +9458,7 @@
> > #define CONFIG_LIBMODPLUG 0
> > #define CONFIG_LIBVORBIS 0
> > #define CONFIG_MEMORY_POISONING 0
> > +#define CONFIG_LINUX_PERF 0
> > #define CONFIG_POWERPC_PERF 0
> > /* For now prefer speed over avoiding potential invalid reads */
> > #define CONFIG_SAFE_BITSTREAM_READER 0
> > @@ -9394,7 +9486,6 @@
> > #define HAVE_ISATTY 0
> > #define HAVE_LDBRX 0
> > #define HAVE_LIBC_MSVCRT 0
> > -#define HAVE_MACH_MACH_TIME_H 0
> > #define HAVE_MAPVIEWOFFILE 0
> > #define HAVE_MIPSDSP 0
> > #define HAVE_MIPSDSPR1 0
> > @@ -9405,6 +9496,7 @@
> > #define HAVE_SECTION_DATA_REL_RO 0
> > #define HAVE_SIMD_ALIGN_16 1
> > $def_simd_align_32
> > +$def_simd_align_64
> > #define HAVE_STRERROR_R 0
> > #define HAVE_STRPTIME 0
> > #define HAVE_STRUCT_POLLFD 0
> _______________________________________________
> MPlayer-dev-eng mailing list
> MPlayer-dev-eng at mplayerhq.hu
> https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
More information about the MPlayer-dev-eng
mailing list