* [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.