[igt-dev] [PATCH i-g-t] tests/kms_plane_multiple: Limit plane testing to 3 planes by default

Mika Kahola mika.kahola at intel.com
Fri Aug 13 07:38:58 UTC 2021


To speed up test execution, let's limit planes to be tested to 3
by default. This reduces the test execution time especially in case
of platforms that offer higher number of overlay planes.

For example, the subtest atomic-pipe-A-tiling-x the execution times
on ADL-P

With 6 planes:
Testing connector eDP-1 using pipe A with 6 planes for 1 iteration with seed 1
Subtest atomic-pipe-A-tiling-x: SUCCESS (2,168s)

With 3 planes:
Testing connector eDP-1 using pipe A with 3 planes for 1 iteration with seed 1
Subtest atomic-pipe-A-tiling-x: SUCCESS (1,878s)

The downside of this is of course the reduced test coverage as all
available planes are not tested by default simultaneusly.

For VLK-11391

Signed-off-by: Mika Kahola <mika.kahola at intel.com>
---
 tests/kms_plane_multiple.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index bfeb8c07b..45cabb500 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -35,6 +35,7 @@ IGT_TEST_DESCRIPTION("Test atomic mode setting with multiple planes.");
 #define SIZE_PLANE      256
 #define SIZE_CURSOR     128
 #define LOOP_FOREVER     -1
+#define DEFAULT_N_PLANES  3
 
 typedef struct {
 	float red;
@@ -56,8 +57,10 @@ struct {
 	int iterations;
 	unsigned int seed;
 	bool user_seed;
+	bool all_planes;
 } opt = {
 	.iterations = 1,
+	.all_planes = false,
 };
 
 /*
@@ -361,7 +364,8 @@ static void
 test_plane_position(data_t *data, enum pipe pipe, uint64_t tiling)
 {
 	igt_output_t *output;
-	int n_planes = data->display.pipes[pipe].n_planes;
+	int n_planes = opt.all_planes ?
+			data->display.pipes[pipe].n_planes : DEFAULT_N_PLANES;
 
 	output = igt_get_single_output_for_pipe(&data->display, pipe);
 	igt_require(output);
@@ -401,6 +405,9 @@ static data_t data;
 static int opt_handler(int option, int option_index, void *input)
 {
 	switch (option) {
+	case 'a':
+		opt.all_planes = true;
+		break;
 	case 'i':
 		opt.iterations = strtol(optarg, NULL, 0);
 
@@ -423,11 +430,13 @@ static int opt_handler(int option, int option_index, void *input)
 
 const char *help_str =
 	"  --iterations Number of iterations for test coverage. -1 loop forever, default 64 iterations\n"
-	"  --seed       Seed for random number generator\n";
+	"  --seed       Seed for random number generator\n"
+	"  --all-planes Test with all available planes";
 
 struct option long_options[] = {
 	{ "iterations", required_argument, NULL, 'i'},
 	{ "seed",    required_argument, NULL, 's'},
+	{ "all-planes", no_argument, NULL, 'a'},
 	{ 0, 0, 0, 0 }
 };
 
-- 
2.27.0



More information about the igt-dev mailing list