[igt-dev] [PATCH 2/2][V4] tests/kms_universal_plane: Skip offscreen test for universal API

Mark Yacoub markyacoub at chromium.org
Tue Sep 6 13:50:27 UTC 2022


On Sat, Sep 3, 2022 at 1:48 PM Alex Hung <alex.hung at amd.com> wrote:
>
> amdgpu driver intentionally rejects plane outside of the screen and thus
> this test is skipped on AMD HW. See more details in kernel commits
> 40d916a2602c and 4abdb72bd8576 which are summarized as below:
>
> "Reject this condition (too small viewport size) at validation time.
> This gives the calling level a chance to handle this gracefully and
> avoid inconsistent behaviors."
>
> Signed-off-by: Alex Hung <alex.hung at amd.com>
Reviewed-by: Mark Yacoub <markyacoub at chromium.org>
> ---
>  tests/kms_universal_plane.c | 33 ++++++++++++++++++++-------------
>  1 file changed, 20 insertions(+), 13 deletions(-)
>
> diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
> index 9eab1a57..432f56ba 100644
> --- a/tests/kms_universal_plane.c
> +++ b/tests/kms_universal_plane.c
> @@ -241,17 +241,22 @@ functional_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
>         igt_plane_set_fb(sprite, &test.red_fb);
>         igt_display_commit2(display, COMMIT_LEGACY);
>
> -       /* Step 14: Universal API, set primary completely offscreen (CRC 9) */
> -       igt_assert(drmModeSetPlane(data->drm_fd, primary->drm_plane->plane_id,
> -                                  output->config.crtc->crtc_id,
> -                                  test.blue_fb.fb_id, 0,
> -                                  9000, 9000,
> -                                  test.mode->hdisplay,
> -                                  test.mode->vdisplay,
> -                                  IGT_FIXED(0,0), IGT_FIXED(0,0),
> -                                  IGT_FIXED(test.mode->hdisplay,0),
> -                                  IGT_FIXED(test.mode->vdisplay,0)) == 0);
> -       igt_pipe_crc_collect_crc(test.pipe_crc, &test.crc_9);
> +       /*
> +        * Step 14: Universal API, set primary completely offscreen (CRC 9).
> +        * Skip on amdgpu which rejects offscreen planes.
> +        */
> +       if (!is_amdgpu_device(data->drm_fd)) {
> +               igt_assert(drmModeSetPlane(data->drm_fd, primary->drm_plane->plane_id,
> +                                          output->config.crtc->crtc_id,
> +                                          test.blue_fb.fb_id, 0,
> +                                          9000, 9000,
> +                                          test.mode->hdisplay,
> +                                          test.mode->vdisplay,
> +                                          IGT_FIXED(0,0), IGT_FIXED(0,0),
> +                                          IGT_FIXED(test.mode->hdisplay,0),
> +                                          IGT_FIXED(test.mode->vdisplay,0)) == 0);
> +               igt_pipe_crc_collect_crc(test.pipe_crc, &test.crc_9);
> +       }
>
>         /*
>          * Step 15: Explicitly disable primary after it's already been
> @@ -289,9 +294,11 @@ functional_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
>
>         /*
>          * We should be able to move the primary plane completely offscreen
> -        * and have it disable successfully.
> +        * and have it disable successfully. Skip on amdgpu since crc_9 was
> +        * skipped with offscreen planes previously.
>          */
> -       igt_assert_crc_equal(&test.crc_5, &test.crc_9);
> +       if (!is_amdgpu_device(data->drm_fd))
> +               igt_assert_crc_equal(&test.crc_5, &test.crc_9);
>
>         /*
>          * We should be able to explicitly disable an already
> --
> 2.34.1
>


More information about the igt-dev mailing list