[igt-dev] [PATCH] tests: Remove restrictions on tests running only DRIVER_INTEL and DRIVER_AMDGPU

Petri Latvala petri.latvala at intel.com
Thu Nov 11 12:29:42 UTC 2021


On Wed, Nov 10, 2021 at 02:53:02PM -0500, Mark Yacoub wrote:
> From: Mark Yacoub <markyacoub at google.com>
> 
> [Why]
> Drivers such as MSM are able to run tests that are made generic through
> supporting another driver that's not i915. Removing the restriction that
> enables the test on a 2 drivers only allow the tests to run on other
> drivers.
> 
> [How]
> 1. Replace DRIVER_INTEL | DRIVER_AMDGPU by DRIVER_ANY
> 2. Make the checks more broad to allow intel generic implementation to
> work on all drivers while keeping special amdgpu's quirks.
> 
> Tested on Trogdor (MSM)
> 
> Signed-off-by: Mark Yacoub <markyacoub at chromium.org>

Reviewed-by: Petri Latvala <petri.latvala at intel.com>

Thanks for this!


> ---
>  tests/kms_hdr.c            |  2 +-
>  tests/kms_plane_multiple.c |  2 +-
>  tests/kms_plane_scaling.c  |  2 +-
>  tests/kms_rotation_crc.c   | 52 +++++++++++++++++++++++---------------
>  4 files changed, 34 insertions(+), 24 deletions(-)
> 
> diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c
> index 5b8529c8..2a76c7ec 100644
> --- a/tests/kms_hdr.c
> +++ b/tests/kms_hdr.c
> @@ -643,7 +643,7 @@ igt_main
>  	data_t data = {};
>  
>  	igt_fixture {
> -		data.fd = drm_open_driver_master(DRIVER_AMDGPU | DRIVER_INTEL);
> +		data.fd = drm_open_driver_master(DRIVER_ANY);
>  
>  		kmstest_set_vt_graphics_mode();
>  
> diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
> index 45cabb50..e3aa2e7c 100644
> --- a/tests/kms_plane_multiple.c
> +++ b/tests/kms_plane_multiple.c
> @@ -445,7 +445,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  	enum pipe pipe;
>  
>  	igt_fixture {
> -		data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
> +		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
>  		kmstest_set_vt_graphics_mode();
>  		igt_require_pipe_crc(data.drm_fd);
>  		igt_display_require(&data.display, data.drm_fd);
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 4c517a43..270f7615 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -709,7 +709,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  	enum pipe pipe;
>  
>  	igt_fixture {
> -		data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
> +		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
>  		igt_display_require(&data.display, data.drm_fd);
>  		data.devid = is_i915_device(data.drm_fd) ?
>  			intel_get_drm_devid(data.drm_fd) : 0;
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 11401a6d..71525f95 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -295,15 +295,15 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
>  			igt_plane_set_position(plane, data->pos_x, data->pos_y);
>  		igt_display_commit2(display, COMMIT_ATOMIC);
>  
> -		if (is_i915_device(data->gfx_fd)) {
> +		if (is_amdgpu_device(data->gfx_fd)) {
> +			igt_pipe_crc_collect_crc(
> +				data->pipe_crc,
> +				&data->crc_rect[data->output_crc_in_use][rect].flip_crc);
> +		} else {
>  			igt_pipe_crc_get_current(
>  				display->drm_fd, data->pipe_crc,
>  				&data->crc_rect[data->output_crc_in_use][rect].flip_crc);
>  			igt_remove_fb(data->gfx_fd, &data->fb_flip);
> -		} else if (is_amdgpu_device(data->gfx_fd)) {
> -			igt_pipe_crc_collect_crc(
> -				data->pipe_crc,
> -				&data->crc_rect[data->output_crc_in_use][rect].flip_crc);
>  		}
>  
>  		/*
> @@ -318,13 +318,15 @@ static void prepare_fbs(data_t *data, igt_output_t *output,
>  			igt_plane_set_position(plane, data->pos_x, data->pos_y);
>  		igt_display_commit2(display, COMMIT_ATOMIC);
>  
> -		if (is_i915_device(data->gfx_fd)) {
> -			igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc,
> -					&data->crc_rect[data->output_crc_in_use][rect].ref_crc);
> -		} else if (is_amdgpu_device(data->gfx_fd)) {
> -			igt_pipe_crc_collect_crc(data->pipe_crc,
> -					&data->crc_rect[data->output_crc_in_use][rect].ref_crc);
> +		if (is_amdgpu_device(data->gfx_fd)) {
> +			igt_pipe_crc_collect_crc(
> +				data->pipe_crc,
> +				&data->crc_rect[data->output_crc_in_use][rect].ref_crc);
>  			igt_remove_fb(data->gfx_fd, &data->fb_flip);
> +		} else {
> +			igt_pipe_crc_get_current(
> +				display->drm_fd, data->pipe_crc,
> +				&data->crc_rect[data->output_crc_in_use][rect].ref_crc);
>  		}
>  		data->crc_rect[data->output_crc_in_use][rect].valid = true;
>  	}
> @@ -383,12 +385,15 @@ static void test_single_case(data_t *data, enum pipe pipe,
>  	igt_assert_eq(ret, 0);
>  
>  	/* Check CRC */
> -	if (is_i915_device(data->gfx_fd))
> -		igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc_output);
> -	else if (is_amdgpu_device(data->gfx_fd))
> +	if (is_amdgpu_device(data->gfx_fd)) {
>  		igt_pipe_crc_collect_crc(data->pipe_crc, &crc_output);
> -	igt_assert_crc_equal(&data->crc_rect[data->output_crc_in_use][rect].ref_crc,
> -			     &crc_output);
> +	} else {
> +		igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc,
> +								 &crc_output);
> +	}
> +	igt_assert_crc_equal(
> +		&data->crc_rect[data->output_crc_in_use][rect].ref_crc,
> +		&crc_output);
>  
>  	/*
>  	 * If flips are requested flip to a different fb and
> @@ -410,10 +415,13 @@ static void test_single_case(data_t *data, enum pipe pipe,
>  			igt_assert_eq(ret, 0);
>  		}
>  		kmstest_wait_for_pageflip(data->gfx_fd);
> -		if (is_i915_device(data->gfx_fd))
> -			igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc, &crc_output);
> -		else if (is_amdgpu_device(data->gfx_fd))
> +
> +		if (is_amdgpu_device(data->gfx_fd)) {
>  			igt_pipe_crc_collect_crc(data->pipe_crc, &crc_output);
> +		} else {
> +			igt_pipe_crc_get_current(display->drm_fd, data->pipe_crc,
> +									 &crc_output);
> +		}
>  		igt_assert_crc_equal(&data->crc_rect[data->output_crc_in_use][rect].flip_crc,
>  				     &crc_output);
>  	}
> @@ -519,7 +527,9 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
>  			/* Only support partial covering primary plane on gen9+ */
>  			if (is_amdgpu_device(data->gfx_fd) ||
>  				(plane_type == DRM_PLANE_TYPE_PRIMARY &&
> -			    intel_display_ver(intel_get_drm_devid(data->gfx_fd)) < 9)) {
> +				 is_i915_device(data->gfx_fd) &&
> +				 intel_display_ver(
> +					 intel_get_drm_devid(data->gfx_fd)) < 9)) {
>  				if (i != rectangle)
>  					continue;
>  				else
> @@ -1033,7 +1043,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  	int gen = 0;
>  
>  	igt_fixture {
> -		data.gfx_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_AMDGPU);
> +		data.gfx_fd = drm_open_driver_master(DRIVER_ANY);
>  		if (is_i915_device(data.gfx_fd)) {
>  			data.devid = intel_get_drm_devid(data.gfx_fd);
>  			gen = intel_display_ver(data.devid);
> -- 
> 2.34.0.rc0.344.g81b53c2807-goog
> 


More information about the igt-dev mailing list