diff options
author | Simon Ser <contact@emersion.fr> | 2020-12-25 11:12:21 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-01-03 19:35:02 +0100 |
commit | adfb7cd35a364cfbb197720bbb821ccd3c22a613 (patch) | |
tree | b0562b677b04e01fa3ffae22c574cb0866ab6d34 /include/backend/drm/drm.h | |
parent | 576ff57db09f6f4ee523a567712a3ffcf5dc45a8 (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/drm.h')
-rw-r--r-- | include/backend/drm/drm.h | 5 |
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( |