[cairo] Cairo vs. Xft glyph rendering

Jorn Baayen jorn at openedhand.com
Fri Dec 15 04:00:19 PST 2006


Hi,

On Mon, 2006-12-11 at 04:46 -0500, Behdad Esfahbod wrote:
> On Fri, 2006-12-08 at 10:04 -0500, Vladimir Vukicevic wrote:
> 
> > Maybe one of the X folks here could let us know whether doing this could 
> > result in a performance gain?  We already have to do the lookup per 
> > glyph to make sure that it's sent to the server, so we could always 
> > change the data structure that's used to pass things down to 
> > xlib_show_glyphs{8,16,32} so that it sends the right info, instead of 
> > just sending down the cairo_glyph_t array.  That is, either pass down 
> > cairo_glyph_t + per-glyph offsets, or even do the run computation ahead 
> > of time and pass down some structure that can be trivially converted to 
> > the appropriate size XGlyphElt array.
> 
> This is basically what I've done now, and pushed into my tree under the
> branch xlib-show-glyphs-fast:
> 
> http://gitweb.freedesktop.org/?p=users/behdad/cairo.git;a=shortlog;h=xlib-show-glyphs-fast
> 
> The patch set is attached.  I started by introducing a new type
> cairo_glyph_fixed_t and pass that down, but at the end I figured this is
> actually a penalty for most backends and not much gain for any, so I
> backed that up.
> 
> Other than compressing glyphs into elements, I also made a semantic
> change to show_glyphs() calls all over the tree, that is, those
> functions that get a non-const cairo_glyph_t* are allowed to modify the
> glyph array unless then return CAIRO_STATUS_UNSUPPORTED.  This means,
> backends can modify the input glyph array or use it for totally
> different things instead of having to duplicate it or allocate memory.
> My rewritten cairo_xlib_show_glyphs() heavily uses this.
> 
> Anyway, patchset attached.  It looks ready to me, and on my laptop saves
> some 6% on timetext (plus a malloc per show_glyphs()).
> 
> Waiting for numbers :-)

The usual timetext profile (pango 1.15.1, cairo 1.3.4 + patchset):
http://folks.o-hand.com/jorn/pango-benchmarks/28-xlib-show-glyphs-fast/

A 5% win on timetext. Yay :)

Thanks,

Jorn


> 
> 
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo
-- 
OpenedHand Ltd.
http://o-hand.com/



More information about the cairo mailing list