[cairo] cairo/inkscape problems

bulia byak buliabyak at gmail.com
Wed Feb 21 08:39:45 PST 2007

Hi all,

Recently Inkscape started to use cairo for rendering. The current plan
is to gradually switch various elements of our display engine to
cairo. This is relatively easy to do and gives immediate benefits in
code simplification, performance, and memory usage. The first step is
outline mode which is mostly cairo in SVN HEAD and is now about 25%
faster and uses less memory than in 0.45. After we switch all
individual modes and object types to cairo, we can start looking at
overall optimization of our rendering pipeline, making the use of
cairo more direct. Eventually that will enable us to switch to using
cairo's hardware-accelerated backends, which will give performance yet
another boost.

However, experiments with outline mode revealed some cairo bugs which
prevent us from moving forward. I really hope they can be fixed soon
and we can continue with the switch :)

1. The 1-byte surface is broken unless the stride is divisible by four
(a known problem according to Carl). If I make my own buffers for each
object I can work around this, but I'm optimizing and trying to use
existing buffers, and some of them are already clipped and cannot be

2. Large paths disappear on close zoom. Carl says it's a precision
problem. You'll need to compile and run Inkscape SVN to see that.
Switch to Outline mode (View > Display mode), draw a path larger than
the page, and zoom into it. At some point it disappears.

3. This may be related to 2. In a complex drawing with lots of paths,
zooming in too closely shows lots of random stray lines all over the
screen. Open share/examples/gallardo.svgz from Inkscape distribution,
switch to Outline and zoom into an area where many paths are close to
each other. At about 5000%, the pandemonium starts.

Please let me know what are the chances of fixing these issues :)

bulia byak
Inkscape. Draw Freely.

More information about the cairo mailing list