[igt-dev] [PATCH i-g-t] tests/kms_concurrent: Allow the test to proceed with fewer planes

Ville Syrjala ville.syrjala at linux.intel.com
Tue Apr 2 13:08:37 UTC 2019


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

We may not be able to enable all the planes simultaneously. In that
case just keep going with fewer planes. The test already requires
atomic so let's use TEST_ONLY unconditionally.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 tests/kms_concurrent.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index 117016dc44e8..d82ca0404839 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -184,6 +184,7 @@ prepare_planes(data_t *data, enum pipe pipe, int max_planes,
 	y[primary->index] = 0;
 	for (i = 0; i < max_planes; i++) {
 		igt_plane_t *plane = igt_output_get_plane(output, i);
+		int ret;
 
 		if (plane->type == DRM_PLANE_TYPE_PRIMARY)
 			continue;
@@ -206,7 +207,18 @@ prepare_planes(data_t *data, enum pipe pipe, int max_planes,
 
 		igt_plane_set_position(data->plane[i], x[i], y[i]);
 		igt_plane_set_fb(data->plane[i], &data->fb[i]);
+
+		ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
+		if (ret) {
+			igt_plane_set_fb(data->plane[i], NULL);
+			igt_remove_fb(data->drm_fd, &data->fb[i]);
+			data->plane[i] = NULL;
+			break;
+		}
 	}
+	max_planes = i;
+
+	igt_assert_lt(0, max_planes);
 
 	/* primary plane */
 	data->plane[primary->index] = primary;
-- 
2.19.2



More information about the igt-dev mailing list