Message ID | 1509719190-32346-1-git-send-email-juhapekka.heikkila@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@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
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); + + 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;
Gen10 onwards 90 and 270 degree rotations are supported for RGB565 format. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> --- tests/kms_rotation_crc.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-)