[igt-dev] [PATCH i-g-t] tests/kms_lease: Set Aspect ratio client cap in case of legacy commit
Ankit Nautiyal
ankit.k.nautiyal at intel.com
Mon Feb 27 05:54:09 UTC 2023
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.
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);
+ }
+
/* Set a mode on the leased output */
igt_assert_eq(0, prepare_crtc(&data->master, data));
--
2.25.1
More information about the igt-dev
mailing list