Phoronix: New XWayland API Proposed For Better Performance
A new XWayland API has been proposed for helping the X.Org drivers implement the ScheduleSwap event and for providing an efficient implementation of async swaps. The new interfaces for XWayland can avoid copies and thus provide real-world performance improvements...
An important thing to note is that initially, AsyncSwap was proposed by Chris Wilson,
and he has done an implementation for the intel DDX. If a patch enabling AsyncSwap
is merged, XWayland won't be the only one to benefit from increased of performance
and removal of tearings.
hmm, xorg server 1.15 merge window closes in two weeks, is this ready enough to be merged right away? Would it keep Xwayland from being merged until the next version? Is Xwayland ready to be merged in the first place?
So ... did I miss something? Applications that draw into thier own buffer are essentially equivalent to fullscreen as far as wayland cares right?
On X, Dri2 Applications render into a back buffer.
The front buffer is what we see from the application.
If the application has added decorations to the window, the front buffer has a different size than the back-buffer. You can't optimize in this case: you have to do a copy from the back-buffer to the front-buffer.
If the front-buffer was being drawn on your monitor during the copy, you may get tearings.
When you have a fullscreen application, you have no added decoration, then you can avoid the copy if the front buffer and back buffer are similar, by doing an exchange.
Some Window manager handle decorations in some ways, that the front-buffer is the same size of the back-buffer everytime. In that case we can optimize as in fullscreen mode.
For Wayland, the model is different, and you can always avoid the copy for applications using the GPU. XWayland has to do as X, but lives in a Wayland world.