From 3158a2d42ec602c9dd138fcff1b9ad0c8e7db13d Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 20 Jul 2018 19:35:05 +0100 Subject: [PATCH] compositor-drm: Calculate atomic-commit flags earlier 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 Reviewed-by: Pekka Paalanen --- 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 38911763..94d78752 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -2497,12 +2497,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; @@ -2595,17 +2607,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