From 5f6806472c2d413dec850e60ef452f5d55cc9912 Mon Sep 17 00:00:00 2001 From: Maarten Lankhorst Date: Thu, 21 Sep 2017 08:36:33 +0200 Subject: igt/kms_rotation_crc: Fix flip tests for sprite plane This test was flipping the primary plane instead of the sprite plane. Flip the correct plane to make the test pass properly. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102691 Signed-off-by: Maarten Lankhorst Reviewed-by: Mika Kahola Tested-by: Marta Lofstedt Acked-by: Marta Lofstedt --- tests/kms_rotation_crc.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'tests/kms_rotation_crc.c') diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c index 21e264ad..69301252 100644 --- a/tests/kms_rotation_crc.c +++ b/tests/kms_rotation_crc.c @@ -332,6 +332,9 @@ static void test_plane_rotation(data_t *data, int plane_type) enum igt_commit_style commit = COMMIT_LEGACY; int ret; + if (data->flips && plane_type != DRM_PLANE_TYPE_PRIMARY) + igt_require(data->display.is_atomic); + if (plane_type == DRM_PLANE_TYPE_PRIMARY || plane_type == DRM_PLANE_TYPE_CURSOR) commit = COMMIT_UNIVERSAL; @@ -390,12 +393,20 @@ static void test_plane_rotation(data_t *data, int plane_type) * check CRC against that one as well. */ if (data->flips) { - ret = drmModePageFlip(data->gfx_fd, - output->config.crtc->crtc_id, - data->fb_flip.fb_id, - DRM_MODE_PAGE_FLIP_EVENT, - NULL); - igt_assert_eq(ret, 0); + igt_plane_set_fb(plane, &data->fb_flip); + if (data->rotation == IGT_ROTATION_90 || data->rotation == IGT_ROTATION_270) + igt_plane_set_size(plane, data->fb.height, data->fb.width); + + if (plane_type != DRM_PLANE_TYPE_PRIMARY) { + igt_display_commit_atomic(display, DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK, NULL); + } else { + ret = drmModePageFlip(data->gfx_fd, + output->config.crtc->crtc_id, + data->fb_flip.fb_id, + DRM_MODE_PAGE_FLIP_EVENT, + NULL); + igt_assert_eq(ret, 0); + } wait_for_pageflip(data->gfx_fd); igt_pipe_crc_collect_crc(data->pipe_crc, &crc_output); -- cgit v1.2.3