[igt-dev] [PATCH i-g-t 1/2] tests/kms_flip_tiling: Check requested format/mod combo is supported

Kahola, Mika mika.kahola at intel.com
Tue Oct 8 10:52:08 UTC 2019


On Mon, 2019-10-07 at 22:52 +0300, Juha-Pekka Heikkila wrote:
> Avoid failing test for wrong reasons.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

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

> ---
>  tests/kms_flip_tiling.c | 40 ++++++++++++++++++++++++++++++++++++++-
> -
>  1 file changed, 38 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/kms_flip_tiling.c b/tests/kms_flip_tiling.c
> index 582af53..7c8accc 100644
> --- a/tests/kms_flip_tiling.c
> +++ b/tests/kms_flip_tiling.c
> @@ -36,6 +36,7 @@ typedef struct {
>  	int drm_fd;
>  	igt_display_t display;
>  	int gen;
> +	uint32_t testformat;
>  } data_t;
>  
>  static igt_pipe_crc_t *_pipe_crc;
> @@ -101,13 +102,13 @@ test_flip_tiling(data_t *data, enum pipe pipe,
> igt_output_t *output, uint64_t ti
>  	}
>  
>  	fb_id = igt_create_pattern_fb(data->drm_fd, width, mode-
> >vdisplay,
> -				      DRM_FORMAT_XRGB8888, tiling[0],
> +				      data->testformat, tiling[0],
>  				      &fb[0]);
>  	igt_assert(fb_id);
>  
>  	/* Second fb has different background so CRC does not match. */
>  	fb_id = igt_create_color_pattern_fb(data->drm_fd, width, mode-
> >vdisplay,
> -				      DRM_FORMAT_XRGB8888, tiling[1],
> +				      data->testformat, tiling[1],
>  				      0.5, 0.5, 0.5, &fb[1]);
>  	igt_assert(fb_id);
>  
> @@ -156,6 +157,8 @@ igt_main
>  		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>  		data.gen = intel_gen(intel_get_drm_devid(data.drm_fd));
>  
> +		data.testformat = DRM_FORMAT_XRGB8888;
> +
>  		kmstest_set_vt_graphics_mode();
>  
>  		igt_require_pipe_crc(data.drm_fd);
> @@ -175,6 +178,9 @@ igt_main
>  				       LOCAL_DRM_FORMAT_MOD_NONE };
>  		enum pipe pipe;
>  
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
>  			test_flip_tiling(&data, pipe, output, tiling);
>  	}
> @@ -185,6 +191,10 @@ igt_main
>  		enum pipe pipe;
>  
>  		igt_require_fb_modifiers(data.drm_fd);
> +
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		igt_require(data.gen >= 9);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
> @@ -197,6 +207,10 @@ igt_main
>  		enum pipe pipe;
>  
>  		igt_require_fb_modifiers(data.drm_fd);
> +
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		igt_require(data.gen >= 9);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
> @@ -216,6 +230,9 @@ igt_main
>  				       LOCAL_I915_FORMAT_MOD_X_TILED };
>  		enum pipe pipe;
>  
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
>  			test_flip_tiling(&data, pipe, output, tiling);
>  	}
> @@ -226,6 +243,10 @@ igt_main
>  		enum pipe pipe;
>  
>  		igt_require_fb_modifiers(data.drm_fd);
> +
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		igt_require(data.gen >= 9);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
> @@ -238,6 +259,10 @@ igt_main
>  		enum pipe pipe;
>  
>  		igt_require_fb_modifiers(data.drm_fd);
> +
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		igt_require(data.gen >= 9);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
> @@ -257,6 +282,9 @@ igt_main
>  				       LOCAL_I915_FORMAT_MOD_X_TILED };
>  		enum pipe pipe;
>  
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
>  			test_flip_tiling(&data, pipe, output, tiling);
>  	}
> @@ -267,6 +295,10 @@ igt_main
>  		enum pipe pipe;
>  
>  		igt_require_fb_modifiers(data.drm_fd);
> +
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		igt_require(data.gen >= 9);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)
> @@ -279,6 +311,10 @@ igt_main
>  		enum pipe pipe;
>  
>  		igt_require_fb_modifiers(data.drm_fd);
> +
> +		for (int i = 0; i < ARRAY_SIZE(tiling); i++)
> +			igt_require(igt_display_has_format_mod(&data.di
> splay, data.testformat, tiling[i]));
> +
>  		igt_require(data.gen >= 9);
>  
>  		for_each_pipe_with_valid_output(&data.display, pipe,
> output)


More information about the igt-dev mailing list