output: consider dropping the needs_frame event
wlr_output.events.needs_frame
is currently used in 3 places:
- DRM cursor changes, but
10:56:40 <emersion> the DRM cursor thing will go away once the cursor is integrated into output layers
- X11 in response to
XCB_EXPOSE
- we need to submit a new frame when parts of the output become visible, which can happen after the front buffer has been released. This can maybe be done by locking the front buffer, which is probably slower but oh well - export-dmabuf-v1 and screencopy-v1 (cc !4277 (merged)) which don't seem to have a way out here. Similarly to x11, can probably be done by locking the front buffer, except people use these so it would be better to do it right. Perhaps they could be special cased and own a signal so that
wlr_output
can avoid holding onto accommodations for these protocols.