[igt-dev] [PATCH i-g-t 3/4] tests/kms_rotation_crc: add tests for a rotated plane in a given position

Kamil Konieczny kamil.konieczny at linux.intel.com
Mon May 22 13:48:08 UTC 2023


Hi Maíra,

On 2023-04-03 at 10:01:23 -0300, Maíra Canal wrote:
> Currently, kms_rotation_crc only has one subtest testing a rotated plane
> in a given position: a subtest that rotates 90 degrees the overlay plane
> with a offset in the x axis. So, expand the subtest "sprite-rotation-90-pos-100-0"
> by creating subtests for 90, 180 and 270 degrees rotation with different
> x and y offsets. This can help us to assure that the rotation happens
> correctly even with offsets in the x and y axis.
> 
> Signed-off-by: Maíra Canal <mcanal at igalia.com>
> ---
>  tests/kms_rotation_crc.c | 33 +++++++++++++++++++++++++++------
>  1 file changed, 27 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index cf02306f..441a298b 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -1134,6 +1134,23 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  		{ 0, 0 }
>  	};
>  
> +	struct rot_pos_subtest {
> +		igt_rotation_t rot;
> +		int pos_x;
> +		int pos_y;
> +	} *rot_pos, rot_pos_subtests[] = {
> +		{ IGT_ROTATION_90, 0, 100 },
> +		{ IGT_ROTATION_90, 100, 0 },
> +		{ IGT_ROTATION_90, 100, 100 },
> +		{ IGT_ROTATION_180, 0, 100 },
> +		{ IGT_ROTATION_180, 100, 0 },
> +		{ IGT_ROTATION_180, 100, 100 },
> +		{ IGT_ROTATION_270, 0, 100 },
> +		{ IGT_ROTATION_270, 100, 0 },
> +		{ IGT_ROTATION_270, 100, 100 },
> +		{ 0, 0 }
> +	};
> +
>  	int gen = 0;
>  
>  	igt_fixture {
> @@ -1170,12 +1187,16 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  		}
>  	}
>  
> -	igt_describe("Rotation test with 90 degree for a plane of gen9+ with given position");
> -	igt_subtest_f("sprite-rotation-90-pos-100-0") {
> -		data.rotation = IGT_ROTATION_90;
> -		data.pos_x = 100,
> -		data.pos_y = 0;
> -		test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY, false);
> +	igt_describe("Rotation test with 90/180/270 degree for a plane of gen9+ with given position");
------------------------------------------------------------------------- ^
This is for intel platforms, maybe you should remove this from
description ind write a comment like:
/* for intel gen9+ platforms or other arch */

Or create function like bool has_rotation(...) so you could
skip on non-supported archs ?

Regards,
Kamil

> +	for (rot_pos = rot_pos_subtests; rot_pos->rot; rot_pos++) {
> +		igt_subtest_f("sprite-rotation-%s-pos-%d-%d", rot_test_str(rot_pos->rot),
> +			      rot_pos->pos_x,
> +			      rot_pos->pos_y) {
> +			data.rotation = rot_pos->rot;
> +			data.pos_x = rot_pos->pos_x;
> +			data.pos_y = rot_pos->pos_y;
> +			test_plane_rotation(&data, DRM_PLANE_TYPE_OVERLAY, false);
> +		}
>  	}
>  	data.pos_x = 0,
>  	data.pos_y = 0;
> -- 
> 2.39.2
> 


More information about the igt-dev mailing list