← Back to team overview

registry team mailing list archive

[Bug 655024] Re: Using higher cpu usage

 

It looks like if you could have the cairo stroker use a temporary
surface in this case, it would be much faster than direct rendering. The
major CPU in this bug is spent in a "tesselating" function. Long story
short, it looks like there are ways to avoid activating that function.
The function is used when cairo renders to xlib or xcb, which I imagine
is what murrine does now. This quote indicates that drawing to a
"temporary surface" and copying from there should help a lot (future
cairo optimizations may fix this):

.. (T)he rasterization method (new in 1.10) used by the image backend can deal with self-intersecting
polygons just fine, so there's no need for tessellating the outline polygon.

.. from cairo bugzilla on this issue at
https://bugs.freedesktop.org/show_bug.cgi?id=31589#c3

I assume that rendering to a temporary surface will use this faster
"image" backend (6 or 7 times faster in transmission-gtk+murrine,
according to cairo profiling tools I've used.)

Before I dig deeper, can you tell me something about this code:
 
  pango_cairo_layout_path (cr, layout);
  murrine_set_color_rgba (cr, &temp, 0.5);
  cairo_stroke (cr);

.. you mentioned "pango_cairo_layout_path (cr, layout);
is slow". Is that definite, or could it be cairo_stroke(cr);

Thanks!

-- 
Using higher cpu usage
https://bugs.launchpad.net/bugs/655024
You received this bug notification because you are a member of Registry
Administrators, which is the registrant for libcairo.