[igt-dev] [PATCH i-g-t] tests/kms_lease: Set Aspect ratio client cap in case of legacy commit

Thasleem, Mohammed mohammed.thasleem at intel.com
Thu Mar 9 05:26:35 UTC 2023



-----Original Message-----
From: Modem, Bhanuprakash <bhanuprakash.modem at intel.com> 
Sent: Monday, February 27, 2023 12:13 PM
To: Nautiyal, Ankit K <ankit.k.nautiyal at intel.com>; igt-dev at lists.freedesktop.org
Cc: Thasleem, Mohammed <mohammed.thasleem at intel.com>
Subject: Re: [PATCH i-g-t] tests/kms_lease: Set Aspect ratio client cap in case of legacy commit

Hi Ankit,

On Mon-27-02-2023 11:24 am, Ankit Nautiyal wrote:
> For clients setting DRM_CLIENT_CAP_ATOMIC, the support for aspect 
> ratio bits in mode flags is enabled by default. For legacy commit, 
> clients need to set the aspect ratio cap explicitly, if they want to 
> set aspect ratio bits in the mode flags.
> Currently in case of setcrtc_implicit_plane, the client using the 
> lease does not set the aspect-ratio property before using setcrtc 
> ioctl. This creates a problem, when there are aspect-ratio bits 
> present in the mode flags. In such a case the setcrtc ioctl fails, as 
> driver expects the aspect ratio bits unset.
> 
> So set DRM_CLIENT_CAP_ASPECT_RATIO, if the mode flags do have aspect 
> ratio bits set, before calling the setcrtc ioctl.
> 
> v2: Set the aspect ratio client cap only for lesse.
-----------------------------------------------^
Nit: typo s/lesse/lease/

> 
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
Tested-by: Mohammed Thasleem <mohammed.thasleem at intel.com>
> ---
>   tests/kms_lease.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c index 
> 67e8d3bec700..61e1f7dccde7 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -345,6 +345,14 @@ static void setcrtc_implicit_plane(data_t *data)
>   	do_or_die(create_lease(data->master.fd, &mcl));
>   	drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 
> 1);
>   
> +	/*
> +	 * For Legacy commit, If userspace wants to send modes with aspect-ratio bits
> +	 * then the client cap for aspect-ratio bits must be set.
> +	 */
> +	if (mode->flags & DRM_MODE_FLAG_PIC_AR_MASK) {
> +		drmSetClientCap(mcl.fd, DRM_CLIENT_CAP_ASPECT_RATIO, 1);
> +	}

As drm_mode_setcrtc loctl checks for the lease access before checking the aspect-ratio bits, similar change is not required at [1].

[1]: 
https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/blob/master/tests/kms_lease.c#L364

Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>

- Bhanu

> +
>   	/* Set a mode on the leased output */
>   	igt_assert_eq(0, prepare_crtc(&data->master, data));
>   


More information about the igt-dev mailing list