Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>

On Fri, Apr 9, 2021 at 3:19 PM Simon Ser <contact@emersion.fr> wrote:
Hi,

Can you have a look at this patch?

Thanks,

Simon

On Friday, March 26th, 2021 at 5:59 PM, Simon Ser <contact@emersion.fr> wrote:

> Accept non-linear buffers which use a multi-planar format, as long
> as they don't use DCC.
>
> Tested on GFX9 with NV12.
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Harry Wentland <hwentlan@amd.com>
> Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
> Cc: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
> ---
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 36ee52104007..66e3ecf123d1 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4216,13 +4216,6 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,
>       if (modifier == DRM_FORMAT_MOD_LINEAR)
>               return true;
>
> -     /*
> -      * The arbitrary tiling support for multiplane formats has not been hooked
> -      * up.
> -      */
> -     if (info->num_planes > 1)
> -             return false;
> -
>       /*
>        * For D swizzle the canonical modifier depends on the bpp, so check
>        * it here.
> @@ -4241,6 +4234,10 @@ static bool dm_plane_format_mod_supported(struct drm_plane *plane,
>               /* Per radeonsi comments 16/64 bpp are more complicated. */
>               if (info->cpp[0] != 4)
>                       return false;
> +             /* We support multi-planar formats, but not when combined with
> +              * additional DCC metadata planes. */
> +             if (info->num_planes > 1)
> +                     return false;
>       }
>
>       return true;