[cairo] cairo+pixman profiling

Jeff Muizelaar jeff at infidigm.net
Mon Nov 5 19:36:57 PST 2007

On Tue, Nov 06, 2007 at 12:03:04PM +0900, Nguyen Vu Hung wrote:
> Hi all,
> I've tried profiling my application with gdprof. You can see the
> result at the end of this email.
> My questions are:
> 1. Where fbRasterizeEdges and other cairo_pixman_* are called inside
> cairo? How do I optimize them?

These are called when using the software rasterizer. The ideal solution
to this problem is replacing the rasterizer. However, that is likely
quite a bit of work. There has been discussion about possible
implementations but no real conclusions were ever made.

> 2. Where unpremultiply_data is callled? What this function does?

Probably in the png writing code. It does c*255/alpha on each component
of a pixel.

> BTW, because I am new to profiling and performance optimization,
> suggests and comments are appreciated.
>   20.12    267.68   267.68                             fbRasterizeEdges
> [snip]
>   7.18    776.12    95.46
> _cairo_pixman_composite_solid_mask_nx8x8888mmx

_cairo_pixman_composite_solid_mask_nx8x8888mmx this may be able to be
optimized further. However, large speedups may be possible just by using
a newer version of gcc. Older versions of gcc often do a very bad job
optimizing mmx intrinsic code.


More information about the cairo mailing list