[cairo] Report for the pango patch and proper profiles

Daniel Amelang daniel.amelang at gmail.com
Tue Dec 5 15:18:19 PST 2006


On 12/5/06, Carl Worth <cworth at cworth.org> wrote:
> On Tue, 5 Dec 2006 14:21:56 -0800, "Daniel Amelang" wrote:
> > 1.15.0: Drawn label 766 times
> > 1.15.1: Drawn label 833 times
> >
> > Way to go Behdad!
>
> Yes. Well done!
>
> > And we can take down that nasty __muldf3 and __floatsidf in pangocairo
> > (in the loop in draw_glyphs) with a little magic...The __adddf is a
> > little tough, though, unless the crenderer->*_offset are both 0, I
> > don't know how often that is true.
>
> And we still have some arithmetic to get rid of on the cairo side
> right? I don't see any symbols in this latest report, but the last I
> remember we still had some useless transformation through the common
> identity matrix.
>
> I'd be willing to fix that, (should be simple enough). But Dan, didn't
> you already make some attempts at that? And you just didn't like how
> clean they were yet?

Yup, I still have that sitting around. I thought I'd finish it today
(it's really, really close), but the lround bug came up. I'm thinking
tomorrow now.

>
> > I can look at it once I finish the lround bugfix, integrate pdiff,
> > finish cairo_rectangle optimizations...oh man.
>
> Heh. There's certainly a lot to do. I can do some pdiff work if you'd
> like. Again, didn't you have an early version of this too? It'd be
> great to have that to start with.

Of all that, I think it's the pdiff work that I could use the help on.
I spent most of my time just learning the concepts of it, and getting
familiar with the code, so I don't have much code of my written yet.
Just a system() call to pdiff from within cairo-test, and that's it. I
was in the middle of determining if it would need the same image
flattening code that the current image_diff uses. And, it needs a
little extra code for the offsetting, like the current image_diff
does. Like I mentioned before, the approach I wanted to use was to
create a pdiff.c in cairo-test that encapsulated everything from the
flattening to the offsetting and even the whole algorithm. Then just
exposing a single function API.

> And what's the cairo_rectangle optimization?

This is the same as the transform optimizations you brought up above.
It just that cairo_rectangle is a good entry point to expose it. Plus,
Xan's torturer profiles show cairo_rectangle getting called quite
frequently. I already have a nice perf test for this one. Will send
the patch with the optimization code patches (hopefully tomorrow?).

Dan


More information about the cairo mailing list