[cairo] cairo+pixman profiling

Nguyen Vu Hung vuhung16plus at gmail.com
Mon Nov 5 20:03:43 PST 2007

2007/11/6, Jeff Muizelaar <jeff at infidigm.net>:
> 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.
You are talking about the problems of "software rasterizer".Do you
know any solutions for "hardware rasterizer"? Is that GPU makes
rasterization faster?

> >
> > 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.
Thank you. I don't think this bottleneck be be overcome because I need
to write PNG files ( with alpha channel ).

The algorithm of "pre-multiplied" values as described in "Compositing
Digital Images"[1]. It is primitive per-byte proccessing. Can it be
faster if done with hardware? GPU?

> > _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.
I am using 3.4.6, and the latest gcc is 4.2.2. Which version should i use?

And other cairo funtions those make big contributions to the performance:

  2.18    908.68    28.94
  1.21    924.78    16.10
  1.04    938.56    13.78
  0.68   1007.55     9.01
  0.66   1016.28     8.74                             _cairo_fixed_from_double
  0.64   1024.81     8.53
  0.64   1033.34     8.53                             _compute_face

Any comments?

[1] http://keithp.com/~keithp/porterduff/

Best Regards,
Nguyen Hung Vu
An inquisitive look at Harajuku

More information about the cairo mailing list