[cairo] [cairo-commit] 18 commits - src/cairo-analysis-surface.c src/cairo-clip.c src/cairo-clip-private.h src/cairo-directfb-surface.c src/cairo.h src/cairo-image-surface.c src/cairoint.h src/cairo-paginated-surface.c src/cairo-region.c src/cairo-region-private.h src/cairo-surface.c src/cairo-surface-fallback.c src/cairo-traps.c src/cairo-types-private.h src/cairo-win32-surface.c src/cairo-xcb-surface.c src/cairo-xlib-surface.c src/Makefile.sources

Chris Wilson chris at chris-wilson.co.uk
Sun Mar 29 04:06:03 PDT 2009


On Sat, 2009-03-28 at 17:41 -0700, Søren Sandmann Pedersen wrote:
> src/Makefile.sources          |    1 
>  src/cairo-analysis-surface.c  |   29 --
>  src/cairo-clip-private.h      |    4 
>  src/cairo-clip.c              |  134 ++++------
>  src/cairo-directfb-surface.c  |   26 +-
>  src/cairo-image-surface.c     |    2 
>  src/cairo-paginated-surface.c |   34 +-
>  src/cairo-region-private.h    |  113 --------
>  src/cairo-region.c            |  538 +++++++++++++++++++++++++++++++++++-------
>  src/cairo-surface-fallback.c  |   67 ++---
>  src/cairo-surface.c           |   55 +---
>  src/cairo-traps.c             |   61 ++--
>  src/cairo-types-private.h     |   42 ---
>  src/cairo-win32-surface.c     |   50 +--
>  src/cairo-xcb-surface.c       |   24 -
>  src/cairo-xlib-surface.c      |   41 +--
>  src/cairo.h                   |   78 ++++++
>  src/cairoint.h                |   26 +-
>  18 files changed, 789 insertions(+), 536 deletions(-)

Preliminary profiling indicates that this is a factor of 6-8 slower for
region heavy perf cases like dragon and rectangles. (I suspect that is
due to the elimination of cairo_region_create_rectangles() which is,
IIRC, an O(n log n) operation as compared to the O(n^2) of iteration
over the unions.)  And I haven't even looked at the malloc profiles yet.

Can anyone confirm the negative performance impact on their machines?
-ickle



More information about the cairo mailing list