[Intel-gfx] [PATCH i-g-t] igt/kms_rotation_crc: Add RGB565 90 degree test for gen>9

Ville Syrjälä ville.syrjala at linux.intel.com
Fri Nov 3 16:25:45 UTC 2017


On Fri, Nov 03, 2017 at 04:26:30PM +0200, Juha-Pekka Heikkila wrote:
> Gen10 onwards 90 and 270 degree rotations are supported for RGB565 format.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> ---
>  tests/kms_rotation_crc.c | 30 +++++++++++++++++++++++++++---
>  1 file changed, 27 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 27d1f80..f22bcb5 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -423,11 +423,10 @@ static void test_plane_rotation(data_t *data, int plane_type)
>  
>  static void test_plane_rotation_ytiled_obj(data_t *data,
>  					   igt_output_t *output,
> -					   int plane_type)
> +					   int plane_type, uint32_t format)
>  {
>  	igt_display_t *display = &data->display;
>  	uint64_t tiling = LOCAL_I915_FORMAT_MOD_Y_TILED;
> -	uint32_t format = DRM_FORMAT_XRGB8888;
>  	int bpp = igt_drm_format_to_bpp(format);
>  	enum igt_commit_style commit = COMMIT_LEGACY;
>  	int fd = data->gfx_fd;
> @@ -709,6 +708,29 @@ igt_main
>  		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY);
>  	}
>  
> +	igt_subtest_f("primary-rotation-90-Y-tiled-16bpp") {
> +		enum pipe pipe;
> +		igt_output_t *output;
> +		int valid_tests = 0;
> +
> +		igt_require(gen > 9);
> +		data.rotation = IGT_ROTATION_90;
> +
> +		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> +			igt_output_set_pipe(output, pipe);
> +
> +			test_plane_rotation_ytiled_obj(&data, output,
> +						       DRM_PLANE_TYPE_PRIMARY,
> +						       DRM_FORMAT_RGB565);

This will fail on pre-gen10, so you'll need to adjust something else as
well. Also you'll want to change the bad-format test to use maybe C8.

Looks like kms_rotation_crc as a whole could use some refactoring.
I don't understand why we have test_plane_rotation() and
test_plane_rotation_ytiled_obj(). One function really should be
enough.

> +
> +			valid_tests++;
> +			break;
> +		}
> +
> +		igt_require_f(valid_tests,
> +			      "no valid crtc/connector combinations found\n");
> +	}
> +
>  	igt_subtest_f("primary-rotation-90-Y-tiled") {
>  		enum pipe pipe;
>  		igt_output_t *output;
> @@ -720,7 +742,9 @@ igt_main
>  		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>  			igt_output_set_pipe(output, pipe);
>  
> -			test_plane_rotation_ytiled_obj(&data, output, DRM_PLANE_TYPE_PRIMARY);
> +			test_plane_rotation_ytiled_obj(&data, output,
> +						       DRM_PLANE_TYPE_PRIMARY,
> +						       DRM_FORMAT_XRGB8888);
>  
>  			valid_tests++;
>  			break;
> -- 
> 2.7.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list