summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2017-09-21 08:36:33 +0200
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2017-10-02 11:30:18 +0200
commit5f6806472c2d413dec850e60ef452f5d55cc9912 (patch)
tree672ab8d996e386f5276bf520c31e41b6b983d7b9
parent7bc1fd8638356f728f200b9377e76f286d964c7e (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.c23
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);