[cairo] patch for cairo_traps_extract_region

Carl Worth cworth at cworth.org
Mon Jun 18 12:01:53 PDT 2007


On Fri, 15 Jun 2007 14:14:35 -0700, Vladimir Vukicevic wrote:
> The previous patch had some issues; I didn't catch them due to PEBKAC.
> Here's an updated patch and a perf test for this.

Great job, Vlad, thanks!

The test case looks a full 3x faster for me, (on both image and xlib
backends). And the previously very lopsided profile:

samples  %        image name               app name                 symbol name
97415    30.0479  libcairo.so.2.11.4       libcairo.so.2.11.4       pixman_op
81395    25.1065  libcairo.so.2.11.4       libcairo.so.2.11.4       pixman_region_unionO
11721     3.6154  libcairo.so.2.11.4       libcairo.so.2.11.4       _compute_face
10126     3.1234  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_traps_add_trap_from_points
9622      2.9679  oprofiled                oprofiled                (no symbols)
8410      2.5941  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_stroker_line_to_dashed
7909      2.4396  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_traps_tessellate_convex_quad
7259      2.2391  libc-2.5.so              libc-2.5.so              _int_malloc
6335      1.9540  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_traps_extract_region
5888      1.8162  libcairo.so.2.11.4       libcairo.so.2.11.4       cairo_matrix_transform_distance

is now much more flat:

samples  %        image name               app name                 symbol name
11736     8.3665  libcairo.so.2.11.4       libcairo.so.2.11.4       _compute_face
10708     7.6337  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_traps_add_trap_from_points
8886      6.3348  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_stroker_line_to_dashed
8284      5.9056  libcairo.so.2.11.4       libcairo.so.2.11.4       QuickSortRects
7611      5.4258  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_traps_tessellate_convex_quad
7038      5.0174  libcairo.so.2.11.4       libcairo.so.2.11.4       _cairo_traps_extract_region
6630      4.7265  libcairo.so.2.11.4       libcairo.so.2.11.4       pixman_fill_rect_32bpp
5827      4.1540  libcairo.so.2.11.4       libcairo.so.2.11.4       cairo_matrix_transform_distance

> This look ok to push?

I just saw a couple of very minor cosmetic issues:

 * Indentation should be 4 spaces not 2 in long-dashed-lines.c

 * The change to perf/Makefile.am adds trailing whitespace, (hopefully
   you've got the default git pre-commit set as executable as it will
   catch this for you).

So, fix those, and yes, please push.

-Carl

PS. Sorry your mail mail got delayed---we had some "issues" with cairo
sub-domain DNS over the last few days.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://cairographics.org/archives/cairo/attachments/20070618/764280c0/attachment.pgp 


More information about the cairo mailing list