aboutsummaryrefslogtreecommitdiff
path: root/backend/drm
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-01-19 23:46:40 +0100
committeremersion <contact@emersion.fr>2018-01-19 23:46:40 +0100
commit584f06ad2fb45cfc57fc1a0cdd59deec0c2d18c1 (patch)
treec6c24de445856d3cdf3d3499c8b6f04a5817f778 /backend/drm
parentf0f97280a0364f58c1b5fc3f95818c6969058010 (diff)
backend/drm: do not try a pageflip is another one is in pending
Diffstat (limited to 'backend/drm')
-rw-r--r--backend/drm/drm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 267cafc3..e6bfee8c 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -201,6 +201,11 @@ static void wlr_drm_connector_swap_buffers(struct wlr_output *output) {
}
uint32_t fb_id = get_fb_for_bo(bo);
+ if (conn->pageflip_pending) {
+ wlr_log(L_ERROR, "Skipping pageflip");
+ return;
+ }
+
if (drm->iface->crtc_pageflip(drm, conn, crtc, fb_id, NULL)) {
conn->pageflip_pending = true;
} else {