[igt-dev] [PATCH] tests/kms_plane_multiple: skip cursor plane on AMD HW

Mark Yacoub markyacoub at chromium.org
Thu Aug 25 14:36:51 UTC 2022


Thanks for the detailed commit message.

On Thu, Aug 25, 2022 at 3:57 AM Alex Hung <alex.hung at amd.com> wrote:
>
> DRM thinks of cursor and plane blending like this:
>
> ┌─────────┐
> │ Cursor  ├───────┐
> └─────────┘       │
>> ┌─────────┐      ┌▼──────┐
> │ Plane 1 ├──────► CRTC  │
> └─────────┘      └▲──────┘
>> ┌─────────┐       │
> │ Plane 2 ├───────┘
> └─────────┘
>
> AMD HW is designed like this:
>
> ┌─────────┐   ┌─────────┐      ┌───────┐
> │ Cursor  ├───► Plane 1 ├──────► CRTC  │
> └─────────┘   └─────────┘      └▲──────┘
>>               ┌─────────┐       │
>               │ Plane 2 ├───────┘
>               └─────────┘
>
> The implementation can cause CRC values to be
> different and not suitable to compare to values
> from other planes.
>
> Signed-off-by: Alex Hung <alex.hung at amd.com>
Assuming it's approved by Siquiera:
Reviewed-by: Mark Yacoub <markyacoub at chromium.org>
> ---
>  tests/kms_plane_multiple.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index 1679f7ce..f29c8f36 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -369,6 +369,14 @@ test_plane_position(data_t *data, enum pipe pipe, uint64_t modifier)
>         int n_planes = opt.all_planes ?
>                         data->display.pipes[pipe].n_planes : DEFAULT_N_PLANES;
>
> +       /*
> +        * Skip cursor (3rd) plane because AMD has different implementation
> +        * which cannot be drawn outside its associated plane and can cause
> +        * CRC values to be different from other planes.
> +        */
> +       if (is_amdgpu_device(data->drm_fd))
> +               n_planes = 2;
> +
>         output = igt_get_single_output_for_pipe(&data->display, pipe);
>         igt_require(output);
>
> --
> 2.37.2
>


More information about the igt-dev mailing list