Re: [cairo] Report for the pango patch and proper profiles



On 12/5/06, Carl Worth <cworth 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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]