diff mbox

[i-g-t,v2,19/33] tests/kms_plane: Add support for dynamic number of planes

Message ID 20170124233400.5053-20-robert.foss@collabora.com (mailing list archive)
State New, archived
Headers show

Commit Message

Robert Foss Jan. 24, 2017, 11:33 p.m. UTC
Add changes reflecting the new support for dynamic number of planes per pipe.

Signed-off-by: Robert Foss <robert.foss@collabora.com>
---
 tests/kms_plane.c | 94 ++++++++++++++++++++++++++++++-------------------------
 1 file changed, 52 insertions(+), 42 deletions(-)

Comments

Kahola, Mika Jan. 25, 2017, 12:48 p.m. UTC | #1
On Tue, 2017-01-24 at 18:33 -0500, Robert Foss wrote:
> Add changes reflecting the new support for dynamic number of planes
> per pipe.
> 
> Signed-off-by: Robert Foss <robert.foss@collabora.com>
> ---
>  tests/kms_plane.c | 94 ++++++++++++++++++++++++++++++---------------
> ----------
>  1 file changed, 52 insertions(+), 42 deletions(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index e843a170..14c444fc 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -150,7 +150,7 @@ enum {
>  static void
>  test_plane_position_with_output(data_t *data,
>  				enum pipe pipe,
> -				enum igt_plane plane,
> +				int plane,
>  				igt_output_t *output,
>  				unsigned int flags)
>  {
> @@ -170,7 +170,7 @@ test_plane_position_with_output(data_t *data,
>  	igt_output_set_pipe(output, pipe);
>  
>  	mode = igt_output_get_mode(output);
> -	primary = igt_output_get_plane(output, 0);
> +	primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
>  	sprite = igt_output_get_plane(output, plane);
>  
>  	create_fb_for_mode__position(data, mode, 100, 100, 64, 64,
> @@ -222,7 +222,7 @@ test_plane_position_with_output(data_t *data,
>  }
>  
>  static void
> -test_plane_position(data_t *data, enum pipe pipe, enum igt_plane
> plane,
> +test_plane_position(data_t *data, enum pipe pipe, int plane,
>  		    unsigned int flags)
>  {
>  	igt_output_t *output;
> @@ -294,7 +294,7 @@ enum {
>  static void
>  test_plane_panning_with_output(data_t *data,
>  			       enum pipe pipe,
> -			       enum igt_plane plane,
> +			       int plane,
>  			       igt_output_t *output,
>  			       unsigned int flags)
>  {
> @@ -348,7 +348,7 @@ test_plane_panning_with_output(data_t *data,
>  }
>  
>  static void
> -test_plane_panning(data_t *data, enum pipe pipe, enum igt_plane
> plane,
> +test_plane_panning(data_t *data, enum pipe pipe, int plane,
>              unsigned int flags)
misaligned parameter. With that fixed, this is

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

>  {
>  	igt_output_t *output;
> @@ -367,47 +367,57 @@ test_plane_panning(data_t *data, enum pipe
> pipe, enum igt_plane plane,
>  }
>  
>  static void
> -run_tests_for_pipe_plane(data_t *data, enum pipe pipe, enum
> igt_plane plane)
> +run_tests_for_pipe_plane(data_t *data, enum pipe pipe)
>  {
> -	igt_subtest_f("plane-position-covered-pipe-%s-plane-%d",
> -		      kmstest_pipe_name(pipe), plane)
> -		test_plane_position(data, pipe, plane,
> -				    TEST_POSITION_FULLY_COVERED);
> -
> -	igt_subtest_f("plane-position-hole-pipe-%s-plane-%d",
> -		      kmstest_pipe_name(pipe), plane)
> -		test_plane_position(data, pipe, plane, 0);
> -
> -	igt_subtest_f("plane-position-hole-dpms-pipe-%s-plane-%d",
> -		      kmstest_pipe_name(pipe), plane)
> -		test_plane_position(data, pipe, plane,
> -				    TEST_DPMS);
> -
> -	igt_subtest_f("plane-panning-top-left-pipe-%s-plane-%d",
> -		      kmstest_pipe_name(pipe), plane)
> -		test_plane_panning(data, pipe, plane,
> TEST_PANNING_TOP_LEFT);
> -
> -	igt_subtest_f("plane-panning-bottom-right-pipe-%s-plane-%d",
> -		      kmstest_pipe_name(pipe), plane)
> -		test_plane_panning(data, pipe, plane,
> -				   TEST_PANNING_BOTTOM_RIGHT);
> -
> -	igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-
> plane-%d",
> -		      kmstest_pipe_name(pipe), plane)
> -		test_plane_panning(data, pipe, plane,
> -				   TEST_PANNING_BOTTOM_RIGHT |
> -				   TEST_SUSPEND_RESUME);
> -}
> +	igt_subtest_f("plane-position-covered-pipe-%s-planes",
> +		      kmstest_pipe_name(pipe)) {
> +		int n_planes = data->display.pipes[pipe].n_planes;
> +		for (int plane = 1; plane < n_planes; plane++)
> +			test_plane_position(data, pipe, plane,
> +					    TEST_POSITION_FULLY_COVE
> RED);
> +	}
>  
> -static void
> -run_tests_for_pipe(data_t *data, enum pipe pipe)
> -{
> -	int plane;
> +	igt_subtest_f("plane-position-hole-pipe-%s-planes",
> +		      kmstest_pipe_name(pipe)) {
> +		int n_planes = data->display.pipes[pipe].n_planes;
> +		for (int plane = 1; plane < n_planes; plane++)
> +			test_plane_position(data, pipe, plane, 0);
> +	}
> +
> +	igt_subtest_f("plane-position-hole-dpms-pipe-%s-planes",
> +		      kmstest_pipe_name(pipe)) {
> +		int n_planes = data->display.pipes[pipe].n_planes;
> +		for (int plane = 1; plane < n_planes; plane++)
> +			test_plane_position(data, pipe, plane,
> +					    TEST_DPMS);
> +	}
> +
> +	igt_subtest_f("plane-panning-top-left-pipe-%s-planes",
> +		      kmstest_pipe_name(pipe)) {
> +		int n_planes = data->display.pipes[pipe].n_planes;
> +		for (int plane = 1; plane < n_planes; plane++)
> +			test_plane_panning(data, pipe, plane,
> TEST_PANNING_TOP_LEFT);
> +	}
>  
> -	for (plane = 1; plane < IGT_MAX_PLANES; plane++)
> -		run_tests_for_pipe_plane(data, pipe, plane);
> +	igt_subtest_f("plane-panning-bottom-right-pipe-%s-planes",
> +		      kmstest_pipe_name(pipe)) {
> +		int n_planes = data->display.pipes[pipe].n_planes;
> +		for (int plane = 1; plane < n_planes; plane++)
> +			test_plane_panning(data, pipe, plane,
> +					   TEST_PANNING_BOTTOM_RIGHT
> );
> +	}
> +
> +	igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-
> planes",
> +		      kmstest_pipe_name(pipe)) {
> +		int n_planes = data->display.pipes[pipe].n_planes;
> +		for (int plane = 1; plane < n_planes; plane++)
> +			test_plane_panning(data, pipe, plane,
> +					   TEST_PANNING_BOTTOM_RIGHT
> |
> +					   TEST_SUSPEND_RESUME);
> +	}
>  }
>  
> +
>  static data_t data;
>  
>  igt_main
> @@ -425,7 +435,7 @@ igt_main
>  	}
>  
>  	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)
> -		run_tests_for_pipe(&data, pipe);
> +		run_tests_for_pipe_plane(&data, pipe);
>  
>  	igt_fixture {
>  		igt_display_fini(&data.display);
diff mbox

Patch

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index e843a170..14c444fc 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -150,7 +150,7 @@  enum {
 static void
 test_plane_position_with_output(data_t *data,
 				enum pipe pipe,
-				enum igt_plane plane,
+				int plane,
 				igt_output_t *output,
 				unsigned int flags)
 {
@@ -170,7 +170,7 @@  test_plane_position_with_output(data_t *data,
 	igt_output_set_pipe(output, pipe);
 
 	mode = igt_output_get_mode(output);
-	primary = igt_output_get_plane(output, 0);
+	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	sprite = igt_output_get_plane(output, plane);
 
 	create_fb_for_mode__position(data, mode, 100, 100, 64, 64,
@@ -222,7 +222,7 @@  test_plane_position_with_output(data_t *data,
 }
 
 static void
-test_plane_position(data_t *data, enum pipe pipe, enum igt_plane plane,
+test_plane_position(data_t *data, enum pipe pipe, int plane,
 		    unsigned int flags)
 {
 	igt_output_t *output;
@@ -294,7 +294,7 @@  enum {
 static void
 test_plane_panning_with_output(data_t *data,
 			       enum pipe pipe,
-			       enum igt_plane plane,
+			       int plane,
 			       igt_output_t *output,
 			       unsigned int flags)
 {
@@ -348,7 +348,7 @@  test_plane_panning_with_output(data_t *data,
 }
 
 static void
-test_plane_panning(data_t *data, enum pipe pipe, enum igt_plane plane,
+test_plane_panning(data_t *data, enum pipe pipe, int plane,
             unsigned int flags)
 {
 	igt_output_t *output;
@@ -367,47 +367,57 @@  test_plane_panning(data_t *data, enum pipe pipe, enum igt_plane plane,
 }
 
 static void
-run_tests_for_pipe_plane(data_t *data, enum pipe pipe, enum igt_plane plane)
+run_tests_for_pipe_plane(data_t *data, enum pipe pipe)
 {
-	igt_subtest_f("plane-position-covered-pipe-%s-plane-%d",
-		      kmstest_pipe_name(pipe), plane)
-		test_plane_position(data, pipe, plane,
-				    TEST_POSITION_FULLY_COVERED);
-
-	igt_subtest_f("plane-position-hole-pipe-%s-plane-%d",
-		      kmstest_pipe_name(pipe), plane)
-		test_plane_position(data, pipe, plane, 0);
-
-	igt_subtest_f("plane-position-hole-dpms-pipe-%s-plane-%d",
-		      kmstest_pipe_name(pipe), plane)
-		test_plane_position(data, pipe, plane,
-				    TEST_DPMS);
-
-	igt_subtest_f("plane-panning-top-left-pipe-%s-plane-%d",
-		      kmstest_pipe_name(pipe), plane)
-		test_plane_panning(data, pipe, plane, TEST_PANNING_TOP_LEFT);
-
-	igt_subtest_f("plane-panning-bottom-right-pipe-%s-plane-%d",
-		      kmstest_pipe_name(pipe), plane)
-		test_plane_panning(data, pipe, plane,
-				   TEST_PANNING_BOTTOM_RIGHT);
-
-	igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-plane-%d",
-		      kmstest_pipe_name(pipe), plane)
-		test_plane_panning(data, pipe, plane,
-				   TEST_PANNING_BOTTOM_RIGHT |
-				   TEST_SUSPEND_RESUME);
-}
+	igt_subtest_f("plane-position-covered-pipe-%s-planes",
+		      kmstest_pipe_name(pipe)) {
+		int n_planes = data->display.pipes[pipe].n_planes;
+		for (int plane = 1; plane < n_planes; plane++)
+			test_plane_position(data, pipe, plane,
+					    TEST_POSITION_FULLY_COVERED);
+	}
 
-static void
-run_tests_for_pipe(data_t *data, enum pipe pipe)
-{
-	int plane;
+	igt_subtest_f("plane-position-hole-pipe-%s-planes",
+		      kmstest_pipe_name(pipe)) {
+		int n_planes = data->display.pipes[pipe].n_planes;
+		for (int plane = 1; plane < n_planes; plane++)
+			test_plane_position(data, pipe, plane, 0);
+	}
+
+	igt_subtest_f("plane-position-hole-dpms-pipe-%s-planes",
+		      kmstest_pipe_name(pipe)) {
+		int n_planes = data->display.pipes[pipe].n_planes;
+		for (int plane = 1; plane < n_planes; plane++)
+			test_plane_position(data, pipe, plane,
+					    TEST_DPMS);
+	}
+
+	igt_subtest_f("plane-panning-top-left-pipe-%s-planes",
+		      kmstest_pipe_name(pipe)) {
+		int n_planes = data->display.pipes[pipe].n_planes;
+		for (int plane = 1; plane < n_planes; plane++)
+			test_plane_panning(data, pipe, plane, TEST_PANNING_TOP_LEFT);
+	}
 
-	for (plane = 1; plane < IGT_MAX_PLANES; plane++)
-		run_tests_for_pipe_plane(data, pipe, plane);
+	igt_subtest_f("plane-panning-bottom-right-pipe-%s-planes",
+		      kmstest_pipe_name(pipe)) {
+		int n_planes = data->display.pipes[pipe].n_planes;
+		for (int plane = 1; plane < n_planes; plane++)
+			test_plane_panning(data, pipe, plane,
+					   TEST_PANNING_BOTTOM_RIGHT);
+	}
+
+	igt_subtest_f("plane-panning-bottom-right-suspend-pipe-%s-planes",
+		      kmstest_pipe_name(pipe)) {
+		int n_planes = data->display.pipes[pipe].n_planes;
+		for (int plane = 1; plane < n_planes; plane++)
+			test_plane_panning(data, pipe, plane,
+					   TEST_PANNING_BOTTOM_RIGHT |
+					   TEST_SUSPEND_RESUME);
+	}
 }
 
+
 static data_t data;
 
 igt_main
@@ -425,7 +435,7 @@  igt_main
 	}
 
 	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)
-		run_tests_for_pipe(&data, pipe);
+		run_tests_for_pipe_plane(&data, pipe);
 
 	igt_fixture {
 		igt_display_fini(&data.display);