From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> This matches the behaviour in kernel patch "drm/i915/skl: Disallow tiling changes during page flip". Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- tests/kms_flip_tiling.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tests/kms_flip_tiling.c b/tests/kms_flip_tiling.c index 8345505..3eef4cc 100644 --- a/tests/kms_flip_tiling.c +++ b/tests/kms_flip_tiling.c @@ -63,7 +63,7 @@ fill_linear_fb(struct igt_fb *fb, data_t *data, drmModeModeInfo *mode) } static void -test_flip_changes_tiling(data_t *data, igt_output_t *output, uint64_t tiling) +test_flip_changes_tiling(data_t *data, igt_output_t *output, uint64_t tiling, int expect) { struct igt_fb linear, tiled; drmModeModeInfo *mode; @@ -107,13 +107,15 @@ test_flip_changes_tiling(data_t *data, igt_output_t *output, uint64_t tiling) /* flip to the linear buffer */ ret = drmModePageFlip(data->drm_fd, output->config.crtc->crtc_id, fb_id, 0, NULL); - igt_assert_eq(ret, 0); + igt_assert_eq(ret, expect); - igt_wait_for_vblank(data->drm_fd, pipe); + if (expect == 0) { + igt_wait_for_vblank(data->drm_fd, pipe); - /* get a crc and compare with the reference */ - igt_pipe_crc_collect_crc(pipe_crc, &crc); - igt_assert_crc_equal(&reference_crc, &crc); + /* get a crc and compare with the reference */ + igt_pipe_crc_collect_crc(pipe_crc, &crc); + igt_assert_crc_equal(&reference_crc, &crc); + } /* clean up */ igt_plane_set_fb(primary, NULL); @@ -145,7 +147,8 @@ igt_main igt_subtest_f("flip-changes-tiling") { for_each_connected_output(&data.display, output) test_flip_changes_tiling(&data, output, - LOCAL_I915_FORMAT_MOD_X_TILED); + LOCAL_I915_FORMAT_MOD_X_TILED, + 0); } igt_subtest_f("flip-changes-tiling-Y") { @@ -154,7 +157,8 @@ igt_main for_each_connected_output(&data.display, output) test_flip_changes_tiling(&data, output, - LOCAL_I915_FORMAT_MOD_Y_TILED); + LOCAL_I915_FORMAT_MOD_Y_TILED, + -EINVAL); } igt_subtest_f("flip-changes-tiling-Yf") { @@ -163,7 +167,8 @@ igt_main for_each_connected_output(&data.display, output) test_flip_changes_tiling(&data, output, - LOCAL_I915_FORMAT_MOD_Yf_TILED); + LOCAL_I915_FORMAT_MOD_Yf_TILED, + -EINVAL); } igt_fixture { -- 2.3.5 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx