[PATCH i-g-t v4 8/8] XE3: tests/intel/kms_frontbuffer_tracking: platform based handling of x-tile cases

Matt Roper matthew.d.roper at intel.com
Sat Dec 7 00:28:49 UTC 2024


On Fri, Dec 06, 2024 at 01:27:48PM -0800, Clint Taylor wrote:
> From: Vinod Govindapillai <vinod.govindapillai at intel.com>
> 
> x-tile is not supported from xe3 onwards. Handle this conclusively
> in all the kms_frontbuffer_tracking subtest options.

This patch is undoing a bunch of the changes from the previous patch.
These need to be combined.

> 
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai at intel.com>
> Signed-off-by: Clint Taylor <Clinton.A.Taylor at intel.com>
> ---
>  tests/intel/kms_frontbuffer_tracking.c | 29 +++++++++++---------------
>  1 file changed, 12 insertions(+), 17 deletions(-)
> 
> diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
> index c5b3fd46f..ba564fafa 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -1031,7 +1031,7 @@ struct test_mode {
>  		TILING_Y,
>  		TILING_4,
>  		TILING_COUNT,
> -		TILING_DEFAULT = TILING_X,
> +		TILING_AUTOSELECT,
>  	} tiling;
>  
>  	enum igt_draw_method method;
> @@ -1154,7 +1154,7 @@ struct {
>  	.only_pipes = PIPE_COUNT,
>  	.shared_fb_x_offset = 248,
>  	.shared_fb_y_offset = 500,
> -	.tiling = TILING_DEFAULT,
> +	.tiling = TILING_AUTOSELECT,
>  };
>  
>  struct modeset_params {
> @@ -2182,11 +2182,7 @@ static void setup_modeset(void)
>  	offscreen_fb.w = 1024;
>  	offscreen_fb.h = 1024;
>  
> -	/* Xe3 remove x-tile from display + */
> -	if (drm.display_ver < 30)
> -		create_fbs(FORMAT_DEFAULT, opt.tiling);
> -	else
> -		create_fbs(FORMAT_DEFAULT, TILING_4);
> +	create_fbs(FORMAT_DEFAULT, opt.tiling);
>  }
>  
>  static void teardown_modeset(void)
> @@ -4234,6 +4230,14 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  		setup_drm();
>  		drm.devid = intel_get_drm_devid(drm.fd);
>  		drm.display_ver = intel_display_ver(drm.devid);
> +
> +		/* TILING_X is not supported from Xe3 onwards. If the tiling
> +		 * is not set explicitly using the commandline parameter,
> +		 * handle the default tiling based on the platform.
> +		 */
> +		if (opt.tiling == TILING_AUTOSELECT)
> +			opt.tiling = drm.display_ver >= 30 ? TILING_4 : TILING_X;

As noted on the previous patch, I think we should try to avoid looking
at display_ver (since this isn't proper userspace behavior).  Instead we
should have a list of tiling formats (x-tile, 4-tile, y-tile, linear,
etc.) and we should just walk down that list and test each one with
igt_display_has_format_mod() until we find one the device supports; that
first match can be the 'autoselect' value.


Matt

> +
>  		setup_environment();
>  	}
>  
> @@ -4543,10 +4547,6 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  					if (t.tiling == TILING_4)
>  						igt_require(intel_get_device_info(drm.devid)->has_4tile);
>  
> -					/* Xe3 remove x-tile from display + */
> -					if (t.tiling == TILING_X) {
> -						igt_require(drm.display_ver < 30);
> -					}
>  
>  					if (tiling_is_valid(t.feature, t.tiling))
>  						draw_subtest(&t);
> @@ -4579,12 +4579,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  	t.format = FORMAT_DEFAULT;
>  	t.flip = FLIP_PAGEFLIP;
>  	t.method = IGT_DRAW_BLT;
> -
> -	/* Xe3 remove x-tile from display + */
> -	if (drm.display_ver < 30)
> -		t.tiling = opt.tiling;
> -	else
> -		t.tiling = TILING_4;
> +	t.tiling = opt.tiling;
>  
>  	igt_subtest("basic") {
>  		if (!is_xe_device(drm.fd))
> -- 
> 2.25.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the igt-dev mailing list