Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-06-18avutil/cpu_internal: Fix check for SSE2SLOWAndreas Rheinhardt
For SSE2 and SSE3, there are four states that the two flags involved (AV_CPU_FLAG_SSE[23] and AV_CPU_FLAG_SSE[23]SLOW) can convey. When ordered from worst to best they are: 1. both flags unset (SSE[23] unavailable) 2. the slow flag set, the ordinary flag unset (this is designed for cases where SSE2 is available, but so slow that MMX(EXT)/SSE code is usually faster) 3. both flags set (SSE2 is available, but there might be scenarios where MMX(EXT)/SSE code is faster) 4. the ordinary flag set, the slow flag unset (this is the normal case) The ordinary macros for checking cpuflags return true in the latter two cases; the fast macros only return true for the latter case. Yet the macros to check for slow currently only return true in case three. This seems unintended. In fact, the only uses of the slow macros are all of the form if (EXTERNAL_SSE2(cpu_flags) || EXTERNAL_SSE2_SLOW(cpu_flags)) where the check for EXTERNAL_SSE2_SLOW is completely redundant. Even more importantly, it is not what was intended. Before 6369ba3c9cc74becfaad2a8882dff3dd3e7ae3c0, the checks passed in cases 2 to 4. Said commit changed this to something that only passes for the third case. Commits 7fb758cd8ed08e4a37f10e25003953d13c68b8cd and c1913064e38cb338039f29c280a0dacc3fd1e451 restored the old behaviour, yet merging 4efab89332ea39a77145e8b15562b981d9dbde68 (in commit ac774cfa571734c49c26e2d3387adccff8957ff8) broke this again by changing it to what it is now.* This commit changes the macros to make the slow macros check whether a specific instruction is supported, even if slow. This restores the intended meaning to all uses of the SLOW macros and is generally more natural. *: Libav only checks for EXTERNAL_SSE2_SLOW, i.e. for the third case only. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-12-15avutil: [loongarch] Add support for loongarch SIMD.Shiyou Yin
LSX and LASX is loongarch SIMD extention. They are enabled by default if compiler support it, and can be disabled with '--disable-lsx' '--disable-lasx'. Change-Id: Ie2608ea61dbd9b7fffadbf0ec2348bad6c124476 Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Reviewed-by: guxiwei <guxiwei-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2020-07-23libavutil: Detect MMI and MSA flags for MIPSJiaxun Yang
Add MMI & MSA runtime detection for MIPS. Basically there are two code pathes. For systems that natively support CPUCFG instruction or kernel emulated that instruction, we'll sense this feature from HWCAP and report the flags according to values grab from CPUCFG. For systems that have no CPUCFG (or not export it in HWCAP), we'll parse /proc/cpuinfo instead. Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-12Merge commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906'James Almer
* commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906': Drop some unnecessary config.h #includes Merged-by: James Almer <jamrial@gmail.com>
2018-02-06Drop some unnecessary config.h #includesDiego Biurrun
2017-10-09cpu: split flag checks per arch in av_cpu_max_align()James Almer
Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2017-09-28avutil/cpu: split flag checks per arch in av_cpu_max_align()James Almer
Signed-off-by: James Almer <jamrial@gmail.com>
2016-02-15x86: add some more helper macros to check for slow cpuflagsJames Almer
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
2015-06-01Merge commit 'cae39851201b7781f1262e1c23627b45e6e80bb4'Michael Niedermayer
* commit 'cae39851201b7781f1262e1c23627b45e6e80bb4': x86: Add helper macros to check for slow cpuflags Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-31x86: Add helper macros to check for slow cpuflagsJames Almer
Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-15Merge commit 'b7b17ed66e199afc7246e642bf3b35c3f8eca217'Michael Niedermayer
* commit 'b7b17ed66e199afc7246e642bf3b35c3f8eca217': aarch64: add cpuflags support for NEON and VFP Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-15aarch64: add cpuflags support for NEON and VFPJanne Grunau
NEON and VFP are currently mandatory for all ARMv8 profiles. Both are handled as extensions as far as cpuflags are concerned. This is consistent with handling x86_64 which always has SSE2, but still handles it as an extension.
2013-08-29Merge commit '8410d6e93c2e074881f1c7b7e4cdefd2e497d52e'Michael Niedermayer
* commit '8410d6e93c2e074881f1c7b7e4cdefd2e497d52e': avutil: Refactor CPU extension availability macros Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29Merge commit 'b78b10c4b78b696927f2801cf2d9f193b4eff28b'Michael Niedermayer
* commit 'b78b10c4b78b696927f2801cf2d9f193b4eff28b': avutil: Move internal CPU detection function declarations to private header Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-29avutil: Refactor CPU extension availability macrosDiego Biurrun
2013-08-29avutil: Move internal CPU detection function declarations to private headerDiego Biurrun