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

Mika Kahola mika.kahola at intel.com
Thu Jan 26 11:30:29 UTC 2017


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

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_lowres.c | 27 +++++++++++++++++++++------
>  1 file changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
> index 424ecb97..689c248e 100644
> --- a/tests/kms_plane_lowres.c
> +++ b/tests/kms_plane_lowres.c
> @@ -40,8 +40,8 @@ typedef struct {
>  	int drm_fd;
>  	igt_display_t display;
>  	igt_pipe_crc_t *pipe_crc;
> -	igt_plane_t *plane[IGT_MAX_PLANES];
> -	struct igt_fb fb[IGT_MAX_PLANES];
> +	igt_plane_t **plane;
> +	struct igt_fb *fb;
>  } data_t;
>  
>  static drmModeModeInfo
> @@ -113,6 +113,12 @@ static void
>  test_init(data_t *data, enum pipe pipe)
>  {
>  	data->pipe_crc = igt_pipe_crc_new(pipe,
> INTEL_PIPE_CRC_SOURCE_AUTO);
> +	data->plane = calloc(data->display.pipes[pipe].n_planes,
> sizeof(data->plane));\
> +	igt_assert_f(data->plane, "Failed to allocate memory for %d
> planes\n",
> +	             data->display.pipes[pipe].n_planes);
> +	data->fb = calloc(data->display.pipes[pipe].n_planes,
> sizeof(struct igt_fb));
> +	igt_assert_f(data->fb, "Failed to allocate memory for %d
> FBs\n",
> +	             data->display.pipes[pipe].n_planes);
>  }
>  
>  static void
> @@ -128,6 +134,11 @@ test_fini(data_t *data, igt_output_t *output)
>  	igt_output_set_pipe(output, PIPE_ANY);
>  
>  	igt_pipe_crc_free(data->pipe_crc);
> +
> +	free(data->plane);
> +	data->plane = NULL;
> +	free(data->fb);
> +	data->fb = NULL;
>  }
>  
>  static int
> @@ -178,6 +189,8 @@ test_setup(data_t *data, enum pipe pipe, uint64_t
> modifier, int flags,
>  	int size;
>  	int i, x, y;
>  
> +	crtc.planes = calloc(sizeof(struct kmstest_plane), data-
> >display.pipes[pipe].n_planes);
> +	igt_assert_f(crtc.planes, "Failed to allocate memory for %d
> planes\n", data->display.pipes[pipe].n_planes);
>  	igt_output_set_pipe(output, pipe);
>  
>  	kmstest_get_crtc(pipe, &crtc);
> @@ -198,8 +211,10 @@ test_setup(data_t *data, enum pipe pipe,
> uint64_t modifier, int flags,
>  	igt_plane_set_fb(data->plane[0], &data->fb[0]);
>  
>  	/* yellow sprite plane in lower left corner */
> -	for (i = IGT_PLANE_2; i < crtc.n_planes; i++) {
> -		if (data->plane[i]->is_cursor)
> +	for (i = 0; i < crtc.n_planes; i++) {
> +		if (data->plane[i]->type == DRM_PLANE_TYPE_PRIMARY)
> +			continue;
> +		if (data->plane[i]->type == DRM_PLANE_TYPE_CURSOR)
>  			size = 64;
>  		else
>  			size = SIZE;
> @@ -209,8 +224,8 @@ test_setup(data_t *data, enum pipe pipe, uint64_t
> modifier, int flags,
>  
>  		igt_create_color_fb(data->drm_fd,
>  				    size, size,
> -				    data->plane[i]->is_cursor ?
> DRM_FORMAT_ARGB8888 : DRM_FORMAT_XRGB8888,
> -				    data->plane[i]->is_cursor ?
> LOCAL_DRM_FORMAT_MOD_NONE : modifier,
> +				    data->plane[i]->type ==
> DRM_PLANE_TYPE_CURSOR ? DRM_FORMAT_ARGB8888 : DRM_FORMAT_XRGB8888,
> +				    data->plane[i]->type ==
> DRM_PLANE_TYPE_CURSOR ? LOCAL_DRM_FORMAT_MOD_NONE : modifier,
>  				    1.0, 1.0, 0.0,
>  				    &data->fb[i]);
>  
-- 
Mika Kahola - Intel OTC



More information about the Intel-gfx mailing list