[igt-dev] [PATCH i-g-t] tests/kms_rotation_crc: enable and optimize test for sim
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Mon May 29 07:55:41 UTC 2023
On 25.5.2023 14.47, Swati Sharma wrote:
> Added 2 checks. First, if rotation is supported by plane or not
> before creating fb. This is generic change to optimize test.
> Second check, is to reduce execution time in simulation
> by dropping RGB565 and PO10 formats (coverage is not
> compromised, we do have NV12 and RGB888 formats being validated).
>
> Signed-off-by: Swati Sharma <swati2.sharma at intel.com>
> ---
> tests/kms_rotation_crc.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 28b4fd27..07040e31 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -847,9 +847,17 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
> p[0].fbinfo = &planeconfigs[i];
> pointlocation(data, p, mode, 0);
>
> + if (!igt_plane_has_rotation(p[0].plane, planeconfigs[i].rotation))
> + continue;
> +
> for (k = 0; k < ARRAY_SIZE(multiplaneformatlist); k++) {
> p[0].formatindex = k;
>
> + if (igt_run_in_simulation() &&
> + (multiplaneformatlist[k] == DRM_FORMAT_P010 ||
> + multiplaneformatlist[k] == DRM_FORMAT_RGB565))
> + continue;
> +
> for (j = 0; j < ARRAY_SIZE(planeconfigs); j++) {
> p[1].fbinfo = &planeconfigs[j];
> pointlocation(data, p, mode, 1);
> @@ -857,6 +865,14 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
> for (l = 0; l < ARRAY_SIZE(multiplaneformatlist); l++) {
> p[1].formatindex = l;
>
> + if (!igt_plane_has_rotation(p[1].plane, planeconfigs[k].rotation))
> + continue;
> +
> + if (igt_run_in_simulation() &&
> + (multiplaneformatlist[k] == DRM_FORMAT_P010 ||
> + multiplaneformatlist[k] == DRM_FORMAT_RGB565))
> + continue;
> +
> if (!multiplaneskiproundcheck(data, p))
Looking at those new rules for skipping round I think they could all be
put inside this multiplaneskiproundcheck(..) so the main loop would be
less cluttered.
> continue;
>
> @@ -872,7 +888,8 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
>
> retcrc_sw = crclog[logindex];
> have_crc = true;
> - } else if(reusecrcfromlastround(p, lastroundjformat,
> + } else if(!igt_run_in_simulation() &&
> + reusecrcfromlastround(p, lastroundjformat,
> lastroundirotation,
> lastroundjrotation)) {
Here also simulation check could go into reusecrcfromlastround(..).
Otherwise thing look ok to me.
/Juha-Pekka
> /*
More information about the igt-dev
mailing list