[cairo] Cairo 1.3 performance loss
behdad at behdad.org
Tue Jan 30 15:00:13 PST 2007
On Tue, 2007-01-30 at 17:02 -0500, Daniel Amelang wrote:
> On 1/30/07, Jorn Baayen <jorn at openedhand.com> wrote:
> > 1.3.8 sees a 1.15x text drawing speedup wrt 1.3.6 (which performs about
> > the same as 1.2.4) -- probably due to Behdad's show_glyphs rework. With
> > 1.3.10 text drawing sees a 0.89x slowdown. I'll trace down what exactly
> > causes this (hopefully) tomorrow.
> One thing comes to mind: Behdad fixed a bug in 1.3.10 (I think) that
> added an extra check before enabling a show_glyphs optimization (in
> cairo-gstate somewhere). It is possible that the 1.3.6 was faster
> because it used this optimization where it really shouldn't have.
I believe you mean this:
@@ -1588,7 +1588,8 @@ _cairo_gstate_transform_glyphs_to_backend (cairo_gstate_t *gstate,
cairo_matrix_t *device_transform = &gstate->target->device_transform;
if (_cairo_matrix_is_identity (ctm) &&
- _cairo_matrix_is_identity (device_transform))
+ _cairo_matrix_is_identity (device_transform) &&
+ gstate->font_matrix.x0 == 0 && gstate->font_matrix.y0 == 0)
memcpy (transformed_glyphs, glyphs, num_glyphs * sizeof (cairo_glyph_t));
This shouldn't have any impact in typical uses, as font matrices with
non-zero translation are not used in Pango at all.
The only other change between 1.3.8 and 1.3.10 I see that *may* have any
impact is Carl's optimization for rectilinear strokes, but I really
doubt that's what you're looking for.
Can you retest?
> Sorry for not providing specifics. I have to take off right now. I can
> get you more later if you need it.
> cairo mailing list
> cairo at cairographics.org
"Those who would give up Essential Liberty to purchase a little
Temporary Safety, deserve neither Liberty nor Safety."
-- Benjamin Franklin, 1759
More information about the cairo