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