All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit
@ 2017-03-23 12:48 Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 1/7] lib/igt_kms: Add forcing TEST_ONLY for atomic commits Mika Kahola
                   ` (7 more replies)
  0 siblings, 8 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

This test case adds TEST_ONLY flag to the following test cases to test
atomic commit correctness.

 - kms_plane_multiple
 - kms_atomic_transitions
 - kms_plane_scaling
 - kms_rotation_crc
 - kms_plane_lowres
 
The test randomly selects one of the above test cases and tests atomic
commit. If the test fails with TEST_ONLY flag the real deal atomic commit
is executed and the outcome is verified.

v2: Add flag to toggle TEST_ONLY for atomic commit.
    Remove DRM_MODE_PAGE_FLIP_EVENT flag, if enabled, before trying atomic
    commit with TEST_ONLY flag (Maarten)

v3: flag to indicate TEST_ONLY selection in igt core
    separate test cases for TEST_ONLY atomic commits (Maarten)

v4: Clear force_test_atomic flag if atomic commit fails (Maarten)

For: VIZ-6956

Mika Kahola (7):
  lib/igt_kms: Add forcing TEST_ONLY for atomic commits
  tests/kms_plane_multiple: Add TEST_ONLY flag Cc:
    maarten.lankhorst@linux.intel.com
  tests/kms_atomic_transition: Add TEST_ONLY flag
  tests/kms_plane_scaling: Add TEST_ONLY flag
  tests/kms_rotation_crc: Add TEST_ONLY flag
  tests/kms_plane_lowres: Add TEST_ONLY flag
  tests/kms_cursor_legacy: Add TEST_ONLY flag

 lib/igt_kms.c                 |  22 +++-
 lib/igt_kms.h                 |   1 +
 tests/kms_atomic_transition.c |  72 ++++++++++---
 tests/kms_cursor_legacy.c     | 230 +++++++++++++++++++++++++++++++++++++-----
 tests/kms_plane_lowres.c      |  40 +++++++-
 tests/kms_plane_multiple.c    |  48 +++++++--
 tests/kms_plane_scaling.c     |  28 +++--
 tests/kms_rotation_crc.c      | 139 +++++++++++++++++++++++++
 8 files changed, 518 insertions(+), 62 deletions(-)

-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 1/7] lib/igt_kms: Add forcing TEST_ONLY for atomic commits
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add an option to force atomic commits to do commits with TEST_ONLY flag
first before doing the actual commit.

v2: Clear force_test_atomic flag if atomic commit with TEST_ONLY
    flag fails (Maarten)

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 lib/igt_kms.c | 22 +++++++++++++++++++++-
 lib/igt_kms.h |  1 +
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index d9f9672..a687939 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2436,7 +2436,27 @@ static int igt_atomic_commit(igt_display_t *display, uint32_t flags, void *user_
 		igt_atomic_prepare_connector_commit(output, req);
 	}
 
-	ret = drmModeAtomicCommit(display->drm_fd, req, flags, user_data);
+	if (display->force_test_atomic &&
+	    !(flags & DRM_MODE_ATOMIC_TEST_ONLY)) {
+		unsigned int test_flags = flags & ~DRM_MODE_PAGE_FLIP_EVENT;
+		int test_ret;
+
+		test_flags |= DRM_MODE_ATOMIC_TEST_ONLY;
+
+		test_ret = drmModeAtomicCommit(display->drm_fd, req, test_flags, user_data);
+		ret = drmModeAtomicCommit(display->drm_fd, req, flags, user_data);
+
+		if (test_ret) {
+			if (test_ret != ret)
+				display->force_test_atomic = false;
+
+			igt_assert_eq(test_ret, ret);
+		} else {
+			igt_assert(ret != -EINVAL);
+		}
+	} else
+		ret = drmModeAtomicCommit(display->drm_fd, req, flags, user_data);
+
 	if (!ret) {
 
 		for_each_pipe(display, pipe) {
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 595832d..2972e94 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -368,6 +368,7 @@ struct igt_display {
 	igt_pipe_t *pipes;
 	bool has_cursor_plane;
 	bool is_atomic;
+	bool force_test_atomic;
 };
 
 void igt_display_init(igt_display_t *display, int drm_fd);
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 1/7] lib/igt_kms: Add forcing TEST_ONLY for atomic commits Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 13:02   ` [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 2/3] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic modesetting commits without
actual real-life commit.

v2: Use flag to indicate to test with TEST_ONLY flag with atomic
    commit

v3: Moved force_test_atomic flag set to 'test_plane_position()'

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 48 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 10 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 93dce6b..84fd411 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -365,7 +365,8 @@ test_legacy_plane_position_with_output(data_t *data, enum pipe pipe,
 }
 
 static void
-test_plane_position(data_t *data, enum pipe pipe, bool atomic, uint64_t tiling)
+test_plane_position(data_t *data, enum pipe pipe, bool atomic,
+		    bool force_test_atomic, uint64_t tiling)
 {
 	igt_output_t *output;
 	int connected_outs;
@@ -379,6 +380,8 @@ test_plane_position(data_t *data, enum pipe pipe, bool atomic, uint64_t tiling)
 	     tiling == LOCAL_I915_FORMAT_MOD_Yf_TILED))
 		igt_require(AT_LEAST_GEN(devid, 9));
 
+	data->display.force_test_atomic = force_test_atomic;
+
 	if (!opt.user_seed)
 		opt.seed = time(NULL);
 
@@ -421,46 +424,71 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
 		igt_require(data->display.pipes[pipe].n_planes > 0);
 	}
 
-
 	igt_subtest_f("legacy-pipe-%s-tiling-none",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_DRM_FORMAT_MOD_NONE);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_DRM_FORMAT_MOD_NONE);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-none",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-x",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-x",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-y",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_Y_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_Y_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-y",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_Y_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_Y_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-yf",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_Yf_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-yf",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_Yf_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-x-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-y-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-yf-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 }
 
 static data_t data;
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 2/3] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 1/7] lib/igt_kms: Add forcing TEST_ONLY for atomic commits Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 3/7] tests/kms_atomic_transition: Add TEST_ONLY flag Mika Kahola
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic modesetting commits without
actual real-life commit.

v2: Use flag to indicate to test with TEST_ONLY flag with atomic
    commit

v3: Moved force_test_atomic flag set to 'test_plane_position()'

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 48 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 10 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 93dce6b..84fd411 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -365,7 +365,8 @@ test_legacy_plane_position_with_output(data_t *data, enum pipe pipe,
 }
 
 static void
-test_plane_position(data_t *data, enum pipe pipe, bool atomic, uint64_t tiling)
+test_plane_position(data_t *data, enum pipe pipe, bool atomic,
+		    bool force_test_atomic, uint64_t tiling)
 {
 	igt_output_t *output;
 	int connected_outs;
@@ -379,6 +380,8 @@ test_plane_position(data_t *data, enum pipe pipe, bool atomic, uint64_t tiling)
 	     tiling == LOCAL_I915_FORMAT_MOD_Yf_TILED))
 		igt_require(AT_LEAST_GEN(devid, 9));
 
+	data->display.force_test_atomic = force_test_atomic;
+
 	if (!opt.user_seed)
 		opt.seed = time(NULL);
 
@@ -421,46 +424,71 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
 		igt_require(data->display.pipes[pipe].n_planes > 0);
 	}
 
-
 	igt_subtest_f("legacy-pipe-%s-tiling-none",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_DRM_FORMAT_MOD_NONE);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_DRM_FORMAT_MOD_NONE);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-none",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-x",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-x",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-y",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_Y_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_Y_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-y",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_Y_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_Y_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-yf",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_Yf_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-yf",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_Yf_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-x-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-y-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-yf-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 }
 
 static data_t data;
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 3/7] tests/kms_atomic_transition: Add TEST_ONLY flag
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
                   ` (2 preceding siblings ...)
  2017-03-23 12:48 ` [PATCH i-g-t v4 2/3] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 4/7] tests/kms_plane_scaling: " Mika Kahola
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic transition display commits without
actual real-life commit.

v2: use flag to force atomic commit with TEST_ONLY flag
v3: Rebase

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_atomic_transition.c | 72 +++++++++++++++++++++++++++++++++++--------
 1 file changed, 59 insertions(+), 13 deletions(-)

diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 70bff20..466280e 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -397,7 +397,8 @@ static void atomic_commit(igt_display_t *display, enum pipe pipe, unsigned int f
  */
 static void
 run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output,
-		enum transition_type type, bool nonblocking, bool fencing)
+		    enum transition_type type, bool nonblocking, bool fencing,
+		    bool force_test_atomic)
 {
 	struct igt_fb fb, argb_fb, sprite_fb;
 	drmModeModeInfo *mode, override_mode;
@@ -408,6 +409,8 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
 	unsigned flags = DRM_MODE_PAGE_FLIP_EVENT;
 	int ret;
 
+	display->force_test_atomic = force_test_atomic;
+
 	if (fencing)
 		prepare_fencing(display, pipe);
 
@@ -782,12 +785,15 @@ cleanup:
 
 }
 
-static void run_modeset_transition(igt_display_t *display, int requested_outputs, bool nonblocking, bool fencing)
+static void run_modeset_transition(igt_display_t *display, int requested_outputs,
+				   bool nonblocking, bool fencing, bool force_test_atomic)
 {
 	igt_output_t *outputs[I915_MAX_PIPES] = {};
 	int num_outputs = 0;
 	enum pipe pipe;
 
+	display->force_test_atomic = force_test_atomic;
+
 	for_each_pipe(display, pipe) {
 		igt_output_t *output;
 
@@ -845,44 +851,84 @@ igt_main
 
 	igt_subtest("plane-all-transition")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_PLANES, false, false);
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, false, false, false);
+
+	igt_subtest("plane-all-transition-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, false, false, true);
 
 	igt_subtest("plane-all-transition-fencing")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_PLANES, false, true);
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, false, true, false);
+
+	igt_subtest("plane-all-transition-fencing-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, false, true, true);
 
 	igt_subtest("plane-all-transition-nonblocking")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, false);
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, false, false);
+
+	igt_subtest("plane-all-transition-nonblocking-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, false, true);
 
 	igt_subtest("plane-all-transition-nonblocking-fencing")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, true);
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, true, false);
+
+	igt_subtest("plane-all-transition-nonblocking-fencing-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, true, true);
 
 	igt_subtest("plane-all-modeset-transition")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
+		        run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false, false);
+
+	igt_subtest("plane-all-modeset-transition-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false, true);
 
 	igt_subtest("plane-all-modeset-transition-fencing")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true);
+		        run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true, false);
+
+	igt_subtest("plane-all-modeset-transition-fencing-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, true, true);
 
 	igt_subtest("plane-toggle-modeset-transition")
 		for_each_pipe_with_valid_output(&display, pipe, output)
-			run_transition_test(&display, pipe, output, TRANSITION_MODESET_DISABLE, false, false);
+		        run_transition_test(&display, pipe, output, TRANSITION_MODESET_DISABLE, false, false, false);
+
+	igt_subtest("plane-toggle-modeset-transition-with-test")
+		for_each_pipe_with_valid_output(&display, pipe, output)
+		        run_transition_test(&display, pipe, output, TRANSITION_MODESET_DISABLE, false, false, true);
 
 	for (i = 1; i <= I915_MAX_PIPES; i++) {
 		igt_subtest_f("%ix-modeset-transitions", i)
-			run_modeset_transition(&display, i, false, false);
+			run_modeset_transition(&display, i, false, false, false);
+
+		igt_subtest_f("%ix-modeset-transitions-with-test", i)
+			run_modeset_transition(&display, i, false, false, true);
 
 		igt_subtest_f("%ix-modeset-transitions-nonblocking", i)
-			run_modeset_transition(&display, i, true, false);
+			run_modeset_transition(&display, i, true, false, false);
+
+		igt_subtest_f("%ix-modeset-transitions-nonblocking-with-test", i)
+			run_modeset_transition(&display, i, true, false, true);
 
 		igt_subtest_f("%ix-modeset-transitions-fencing", i)
-			run_modeset_transition(&display, i, false, true);
+			run_modeset_transition(&display, i, false, true, false);
+
+		igt_subtest_f("%ix-modeset-transitions-fencing-with-test", i)
+			run_modeset_transition(&display, i, false, true, true);
 
 		igt_subtest_f("%ix-modeset-transitions-nonblocking-fencing", i)
-			run_modeset_transition(&display, i, true, true);
+			run_modeset_transition(&display, i, true, true, false);
+
+		igt_subtest_f("%ix-modeset-transitions-nonblocking-fencing-with-test", i)
+			run_modeset_transition(&display, i, true, true, true);
 	}
 
 	igt_fixture {
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 4/7] tests/kms_plane_scaling: Add TEST_ONLY flag
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
                   ` (3 preceding siblings ...)
  2017-03-23 12:48 ` [PATCH i-g-t v4 3/7] tests/kms_atomic_transition: Add TEST_ONLY flag Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 5/7] tests/kms_rotation_crc: " Mika Kahola
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic scaling without
actually committing the changes.

v2: Create subtests with TEST_ONLY flag and one without
v3: Rename subtest 'force-atomic-test' as 'with-atomic-test'

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_scaling.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 1457894..8db91c3 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -310,21 +310,33 @@ static void test_plane_scaling(data_t *d)
 	igt_require_f(valid_tests, "no valid crtc/connector combinations found\n");
 }
 
-igt_simple_main
+igt_main
 {
 	data_t data = {};
 
 	igt_skip_on_simulation();
 
+	igt_fixture {
+		data.drm_fd = drm_open_driver(DRIVER_INTEL);
+		igt_require_pipe_crc(data.drm_fd);
+		igt_display_init(&data.display, data.drm_fd);
+		data.devid = intel_get_drm_devid(data.drm_fd);
+		data.num_scalers = intel_gen(data.devid) >= 9 ? 2 : 0;
+	}
 
-	data.drm_fd = drm_open_driver(DRIVER_INTEL);
-	igt_require_pipe_crc(data.drm_fd);
-	igt_display_init(&data.display, data.drm_fd);
-	data.devid = intel_get_drm_devid(data.drm_fd);
+	igt_subtest("with-atomic-test") {
+		data.display.force_test_atomic = true;
+		test_plane_scaling(&data);
+	}
 
-	data.num_scalers = intel_gen(data.devid) >= 9 ? 2 : 0;
+	igt_subtest("normal") {
+		data.display.force_test_atomic = false;
+		test_plane_scaling(&data);
+	}
 
-	test_plane_scaling(&data);
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
 
-	igt_display_fini(&data.display);
+	igt_exit();
 }
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 5/7] tests/kms_rotation_crc: Add TEST_ONLY flag
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
                   ` (4 preceding siblings ...)
  2017-03-23 12:48 ` [PATCH i-g-t v4 4/7] tests/kms_plane_scaling: " Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 6/7] tests/kms_plane_lowres: " Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 7/7] tests/kms_cursor_legacy: " Mika Kahola
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic modesetting commits without
actual real-life commit.

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_rotation_crc.c | 139 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 139 insertions(+)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 4347884..68e9326 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -522,46 +522,109 @@ igt_main
 		igt_display_init(&data.display, data.gfx_fd);
 	}
 	igt_subtest_f("primary-rotation-180") {
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_180;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
+	}
+
+	igt_subtest_f("primary-rotation-180-with-test") {
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_180;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
 	}
 
 	igt_subtest_f("sprite-rotation-180") {
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_180;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
+	}
+
+	igt_subtest_f("sprite-rotation-180-with-test") {
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_180;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
 	}
 
 	igt_subtest_f("cursor-rotation-180") {
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_180;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_CURSOR);
+	}
+
+	igt_subtest_f("cursor-rotation-180-with-test") {
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_180;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_CURSOR);
 	}
 
 	igt_subtest_f("primary-rotation-90") {
 		igt_require(gen >= 9);
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_90;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
+	}
+
+	igt_subtest_f("primary-rotation-90-with-test") {
+		igt_require(gen >= 9);
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_90;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
 	}
 
 	igt_subtest_f("primary-rotation-270") {
 		igt_require(gen >= 9);
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_270;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
+	}
+
+	igt_subtest_f("primary-rotation-270-with-test") {
+		igt_require(gen >= 9);
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_270;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
 	}
 
 	igt_subtest_f("sprite-rotation-90") {
 		igt_require(gen >= 9);
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_90;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
+	}
+
+	igt_subtest_f("sprite-rotation-90-with-test") {
+		igt_require(gen >= 9);
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_90;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
 	}
 
 	igt_subtest_f("sprite-rotation-270") {
 		igt_require(gen >= 9);
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_270;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
+	}
+
+	igt_subtest_f("sprite-rotation-270-with-test") {
+		igt_require(gen >= 9);
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_270;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
 	}
 
 	igt_subtest_f("sprite-rotation-90-pos-100-0") {
 		igt_require(gen >= 9);
+		data.display.force_test_atomic = false;
+		data.rotation = IGT_ROTATION_90;
+		data.pos_x = 100,
+		data.pos_y = 0;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY);
+	}
+
+	igt_subtest_f("sprite-rotation-90-pos-100-0-with-test") {
+		igt_require(gen >= 9);
+		data.display.force_test_atomic = true;
 		data.rotation = IGT_ROTATION_90;
 		data.pos_x = 100,
 		data.pos_y = 0;
@@ -574,6 +637,17 @@ igt_main
 		data.pos_y = 0;
 		data.rotation = IGT_ROTATION_90;
 		data.override_fmt = DRM_FORMAT_RGB565;
+		data.display.force_test_atomic = false;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
+	}
+
+	igt_subtest_f("bad-pixel-format-with-test") {
+		igt_require(gen >= 9);
+		data.pos_x = 0,
+		data.pos_y = 0;
+		data.rotation = IGT_ROTATION_90;
+		data.override_fmt = DRM_FORMAT_RGB565;
+		data.display.force_test_atomic = true;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
 	}
 
@@ -582,6 +656,16 @@ igt_main
 		data.override_fmt = 0;
 		data.rotation = IGT_ROTATION_90;
 		data.override_tiling = LOCAL_DRM_FORMAT_MOD_NONE;
+		data.display.force_test_atomic = false;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
+	}
+
+	igt_subtest_f("bad-tiling-with-test") {
+		igt_require(gen >= 9);
+		data.override_fmt = 0;
+		data.rotation = IGT_ROTATION_90;
+		data.override_tiling = LOCAL_DRM_FORMAT_MOD_NONE;
+		data.display.force_test_atomic = true;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
 	}
 
@@ -590,6 +674,16 @@ igt_main
 		data.override_tiling = 0;
 		data.flip_stress = 60;
 		data.rotation = IGT_ROTATION_90;
+		data.display.force_test_atomic = false;
+		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
+	}
+
+	igt_subtest_f("primary-rotation-90-flip-stress-with-test") {
+		igt_require(gen >= 9);
+		data.override_tiling = 0;
+		data.flip_stress = 60;
+		data.rotation = IGT_ROTATION_90;
+		data.display.force_test_atomic = true;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
 	}
 
@@ -600,6 +694,28 @@ igt_main
 
 		igt_require(gen >= 9);
 		data.rotation = IGT_ROTATION_90;
+		data.display.force_test_atomic = false;
+
+		for_each_pipe_with_valid_output(&data.display, pipe, output) {
+			igt_output_set_pipe(output, pipe);
+
+			test_plane_rotation_ytiled_obj(&data, output, DRM_PLANE_TYPE_PRIMARY);
+
+			valid_tests++;
+			break;
+		}
+
+		igt_require_f(valid_tests, "no valid crtc/connector combinations found\n");
+	}
+
+	igt_subtest_f("primary-rotation-90-Y-tiled-with-test") {
+		enum pipe pipe;
+		igt_output_t *output;
+		int valid_tests = 0;
+
+		igt_require(gen >= 9);
+		data.rotation = IGT_ROTATION_90;
+		data.display.force_test_atomic = true;
 
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
 			igt_output_set_pipe(output, pipe);
@@ -620,6 +736,29 @@ igt_main
 
 		igt_require(gen >= 9);
 
+		data.display.force_test_atomic = false;
+
+		for_each_pipe_with_valid_output(&data.display, pipe, output) {
+			igt_output_set_pipe(output, pipe);
+
+			test_plane_rotation_exhaust_fences(&data, output, DRM_PLANE_TYPE_PRIMARY);
+
+			valid_tests++;
+			break;
+		}
+
+		igt_require_f(valid_tests, "no valid crtc/connector combinations found\n");
+	}
+
+	igt_subtest_f("exhaust-fences-with-test") {
+		enum pipe pipe;
+		igt_output_t *output;
+		int valid_tests = 0;
+
+		igt_require(gen >= 9);
+
+		data.display.force_test_atomic = true;
+
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
 			igt_output_set_pipe(output, pipe);
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 6/7] tests/kms_plane_lowres: Add TEST_ONLY flag
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
                   ` (5 preceding siblings ...)
  2017-03-23 12:48 ` [PATCH i-g-t v4 5/7] tests/kms_rotation_crc: " Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  2017-03-23 12:48 ` [PATCH i-g-t v4 7/7] tests/kms_cursor_legacy: " Mika Kahola
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic modesetting commits without
actual real-life commit.

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_lowres.c | 40 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 36 insertions(+), 4 deletions(-)

diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index 6f15960..e6cf06f 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -318,21 +318,53 @@ test_plane_position(data_t *data, enum pipe pipe, uint64_t modifier)
 static void
 run_tests_for_pipe(data_t *data, enum pipe pipe)
 {
+	igt_subtest_f("pipe-%s-tiling-none-with-test",
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = true;
+		test_plane_position(data, pipe, LOCAL_DRM_FORMAT_MOD_NONE);
+	}
+
 	igt_subtest_f("pipe-%s-tiling-none",
-		      kmstest_pipe_name(pipe))
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = false;
 		test_plane_position(data, pipe, LOCAL_DRM_FORMAT_MOD_NONE);
+	}
+
+	igt_subtest_f("pipe-%s-tiling-x-with-test",
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = true;
+		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_X_TILED);
+	}
 
 	igt_subtest_f("pipe-%s-tiling-x",
-		      kmstest_pipe_name(pipe))
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = false;
 		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_X_TILED);
+	}
+
+	igt_subtest_f("pipe-%s-tiling-y-with-test",
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = true;
+		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_Y_TILED);
+	}
 
 	igt_subtest_f("pipe-%s-tiling-y",
-		      kmstest_pipe_name(pipe))
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = false;
 		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_Y_TILED);
+	}
+
+	igt_subtest_f("pipe-%s-tiling-yf-with-test",
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = true;
+		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+	}
 
 	igt_subtest_f("pipe-%s-tiling-yf",
-		      kmstest_pipe_name(pipe))
+		      kmstest_pipe_name(pipe)) {
+		data->display.force_test_atomic = false;
 		test_plane_position(data, pipe, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+	}
 }
 
 static data_t data;
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 7/7] tests/kms_cursor_legacy: Add TEST_ONLY flag
  2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
                   ` (6 preceding siblings ...)
  2017-03-23 12:48 ` [PATCH i-g-t v4 6/7] tests/kms_plane_lowres: " Mika Kahola
@ 2017-03-23 12:48 ` Mika Kahola
  7 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 12:48 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic modesetting commits without
actual real-life commit.

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_cursor_legacy.c | 230 ++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 204 insertions(+), 26 deletions(-)

diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index 8a8c71b..6f79ad8 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -1441,53 +1441,165 @@ igt_main
 	igt_subtest("all-pipes-torture-move")
 		stress(&display, -1, -ncpus, DRM_MODE_CURSOR_MOVE, 20);
 
-	igt_subtest("nonblocking-modeset-vs-cursor-atomic")
+	igt_subtest("nonblocking-modeset-vs-cursor-atomic") {
+		display.force_test_atomic = false;
 		nonblocking_modeset_vs_cursor(&display, 1);
+	}
 
-	igt_subtest("long-nonblocking-modeset-vs-cursor-atomic")
+	igt_subtest("nonblocking-modeset-vs-cursor-atomic-with-test") {
+		display.force_test_atomic = true;
+		nonblocking_modeset_vs_cursor(&display, 1);
+	}
+
+	igt_subtest("long-nonblocking-modeset-vs-cursor-atomic") {
+		display.force_test_atomic = false;
+		nonblocking_modeset_vs_cursor(&display, 16);
+	}
+
+	igt_subtest("long-nonblocking-modeset-vs-cursor-atomic-with-test") {
+		display.force_test_atomic = true;
 		nonblocking_modeset_vs_cursor(&display, 16);
+	}
 
-	igt_subtest("2x-flip-vs-cursor-legacy")
+	igt_subtest("2x-flip-vs-cursor-legacy") {
+		display.force_test_atomic = false;
 		two_screens_flip_vs_cursor(&display, 8, false, false);
+	}
+
+	igt_subtest("2x-flip-vs-cursor-legacy-with-test") {
+		display.force_test_atomic = true;
+		two_screens_flip_vs_cursor(&display, 8, false, false);
+	}
+
+	igt_subtest("2x-flip-vs-cursor-atomic") {
+		display.force_test_atomic = false;
+		two_screens_flip_vs_cursor(&display, 4, false, true);
+	}
 
-	igt_subtest("2x-flip-vs-cursor-atomic")
+	igt_subtest("2x-flip-vs-cursor-atomic-with-test") {
+		display.force_test_atomic = true;
 		two_screens_flip_vs_cursor(&display, 4, false, true);
+	}
 
-	igt_subtest("2x-cursor-vs-flip-legacy")
+	igt_subtest("2x-cursor-vs-flip-legacy") {
+		display.force_test_atomic = false;
 		two_screens_cursor_vs_flip(&display, 8, false);
+	}
 
-	igt_subtest("2x-long-flip-vs-cursor-legacy")
+	igt_subtest("2x-cursor-vs-flip-legacy-with-test") {
+		display.force_test_atomic = true;
+		two_screens_cursor_vs_flip(&display, 8, false);
+	}
+
+	igt_subtest("2x-long-flip-vs-cursor-legacy") {
+		display.force_test_atomic = false;
+		two_screens_flip_vs_cursor(&display, 150, false, false);
+	}
+
+	igt_subtest("2x-long-flip-vs-cursor-legacy-with-test") {
+		display.force_test_atomic = true;
 		two_screens_flip_vs_cursor(&display, 150, false, false);
+	}
 
-	igt_subtest("2x-long-flip-vs-cursor-atomic")
+	igt_subtest("2x-long-flip-vs-cursor-atomic") {
+		display.force_test_atomic = false;
 		two_screens_flip_vs_cursor(&display, 150, false, true);
+	}
+
+	igt_subtest("2x-long-flip-vs-cursor-atomic-with-test") {
+		display.force_test_atomic = true;
+		two_screens_flip_vs_cursor(&display, 150, false, true);
+	}
+
+	igt_subtest("2x-long-cursor-vs-flip-legacy") {
+		display.force_test_atomic = false;
+		two_screens_cursor_vs_flip(&display, 50, false);
+	}
 
-	igt_subtest("2x-long-cursor-vs-flip-legacy")
+	igt_subtest("2x-long-cursor-vs-flip-legacy-with-test") {
+		display.force_test_atomic = true;
 		two_screens_cursor_vs_flip(&display, 50, false);
+	}
 
-	igt_subtest("2x-nonblocking-modeset-vs-cursor-atomic")
+	igt_subtest("2x-nonblocking-modeset-vs-cursor-atomic") {
+		display.force_test_atomic = false;
 		two_screens_flip_vs_cursor(&display, 8, true, true);
+	}
 
-	igt_subtest("2x-cursor-vs-flip-atomic")
+	igt_subtest("2x-nonblocking-modeset-vs-cursor-atomic-with-test") {
+		display.force_test_atomic = true;
+		two_screens_flip_vs_cursor(&display, 8, true, true);
+	}
+
+	igt_subtest("2x-cursor-vs-flip-atomic") {
+		display.force_test_atomic = false;
+		two_screens_cursor_vs_flip(&display, 8, true);
+	}
+
+	igt_subtest("2x-cursor-vs-flip-atomic-with-test") {
+		display.force_test_atomic = true;
 		two_screens_cursor_vs_flip(&display, 8, true);
+	}
 
-	igt_subtest("2x-long-nonblocking-modeset-vs-cursor-atomic")
+	igt_subtest("2x-long-nonblocking-modeset-vs-cursor-atomic") {
+		display.force_test_atomic = false;
 		two_screens_flip_vs_cursor(&display, 150, true, true);
+	}
+
+	igt_subtest("2x-long-nonblocking-modeset-vs-cursor-atomic-with-test") {
+		display.force_test_atomic = true;
+		two_screens_flip_vs_cursor(&display, 150, true, true);
+	}
+
+	igt_subtest("2x-long-cursor-vs-flip-atomic") {
+		display.force_test_atomic = false;
+		two_screens_cursor_vs_flip(&display, 50, true);
+	}
 
-	igt_subtest("2x-long-cursor-vs-flip-atomic")
+	igt_subtest("2x-long-cursor-vs-flip-atomic-with-test") {
+		display.force_test_atomic = true;
 		two_screens_cursor_vs_flip(&display, 50, true);
+	}
 
-	igt_subtest("flip-vs-cursor-crc-legacy")
+	igt_subtest("flip-vs-cursor-crc-legacy") {
+		display.force_test_atomic = false;
 		flip_vs_cursor_crc(&display, false);
+	}
 
-	igt_subtest("flip-vs-cursor-crc-atomic")
+	igt_subtest("flip-vs-cursor-crc-legacy-with-test") {
+		display.force_test_atomic = true;
+		flip_vs_cursor_crc(&display, false);
+	}
+
+	igt_subtest("flip-vs-cursor-crc-atomic") {
+		display.force_test_atomic = false;
+		flip_vs_cursor_crc(&display, true);
+	}
+
+	igt_subtest("flip-vs-cursor-crc-atomic-with-test") {
+		display.force_test_atomic = true;
 		flip_vs_cursor_crc(&display, true);
+	}
 
-	igt_subtest("flip-vs-cursor-busy-crc-legacy")
+	igt_subtest("flip-vs-cursor-busy-crc-legacy") {
+		display.force_test_atomic = false;
 		flip_vs_cursor_busy_crc(&display, false);
+	}
+
+	igt_subtest("flip-vs-cursor-busy-crc-legacy-with-test") {
+		display.force_test_atomic = true;
+		flip_vs_cursor_busy_crc(&display, false);
+	}
+
+	igt_subtest("flip-vs-cursor-busy-crc-atomic") {
+		display.force_test_atomic = false;
+		flip_vs_cursor_busy_crc(&display, true);
+	}
 
-	igt_subtest("flip-vs-cursor-busy-crc-atomic")
+	igt_subtest("flip-vs-cursor-busy-crc-atomic-with-test") {
+		display.force_test_atomic = true;
 		flip_vs_cursor_busy_crc(&display, true);
+	}
 
 	for (i = 0; i <= flip_test_last; i++) {
 		const char *modes[flip_test_last+1] = {
@@ -1509,33 +1621,99 @@ igt_main
 		default: break;
 		}
 
-		igt_subtest_f("%sflip-before-cursor-%s", prefix, modes[i])
+		igt_subtest_f("%sflip-before-cursor-%s", prefix, modes[i]) {
+			display.force_test_atomic = false;
 			basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR, 0);
+		}
 
-		if (!cursor_slowpath(i))
-			igt_subtest_f("%sbusy-flip-before-cursor-%s", prefix, modes[i])
+		igt_subtest_f("%sflip-before-cursor-%s-with-test", prefix, modes[i]) {
+			display.force_test_atomic = true;
+			basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR, 0);
+		}
+
+		if (!cursor_slowpath(i)) {
+			igt_subtest_f("%sbusy-flip-before-cursor-%s", prefix, modes[i]) {
+				display.force_test_atomic = false;
+				basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR,
+						  BASIC_BUSY);
+			}
+
+			igt_subtest_f("%sbusy-flip-before-cursor-%s-with-test", prefix, modes[i]) {
+				display.force_test_atomic = true;
 				basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR,
 						  BASIC_BUSY);
+			}
+		}
 
-		igt_subtest_f("%sflip-after-cursor-%s", prefix, modes[i])
+		igt_subtest_f("%sflip-after-cursor-%s", prefix, modes[i]) {
+			display.force_test_atomic = false;
 			basic_flip_cursor(&display, i, FLIP_AFTER_CURSOR, 0);
+		}
 
-		igt_subtest_f("flip-vs-cursor-%s", modes[i])
+		igt_subtest_f("%sflip-after-cursor-%s-with-test", prefix, modes[i]) {
+			display.force_test_atomic = true;
+			basic_flip_cursor(&display, i, FLIP_AFTER_CURSOR, 0);
+		}
+
+		igt_subtest_f("flip-vs-cursor-%s", modes[i]) {
+			display.force_test_atomic = false;
 			flip_vs_cursor(&display, i, 150);
-		igt_subtest_f("cursor-vs-flip-%s", modes[i])
+		}
+
+		igt_subtest_f("flip-vs-cursor-%s-with-test", modes[i]) {
+			display.force_test_atomic = true;
+			flip_vs_cursor(&display, i, 150);
+		}
+
+		igt_subtest_f("cursor-vs-flip-%s", modes[i]) {
+			display.force_test_atomic = false;
 			cursor_vs_flip(&display, i, 50);
+		}
 
-		igt_subtest_f("cursorA-vs-flipA-%s", modes[i])
+		igt_subtest_f("cursor-vs-flip-%s-with-test", modes[i]) {
+			display.force_test_atomic = true;
+			cursor_vs_flip(&display, i, 50);
+		}
+
+		igt_subtest_f("cursorA-vs-flipA-%s", modes[i]) {
+			display.force_test_atomic = false;
 			flip(&display, 0, 0, 10, i);
+		}
+
+		igt_subtest_f("cursorA-vs-flipA-%s-with-test", modes[i]) {
+			display.force_test_atomic = true;
+			flip(&display, 0, 0, 10, i);
+		}
+
+		igt_subtest_f("cursorA-vs-flipB-%s", modes[i]) {
+			display.force_test_atomic = false;
+			flip(&display, 0, 1, 10, i);
+		}
 
-		igt_subtest_f("cursorA-vs-flipB-%s", modes[i])
+		igt_subtest_f("cursorA-vs-flipB-%s-with-test", modes[i]) {
+			display.force_test_atomic = true;
 			flip(&display, 0, 1, 10, i);
+		}
+
+		igt_subtest_f("cursorB-vs-flipA-%s", modes[i]) {
+			display.force_test_atomic = false;
+			flip(&display, 1, 0, 10, i);
+		}
 
-		igt_subtest_f("cursorB-vs-flipA-%s", modes[i])
+		igt_subtest_f("cursorB-vs-flipA-%s-with-test", modes[i]) {
+			display.force_test_atomic = true;
 			flip(&display, 1, 0, 10, i);
+		}
+
+		igt_subtest_f("cursorB-vs-flipB-%s", modes[i]) {
+			display.force_test_atomic = false;
+			flip(&display, 1, 1, 10, i);
+		}
 
-		igt_subtest_f("cursorB-vs-flipB-%s", modes[i])
+		igt_subtest_f("cursorB-vs-flipB-%s-with-test", modes[i]) {
+			display.force_test_atomic = true;
 			flip(&display, 1, 1, 10, i);
+		}
 	}
 
 	igt_fixture {
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag
  2017-03-23 12:48 ` [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
@ 2017-03-23 13:02   ` Mika Kahola
  0 siblings, 0 replies; 10+ messages in thread
From: Mika Kahola @ 2017-03-23 13:02 UTC (permalink / raw)
  To: intel-gfx

Add TEST_ONLY flag to test atomic modesetting commits without
actual real-life commit.

v2: Use flag to indicate to test with TEST_ONLY flag with atomic
    commit

v3: Moved force_test_atomic flag set to 'test_plane_position()'
v4: Fix typo in subject field

Signed-off-by: Mika Kahola <mika.kahola@intel.com>
---
 tests/kms_plane_multiple.c | 48 ++++++++++++++++++++++++++++++++++++----------
 1 file changed, 38 insertions(+), 10 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 93dce6b..84fd411 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -365,7 +365,8 @@ test_legacy_plane_position_with_output(data_t *data, enum pipe pipe,
 }
 
 static void
-test_plane_position(data_t *data, enum pipe pipe, bool atomic, uint64_t tiling)
+test_plane_position(data_t *data, enum pipe pipe, bool atomic,
+		    bool force_test_atomic, uint64_t tiling)
 {
 	igt_output_t *output;
 	int connected_outs;
@@ -379,6 +380,8 @@ test_plane_position(data_t *data, enum pipe pipe, bool atomic, uint64_t tiling)
 	     tiling == LOCAL_I915_FORMAT_MOD_Yf_TILED))
 		igt_require(AT_LEAST_GEN(devid, 9));
 
+	data->display.force_test_atomic = force_test_atomic;
+
 	if (!opt.user_seed)
 		opt.seed = time(NULL);
 
@@ -421,46 +424,71 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
 		igt_require(data->display.pipes[pipe].n_planes > 0);
 	}
 
-
 	igt_subtest_f("legacy-pipe-%s-tiling-none",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_DRM_FORMAT_MOD_NONE);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_DRM_FORMAT_MOD_NONE);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-none",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-x",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-x",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_X_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-y",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_Y_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_Y_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-y",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_Y_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_Y_TILED);
 
 	igt_subtest_f("legacy-pipe-%s-tiling-yf",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, false, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+			test_plane_position(data, pipe, false, false,
+					    LOCAL_I915_FORMAT_MOD_Yf_TILED);
 
 	igt_subtest_f("atomic-pipe-%s-tiling-yf",
 		      kmstest_pipe_name(pipe))
 		for_each_valid_output_on_pipe(&data->display, pipe, output)
-			test_plane_position(data, pipe, true, LOCAL_I915_FORMAT_MOD_Yf_TILED);
+			test_plane_position(data, pipe, true, false,
+					    LOCAL_I915_FORMAT_MOD_Yf_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-x-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-y-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
+
+	igt_subtest_f("atomic-pipe-%s-tiling-yf-with-test",
+		      kmstest_pipe_name(pipe))
+		for_each_valid_output_on_pipe(&data->display, pipe, output)
+			test_plane_position(data, pipe, true, true,
+					    LOCAL_I915_FORMAT_MOD_X_TILED);
 }
 
 static data_t data;
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-03-23 13:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-23 12:48 [PATCH i-g-t v4 0/7] Validate TEST_ONLY correctness against full atomic commit Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 1/7] lib/igt_kms: Add forcing TEST_ONLY for atomic commits Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
2017-03-23 13:02   ` [PATCH i-g-t v4 2/7] tests/kms_plane_multiple: Add TEST_ONLY flag Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 2/3] tests/kms_plane_multiple: Add TEST_ONLY flag Cc: maarten.lankhorst@linux.intel.com Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 3/7] tests/kms_atomic_transition: Add TEST_ONLY flag Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 4/7] tests/kms_plane_scaling: " Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 5/7] tests/kms_rotation_crc: " Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 6/7] tests/kms_plane_lowres: " Mika Kahola
2017-03-23 12:48 ` [PATCH i-g-t v4 7/7] tests/kms_cursor_legacy: " Mika Kahola

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.