Re: Adapt config.h's generation with some ffmpeg's commits

Etienne Buira <[email protected]>
Newsgroups gmane.comp.video.mplayer.devel
Message-ID <20180104172718.GC3411@Z926fQmE5jqhFMgp6>
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
> > > <[email protected]> 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
> [email protected]
> https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
_______________________________________________
MPlayer-dev-eng mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.