This MR contains some small to medium sized changes to Present window mode and the interfacing Xwayland part. They were part of my work on presentation-timing but since I hit some road blocks with this work I decided to split out these changes which can be merged independently and should improve the current code in any case.
A notable change is the introduction of methods
present_wnmd_present_notify present_wnmd_flip_notify and present_wnmd_idle_notify to the Present window mode API what separates the calls for signalling a queued event, a flip and a Pixmap becoming idle. That makes it more obvious what's happening in an API call and allows to idle vblanks at any time from Xwayland what simplifies its internal logic.
This is an API-breaking change in regards to window mode. DDX written against the previous version won't work anymore. It is assumed that there only exists the XWayland DDX at the moment using the window mode such that this is not an issue for the overall ecosystem.