[cairo] svgspacewar patch for cairo0.5.0, gtk2.7.0

Carl Worth cworth at cworth.org
Tue Jun 21 09:34:25 PDT 2005

On Tue, 21 Jun 2005 22:35:19 +1000, Nigel Tao wrote:
> cairo-demo/svgspacewar patch for new 0.5.0 API, mostly simple function
> renames.  Now no longer uses gtkcairo and its "paint" signal, but
> instead gtk's "expose-event", and gdk_cairo_create.

Excellent! Thanks for contributing.

> I presume that that is the right way to do it.

It sounds perfect to me. It's encouraging to see that the change from
gtkcairo to using the cairo support in GTK+ is so painless.

> If somebody privileged would like to cvs commit, that would be
> great.

It's all committed now.

For what it's worth I notice that svgspacewar runs at about 400 frames
per second at its default size. Then, if I scale the window at all, it
drops down to about 5 fps.

This is actually pretty good news since I think the last time I ran
this program I was getting the slow behavior in both cases. So it
looks like there has been some great progress for the
identity-transform paths. Well done!

Meanwhile, the slow version should point us to where we can make some
improvements. Here's what I see in oprofile for the slow case:

  samples|      %|
    53952 75.7859 Xati
     8669 12.1773 no-vmlinux
     7057  9.9129 libc-2.3.4.so
      859  1.2066 libcairo.so.1.0.0
      125  0.1756 libm-2.3.4.so

And the Xati breakdown is:

samples  %        symbol name
45461    84.2619  fbRasterizeEdges8
2588      4.7969  fbSolid
1531      2.8377  fbFetch_x8r8g8b8
1504      2.7877  ATIWaitIdle
1294      2.3984  fbFetch_a8

So the rasterization hot spot is pretty obvious here. I did some
research into this some time ago and I've been planning to try some
things now that the API work has settled down quite a bit. I still
think the quickest way to make some big improvements here is to change
the tessellator to emit pixel-aligned rectangles as much as possible
so that fbRasterizeEdges8 won't be called as often, (as opposed to
trying to speed up fbRasterizeEdges8).

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20050621/f768b60b/attachment.pgp

More information about the cairo mailing list