* [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit.
@ 2017-07-06 7:11 Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 1/5] tests/kms_atomic_transition: Add test for plane completion ordering Maarten Lankhorst
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-06 7:11 UTC (permalink / raw)
To: intel-gfx; +Cc: gustavo.padovan
I wanted to make kms_atomic_transition pass, but the nonblocking modeset
fencing tests were bogus.
This series changes the semantics for fencing slightly. It only keeps the out fences
in pipe_obj->out_fence_fd, it's up to the test to decide what to do with it, which
is probably just waiting on the fd or checking if it completed.
Maarten Lankhorst (5):
tests/kms_atomic_transition: Add test for plane completion ordering.
lib/kms: Handle fence interaction correctly WRT TEST_ONLY.
tests/kms_atomic_transition: Only request fence on enabled pipes
tests/kms_atomic_transition: Do not clear in-fences after atomic
commit.
igt/kms: Do not wait for fence completion during commit
lib/igt_kms.c | 41 ++++++++----------
tests/kms_atomic_transition.c | 99 +++++++++++++++++++++++++++++++++----------
2 files changed, 95 insertions(+), 45 deletions(-)
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH i-g-t 1/5] tests/kms_atomic_transition: Add test for plane completion ordering.
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
@ 2017-07-06 7:11 ` Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 2/5] lib/kms: Handle fence interaction correctly WRT TEST_ONLY Maarten Lankhorst
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-06 7:11 UTC (permalink / raw)
To: intel-gfx; +Cc: gustavo.padovan
When a plane gets disabled, that commit has to complete before an
atomic commit on that disabled plane only. Else for the old commit,
new_plane_state may have been freed.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
tests/kms_atomic_transition.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index ba5cd4d6e289..2b56eef66b7b 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -30,6 +30,7 @@
#include <stdio.h>
#include <string.h>
#include <time.h>
+#include <poll.h>
#ifndef DRM_CAP_CURSOR_WIDTH
#define DRM_CAP_CURSOR_WIDTH 0x8
@@ -152,6 +153,7 @@ static drmEventContext drm_events = {
enum transition_type {
TRANSITION_PLANES,
+ TRANSITION_AFTER_FREE,
TRANSITION_MODESET,
TRANSITION_MODESET_DISABLE,
};
@@ -480,6 +482,31 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
igt_skip("Cannot run tests without proper size sprite planes\n");
}
+ igt_display_commit2(display, COMMIT_ATOMIC);
+
+ if (type == TRANSITION_AFTER_FREE) {
+ struct pollfd pfd = { display->drm_fd, POLLIN };
+
+ wm_setup_plane(display, pipe, 0, parms);
+
+ atomic_commit(display, pipe, flags, (void *)(unsigned long)0, fencing);
+
+ for_each_plane_on_pipe(display, pipe, plane)
+ plane->fb_changed = true;
+
+ igt_display_commit2(display, COMMIT_ATOMIC);
+
+ /*
+ * Previous atomic commit should have completed
+ * before this plane-only atomic commit.
+ */
+ igt_assert_eq(poll(&pfd, 1, 0), 1);
+
+ drmHandleEvent(display->drm_fd, &drm_events);
+
+ goto cleanup;
+ }
+
for (i = 0; i < iter_max; i++) {
igt_output_set_pipe(output, pipe);
@@ -854,6 +881,10 @@ igt_main
for_each_pipe_with_valid_output(&display, pipe, output)
run_transition_test(&display, pipe, output, TRANSITION_PLANES, true, true);
+ igt_subtest("plane-use-after-nonblocking-unbind")
+ for_each_pipe_with_valid_output(&display, pipe, output)
+ run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, false);
+
igt_subtest("plane-all-modeset-transition")
for_each_pipe_with_valid_output(&display, pipe, output)
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH i-g-t 2/5] lib/kms: Handle fence interaction correctly WRT TEST_ONLY.
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 1/5] tests/kms_atomic_transition: Add test for plane completion ordering Maarten Lankhorst
@ 2017-07-06 7:11 ` Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 3/5] tests/kms_atomic_transition: Only request fence on enabled pipes Maarten Lankhorst
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-06 7:11 UTC (permalink / raw)
To: intel-gfx; +Cc: gustavo.padovan
All other atomic properties are reset in display_commit_changed,
which is the right place because TEST_ONLY commits don't need to
be reset.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
lib/igt_kms.c | 38 ++++++++++++++++----------------------
1 file changed, 16 insertions(+), 22 deletions(-)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index faf9df2fcedf..8bf56faf41e9 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -2505,7 +2505,6 @@ static void igt_atomic_prepare_crtc_commit(igt_pipe_t *pipe_obj, drmModeAtomicRe
pipe_obj->out_fence_fd = -1;
if (pipe_obj->out_fence_requested)
{
- pipe_obj->out_fence_requested = false;
igt_atomic_populate_crtc_req(req, pipe_obj, IGT_CRTC_OUT_FENCE_PTR,
(uint64_t)(uintptr_t) &pipe_obj->out_fence_fd);
}
@@ -2586,27 +2585,6 @@ static int igt_atomic_commit(igt_display_t *display, uint32_t flags, void *user_
}
ret = drmModeAtomicCommit(display->drm_fd, req, flags, user_data);
- if (!ret) {
-
- for_each_pipe(display, pipe) {
- igt_pipe_t *pipe_obj = &display->pipes[pipe];
- igt_plane_t *plane;
-
- /* reset fence_fd to prevent it from being set for the next commit */
- for_each_plane_on_pipe(display, pipe, plane) {
- igt_plane_set_fence_fd(plane, -1);
- }
-
- if (pipe_obj->out_fence_fd == -1)
- continue;
-
- igt_assert(pipe_obj->out_fence_fd >= 0);
- ret = sync_fence_wait(pipe_obj->out_fence_fd, 1000);
- igt_assert(ret == 0);
- close(pipe_obj->out_fence_fd);
- pipe_obj->out_fence_fd = -1;
- }
- }
drmModeAtomicFree(req);
return ret;
@@ -2629,6 +2607,18 @@ display_commit_changed(igt_display_t *display, enum igt_commit_style s)
if (s != COMMIT_UNIVERSAL)
pipe_obj->mode_changed = false;
+ if (s == COMMIT_ATOMIC) {
+ pipe_obj->out_fence_requested = false;
+
+ if (pipe_obj->out_fence_fd == -1)
+ continue;
+
+ igt_assert(pipe_obj->out_fence_fd >= 0);
+ igt_assert_eq(sync_fence_wait(pipe_obj->out_fence_fd, 1000), 0);
+ close(pipe_obj->out_fence_fd);
+ pipe_obj->out_fence_fd = -1;
+ }
+
for_each_plane_on_pipe(display, pipe, plane) {
plane->fb_changed = false;
plane->position_changed = false;
@@ -2638,6 +2628,10 @@ display_commit_changed(igt_display_t *display, enum igt_commit_style s)
!(plane->type == DRM_PLANE_TYPE_PRIMARY ||
plane->type == DRM_PLANE_TYPE_CURSOR))
plane->rotation_changed = false;
+
+ if (s == COMMIT_ATOMIC)
+ /* reset fence_fd to prevent it from being set for the next commit */
+ igt_plane_set_fence_fd(plane, -1);
}
}
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH i-g-t 3/5] tests/kms_atomic_transition: Only request fence on enabled pipes
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 1/5] tests/kms_atomic_transition: Add test for plane completion ordering Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 2/5] lib/kms: Handle fence interaction correctly WRT TEST_ONLY Maarten Lankhorst
@ 2017-07-06 7:11 ` Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 4/5] tests/kms_atomic_transition: Do not clear in-fences after atomic commit Maarten Lankhorst
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-06 7:11 UTC (permalink / raw)
To: intel-gfx; +Cc: gustavo.padovan
Trying to set a fence on disabled pipes will be rejected by the kernel:
[ 1275.865029] [drm:drm_atomic_check_only [drm]] [CRTC:39:pipe B] requesting event but off
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99911
---
tests/kms_atomic_transition.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 2b56eef66b7b..a2470c0c3571 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -717,11 +717,11 @@ static void run_modeset_tests(igt_display_t *display, int howmany, bool nonblock
igt_plane_set_fb(plane, &fbs[1]);
igt_fb_set_size(&fbs[1], plane, mode->hdisplay, mode->vdisplay);
igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
+
+ if (fencing)
+ igt_pipe_request_out_fence(&display->pipes[i]);
} else
igt_plane_set_fb(plane, NULL);
-
- if(fencing)
- igt_pipe_request_out_fence(&display->pipes[i]);
}
/*
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH i-g-t 4/5] tests/kms_atomic_transition: Do not clear in-fences after atomic commit.
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
` (2 preceding siblings ...)
2017-07-06 7:11 ` [PATCH i-g-t 3/5] tests/kms_atomic_transition: Only request fence on enabled pipes Maarten Lankhorst
@ 2017-07-06 7:11 ` Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 5/5] igt/kms: Do not wait for fence completion during commit Maarten Lankhorst
2017-07-07 0:15 ` [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Gustavo Padovan
5 siblings, 0 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-06 7:11 UTC (permalink / raw)
To: intel-gfx; +Cc: gustavo.padovan
This is already done in igt_display_commit* functions.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
tests/kms_atomic_transition.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index a2470c0c3571..6e2b25da75db 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -367,14 +367,6 @@ static void configure_fencing(igt_display_t *display, enum pipe pipe)
}
}
-static void clear_fencing(igt_display_t *display, enum pipe pipe)
-{
- igt_plane_t *plane;
-
- for_each_plane_on_pipe(display, pipe, plane)
- igt_plane_set_fence_fd(plane, -1);
-}
-
static void atomic_commit(igt_display_t *display, enum pipe pipe, unsigned int flags, void *data, bool fencing)
{
if (fencing) {
@@ -383,9 +375,6 @@ static void atomic_commit(igt_display_t *display, enum pipe pipe, unsigned int f
}
igt_display_commit_atomic(display, flags, data);
-
- if (fencing)
- clear_fencing(display, pipe);
}
/*
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH i-g-t 5/5] igt/kms: Do not wait for fence completion during commit
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
` (3 preceding siblings ...)
2017-07-06 7:11 ` [PATCH i-g-t 4/5] tests/kms_atomic_transition: Do not clear in-fences after atomic commit Maarten Lankhorst
@ 2017-07-06 7:11 ` Maarten Lankhorst
2017-07-07 0:15 ` [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Gustavo Padovan
5 siblings, 0 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-06 7:11 UTC (permalink / raw)
To: intel-gfx; +Cc: gustavo.padovan
This will make the IGT tests that use fences more useful, since they can
perform the waiting themselves when required.
To celebrate, also add plane-use-after-nonblocking-unbind-fencing,
the fence version of plane-use-after-nonblocking-unbind.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
lib/igt_kms.c | 19 ++++++------
tests/kms_atomic_transition.c | 71 ++++++++++++++++++++++++++++++++-----------
2 files changed, 63 insertions(+), 27 deletions(-)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 8bf56faf41e9..6390229f1546 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -1698,6 +1698,7 @@ void igt_display_init(igt_display_t *display, int drm_fd)
pipe->plane_cursor = -1;
pipe->plane_primary = -1;
pipe->planes = NULL;
+ pipe->out_fence_fd = -1;
get_crtc_property(display->drm_fd, pipe->crtc_id,
"background_color",
@@ -1913,6 +1914,9 @@ static void igt_pipe_fini(igt_pipe_t *pipe)
free(pipe->planes);
pipe->planes = NULL;
+
+ if (pipe->out_fence_fd != -1)
+ close(pipe->out_fence_fd);
}
static void igt_output_fini(igt_output_t *output)
@@ -2502,7 +2506,11 @@ static void igt_atomic_prepare_crtc_commit(igt_pipe_t *pipe_obj, drmModeAtomicRe
igt_atomic_populate_crtc_req(req, pipe_obj, IGT_CRTC_ACTIVE, !!output);
}
- pipe_obj->out_fence_fd = -1;
+ if (pipe_obj->out_fence_fd != -1) {
+ close(pipe_obj->out_fence_fd);
+ pipe_obj->out_fence_fd = -1;
+ }
+
if (pipe_obj->out_fence_requested)
{
igt_atomic_populate_crtc_req(req, pipe_obj, IGT_CRTC_OUT_FENCE_PTR,
@@ -2607,16 +2615,9 @@ display_commit_changed(igt_display_t *display, enum igt_commit_style s)
if (s != COMMIT_UNIVERSAL)
pipe_obj->mode_changed = false;
- if (s == COMMIT_ATOMIC) {
+ if (s == COMMIT_ATOMIC && pipe_obj->out_fence_requested) {
pipe_obj->out_fence_requested = false;
-
- if (pipe_obj->out_fence_fd == -1)
- continue;
-
igt_assert(pipe_obj->out_fence_fd >= 0);
- igt_assert_eq(sync_fence_wait(pipe_obj->out_fence_fd, 1000), 0);
- close(pipe_obj->out_fence_fd);
- pipe_obj->out_fence_fd = -1;
}
for_each_plane_on_pipe(display, pipe, plane) {
diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 6e2b25da75db..e22763bdf94b 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -377,6 +377,31 @@ static void atomic_commit(igt_display_t *display, enum pipe pipe, unsigned int f
igt_display_commit_atomic(display, flags, data);
}
+static int fd_completed(int fd)
+{
+ struct pollfd pfd = { fd, POLLIN };
+ int ret;
+
+ ret = poll(&pfd, 1, 0);
+ igt_assert(ret >= 0);
+ return ret;
+}
+
+static void wait_for_transition(igt_display_t *display, enum pipe pipe, bool nonblocking, bool fencing)
+{
+ if (fencing) {
+ int fence_fd = display->pipes[pipe].out_fence_fd;
+
+ igt_assert_neq(fd_completed(fence_fd), nonblocking);
+
+ igt_assert(sync_fence_wait(fence_fd, 30000) == 0);
+ } else {
+ igt_assert_neq(fd_completed(display->drm_fd), nonblocking);
+
+ drmHandleEvent(display->drm_fd, &drm_events);
+ }
+}
+
/*
* 1. Set primary plane to a known fb.
* 2. Make sure getcrtc returns the correct fb id.
@@ -393,14 +418,17 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
struct igt_fb fb, argb_fb, sprite_fb;
drmModeModeInfo *mode, override_mode;
igt_plane_t *plane;
- uint32_t iter_max = 1 << display->pipes[pipe].n_planes, i;
- struct plane_parms parms[display->pipes[pipe].n_planes];
+ igt_pipe_t *pipe_obj = &display->pipes[pipe];
+ uint32_t iter_max = 1 << pipe_obj->n_planes, i;
+ struct plane_parms parms[pipe_obj->n_planes];
bool skip_test = false;
- unsigned flags = DRM_MODE_PAGE_FLIP_EVENT;
+ unsigned flags = 0;
int ret;
if (fencing)
prepare_fencing(display, pipe);
+ else
+ flags |= DRM_MODE_PAGE_FLIP_EVENT;
if (nonblocking)
flags |= DRM_MODE_ATOMIC_NONBLOCK;
@@ -444,10 +472,10 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
wm_setup_plane(display, pipe, iter_max - 1, parms);
if (fencing)
- igt_pipe_request_out_fence(&display->pipes[pipe]);
+ igt_pipe_request_out_fence(pipe_obj);
ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY | DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
- if (ret != -EINVAL || display->pipes[pipe].n_planes < 3)
+ if (ret != -EINVAL || pipe_obj->n_planes < 3)
break;
ret = 0;
@@ -474,25 +502,28 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
igt_display_commit2(display, COMMIT_ATOMIC);
if (type == TRANSITION_AFTER_FREE) {
- struct pollfd pfd = { display->drm_fd, POLLIN };
+ int fence_fd = -1;
wm_setup_plane(display, pipe, 0, parms);
atomic_commit(display, pipe, flags, (void *)(unsigned long)0, fencing);
+ if (fencing) {
+ fence_fd = pipe_obj->out_fence_fd;
+ pipe_obj->out_fence_fd = -1;
+ }
for_each_plane_on_pipe(display, pipe, plane)
plane->fb_changed = true;
igt_display_commit2(display, COMMIT_ATOMIC);
- /*
- * Previous atomic commit should have completed
- * before this plane-only atomic commit.
- */
- igt_assert_eq(poll(&pfd, 1, 0), 1);
-
- drmHandleEvent(display->drm_fd, &drm_events);
-
+ if (fence_fd != -1) {
+ igt_assert(fd_completed(fence_fd));
+ close(fence_fd);
+ } else {
+ igt_assert(fd_completed(display->drm_fd));
+ wait_for_transition(display, pipe, false, fencing);
+ }
goto cleanup;
}
@@ -502,7 +533,7 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
wm_setup_plane(display, pipe, i, parms);
atomic_commit(display, pipe, flags, (void *)(unsigned long)i, fencing);
- drmHandleEvent(display->drm_fd, &drm_events);
+ wait_for_transition(display, pipe, nonblocking, fencing);
if (type == TRANSITION_MODESET_DISABLE) {
igt_output_set_pipe(output, PIPE_NONE);
@@ -510,7 +541,7 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
wm_setup_plane(display, pipe, 0, parms);
atomic_commit(display, pipe, flags, (void *) 0UL, fencing);
- drmHandleEvent(display->drm_fd, &drm_events);
+ wait_for_transition(display, pipe, nonblocking, fencing);
} else {
uint32_t j;
@@ -522,14 +553,14 @@ run_transition_test(igt_display_t *display, enum pipe pipe, igt_output_t *output
igt_output_override_mode(output, &override_mode);
atomic_commit(display, pipe, flags, (void *)(unsigned long) j, fencing);
- drmHandleEvent(display->drm_fd, &drm_events);
+ wait_for_transition(display, pipe, nonblocking, fencing);
wm_setup_plane(display, pipe, i, parms);
if (type == TRANSITION_MODESET)
igt_output_override_mode(output, NULL);
atomic_commit(display, pipe, flags, (void *)(unsigned long) i, fencing);
- drmHandleEvent(display->drm_fd, &drm_events);
+ wait_for_transition(display, pipe, nonblocking, fencing);
}
}
}
@@ -874,6 +905,10 @@ igt_main
for_each_pipe_with_valid_output(&display, pipe, output)
run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, false);
+ igt_subtest("plane-use-after-nonblocking-unbind-fencing")
+ for_each_pipe_with_valid_output(&display, pipe, output)
+ run_transition_test(&display, pipe, output, TRANSITION_AFTER_FREE, true, true);
+
igt_subtest("plane-all-modeset-transition")
for_each_pipe_with_valid_output(&display, pipe, output)
run_transition_test(&display, pipe, output, TRANSITION_MODESET, false, false);
--
2.11.0
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit.
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
` (4 preceding siblings ...)
2017-07-06 7:11 ` [PATCH i-g-t 5/5] igt/kms: Do not wait for fence completion during commit Maarten Lankhorst
@ 2017-07-07 0:15 ` Gustavo Padovan
2017-07-10 7:06 ` Maarten Lankhorst
5 siblings, 1 reply; 8+ messages in thread
From: Gustavo Padovan @ 2017-07-07 0:15 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-gfx, gustavo.padovan
Hi Maarten,
2017-07-06 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>:
> I wanted to make kms_atomic_transition pass, but the nonblocking modeset
> fencing tests were bogus.
>
> This series changes the semantics for fencing slightly. It only keeps the out fences
> in pipe_obj->out_fence_fd, it's up to the test to decide what to do with it, which
> is probably just waiting on the fd or checking if it completed.
>
> Maarten Lankhorst (5):
> tests/kms_atomic_transition: Add test for plane completion ordering.
> lib/kms: Handle fence interaction correctly WRT TEST_ONLY.
> tests/kms_atomic_transition: Only request fence on enabled pipes
> tests/kms_atomic_transition: Do not clear in-fences after atomic
> commit.
> igt/kms: Do not wait for fence completion during commit
>
> lib/igt_kms.c | 41 ++++++++----------
> tests/kms_atomic_transition.c | 99 +++++++++++++++++++++++++++++++++----------
> 2 files changed, 95 insertions(+), 45 deletions(-)
This make fencing a lot cleaner.
For the whole series:
Acked-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Gustavo
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit.
2017-07-07 0:15 ` [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Gustavo Padovan
@ 2017-07-10 7:06 ` Maarten Lankhorst
0 siblings, 0 replies; 8+ messages in thread
From: Maarten Lankhorst @ 2017-07-10 7:06 UTC (permalink / raw)
To: Gustavo Padovan; +Cc: intel-gfx, gustavo.padovan
Op 07-07-17 om 02:15 schreef Gustavo Padovan:
> Hi Maarten,
>
> 2017-07-06 Maarten Lankhorst <maarten.lankhorst@linux.intel.com>:
>
>> I wanted to make kms_atomic_transition pass, but the nonblocking modeset
>> fencing tests were bogus.
>>
>> This series changes the semantics for fencing slightly. It only keeps the out fences
>> in pipe_obj->out_fence_fd, it's up to the test to decide what to do with it, which
>> is probably just waiting on the fd or checking if it completed.
>>
>> Maarten Lankhorst (5):
>> tests/kms_atomic_transition: Add test for plane completion ordering.
>> lib/kms: Handle fence interaction correctly WRT TEST_ONLY.
>> tests/kms_atomic_transition: Only request fence on enabled pipes
>> tests/kms_atomic_transition: Do not clear in-fences after atomic
>> commit.
>> igt/kms: Do not wait for fence completion during commit
>>
>> lib/igt_kms.c | 41 ++++++++----------
>> tests/kms_atomic_transition.c | 99 +++++++++++++++++++++++++++++++++----------
>> 2 files changed, 95 insertions(+), 45 deletions(-)
> This make fencing a lot cleaner.
>
> For the whole series:
>
> Acked-by: Gustavo Padovan <gustavo.padovan@collabora.com>
>
> Gustavo
>
Thanks, pushed. :)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-07-10 7:06 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-06 7:11 [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 1/5] tests/kms_atomic_transition: Add test for plane completion ordering Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 2/5] lib/kms: Handle fence interaction correctly WRT TEST_ONLY Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 3/5] tests/kms_atomic_transition: Only request fence on enabled pipes Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 4/5] tests/kms_atomic_transition: Do not clear in-fences after atomic commit Maarten Lankhorst
2017-07-06 7:11 ` [PATCH i-g-t 5/5] igt/kms: Do not wait for fence completion during commit Maarten Lankhorst
2017-07-07 0:15 ` [PATCH i-g-t 0/5] igt/kms: Make fence waiting explicit Gustavo Padovan
2017-07-10 7:06 ` Maarten Lankhorst
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.