aboutsummaryrefslogtreecommitdiff
path: root/include/backend/drm
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-12-25 11:12:21 +0100
committerSimon Ser <contact@emersion.fr>2021-01-03 19:35:02 +0100
commitadfb7cd35a364cfbb197720bbb821ccd3c22a613 (patch)
treeb0562b677b04e01fa3ffae22c574cb0866ab6d34 /include/backend/drm
parent576ff57db09f6f4ee523a567712a3ffcf5dc45a8 (diff)
backend/drm: stash pending page-flip CRTC
wlr_drm_connector.crtc may be updated by the DRM backend while a page-flip is pending. In this case, the page-flip handler won't be able to find the right wlr_drm_connector from the CRTC ID. Save the CRTC when performing a page-flip to ensure we always find the right connector when we get the event.
Diffstat (limited to 'include/backend/drm')
-rw-r--r--include/backend/drm/drm.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h
index 3f2215fb..c3391dcf 100644
--- a/include/backend/drm/drm.h
+++ b/include/backend/drm/drm.h
@@ -129,13 +129,14 @@ struct wlr_drm_connector {
struct wl_list link;
- /*
+ /* CRTC ID if a page-flip is pending, zero otherwise.
+ *
* We've asked for a state change in the kernel, and yet to receive a
* notification for its completion. Currently, the kernel only has a
* queue length of 1, and no way to modify your submissions after
* they're sent.
*/
- bool pageflip_pending;
+ uint32_t pending_page_flip_crtc;
};
struct wlr_drm_backend *get_drm_backend_from_backend(