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) | |
| download | wlroots-adfb7cd35a364cfbb197720bbb821ccd3c22a613.tar.xz | |
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(  | 
