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

Ville Syrjala
2019-03-27T20:08:42Z

From: Ville Syrjälä <ville.syrjala@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@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