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.heikk...@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to