[igt-dev] [PATCH i-g-t] tests/kms_rmfb: Ignore plane configuration errors

Ville Syrjala ville.syrjala at linux.intel.com
Wed Mar 27 20:08:39 UTC 2019


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

We may not be able to turn on all the planes (eg. due to memory
bandwidth limitations). Let's accept that fact and simply turn
on as many planes as we can.

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

diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c
index b1c81cb80b54..a7fcab87233a 100644
--- a/tests/kms_rmfb.c
+++ b/tests/kms_rmfb.c
@@ -58,6 +58,7 @@ test_rmfb(struct rmfb_data *data, igt_output_t *output, enum pipe pipe, bool reo
 	igt_plane_t *plane;
 	drmModeCrtc *crtc;
 	uint64_t cursor_width, cursor_height;
+	int num_active_planes = 0;
 
 	igt_output_set_pipe(output, pipe);
 
@@ -85,8 +86,25 @@ test_rmfb(struct rmfb_data *data, igt_output_t *output, enum pipe pipe, bool reo
 		} else {
 			igt_plane_set_fb(plane, &fb);
 		}
+
+		if (igt_display_try_commit2(&data->display, data->display.is_atomic ?
+					    COMMIT_ATOMIC : COMMIT_LEGACY)) {
+			/*
+			 * Disable any plane that fails (presumably
+			 * due to exceeding some hardware limit).
+			 */
+			igt_plane_set_fb(plane, NULL);
+		} else {
+			num_active_planes++;
+		}
 	}
 
+	/*
+	 * Make sure we were able to enable at least one
+	 * plane so that we actually test something.
+	 */
+	igt_assert_lt(0, num_active_planes);
+
 	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
 	crtc = drmModeGetCrtc(data->drm_fd, output->config.crtc->crtc_id);
-- 
2.19.2



More information about the igt-dev mailing list