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

Modem, Bhanuprakash bhanuprakash.modem at intel.com
Mon Feb 27 06:43:20 UTC 2023


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>
> ---
>   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