[Intel-gfx] [PATCH i-g-t] tests/kms_atomic_transition: Make tests pass
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Fri Oct 20 13:24:15 UTC 2017
kms_atomic_transition was updating already disabled planes and committing
them nonblockingly. This results in sporadic -EBUSY failures because
planes that are unbound have their own timeline.
The solution is not unbinding already unbound planes, making the test
pass. There is also a related kernel bug causing failures in the same
way, but that will get fixed soon.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102671
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
---
tests/kms_atomic_transition.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 7ddb65cea183..4c295125a8a7 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -134,7 +134,8 @@ wm_setup_plane(igt_display_t *display, enum pipe pipe,
int i = plane->index;
if (!((1 << plane->index) & mask)) {
- igt_plane_set_fb(plane, NULL);
+ if (plane->values[IGT_PLANE_FB_ID])
+ igt_plane_set_fb(plane, NULL);
continue;
}
@@ -388,11 +389,13 @@ static void wait_for_transition(igt_display_t *display, enum pipe pipe, bool non
if (fencing) {
int fence_fd = display->pipes[pipe].out_fence_fd;
- igt_assert_neq(fd_completed(fence_fd), nonblocking);
+ if (!nonblocking)
+ igt_assert(fd_completed(fence_fd));
igt_assert(sync_fence_wait(fence_fd, 30000) == 0);
} else {
- igt_assert_neq(fd_completed(display->drm_fd), nonblocking);
+ if (!nonblocking)
+ igt_assert(fd_completed(display->drm_fd));
drmHandleEvent(display->drm_fd, &drm_events);
}
--
2.14.1
More information about the Intel-gfx
mailing list