Commit Graph

230 Commits

Author SHA1 Message Date
James Almer 0cef66c906 Merge commit '516c479172755c63063180b0c0953b68b670cdbd'
* commit '516c479172755c63063180b0c0953b68b670cdbd':
  checkasm: Test more h264 idct variants

See 2d263188ba

Merged-by: James Almer <jamrial@gmail.com>
2017-11-11 15:21:22 -03:00
James Almer 2d263188ba Merge commit '547db1eaecd597031165a2bf637acaaacde52788'
* commit '547db1eaecd597031165a2bf637acaaacde52788':
  checkasm: Test more h264 idct variants

Merged-by: James Almer <jamrial@gmail.com>
2017-11-11 13:18:55 -03:00
James Almer 4cfb46f94f checkasm/llviddsp: fix warnings about mixed declaration and code
Signed-off-by: James Almer <jamrial@gmail.com>
2017-11-08 14:54:15 -03:00
Martin Vignali fbe9148779 checkasm/llviddsp : add test for other dsp func
add_median_pred
add_left_pred : add two func one with acc 0, and one with random acc
add_left_pred16
2017-11-07 00:54:17 +01:00
James Almer 122a749dfc Merge commit 'd05c9cde0e87c23ca42957646bea483dfc09d6bf'
* commit 'd05c9cde0e87c23ca42957646bea483dfc09d6bf':
  checkasm: aarch64: Specify alignment for the register_init const array

Merged-by: James Almer <jamrial@gmail.com>
2017-10-30 21:03:50 -03:00
James Almer f568d9d0ba Merge commit 'e00db9f78bb475ed5103364f61892f4e75ef89ba'
* commit 'e00db9f78bb475ed5103364f61892f4e75ef89ba':
  checkasm: hevc: Add a hevc_ prefix to the add_residual functions

Merged-by: James Almer <jamrial@gmail.com>
2017-10-28 18:18:41 -03:00
James Almer 6dfcbd80ad Merge commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63'
* commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63':
  build: Fine-grained link-time dependency settings

Also included are bug fix commits 5ff3b5cafc,
d9da7151ee and
5e27ef800b.

Merged-by: James Almer <jamrial@gmail.com>
2017-10-11 17:55:25 -03:00
Martin Vignali cbbec68847 libavcodec/blockdsp : add AVX version
Also modify the required alignment, to 32 instead of 16
for several codecs

Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-03 19:47:37 -03:00
Martin Vignali ac5908b13f libavcodec/exr : add x86 SIMD for predictor
Signed-off-by: James Almer <jamrial@gmail.com>
2017-10-01 17:35:30 -03:00
Martin Storsjö 516c479172 checkasm: Test more h264 idct variants
Signed-off-by: Martin Storsjö <martin@martin.st>
2017-09-27 13:58:39 +03:00
James Almer 7323c896b2 checkasm: add an exrdsp test
Signed-off-by: James Almer <jamrial@gmail.com>
2017-09-17 19:01:40 -03:00
Clément Bœsch e0d56f097f checkasm: use perf API on Linux ARM*
On ARM platforms, accessing the PMU registers requires special user
access permissions. Since there is no other way to get accurate timers,
the current implementation of timers in FFmpeg rely on these registers.
Unfortunately, enabling user access to these registers on Linux is not
trivial, and generally involve compiling a random and unreliable github
kernel module, or patching somehow your kernel.

Such module is very unlikely to reach the upstream anytime soon. Quoting
Robin Murphin from ARM:

> Say you do give userspace direct access to the PMU; now run two or more
> programs at once that believe they can use the counters for their own
> "minimal-overhead" profiling. Have fun interpreting those results...
>
> And that's not even getting into the implications of scheduling across
> different CPUs, CPUidle, etc. where the PMU state is completely beyond
> userspace's control. In general, the plan to provide userspace with
> something which might happen to just about work in a few corner cases,
> but is meaningless, misleading or downright broken in all others, is to
> never do so.

As a result, the alternative is to use the Performance Monitoring Linux
API which makes use of these registers internally (assuming the PMU of
your ARM board is supported in the kernel, which is definitely not a
given...).

While the Linux API is obviously cross platform, it does have a
significant overhead which needs to be taken into account. As a result,
that mode is only weakly enabled on ARM platforms exclusively.

Note on the non flexibility of the implementation: the timers (native
FFmpeg vs Linux API) are selected at compilation time to prevent the
need of function calls, which would result in a negative impact on the
cycle counters.
2017-09-08 18:51:05 +02:00
Martin Storsjö e12f1cd616 Revert "checkasm: Test more h264 idct variants"
This reverts commit 547db1eaec.

This commit wasn't supposed to be pushed (yet) since it hasn't
been reviewed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-09-02 22:23:30 +03:00
Martin Storsjö 547db1eaec checkasm: Test more h264 idct variants 2017-08-31 14:55:34 +03:00
James Almer e51073fe00 checkasm/vf_blend: rename addition128 and difference128 to grainmerge and grainextract
This was missing from f8d0689d3f.
Fixes checkasm.
2017-08-24 23:39:09 -03:00
James Almer 6f205a42d7 checkasm: add hybrid_analysis_ileave and hybrid_synthesis_deint tests to aacpsdsp
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-13 17:03:28 -03:00
James Almer 823cc7e25f checkasm: add a g722dsp test
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-13 17:00:19 -03:00
James Almer 3d3243577c checkasm: use declare_func_float() in sbrdsp sum_square test
The function returns a float.

This fixes the test in x86_32 targets.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-04 23:02:57 -03:00
Matthieu Bouron 7864e07f4a checkasm: add sbrdsp tests 2017-07-03 14:28:17 +02:00
James Almer 0eb783eb06 checkasm: randomize the full input buffer in test_hybrid_analysis
Missed in the last commit.
2017-06-30 22:49:54 -03:00
James Almer fb7b477a91 checkasm: fix size of input buffer in test_hybrid_analysis 2017-06-30 20:37:06 -03:00
Clément Bœsch b12a36170b lavc/aacpsdsp: use ptrdiff_t for stride in hybrid_analysis 2017-06-28 12:22:39 +02:00
Clément Bœsch edd041e64c checkasm: add AAC PS tests
This includes various fixes and improvements from James Almer.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-28 12:22:39 +02:00
James Almer fa50d9360b x86/vf_blend: add sse and ssse3 extremity functions
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-27 13:17:23 -03:00
James Almer a579dbb4f7 checkasm: add missing checks to float_dsp's butterflies_float test 2017-06-23 23:38:07 -03:00
Matthieu Bouron 067e42b851 checkasm/aarch64: fix tests returning a float
Avoids overriding the v0 register (which containins the result of the
tested function) in checkasm_call_checked.
2017-06-22 09:18:10 +02:00
Diego Biurrun fd502f4f5f build: Generalize yasm/nasm-related variable names
None of them are specific to the YASM assembler.

(Cherry-picked from libav commit 39e208f4d4)

Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-21 17:00:29 -03:00
James Almer 5b10f484e2 checkasm: add float_dsp tests
Ported from libavutil/tests/float_dsp.c

Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-14 19:20:10 -03:00
James Almer 37388b119c checkasm: add a checkasm_checked_call function that doesn't issue emms
Meant for DSP functions returning a float or double, as they'd fail if emms
is called after every run on x86_32.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-06-14 19:18:56 -03:00
James Almer 93dc1c1221 checkasm: add _fixed suffix to fixed_dsp tests
Should prevents future conflicts with the similarly named floatdsp tests
2017-06-01 13:12:20 -03:00
Martin Storsjö d05c9cde0e checkasm: aarch64: Specify alignment for the register_init const array
Loads from this strictly doesn't require alignment, but specify it
just for consistency with the arm version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-05-15 10:19:46 +03:00
Martin Storsjö e00db9f78b checkasm: hevc: Add a hevc_ prefix to the add_residual functions
This makes it easier to group them with the rest when running e.g.
--bench=hevc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2017-04-21 13:32:44 +03:00
James Almer 7b3cb953f7 checkasm: add fixed_dsp tests
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-04-11 18:05:13 -03:00
Clément Bœsch 210678d3c5 Merge commit '3794062ab1a13442b06f6d76c54dce51ffa54697'
* commit '3794062ab1a13442b06f6d76c54dce51ffa54697':
  Remove Plan 9 support

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-09 14:52:00 +02:00
James Almer 6747fc436e Merge commit 'effc1430b2fe5997d9d55bf28dc507c27125eb27'
* commit 'effc1430b2fe5997d9d55bf28dc507c27125eb27':
  Revert "checkasm: vp9dsp: Benchmark the dc-only version of idct_idct separately"

Merged-by: James Almer <jamrial@gmail.com>
2017-04-04 15:26:18 -03:00
Clément Bœsch edfa7ac8ec Merge commit '81d7f0bbca837afda1f7e60d3ae52ab1360ab44b'
* commit '81d7f0bbca837afda1f7e60d3ae52ab1360ab44b':
  checkasm: vp9dsp: Benchmark the dc-only version of idct_idct separately

Merged-by: Clément Bœsch <u@pkh.me>
2017-04-01 11:54:29 +02:00
Clément Bœsch b589e83f43 Merge commit '9498237049d15812cecb79df47b196c73013908b'
* commit '9498237049d15812cecb79df47b196c73013908b':
  checkasm: Add --test parameter to check only specific components

Merged-by: Clément Bœsch <cboesch@gopro.com>
2017-03-31 10:06:13 +02:00
Clément Bœsch 1c9f4b5078 lavc/vp9: split into vp9{block,data,mvs}
This is following Libav layout to ease merges.
2017-03-27 21:38:21 +02:00
James Almer 09ce5519f3 fate/checkasm: fix use of uninitialized memory on hevc_add_res tests 2017-03-24 22:11:34 -03:00
James Almer 36eae45510 fate/checkasm: use LOCAL_ALINGED_32 on hevc_add_res tests 2017-03-24 22:11:22 -03:00
Clément Bœsch 3d4039f964 Merge commit 'ed48a9d8143d2575a4458589cebde69ec326afd8'
* commit 'ed48a9d8143d2575a4458589cebde69ec326afd8':
  checkasm: Add a test for HEVC add_residual

Merged-by: Clément Bœsch <u@pkh.me>
2017-03-24 12:37:09 +01:00
James Almer 0d34473d8e Merge commit 'dd5d4a0e1e3a30a254d1a57ecbdcedf230c6014b'
* commit 'dd5d4a0e1e3a30a254d1a57ecbdcedf230c6014b':
  checkasm: aarch64: Don't clobber x29 in checkasm_stack_clobber

Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 18:31:36 -03:00
James Almer f23078904f Merge commit '2816f8a8bb33bd67fec5e94f5d357918caf4e055'
* commit '2816f8a8bb33bd67fec5e94f5d357918caf4e055':
  build: Drop arch-specific checkasm Makefiles

Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 18:01:47 -03:00
James Almer 3ddae9eee9 Merge commit '93d5b022a9fd3a1a1f9c521a1eac7f0410e05b81'
* commit '93d5b022a9fd3a1a1f9c521a1eac7f0410e05b81':
  build: Drop duplicate asm recipe

Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 17:57:35 -03:00
James Almer 67b639b496 Merge commit 'c91d6a33f872574c95c8784277cf60ffcf6bff4f'
* commit 'c91d6a33f872574c95c8784277cf60ffcf6bff4f':
  checkasm: aarch64: Add filler args to make sure all parameters are passed on the stack

Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 17:38:20 -03:00
James Almer a2d34cc51b Merge commit 'f1b3e131385176c3c9d9783b25047856a0dcebf6'
* commit 'f1b3e131385176c3c9d9783b25047856a0dcebf6':
  checkasm: aarch64: Clobber the stack before calling functions

Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 17:36:53 -03:00
James Almer cab4c7fa19 Merge commit 'a05cc56124b4f1237f6355784de821e3290ddb44'
* commit 'a05cc56124b4f1237f6355784de821e3290ddb44':
  checkasm: arm/aarch64: Fix the amount of space reserved for stack parameters

Merged-by: James Almer <jamrial@gmail.com>
2017-03-23 17:35:38 -03:00
Clément Bœsch 50bbb67472 Merge commit 'e3f941cb03b139b866a0ad6dc95fbe1b247d54af'
* commit 'e3f941cb03b139b866a0ad6dc95fbe1b247d54af':
  checkasm: add a test for HEVC IDCT

Merged-by: Clément Bœsch <u@pkh.me>
2017-03-23 12:17:39 +01:00
Diego Biurrun dcc39ee10e lavc: Remove deprecated XvMC support hacks
Deprecated in 11/2013.
2017-03-23 10:09:14 +01:00
James Almer 30cadfe071 avcodec/lossless_videodsp: use ptrdiff_t for length parameters
Signed-off-by: James Almer <jamrial@gmail.com>
2017-03-22 18:38:35 -03:00