amd/display: allow non-linear multi-planar formats

Simon Ser contact at emersion.fr
Fri Apr 9 13:19:31 UTC 2021


Hi,

Can you have a look at this patch?

Thanks,

Simon

On Friday, March 26th, 2021 at 5:59 PM, Simon Ser <contact at 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 at emersion.fr>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Harry Wentland <hwentlan at amd.com>
> Cc: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
> Cc: Bas Nieuwenhuizen <bas at 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;


More information about the amd-gfx mailing list