[cairo-bugs] [Bug 88203] Replaying recording surfaces with OVER has far worse performance than when using the SOURCE operator

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Jan 8 15:31:43 PST 2015


--- Comment #7 from Emanuele Aina <emanuele.aina at collabora.com> ---
> There is a problem with using OVER as a shortcut here over existing content.
> The problem is that the command is to blend the final result of the replay
> with the existing content, but the inplace replay with apply its own
> operators with the existing content (when the intent of the replay is to
> apply those only to itself).

Shame, that's what I feared. This means that the documentation is somewhat
misleading: as I read it, I interpreted the recording surfaces as a mechanism
to get delayed execution, for which I would have expected that the replay
operators *would* mess with the target surface.

My understanding is that an alternative way to get the current behaviour is to
always explicitly replay the recorded operations to a temporary surface and
then composite it, but there's no way to get the delayed execution which is
somewhat described in the documentation.

If the point of recording surfaces is not delayed execution, what's their real

> Sorry, the requirement is that the dst->is_clear for OVER to be able to
> replay in place. You could analyse the replay and decide that it doesn't use
> any operators that would mess up inplace though.

This is definitely well above my current understanding of cairo's code, sorry.

I can probably hack my application to use the SOURCE operator and some smart
clipping to avoid the performance hit, but I honestly find the current
behaviour quite surprising.

You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo-bugs/attachments/20150108/c10f9a09/attachment-0001.html>

More information about the cairo-bugs mailing list