aboutsummaryrefslogtreecommitdiffstats
path: root/tests/checkasm/checkasm.h
Commit message (Collapse)AuthorAgeFilesLines
* checkasm: add h263dsp.{h,v}_loop_filterRémi Denis-Courmont2024-05-271-0/+1
|
* checkasm: add runs argument to adjust during benchJ. Dekker2024-05-211-3/+4
| | | | | | | | | | | | Some timers on certain device and test combinations can produce noisy results, affecting the reliability of performance measurements. One notable example of this is the Canaan K230 RISC-V development board. An option to adjust the number of samples by an exponent (--runs) has been added, allowing developers to increase the sample count for more reliable results. Signed-off-by: J. Dekker <jdek@itanimul.li>
* tests/checkasm: add checkasm_check_vvc_alf and check_alf_filterWu Jianhua2024-05-141-0/+1
| | | | Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
* checkasm: add test for fdctRamiro Polla2024-05-111-0/+1
| | | | | Reviewed-by: Martin Storsjö <martin@martin.st> Reviewed-by: Rémi Denis-Courmont <remi@remlab.net>
* checkasm/rv40dsp: add chroma_mc testsunyuechi2024-05-031-0/+1
| | | | | | This is similar to h264. Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* checkasm/rv34dsp: add rv34_inv_transform_dc testsunyuechi2024-02-171-0/+1
| | | | Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* tests/checkasm: add checkasm_check_vvc_mcWu Jianhua2024-02-011-0/+1
| | | | Signed-off-by: Wu Jianhua <toqsxw@outlook.com>
* checkasm/svqenc: add ssd_int8_vs_int16 testsunyuechi2024-01-151-0/+1
| | | | Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* checkasm: Generalize crash handlingMartin Storsjö2024-01-111-20/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the riscv specific handling from 7212466e735aa187d82f51dadbce957fe3da77f0 (which essentially is reverted), with a different implementation of the same (plus a bit more), based on the corresponding feature in dav1d's checkasm, supporting both Unix and Windows. See in particular the dav1d commits 0b6ee30eab2400e4f85b735ad29a68a842c34e21, 0421f787ea592fd2cc74c887f20b8dc31393788b, 8501a4b20135f93a4c3b426468e2240e872949c5 and d23e87f7aee26ddcf5f7a2e185112031477599a7, authored by Henrik Gramner. The overall approach compared to the existing implementation for riscv is the same; set up a signal handler, store the state with sigsetjmp, jump out of the crashing function with siglongjmp. The main difference is in what happens when the signal handler is invoked. In the previous implementation, it would resume from right before calling the crashing function, and then skip that call based on the setjmp return value. In the imported implementation from dav1d, we return to right before the check_func() call, which will skip testing the current function (as the pointer is the same as it was before). Other differences are: - Support for other signal handling mechanisms (Windows AddVectoredExceptionHandler) - Using RtlCaptureContext/RtlRestoreContext instead of setjmp/longjmp on Windows with SEH - Only catching signals once per function - if more than one signal is delivered before signal handling is reenabled, any signal is handled as it would without our handler - Not using an arch specific signal handler written in assembly Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm/takdsp: add decorrelate_ls testsunyuechi2023-12-211-0/+1
| | | | Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* checkasm: Remove unnecessary const on scalar parametersMartin Storsjö2023-12-211-4/+4
| | | | | | | | | | | | | | | | | | | | | The ffmpeg coding style doesn't usually use const on scalar parameters (or on the pointer values - as opposed to the type that is pointed to, where it has a semantic meaning), contrary to the dav1d coding style (where this was imported from). This avoids warnings about differences in the type signatures between declaration and definition of this function, with older versions of MSVC. The issue was observed with one version of MSVC 2017, 19.16.27024.1, with warnings like these: src/tests/checkasm/checkasm.c(969): warning C4028: formal parameter 3 different from declaration The warning itself is bogus as the const here is harmless, and newer versions of MSVC no longer warn about this. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: test for abs_pow34sunyuechi2023-12-111-0/+1
| | | | Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* riscv: test for assembler supportRémi Denis-Courmont2023-12-081-1/+4
| | | | | This should fix the build on LLVM 16 and earlier, at the cost of turning all non-RVV optimisations off.
* checkasm/ac3dsp: add float_to_fixed24 testsunyuechi2023-12-011-0/+1
| | | | Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* checkasm/riscv: report an error upon SIGILLRémi Denis-Courmont2023-11-231-2/+9
| | | | | | | | Terminating the whole checkasm process is not very helpful. This will report if an illegal instruction occurs while executing a tested function. This is a common occurrence whilst developping RISC-V assembler, due to the compatibility between vector configuration and instruction done at run-time.
* checkasm: add helper to report a fatal signalRémi Denis-Courmont2023-11-231-0/+1
|
* checkasm: add lossless audio DSPRémi Denis-Courmont2023-11-161-0/+1
|
* avutil/internal: Don't auto-include emms.hAndreas Rheinhardt2023-09-041-0/+1
| | | | | | Instead include emms.h wherever it is needed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* checkasm: add h264chroma testsLynne2023-05-201-0/+1
| | | | Checks all variants of put_h264_chroma and avg_h264_chroma.
* checkasm: add hevc_deblock chroma testJ. Dekker2023-04-061-0/+1
| | | | Signed-off-by: J. Dekker <jdek@itanimul.li>
* checkasm: add test for bwdifJames Darnley2023-03-251-0/+1
|
* libavfilter/x86/vf_convolution: add sobel filter optimization and unit test ↵bwang302022-11-141-0/+1
| | | | | | | | | | | | with intel AVX512 VNNI This commit enabled assembly code with intel AVX512 VNNI and added unit test for sobel filter sobel_c: 4537 sobel_avx512icl 2136 Signed-off-by: bwang30 <bin.wang@intel.com> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* checkasm: add a verbose check function for uint32_t dataJames Darnley2022-11-041-0/+1
|
* checkasm: RISC-V 64-bit assembler test harnessRémi Denis-Courmont2022-10-101-0/+10
|
* x86/lpc: implement a new Welch windowing functionLynne2022-09-211-0/+1
| | | | | | | | | | | | Old one was written with the assumption only even inputs would be given. This very messy replacement supports even and odd inputs, and supports AVX2 for extra speed. The buffers given are usually quite big (4k samples), so the speedup is worth it. The new SSE version is still faster than the old inline asm version by 33%. Also checkasm is provided to make sure this monstrosity works. This fixes some FATE tests.
* tests/checkasm: add a test for VorbisDSPContextJames Almer2022-09-191-0/+1
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm: Silence warnings about unused return value from read()Martin Storsjö2022-08-081-1/+3
| | | | | | | This codepath is enabled by default on arm, if the linux perf API is available, unless disabled with --disable-linux-perf. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavc/aarch64: motion estimation functions in neonSwinney, Jonathan2022-06-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | - ff_pix_abs16_neon - ff_pix_abs16_xy2_neon In direct micro benchmarks of these ff functions verses their C implementations, these functions performed as follows on AWS Graviton 3. ff_pix_abs16_neon: pix_abs_0_0_c: 141.1 pix_abs_0_0_neon: 19.6 ff_pix_abs16_xy2_neon: pix_abs_0_3_c: 269.1 pix_abs_0_3_neon: 39.3 Tested with: ./tests/checkasm/checkasm --test=motion --bench --disable-linux-perf Signed-off-by: Jonathan Swinney <jswinney@amazon.com> Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: Add idctdsp add/put-pixels-clamped testsBen Avison2022-04-011-0/+1
| | | | | Signed-off-by: Ben Avison <bavison@riscosopen.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: Add vc1dsp in-loop deblocking filter testsBen Avison2022-04-011-0/+1
| | | | | | | | | | | Note that the benchmarking results for these functions are highly dependent upon the input data. Therefore, each function is benchmarked twice, corresponding to the best and worst case complexity of the reference C implementation. The performance of a real stream decode will fall somewhere between these two extremes. Signed-off-by: Ben Avison <bavison@riscosopen.org> Signed-off-by: Martin Storsjö <martin@martin.st>
* swscale/x86/output.asm: add x86-optimized planer gbr yuv2anyX functionsMark Reid2022-01-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | changes since v2: * fixed label changes since v1: * remove vex intruction on sse4 path * some load/pack marcos use less intructions * fixed some typos yuv2gbrp_full_X_4_512_c: 12757.6 yuv2gbrp_full_X_4_512_sse2: 8946.6 yuv2gbrp_full_X_4_512_sse4: 5138.6 yuv2gbrp_full_X_4_512_avx2: 3889.6 yuv2gbrap_full_X_4_512_c: 15368.6 yuv2gbrap_full_X_4_512_sse2: 11916.1 yuv2gbrap_full_X_4_512_sse4: 6294.6 yuv2gbrap_full_X_4_512_avx2: 3477.1 yuv2gbrp9be_full_X_4_512_c: 14381.6 yuv2gbrp9be_full_X_4_512_sse2: 9139.1 yuv2gbrp9be_full_X_4_512_sse4: 5150.1 yuv2gbrp9be_full_X_4_512_avx2: 2834.6 yuv2gbrp9le_full_X_4_512_c: 12990.1 yuv2gbrp9le_full_X_4_512_sse2: 9118.1 yuv2gbrp9le_full_X_4_512_sse4: 5132.1 yuv2gbrp9le_full_X_4_512_avx2: 2833.1 yuv2gbrp10be_full_X_4_512_c: 14401.6 yuv2gbrp10be_full_X_4_512_sse2: 9133.1 yuv2gbrp10be_full_X_4_512_sse4: 5126.1 yuv2gbrp10be_full_X_4_512_avx2: 2837.6 yuv2gbrp10le_full_X_4_512_c: 12718.1 yuv2gbrp10le_full_X_4_512_sse2: 9106.1 yuv2gbrp10le_full_X_4_512_sse4: 5120.1 yuv2gbrp10le_full_X_4_512_avx2: 2826.1 yuv2gbrap10be_full_X_4_512_c: 18535.6 yuv2gbrap10be_full_X_4_512_sse2: 33617.6 yuv2gbrap10be_full_X_4_512_sse4: 6264.1 yuv2gbrap10be_full_X_4_512_avx2: 3422.1 yuv2gbrap10le_full_X_4_512_c: 16724.1 yuv2gbrap10le_full_X_4_512_sse2: 11787.1 yuv2gbrap10le_full_X_4_512_sse4: 6282.1 yuv2gbrap10le_full_X_4_512_avx2: 3441.6 yuv2gbrp12be_full_X_4_512_c: 13723.6 yuv2gbrp12be_full_X_4_512_sse2: 9128.1 yuv2gbrp12be_full_X_4_512_sse4: 7997.6 yuv2gbrp12be_full_X_4_512_avx2: 2844.1 yuv2gbrp12le_full_X_4_512_c: 12257.1 yuv2gbrp12le_full_X_4_512_sse2: 9107.6 yuv2gbrp12le_full_X_4_512_sse4: 5142.6 yuv2gbrp12le_full_X_4_512_avx2: 2837.6 yuv2gbrap12be_full_X_4_512_c: 18511.1 yuv2gbrap12be_full_X_4_512_sse2: 12156.6 yuv2gbrap12be_full_X_4_512_sse4: 6251.1 yuv2gbrap12be_full_X_4_512_avx2: 3444.6 yuv2gbrap12le_full_X_4_512_c: 16687.1 yuv2gbrap12le_full_X_4_512_sse2: 11785.1 yuv2gbrap12le_full_X_4_512_sse4: 6243.6 yuv2gbrap12le_full_X_4_512_avx2: 3446.1 yuv2gbrp14be_full_X_4_512_c: 13690.6 yuv2gbrp14be_full_X_4_512_sse2: 9120.6 yuv2gbrp14be_full_X_4_512_sse4: 5138.1 yuv2gbrp14be_full_X_4_512_avx2: 2843.1 yuv2gbrp14le_full_X_4_512_c: 14995.6 yuv2gbrp14le_full_X_4_512_sse2: 9119.1 yuv2gbrp14le_full_X_4_512_sse4: 5126.1 yuv2gbrp14le_full_X_4_512_avx2: 2843.1 yuv2gbrp16be_full_X_4_512_c: 12367.1 yuv2gbrp16be_full_X_4_512_sse2: 8233.6 yuv2gbrp16be_full_X_4_512_sse4: 4820.1 yuv2gbrp16be_full_X_4_512_avx2: 2666.6 yuv2gbrp16le_full_X_4_512_c: 10904.1 yuv2gbrp16le_full_X_4_512_sse2: 8214.1 yuv2gbrp16le_full_X_4_512_sse4: 4824.1 yuv2gbrp16le_full_X_4_512_avx2: 2629.1 yuv2gbrap16be_full_X_4_512_c: 26569.6 yuv2gbrap16be_full_X_4_512_sse2: 10884.1 yuv2gbrap16be_full_X_4_512_sse4: 5488.1 yuv2gbrap16be_full_X_4_512_avx2: 3272.1 yuv2gbrap16le_full_X_4_512_c: 14010.1 yuv2gbrap16le_full_X_4_512_sse2: 10562.1 yuv2gbrap16le_full_X_4_512_sse4: 5463.6 yuv2gbrap16le_full_X_4_512_avx2: 3255.1 yuv2gbrpf32be_full_X_4_512_c: 14524.1 yuv2gbrpf32be_full_X_4_512_sse2: 8552.6 yuv2gbrpf32be_full_X_4_512_sse4: 4636.1 yuv2gbrpf32be_full_X_4_512_avx2: 2474.6 yuv2gbrpf32le_full_X_4_512_c: 13060.6 yuv2gbrpf32le_full_X_4_512_sse2: 9682.6 yuv2gbrpf32le_full_X_4_512_sse4: 4298.1 yuv2gbrpf32le_full_X_4_512_avx2: 2453.1 yuv2gbrapf32be_full_X_4_512_c: 18629.6 yuv2gbrapf32be_full_X_4_512_sse2: 11363.1 yuv2gbrapf32be_full_X_4_512_sse4: 15201.6 yuv2gbrapf32be_full_X_4_512_avx2: 3727.1 yuv2gbrapf32le_full_X_4_512_c: 16677.6 yuv2gbrapf32le_full_X_4_512_sse2: 10221.6 yuv2gbrapf32le_full_X_4_512_sse4: 5693.6 yuv2gbrapf32le_full_X_4_512_avx2: 3656.6 Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm: collapse hevc pel testsJ. Dekker2021-08-241-10/+1
| | | | | | Also add to `make fate-checkasm' target. Signed-off-by: J. Dekker <jdek@itanimul.li>
* lavu/checkasm: add (private) kperf timing for macOSJ. Dekker2021-07-201-1/+6
| | | | Signed-off-by: J. Dekker <jdek@itanimul.li>
* checkasm: add av_tx FFT SIMD testing codeLynne2021-04-241-0/+1
| | | | | | This sadly required making changes to the code itself, due to the same context needing to be reused for both versions. The lookup table had to be duplicated for both versions.
* checkasm: add hevc_pel testsJosh Dekker2021-01-251-0/+10
| | | | | Co-authored-by: Niklas Haas <git@haasn.xyz> Signed-off-by: Josh Dekker <josh@itanimul.li>
* checkasm: aarch64: Check for stack overflowsMartin Storsjö2020-05-151-2/+5
| | | | | | | | | Also fill x8-x17 with garbage before calling the function. Figure out the number of stack parameters and make sure that the value on the stack after those is untouched. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: arm: Check for stack overflowsMartin Storsjö2020-05-151-2/+4
| | | | | | | Figure out the number of stack parameters and make sure that the value on the stack after those is untouched. Signed-off-by: Martin Storsjö <martin@martin.st>
* checkasm: add hscale testJosh de Kock2020-05-151-0/+1
| | | | | | | This tests the hscale 8bpp to 14/18bpp functions with different filter sizes. Signed-off-by: Josh de Kock <josh@itanimul.li>
* checkasm: add function to check and diff memoryMartin Storsjö2020-05-151-0/+16
| | | | | | This was ported from dav1d (c950e7101bdf5f7117bfca816984a21e550509f0). Signed-off-by: Josh de Kock <josh@itanimul.li>
* checkasm/vf_eq: add test for vf_eqTing Fu2019-09-261-0/+1
| | | | | Signed-off-by: Ting Fu <ting.fu@intel.com> Signed-off-by: Ruiling Song <ruiling.song@intel.com>
* checkasm: add opusdsp testsLynne2019-09-111-0/+1
|
* checkasm/vf_gblur: add test for horiz_slice simdRuiling Song2019-06-121-0/+1
| | | | Signed-off-by: Ruiling Song <ruiling.song@intel.com>
* checkasm: add test for v210decJames Darnley2019-05-021-0/+1
|
* checkasm: add an af_afir testJames Almer2019-01-031-0/+1
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm: add vf_nlmeans test for ssd_integral_imageClément Bœsch2018-05-081-0/+1
|
* checkasm/swscale : add test for rgb shuffle_bytes funcMartin Vignali2018-03-241-0/+1
|
* checkasm/hevc_sao : add hevc_sao for checkasmYingming Fan2018-03-071-0/+1
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm : add test for losslessvideoencdsp for diff bytes and sub_left_predMartin Vignali2018-01-281-0/+1
|
* Revert "checkasm/vf_interlace : add test for lowpass_line 8 and 16"James Almer2017-12-191-1/+0
| | | | | | | | This reverts commit adff97be5e2ff51c0bb66080c2f904ed40b6c571. It currently fails on Windows targets. Signed-off-by: James Almer <jamrial@gmail.com>
* checkasm/vf_interlace : add test for lowpass_line 8 and 16Martin Vignali2017-12-191-0/+1
|