Red Hat's Owen Taylor who is largely responsible for the work on the GNOME Shell and Mutter has written his response to the recent article about How Unity, Compiz, GNOME Shell and KWin Affect Performance
Owen's comments on his blog
are pretty much as expected and come down to attributing the shortcomings of GNOME Shell / Mutter with not handling undirected full-screen rendering at this point.
Adel Gadllah has had patches for Mutter and GNOME Shell to add unredirection for over a year, but I’ve dragged my feet on landing them, because there were some questions about when it’s appropriate to unredirect a window and when not that I wasn’t sure we had fully answered. We want to unredirect fullscreen 3D games, but not necessarily all fullscreen windows. For example, a fullscreen Firefox window is much like any other window and can have separate dialog windows floating above it that need compositing manager interaction to draw properly.
We should land some sort of unredirection soon to benefit 3D gamers, but really, I’m much more interested in compositing manager performance in situations where the compositing manager actually has to composite.
This is where KDE's Kwin now does suspended compositing
. Coming as a result of Owen's investigation though is a new benchmark to measure the effect of the compositing manager on the application re-draw performance. In Owen's blog he goes into more details about the application re-draw process and what his benchmark is doing. He also has some initial results comparing KWin, Compiz, and Mutter. He also looks at the affects of not compositing and off-screen rendering.
My goal here is that this is a benchmark that we can all use to figure out the right timing algorithms and get them implemented across compositors. At that point, I’d expect to see only minimal differences, because the basic work that every compositor has to do is the same: just copy the area that the application updated to the screen and let the application start drawing the next frame.
A Phoronix Test Suite test profile for this xcompbench program is likely to come.