Skip to content

WIP: clutter/offscreen-effect: Don't cache until there is no damage

Daniel van Vugt requested to merge vanvugt/mutter:defer-offscreening into master

The offscreen effect is good for performance in cases where the same paint is reused across multiple frames, but bad for performance if it's never being reused (ie. the actor is animating at full frame rate).

We now skip offscreening on the first frame each time the actor has new content. This avoids the pathological case where offscreening is guaranteed to be slower.

The compromise is that we can't predict the future. The one case where this is not the optimal solution is if an actor is trying to animate at exactly half frame rate. So we are making the assumption that's less common than the full frame rate case. For one third frame rate or less, offscreening is again the best choice.

On an i7-7700 this reduces the render time of offscreenable animations by 25-30%.

Edited by Daniel van Vugt

Merge request reports