[Intel-gfx] [PATCH i-g-t] kms_flip_tiling: [linear, X]<->[Y, Yf] tiling changes are not allowed
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Wed Apr 22 09:00:27 PDT 2015
From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
This matches the behaviour in kernel patch
"drm/i915/skl: Disallow tiling changes during page flip".
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
---
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
More information about the Intel-gfx
mailing list