[igt-dev] [PATCH i-g-t] tests/kms_plane_scaling: Test if pixel format supports rotation
Mika Kahola
mika.kahola at intel.com
Fri Apr 12 11:07:40 UTC 2019
Before actually do the commit with plane rotation, test if the pixel format
supports requested rotation. Kernel replies with -EINVAL when requested to do
rotation with the pixel format that is not supported. The patch uses this fact
to filter out unsupported pixel formats.
References: https://bugs.freedesktop.org/show_bug.cgi?id=109052
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110369
Signed-off-by: Mika Kahola <mika.kahola at intel.com>
---
tests/kms_plane_scaling.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index e843bf86..57092263 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -138,6 +138,7 @@ static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
igt_display_t *display = &d->display;
int width, height;
drmModeModeInfo *mode;
+ int errno;
cleanup_crtc(d);
@@ -158,7 +159,15 @@ static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
igt_plane_set_position(plane, 0, 0);
igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
igt_plane_set_rotation(plane, rot);
- igt_display_commit2(display, COMMIT_ATOMIC);
+
+ /*
+ * Test first, if pixel format supports rotation.
+ * We expect from kernel to return with -EINVAL
+ * if format is not supported.
+ */
+ errno = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+ if (errno != -EINVAL)
+ igt_display_commit2(display, COMMIT_ATOMIC);
igt_plane_set_fb(plane, NULL);
igt_plane_set_position(plane, 0, 0);
--
2.17.1
More information about the igt-dev
mailing list