diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2017-09-21 08:36:33 +0200 |
---|---|---|
committer | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2017-10-02 11:30:18 +0200 |
commit | 5f6806472c2d413dec850e60ef452f5d55cc9912 (patch) | |
tree | 672ab8d996e386f5276bf520c31e41b6b983d7b9 | |
parent | 7bc1fd8638356f728f200b9377e76f286d964c7e (diff) |
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 <maarten.lankhorst@linux.intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Tested-by: Marta Lofstedt <marta.lofstedt@intel.com>
Acked-by: Marta Lofstedt <marta.lofstedt@intel.com>
-rw-r--r-- | tests/kms_rotation_crc.c | 23 |
1 files changed, 17 insertions, 6 deletions
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); |