[FFmpeg-devel] [PATCH 2/2] checkasm/vc1dsp: check the not-in-place block content

James Almer jamrial at gmail.com
Tue Jun 11 18:08:51 EEST 2024


On 6/11/2024 11:55 AM, Rémi Denis-Courmont wrote:
> This seems to cause issues in FATE for 4x4 and 4x8 transforms. But then
> again, FATE does not seem to care in the 8x4 case.
> 
> Note that AArch64 NEON code is known to fail this test.
> ---
>   tests/checkasm/vc1dsp.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/checkasm/vc1dsp.c b/tests/checkasm/vc1dsp.c
> index f18f0f8251..2cc6785a0c 100644
> --- a/tests/checkasm/vc1dsp.c
> +++ b/tests/checkasm/vc1dsp.c
> @@ -317,11 +317,13 @@ static void check_inv_trans_adding(void)
>               for (int j = 0; j < tests[t].height; ++j)
>                   for (int i = 0; i < tests[t].width; ++i) {
>                       int idx = j * 8 + i;
> -                    inv_trans_in1[idx] = inv_trans_in0[idx] = coeffs->d[j * tests[t].width + i];
> +                    inv_trans_in0[idx] = coeffs->d[j * tests[t].width + i];
>                   }
> +            memcpy(inv_trans_in1, inv_trans_in0, 8 * 8 * 2);

Is there any gain doing this?

>               call_ref(inv_trans_out0 + 24 + 8, 24, inv_trans_in0);
>               call_new(inv_trans_out1 + 24 + 8, 24, inv_trans_in1);
> -            if (memcmp(inv_trans_out0, inv_trans_out1, 10 * 24))
> +            if (memcmp(inv_trans_in0,   inv_trans_in1, 8 * 8 * 2) ||

nit: sizeof (int16_t)

> +                memcmp(inv_trans_out0, inv_trans_out1, 10 * 24))
>                   fail();
>               bench_new(inv_trans_out1 + 24 + 8, 24, inv_trans_in1 + 8);
>               av_free(coeffs);


More information about the ffmpeg-devel mailing list