[cairo] clip stack composition performance

Alexander Larsson alexl at redhat.com
Fri Jun 10 09:55:11 PDT 2005

On Fri, 2005-06-10 at 09:40 -0700, Carl Worth wrote:
> On Fri, 10 Jun 2005 10:33:33 +0200, Alexander Larsson wrote:
> > It turns out that a lot of the time is spent in the general compositor
> > code doing PIXMAN_OPERATOR_IN on the a8 clip masks when clip regions are
> > stacked on top each other.
> Yes, we've known for some time that a fast-pathed IN operator was
> missing. It's actually encouraging to see expected thins showing up in
> the profiles.


> >                                                       (Although owen
> > said I shouldn't touch the libpixman compositing code until the new
> > compositing code from the X server is merged...)
> The approach I've been taking most recently with libpixman is that
> xserver/fb is the canonical upstream source for libpixman files. I'm
> intentionally ignoring any other X server tree with respect to
> libpixman.
> Also as things are merged from xserver to libpixman, libpixman files
> should be changed to look like xserver files as much as possible,
> (eg. removing any gratuitous renaming that had been done in libpixman,
> except without changing the libpixman public API).
> So if you can get this patch working and committed to xserver/fb
> first, that would be fantastic. And then there is no question about
> accepting it in libpixman. I don't think you would even need to wait
> for any merging of any other code first, (though it might be easier to
> re-sync libpixman with xserver/fb first anyway).

I don't even have the xserver tree checked out here, but i might take a
look at doing this next week.

> If we ever do commit new code to libpixman that isn't already in
> xserver, then this introduces a bug in libpixman, and a bugzilla entry
> for libpixman shall be opened at bugs.freedesktop.org.
> > -  doPath (state, state->getPath(), gFalse);
> > +  doPath (state, state->getPath(), gTrue);
> So what is that doing, anyway?

It rounds all the clip path coordinates (which in general are clip
rects) to integer coordinates.

> As for the actual patch here, the structure looks fine as far as I can
> tell. I can't comment much on the implementation, but I could run it
> through some testing.

Running it through some basic testing would be nice.

 Alexander Larsson                                            Red Hat, Inc 
                   alexl at redhat.com    alla at lysator.liu.se 
He's an ungodly hunchbacked card sharp on a mission from God. She's a 
cold-hearted hypochondriac mechanic with a knack for trouble. They fight 

More information about the cairo mailing list