diff mbox

[FFmpeg-devel] checkasm/vp9: benchmark all sub-IDCTs (but not WHT or ADST).

Message ID 1480972532-81245-1-git-send-email-rsbultje@gmail.com
State Accepted
Commit 1c8fbd7b90469f69fe3a3f78ba7886195d97c34f
Headers show

Commit Message

Ronald S. Bultje Dec. 5, 2016, 9:15 p.m. UTC
---
 tests/checkasm/vp9dsp.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

Comments

Ronald S. Bultje Dec. 21, 2016, 12:10 a.m. UTC | #1
Hi,

On Mon, Dec 5, 2016 at 4:15 PM, Ronald S. Bultje <rsbultje@gmail.com> wrote:

> ---
>  tests/checkasm/vp9dsp.c | 22 ++++++++++++++--------
>  1 file changed, 14 insertions(+), 8 deletions(-)
>
> diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
> index 441041c..f32b97c 100644
> --- a/tests/checkasm/vp9dsp.c
> +++ b/tests/checkasm/vp9dsp.c
> @@ -331,15 +331,20 @@ static void check_itxfm(void)
>              int n_txtps = tx < TX_32X32 ? N_TXFM_TYPES : 1;
>
>              for (txtp = 0; txtp < n_txtps; txtp++) {
> -                if (check_func(dsp.itxfm_add[tx][txtp],
> "vp9_inv_%s_%dx%d_add_%d",
> -                               tx == 4 ? "wht_wht" : txtp_types[txtp],
> sz, sz,
> -                               bit_depth)) {
> -                    randomize_buffers();
> -                    ftx(coef, tx, txtp, sz, bit_depth);
> -
> -                    for (sub = (txtp == 0) ? 1 : 2; sub <= sz; sub <<= 1)
> {
> +                // skip testing sub-IDCTs for WHT or ADST since they don't
> +                // implement it in any of the SIMD functions. If they do,
> +                // consider changing this to ensure we have complete test
> +                // coverage
> +                for (sub = (txtp == 0 && tx < 4) ? 1 : sz; sub <= sz; sub
> <<= 1) {
> +                    if (check_func(dsp.itxfm_add[tx][txtp],
> +                                   "vp9_inv_%s_%dx%d_sub%d_add_%d",
> +                                   tx == 4 ? "wht_wht" : txtp_types[txtp],
> +                                   sz, sz, sub, bit_depth)) {
>                          int eob;
>
> +                        randomize_buffers();
> +                        ftx(coef, tx, txtp, sz, bit_depth);
> +
>                          if (sub < sz) {
>                              eob = copy_subcoefs(subcoef0, coef, tx, txtp,
>                                                  sz, sub, bit_depth);
> @@ -357,8 +362,9 @@ static void check_itxfm(void)
>                              !iszero(subcoef0, sz * sz * SIZEOF_COEF) ||
>                              !iszero(subcoef1, sz * sz * SIZEOF_COEF))
>                              fail();
> +
> +                        bench_new(dst, sz * SIZEOF_PIXEL, coef, eob);
>                      }
> -                    bench_new(dst, sz * SIZEOF_PIXEL, coef, sz * sz);
>                  }
>              }
>          }
> --
> 2.8.1


Ping. I will apply this with some other outstanding patches if there's no
comments.

Ronald
Ronald S. Bultje Dec. 27, 2016, 3:07 p.m. UTC | #2
Hi,

On Tue, Dec 20, 2016 at 7:10 PM, Ronald S. Bultje <rsbultje@gmail.com>
wrote:

> Hi,
>
> On Mon, Dec 5, 2016 at 4:15 PM, Ronald S. Bultje <rsbultje@gmail.com>
> wrote:
>
>> ---
>>  tests/checkasm/vp9dsp.c | 22 ++++++++++++++--------
>>  1 file changed, 14 insertions(+), 8 deletions(-)
>>
>> diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
>> index 441041c..f32b97c 100644
>> --- a/tests/checkasm/vp9dsp.c
>> +++ b/tests/checkasm/vp9dsp.c
>> @@ -331,15 +331,20 @@ static void check_itxfm(void)
>>              int n_txtps = tx < TX_32X32 ? N_TXFM_TYPES : 1;
>>
>>              for (txtp = 0; txtp < n_txtps; txtp++) {
>> -                if (check_func(dsp.itxfm_add[tx][txtp],
>> "vp9_inv_%s_%dx%d_add_%d",
>> -                               tx == 4 ? "wht_wht" : txtp_types[txtp],
>> sz, sz,
>> -                               bit_depth)) {
>> -                    randomize_buffers();
>> -                    ftx(coef, tx, txtp, sz, bit_depth);
>> -
>> -                    for (sub = (txtp == 0) ? 1 : 2; sub <= sz; sub <<=
>> 1) {
>> +                // skip testing sub-IDCTs for WHT or ADST since they
>> don't
>> +                // implement it in any of the SIMD functions. If they do,
>> +                // consider changing this to ensure we have complete test
>> +                // coverage
>> +                for (sub = (txtp == 0 && tx < 4) ? 1 : sz; sub <= sz;
>> sub <<= 1) {
>> +                    if (check_func(dsp.itxfm_add[tx][txtp],
>> +                                   "vp9_inv_%s_%dx%d_sub%d_add_%d",
>> +                                   tx == 4 ? "wht_wht" :
>> txtp_types[txtp],
>> +                                   sz, sz, sub, bit_depth)) {
>>                          int eob;
>>
>> +                        randomize_buffers();
>> +                        ftx(coef, tx, txtp, sz, bit_depth);
>> +
>>                          if (sub < sz) {
>>                              eob = copy_subcoefs(subcoef0, coef, tx, txtp,
>>                                                  sz, sub, bit_depth);
>> @@ -357,8 +362,9 @@ static void check_itxfm(void)
>>                              !iszero(subcoef0, sz * sz * SIZEOF_COEF) ||
>>                              !iszero(subcoef1, sz * sz * SIZEOF_COEF))
>>                              fail();
>> +
>> +                        bench_new(dst, sz * SIZEOF_PIXEL, coef, eob);
>>                      }
>> -                    bench_new(dst, sz * SIZEOF_PIXEL, coef, sz * sz);
>>                  }
>>              }
>>          }
>> --
>> 2.8.1
>
>
> Ping. I will apply this with some other outstanding patches if there's no
> comments.
>

Pushed.

Ronald
diff mbox

Patch

diff --git a/tests/checkasm/vp9dsp.c b/tests/checkasm/vp9dsp.c
index 441041c..f32b97c 100644
--- a/tests/checkasm/vp9dsp.c
+++ b/tests/checkasm/vp9dsp.c
@@ -331,15 +331,20 @@  static void check_itxfm(void)
             int n_txtps = tx < TX_32X32 ? N_TXFM_TYPES : 1;
 
             for (txtp = 0; txtp < n_txtps; txtp++) {
-                if (check_func(dsp.itxfm_add[tx][txtp], "vp9_inv_%s_%dx%d_add_%d",
-                               tx == 4 ? "wht_wht" : txtp_types[txtp], sz, sz,
-                               bit_depth)) {
-                    randomize_buffers();
-                    ftx(coef, tx, txtp, sz, bit_depth);
-
-                    for (sub = (txtp == 0) ? 1 : 2; sub <= sz; sub <<= 1) {
+                // skip testing sub-IDCTs for WHT or ADST since they don't
+                // implement it in any of the SIMD functions. If they do,
+                // consider changing this to ensure we have complete test
+                // coverage
+                for (sub = (txtp == 0 && tx < 4) ? 1 : sz; sub <= sz; sub <<= 1) {
+                    if (check_func(dsp.itxfm_add[tx][txtp],
+                                   "vp9_inv_%s_%dx%d_sub%d_add_%d",
+                                   tx == 4 ? "wht_wht" : txtp_types[txtp],
+                                   sz, sz, sub, bit_depth)) {
                         int eob;
 
+                        randomize_buffers();
+                        ftx(coef, tx, txtp, sz, bit_depth);
+
                         if (sub < sz) {
                             eob = copy_subcoefs(subcoef0, coef, tx, txtp,
                                                 sz, sub, bit_depth);
@@ -357,8 +362,9 @@  static void check_itxfm(void)
                             !iszero(subcoef0, sz * sz * SIZEOF_COEF) ||
                             !iszero(subcoef1, sz * sz * SIZEOF_COEF))
                             fail();
+
+                        bench_new(dst, sz * SIZEOF_PIXEL, coef, eob);
                     }
-                    bench_new(dst, sz * SIZEOF_PIXEL, coef, sz * sz);
                 }
             }
         }