[igt-dev] [PATCH i-g-t] tests/kms_plane: Add debug prints for pixel format tests if couldn't use custom plane size

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Jun 5 12:46:15 UTC 2023


On Fri, Jun 02, 2023 at 01:50:01PM +0300, Juha-Pekka Heikkila wrote:
> Moved check for setting 64x64 plane size for pixel format tests into its own
> function and added debug prints if couldn't use smaller than full mode size
> plane for testing.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>

LGTM:

Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>

--
Zbigniew
> ---
>  tests/kms_plane.c | 57 +++++++++++++++++++++++++++++------------------
>  1 file changed, 35 insertions(+), 22 deletions(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index 90b68a47..dfc6a8c5 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -896,6 +896,40 @@ struct format_mod {
>  	uint32_t format;
>  };
>  
> +/*
> + * See if test can go use 64x64 plane size for testing. If driver is not
> + * reporting to be atomic, will not try to use 64x64 plane size.
> +*/
> +static void check_allowed_plane_size_64x64(data_t *data, igt_plane_t *plane,
> +					   uint64_t *width, uint64_t *height,
> +					   uint32_t format)
> +{
> +	struct igt_fb test_fb;
> +	int ret;
> +
> +	if (!data->display.is_atomic) {
> +		igt_debug("Not using 64x64 plane size on non-atomic platform\n");
> +		return;
> +	}
> +
> +	igt_create_fb(data->drm_fd, 64, 64, format, DRM_FORMAT_MOD_LINEAR, &test_fb);
> +	igt_plane_set_fb(plane, &test_fb);
> +
> +	ret = igt_display_try_commit_atomic(&data->display,
> +					    DRM_MODE_ATOMIC_TEST_ONLY |
> +					    DRM_MODE_ATOMIC_ALLOW_MODESET,
> +					    NULL);
> +	if (!ret) {
> +		*width = test_fb.width;
> +		*height = test_fb.height;
> +	} else {
> +		igt_debug("Not using 64x64 plane size, atomic commit did not "
> +			  "accept 64x64 plane size\n");
> +	}
> +
> +	igt_remove_fb(data->drm_fd, &test_fb);
> +}
> +
>  static bool test_format_plane(data_t *data, enum pipe pipe,
>  			      igt_output_t *output, igt_plane_t *plane, igt_fb_t *primary_fb)
>  {
> @@ -944,28 +978,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		 IGT_FORMAT_ARGS(ref.format), IGT_MODIFIER_ARGS(ref.modifier),
>  		 kmstest_pipe_name(pipe), plane->index);
>  
> -	if (data->display.is_atomic) {
> -		struct igt_fb test_fb;
> -		int ret;
> -
> -		igt_create_fb(data->drm_fd, 64, 64, ref.format,
> -			      DRM_FORMAT_MOD_LINEAR, &test_fb);
> -
> -		igt_plane_set_fb(plane, &test_fb);
> -
> -		ret = igt_display_try_commit_atomic(&data->display,
> -						    DRM_MODE_ATOMIC_TEST_ONLY |
> -						    DRM_MODE_ATOMIC_ALLOW_MODESET,
> -						    NULL);
> -		if (!ret) {
> -			width = test_fb.width;
> -			height = test_fb.height;
> -		}
> -
> -		igt_plane_set_fb(plane, clear_fb);
> -
> -		igt_remove_fb(data->drm_fd, &test_fb);
> -	}
> +	check_allowed_plane_size_64x64(data, plane, &width, &height, ref.format);
>  
>  	capture_format_crcs_single(data, pipe, plane, ref.format, ref.modifier,
>  				   width, height, IGT_COLOR_YCBCR_BT709,
> -- 
> 2.25.1
> 


More information about the igt-dev mailing list