summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2006-11-22 19:15:00 -0800
committerCarl Worth <cworth@cworth.org>2006-11-22 19:15:00 -0800
commite9dd52a337082cebbab2224e3a09702ada8f8e87 (patch)
tree78f7407f5ba77c8ddf88428f65195a51ee110448 /NEWS
parent3329abba391ebd502ba74b00ff02b7902a39945a (diff)
NEWS: Add notes for 1.3.4 snapshot
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS152
1 files changed, 152 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 01333f14..29ee46c8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,155 @@
+Snapshot 1.3.4 (2006-11-22 Carl Worth <cworth@cworth.org>)
+==========================================================
+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.
+
+Thanks, and have fun with cairo!
+
Snapshot 1.3.2 (2006-11-14 Carl Worth <cworth@cworth.org>)
==========================================================
This is the first development snapshot since the 1.2 stable series