[cairo] [cairo-announce] cairo snapshot 1.3.4 now available
Xan Lopez
xan.lopez at gmail.com
Thu Nov 23 07:18:33 PST 2006
Hey guys,
Some updated numbers: http://blogs.gnome.org/view/xan/2006/11/23/0
Another excellent release according to my tests, thanks everyone!
Cheers, Xan
P.S: still no oprofile love, but it's coming.
On 11/23/06, Carl Worth <cworth at cworth.org> wrote:
>
> [If you're not familiar with cairo at all, skip down to the final
> paragraphs explaining "What is cairo"]
>
> A new cairo snapshot 1.3.4 is now available from:
>
> http://cairographics.org/snapshots/cairo-1.3.4.tar.gz
>
> which can be verified with:
>
> http://cairographics.org/snapshots/cairo-1.3.4.tar.gz.sha1
> 0c412d56c01ea5fcbcfeafdfc6f23b3772a9711e cairo-1.3.4.tar.gz
>
> http://cairographics.org/snapshots/cairo-1.3.4.tar.gz.sha1.asc
> (signed by Carl Worth)
>
> Additionally, a git clone of the source tree:
>
> git clone git://git.cairographics.org/git/cairo
>
> will include a signed 1.3.4 tag which points to a commit named:
> 143c56cb12ee5d0b0fbc5e4039dd4fc88764254d
>
> which can be verified with:
> git verify-tag 1.3.4
>
> and can be checked out with a command such as:
> git checkout -b build 1.3.4
>
> What's new since 1.3.2?
> =======================
> This is the second development snapshot in the 1.3 series. It comes
> one week after the 1.3.2 snapshot.
>
> This snapshot has a couple of significant performance improvements,
> and also adds new support for producing multi-page SVG output, (when
> targeting SVG 1.2)---thanks to Emmanuel Pacaud. The details of the
> performance improvements are as follows:
>
> 1. The long-awaited "new tessellator".
>
> The credit for this being an improvement goes to Joonas Pihlaja. He
> took my really slow code and really put it through its paces to get
> the dramatic performance improvement seen below (up to 38x faster
> on realistic cases, and more than 10x faster for the zrusin_another
> test).
>
> His own writeup of the work he did is quite thorough, but more than
> can be quoted here. Please see his post for the interesting details:
>
> http://lists.freedesktop.org/archives/cairo/2006-November/008483.html
>
> (Though note that this snapshot also includes some additional,
> significant improvements that were only sketched out in that
> email---see "Generating fewer trapezoids").
>
> 2. More floating-point improvements
>
> Daniel Amelang continues to work the magic he began in the 1.3.2
> snapshot. This time he short-circuits floating-point
> transformations by identity matrices and applies the earlier
> floating-to-fixed-point technique to the problem of rounding.
>
> The improvements here will primarily benefit text performance, and
> will benefit platforms without hardware floating-point more than
> those that have it, (some text tests show 20% improvement on an x86
> machine and closer to 80% improvement on arm).
>
> The performance chart comparing 1.3.2 to 1.3.4 really speaks for
> itself, (this is on an x86 laptop). This is quite a lot of progress
> for one week:
>
> xlib-rgb stroke_similar_rgba_over-256 74.99 1.45% -> 2.03 68.38%:
> 36.86x speedup
> ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
> xlib-rgb stroke_similar_rgba_source-256 78.23 1.43% -> 3.30 67.05%:
> 23.71x speedup
> ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
> xlib-rgba tessellate-256-100 820.42 0.15% -> 35.06 2.84%:
> 23.40x speedup
> ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
> image-rgba tessellate-256-100 819.55 0.32% -> 35.04 3.56%:
> 23.39x speedup
> ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
> xlib-rgb stroke_image_rgba_over-256 78.10 1.43% -> 4.33 65.56%:
> 18.04x speedup
> ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
> xlib-rgb stroke_image_rgba_source-256 80.11 1.63% -> 5.75 63.99%:
> 13.94x speedup
> ¨¨¨¨¨¨¨¨¨¨¨¨¨
> xlib-rgba zrusin_another_tessellate-415 89.22 0.35% -> 8.38 5.23%:
> 10.65x speedup
> ¨¨¨¨¨¨¨¨¨¨
> image-rgba zrusin_another_tessellate-415 87.38 0.89% -> 8.37 5.22%:
> 10.44x speedup
> ¨¨¨¨¨¨¨¨¨¨
> image-rgba zrusin_another_fill-415 117.67 1.34% -> 12.88 2.77%:
> 9.14x speedup
> ¨¨¨¨¨¨¨¨¨
> xlib-rgba zrusin_another_fill-415 140.52 1.57% -> 15.79 2.88%:
> 8.90x speedup
> ¨¨¨¨¨¨¨¨
> image-rgba tessellate-64-100 9.68 3.42% -> 1.42 0.60%:
> 6.82x speedup
> ¨¨¨¨¨¨
> xlib-rgba tessellate-64-100 9.78 4.35% -> 1.45 0.83%:
> 6.72x speedup
> ¨¨¨¨¨¨
> xlib-rgb stroke_linear_rgba_over-256 46.01 2.44% -> 7.74 54.51%:
> 5.94x speedup
> ¨¨¨¨¨
> xlib-rgb stroke_linear_rgba_source-256 48.09 2.15% -> 9.14 53.00%:
> 5.26x speedup
> ¨¨¨¨¨
> xlib-rgb stroke_radial_rgba_over-256 50.96 2.34% -> 12.46 47.99%:
> 4.09x speedup
> ¨¨¨¨
> xlib-rgb stroke_radial_rgba_source-256 53.06 1.57% -> 13.96 46.57%:
> 3.80x speedup
> ¨¨¨
> image-rgba paint_similar_rgba_source-256 0.12 1.57% -> 0.08 9.92%:
> 1.42x speedup
> ¨
> image-rgba paint_image_rgba_source-256 0.12 2.49% -> 0.08 10.70%:
> 1.41x speedup
> ¨
> image-rgba world_map-800 356.28 0.46% -> 275.72 1.15%:
> 1.29x speedup
> ¨
> xlib-rgba world_map-800 456.81 0.39% -> 357.95 1.39%:
> 1.28x speedup
> ¨
> image-rgb tessellate-16-100 0.09 0.57% -> 0.07 3.43%:
> 1.23x speedup
> ¨
> image-rgba tessellate-16-100 0.09 0.06% -> 0.07 2.46%:
> 1.23x speedup
> ¨
> image-rgba text_solid_rgb_over-256 5.39 4.01% -> 4.47 0.70%:
> 1.21x speedup
> ¨
> image-rgba text_solid_rgba_over-256 5.37 0.82% -> 4.45 0.75%:
> 1.21x speedup
> ¨
> image-rgba text_image_rgb_over-64 0.78 0.10% -> 0.65 0.74%:
> 1.20x speedup
> ¨
> image-rgba text_image_rgba_over-64 0.78 0.29% -> 0.65 0.68%:
> 1.19x speedup
> ¨
> image-rgb text_solid_rgb_over-64 0.76 2.45% -> 0.63 0.81%:
> 1.19x speedup
> ¨
> image-rgba text_solid_rgba_over-64 0.76 0.33% -> 0.64 0.66%:
> 1.19x speedup
> ¨
> image-rgba text_similar_rgba_over-256 5.99 4.72% -> 5.04 1.09%:
> 1.19x speedup
> ¨
>
> We should point out that there is some potential for slowdown in this
> snapshot. The following are the worst slowdowns reported by the cairo
> performance suite when comparing 1.3.2 to 1.3.4:
>
> image-rgba subimage_copy-256 0.01 0.87% -> 0.01 3.61%:
> 1.45x slowdown
> ¨
> xlib-rgb paint_solid_rgb_over-256 0.31 10.23% -> 0.38 0.33%:
> 1.26x slowdown
> ¨
> image-rgba box-outline-fill-100 0.01 0.30% -> 0.01 2.52%:
> 1.21x slowdown
> ¨
> image-rgba fill_solid_rgb_over-64 0.20 1.22% -> 0.22 1.59%:
> 1.12x slowdown
> ¨
> image-rgb fill_similar_rgb_over-64 0.21 1.04% -> 0.24 1.06%:
> 1.11x slowdown
> ¨
> image-rgba fill_image_rgb_over-64 0.21 1.19% -> 0.24 0.72%:
> 1.11x slowdown
> ¨
> image-rgba fill_similar_rgb_over-64 0.21 0.18% -> 0.24 0.30%:
> 1.11x slowdown
> ¨
> image-rgb fill_solid_rgba_over-64 0.22 1.66% -> 0.24 1.15%:
> 1.11x slowdown
> ¨
> image-rgb fill_image_rgb_over-64 0.21 0.14% -> 0.24 0.80%:
> 1.11x slowdown
> ¨
> image-rgba fill_image_rgba_over-64 0.22 1.34% -> 0.25 0.20%:
> 1.11x slowdown
> ¨
> image-rgba fill_solid_rgba_over-64 0.22 1.48% -> 0.24 0.95%:
> 1.11x slowdown
> ¨
> image-rgb fill_similar_rgba_over-64 0.22 1.13% -> 0.25 1.25%:
> 1.10x slowdown
> ¨
>
> The 45% slowdown for subimage_copy is an extreme case. It's unlikely
> to hit many applications unless they often use cairo_rectangle;
> cairo_fill to copy a single pixel at a time. In any case, it shows a
> worst-case impact of the overhead of the new tessellator. The other
> slowdowns (~ 10%) are probably more realistic, and still very
> concerning.
>
> We will work to ensure that performance regressions like these are not
> present from one major release of cairo to the next, (for example,
> from 1.2 to 1.4).
>
> But we're putting this 1.3.4 snapshot out there now, even with this
> potential slowdown so that people can experiment with it. If you've
> got complex geometry, we hope you will see some benefit from the new
> tessellator. If you've got primarily simple geometry, we hope things
> won't slowdown too much, but please let us know what slowdown you see,
> if any, so we can calibrate our performance suite against real-world
> impacts.
>
> Log of changes from 1.3.2 to 1.3.4
> ==================================
> Behdad Esfahbod (4):
> [SVG] Define enum _cairo_svg_version.
> [PS] Eliminate compiler warnings about unoptimizable loops
> [PS] Rename n_glyphs to num_glyphs_unsigned
> [SVG] Fix compiler warning
>
> Carl Worth (18):
> Increment cairo version to 1.3.3 after 1.3.2 snapshot
> ROADMAP: Set cairo 1.4 to early January for sake of Gnome 2.18
> cairo-perf: When iteration count is given on command-line, never
> execute fewer
> perf: Add box_outline test case.
> Add const qualifier to cairo_path_t* parameter of cairo_append_path
> Require librsvg 2.15.0 (was 2.14.0) for testing of SVG backend.
> test/clip-operator: Use round to pass only integers to
> cairo_show_glyphs
> test: Use round to pass only integers to cairo_show_glyphs (in 3
> more tests)
> give the big-trap test the XFAIL treatment.
> Add skip list implementation (many thanks to Keith Packard)
> Add new tessellator (unused) in cairo-bentley-ottmann.c
> Adapt new tessellator to match the interface provided by the old
> tessellator.
> Switch from old tessellator to new tessellator
> Make event_queue_insert ignore duplicate intersection events (not
> duplicate start/stop events)
> Add some missing cairo_private decorators
> Add Daniel Amelang and Joonas Pihlaja to the AUTHORS file
> NEWS: Add notes for 1.3.4 snapshot
> Increment cairo version to 1.3.4
>
> Dan Amelang (5):
> Add _cairo_matrix_is_translation
> Refactor _cairo_matrix_is_integer_translation
> Add and incorporate _cairo_gstate_transform_glyphs_to_backend
> Optimize _cairo_matrix_to_pixman_matrix for the common case of an
> identity matrix
> Change _cairo_matrix_to_pixman_matrix to use a pixman_transform_t as
> the template, thus avoiding a forced memcpy
>
> Daniel Amelang (2):
> Add _cairo_lround for much faster rounding
> Replace existing rounding code with _cairo_lround
>
> Emmanuel Pacaud (5):
> Add SVGPrint support.
> Use SVG multipage capability.
> test/pixman-rotate.c: Don't issue a show_page, it's already done in
> cairo-test.c
> Merge branch 'svgprint'
> SVG: plug a memory leak
>
> Joonas Pihlaja (11):
> A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit
> remainder.
> Replace the 128 bit divrem by a 96/64 bit one.
> Use an LFSR instead of random().
> Special cases for skip list comparators.
> Avoid a skip-list lookup when deactivating edges.
> Separate start and stop events from intersections (first try.)
> Tweak comparators.
> Malloc less using a free list of nodes.
> Make the skip list check for uniqueness.
> Sort pointers instead of cairo_bo_events in the tessellator.
> perf: new-tessellator: Deferred trapezoid generation (first try)
>
> Vladimir Vukicevic (1):
> [test] add big-trap test
>
> What is cairo
> =============
> Cairo is a 2D graphics library with support for multiple output
> devices. Currently supported output targets include the X Window
> System, win32, and image buffers, as well as PDF, PostScript, and SVG
> file output. Experimental backends include OpenGL (through glitz),
> Quartz, XCB, BeOS, and DirectFB.
>
> Cairo is designed to produce consistent output on all output media
> while taking advantage of display hardware acceleration when available
> (for example, through the X Render Extension).
>
> The cairo API provides operations similar to the drawing operators of
> PostScript and PDF. Operations in cairo including stroking and filling
> cubic B¨¦zier splines, transforming and compositing translucent images,
> and antialiased text rendering. All drawing operations can be
> transformed by any affine transformation (scale, rotation, shear,
> etc.).
>
> Cairo has been designed to let you draw anything you want in a modern
> 2D graphical user interface. At the same time, the cairo API has been
> designed to be as fun and easy to learn as possible. If you're not
> having fun while programming with cairo, then we have failed
> somewhere---let us know and we'll try to fix it next time around.
>
> Cairo is free software and is available to be redistributed and/or
> modified under the terms of either the GNU Lesser General Public
> License (LGPL) version 2.1 or the Mozilla Public License (MPL) version
> 1.1.
>
> Where to get more information about cairo
> =========================================
> The primary source of information about cairo is:
>
> http://cairographics.org/
>
> The latest releases of cairo can be found at:
>
> http://cairographics.org/releases
>
> Snapshots of in-development versions of cairo:
>
> http://cairographics.org/snapshots
>
> The programming manual for using cairo:
>
> http://cairographics.org/manual
>
> Mailing lists for contacting cairo users and developers:
>
> http://cairographics.org/lists
>
> Answers to some frequently asked questions about cairo:
>
> http://cairographics.org/FAQ
>
>
> _______________________________________________
> cairo-announce mailing list
> cairo-announce at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo-announce
>
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://cairographics.org/cgi-bin/mailman/listinfo/cairo
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/cairo/attachments/20061123/74ca1c95/attachment-0001.html
More information about the cairo
mailing list