Shift up our calculation of the flags we use for atomic commits. We will
later use this to differentiate between test-only and full commits when
printing debug information inside drm_output_state_apply_atomic.

Signed-off-by: Daniel Stone <dani...@collabora.com>
---
 libweston/compositor-drm.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index e27671437..653d13e0c 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -2499,12 +2499,24 @@ drm_pending_state_apply_atomic(struct drm_pending_state 
*pending_state,
        struct drm_output_state *output_state, *tmp;
        struct drm_plane *plane;
        drmModeAtomicReq *req = drmModeAtomicAlloc();
-       uint32_t flags = 0;
+       uint32_t flags;
        int ret = 0;
 
        if (!req)
                return -1;
 
+       switch (mode) {
+       case DRM_STATE_APPLY_SYNC:
+               flags = 0;
+               break;
+       case DRM_STATE_APPLY_ASYNC:
+               flags = DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK;
+               break;
+       case DRM_STATE_TEST_ONLY:
+               flags = DRM_MODE_ATOMIC_TEST_ONLY;
+               break;
+       }
+
        if (b->state_invalid) {
                struct weston_head *head_base;
                struct drm_head *head;
@@ -2597,17 +2609,6 @@ drm_pending_state_apply_atomic(struct drm_pending_state 
*pending_state,
                goto out;
        }
 
-       switch (mode) {
-       case DRM_STATE_APPLY_SYNC:
-               break;
-       case DRM_STATE_APPLY_ASYNC:
-               flags |= DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK;
-               break;
-       case DRM_STATE_TEST_ONLY:
-               flags |= DRM_MODE_ATOMIC_TEST_ONLY;
-               break;
-       }
-
        ret = drmModeAtomicCommit(b->drm.fd, req, flags, b);
 
        /* Test commits do not take ownership of the state; return
-- 
2.17.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to