Skip to content

xwayland/present: Move DIX Present WNMD code to Xwayland DDX

The WNMD abstraction serves no purpose for Xwayland alone. No other users have emerged in the 3 years it's been there, and I'm not aware of any plans for other users.

So, this MR abolishes the abstraction and moves the WNMD specific code to the Xwayland DDX. This then opens up various simplifications and cleanups, which will make it easier to extend and improve Xwayland's Present support.

struct xwl_present_event now embeds present_vblank_rec, and all but one of its other members are eliminated. The remaining pixmap member could be eliminated as well, but it's a bit more complicated. And I suspect more members might be added for other purposes in the near future, e.g. for presentation-time protocol support. If that turns out not to be the case, I can remove it in a later MR.

Testing performed

For all 4 cases (flip and non-flip paths, each with or without sync-to-vblank):

  • Verified correct operation with glxgears.
  • Same with Xwayland running in valgrind, no leaks or other errors reported.
  • Same with an additional debugging patch to confirm there's no build-up of lingering struct xwl_present_events which are only cleaned up when the window is destroyed.
Edited by Michel Dänzer

Merge request reports