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

Mika Kahola mika.kahola at intel.com
Wed Jan 25 12:48:04 UTC 2017


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 at 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 at 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);
-- 
Mika Kahola - Intel OTC



More information about the Intel-gfx mailing list