[librsvg: 3/8] Revert "(#599) - Draw all text as paths, to fix text scaled non-proportionally."




commit 83f84b74c9ee46b2093977a172883a2b1fc72a22
Author: Federico Mena Quintero <federico gnome org>
Date:   Fri Mar 4 21:31:43 2022 -0600

    Revert "(#599) - Draw all text as paths, to fix text scaled non-proportionally."
    
    This reverts commit fc5579d408001b1063ac342983d0eadf3265c156.
    
    Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/672>

 src/drawing_ctx.rs                                 |  72 ++++++++++++++++-----
 tests/fixtures/reftests/a-pseudo-class-ref.png     | Bin 3753 -> 3152 bytes
 .../reftests/bugs/108-font-size-relative-ref.png   | Bin 2397 -> 2354 bytes
 tests/fixtures/reftests/bugs/340047-ref.png        | Bin 5565 -> 5219 bytes
 .../reftests/bugs/363-missing-space-ref.png        | Bin 7943 -> 7014 bytes
 .../bugs/481-tspan-uses-at-least-first-x-ref.png   | Bin 1530 -> 1117 bytes
 .../reftests/bugs/494-text-accumulate-dy-ref.png   | Bin 4178 -> 3075 bytes
 .../reftests/bugs/587721-text-transform-ref.png    | Bin 4050 -> 3974 bytes
 .../reftests/bugs/642-nested-tspan-dx-dy-ref.png   | Bin 7092 -> 6217 bytes
 .../reftests/bugs/667-tspan-visibility-ref.png     | Bin 2236 -> 1913 bytes
 .../fixtures/reftests/bugs/668-small-caps-ref.png  | Bin 2383 -> 1645 bytes
 .../reftests/bugs/730-font-scaling-ref.png         | Bin 16123 -> 14780 bytes
 tests/fixtures/reftests/bugs/749415-ref.png        | Bin 26974 -> 23223 bytes
 tests/fixtures/reftests/bugs/760180-ref.png        | Bin 10641 -> 9634 bytes
 .../bugs/a-inside-text-content-738-ref.png         | Bin 2799 -> 2493 bytes
 .../a-inside-text-content-pseudo-class-738-ref.png | Bin 2799 -> 2493 bytes
 ...-component-transfer-from-reference-page-ref.png | Bin 8371 -> 8017 bytes
 .../filter-morphology-from-reference-page-ref.png  | Bin 3951 -> 3929 bytes
 tests/fixtures/reftests/font-shorthand-ref.png     | Bin 4228 -> 3792 bytes
 tests/fixtures/reftests/include-fallback-ref.png   | Bin 1303 -> 1229 bytes
 tests/fixtures/reftests/include-text-ref.png       | Bin 1078 -> 1008 bytes
 tests/fixtures/reftests/rtl-tspan-ref.png          | Bin 5132 -> 3961 bytes
 .../reftests/svg1.1/coords-trans-01-b-ref.png      | Bin 15526 -> 13119 bytes
 .../reftests/svg1.1/coords-trans-02-t-ref.png      | Bin 10948 -> 9010 bytes
 .../reftests/svg1.1/coords-trans-03-t-ref.png      | Bin 9447 -> 8479 bytes
 .../reftests/svg1.1/coords-trans-04-t-ref.png      | Bin 7345 -> 7275 bytes
 .../reftests/svg1.1/coords-trans-05-t-ref.png      | Bin 10865 -> 8822 bytes
 .../reftests/svg1.1/coords-trans-06-t-ref.png      | Bin 11568 -> 9130 bytes
 .../reftests/svg1.1/coords-trans-07-t-ref.png      | Bin 13471 -> 12156 bytes
 .../reftests/svg1.1/coords-trans-08-t-ref.png      | Bin 15167 -> 13897 bytes
 .../reftests/svg1.1/coords-trans-09-t-ref.png      | Bin 24169 -> 18954 bytes
 .../reftests/svg1.1/coords-viewattr-01-b-ref.png   | Bin 20579 -> 17981 bytes
 .../reftests/svg1.1/coords-viewattr-02-b-ref.png   | Bin 41857 -> 38827 bytes
 .../reftests/svg1.1/coords-viewattr-03-b-ref.png   | Bin 32874 -> 25959 bytes
 .../svg1.1/filters-background-01-f-ref.png         | Bin 19599 -> 19566 bytes
 .../reftests/svg1.1/filters-blend-01-b-ref.png     | Bin 19129 -> 18734 bytes
 .../reftests/svg1.1/filters-color-01-b-ref.png     | Bin 30271 -> 25568 bytes
 .../reftests/svg1.1/filters-color-02-b-ref.png     | Bin 7757 -> 7299 bytes
 .../reftests/svg1.1/filters-composite-02-b-ref.png | Bin 19527 -> 17772 bytes
 .../reftests/svg1.1/filters-composite-03-f-ref.png | Bin 4994 -> 4947 bytes
 .../reftests/svg1.1/filters-composite-04-f-ref.png | Bin 115093 -> 114952 bytes
 .../reftests/svg1.1/filters-composite-05-f-ref.png | Bin 30491 -> 30361 bytes
 .../reftests/svg1.1/filters-comptran-01-b-ref.png  | Bin 21117 -> 17857 bytes
 .../reftests/svg1.1/filters-conv-01-f-ref.png      | Bin 52909 -> 50438 bytes
 .../reftests/svg1.1/filters-conv-02-f-ref.png      | Bin 35787 -> 34262 bytes
 .../reftests/svg1.1/filters-conv-03-f-ref.png      | Bin 29721 -> 28525 bytes
 .../reftests/svg1.1/filters-conv-04-f-ref.png      | Bin 77530 -> 77475 bytes
 .../reftests/svg1.1/filters-conv-05-f-ref.png      | Bin 11750 -> 10453 bytes
 .../reftests/svg1.1/filters-diffuse-01-f-ref.png   | Bin 25302 -> 20210 bytes
 .../reftests/svg1.1/filters-displace-02-f-ref.png  | Bin 8210 -> 8124 bytes
 .../reftests/svg1.1/filters-felem-02-f-ref.png     | Bin 13814 -> 13740 bytes
 .../reftests/svg1.1/filters-gauss-01-b-ref.png     | Bin 21424 -> 21330 bytes
 .../reftests/svg1.1/filters-gauss-02-f-ref.png     | Bin 7329 -> 7273 bytes
 .../reftests/svg1.1/filters-gauss-03-f-ref.png     | Bin 5023 -> 4966 bytes
 .../reftests/svg1.1/filters-image-01-b-ref.png     | Bin 92798 -> 92104 bytes
 .../reftests/svg1.1/filters-image-02-b-ref.png     | Bin 27166 -> 26108 bytes
 .../reftests/svg1.1/filters-image-03-f-ref.png     | Bin 12185 -> 12126 bytes
 .../reftests/svg1.1/filters-image-04-f-ref.png     | Bin 12972 -> 12271 bytes
 .../reftests/svg1.1/filters-image-05-f-ref.png     | Bin 23055 -> 20498 bytes
 .../reftests/svg1.1/filters-light-01-f-ref.png     | Bin 41139 -> 32456 bytes
 .../reftests/svg1.1/filters-light-02-f-ref.png     | Bin 12396 -> 11868 bytes
 .../reftests/svg1.1/filters-light-03-f-ref.png     | Bin 15089 -> 13347 bytes
 .../reftests/svg1.1/filters-light-04-f-ref.png     | Bin 13284 -> 12109 bytes
 .../reftests/svg1.1/filters-light-05-f-ref.png     | Bin 35062 -> 28008 bytes
 .../reftests/svg1.1/filters-morph-01-f-ref.png     | Bin 34940 -> 33809 bytes
 .../reftests/svg1.1/filters-offset-01-b-ref.png    | Bin 11188 -> 11099 bytes
 .../reftests/svg1.1/filters-overview-01-b-ref.png  | Bin 38045 -> 36046 bytes
 .../reftests/svg1.1/filters-overview-02-b-ref.png  | Bin 45458 -> 43638 bytes
 .../reftests/svg1.1/filters-overview-03-b-ref.png  | Bin 45573 -> 43859 bytes
 .../reftests/svg1.1/filters-specular-01-f-ref.png  | Bin 34884 -> 28534 bytes
 .../reftests/svg1.1/filters-tile-01-b-ref.png      | Bin 8034 -> 6983 bytes
 .../reftests/svg1.1/filters-turb-01-f-ref.png      | Bin 144941 -> 143066 bytes
 .../reftests/svg1.1/filters-turb-02-f-ref.png      | Bin 22335 -> 19921 bytes
 .../reftests/svg1.1/masking-filter-01-f-ref.png    | Bin 7924 -> 7044 bytes
 .../reftests/svg1.1/masking-intro-01-f-ref.png     | Bin 17747 -> 15495 bytes
 .../reftests/svg1.1/masking-mask-01-b-ref.png      | Bin 23283 -> 20126 bytes
 .../reftests/svg1.1/masking-mask-02-f-ref.png      | Bin 5021 -> 4965 bytes
 .../reftests/svg1.1/masking-opacity-01-b-ref.png   | Bin 43003 -> 34855 bytes
 .../reftests/svg1.1/masking-path-01-b-ref.png      | Bin 15837 -> 13053 bytes
 .../reftests/svg1.1/masking-path-02-b-ref.png      | Bin 17531 -> 14363 bytes
 .../reftests/svg1.1/masking-path-03-b-ref.png      | Bin 26498 -> 23652 bytes
 .../reftests/svg1.1/masking-path-04-b-ref.png      | Bin 93356 -> 93196 bytes
 .../reftests/svg1.1/masking-path-05-f-ref.png      | Bin 9010 -> 8113 bytes
 .../reftests/svg1.1/masking-path-08-b-ref.png      | Bin 8232 -> 7169 bytes
 .../reftests/svg1.1/painting-control-02-f-ref.png  | Bin 5105 -> 5049 bytes
 .../reftests/svg1.1/painting-marker-01-f-ref.png   | Bin 10432 -> 9429 bytes
 .../reftests/svg1.1/painting-marker-02-f-ref.png   | Bin 11457 -> 10289 bytes
 .../reftests/svg1.1/painting-marker-03-f-ref.png   | Bin 36022 -> 29985 bytes
 .../reftests/svg1.1/painting-marker-04-f-ref.png   | Bin 35004 -> 28607 bytes
 .../reftests/svg1.1/painting-marker-06-f-ref.png   | Bin 10641 -> 9634 bytes
 .../reftests/svg1.1/painting-marker-07-f-ref.png   | Bin 5669 -> 5612 bytes
 .../svg1.1/painting-marker-properties-01-f-ref.png | Bin 6820 -> 6799 bytes
 .../reftests/svg1.1/painting-stroke-01-t-ref.png   | Bin 16681 -> 13486 bytes
 .../reftests/svg1.1/painting-stroke-02-t-ref.png   | Bin 20598 -> 17037 bytes
 .../reftests/svg1.1/painting-stroke-03-t-ref.png   | Bin 21276 -> 17416 bytes
 .../reftests/svg1.1/painting-stroke-04-t-ref.png   | Bin 20026 -> 15700 bytes
 .../reftests/svg1.1/painting-stroke-05-t-ref.png   | Bin 8797 -> 7964 bytes
 .../reftests/svg1.1/painting-stroke-06-t-ref.png   | Bin 5266 -> 5187 bytes
 .../reftests/svg1.1/painting-stroke-07-t-ref.png   | Bin 6812 -> 6736 bytes
 .../reftests/svg1.1/painting-stroke-08-t-ref.png   | Bin 9131 -> 9061 bytes
 .../reftests/svg1.1/painting-stroke-09-t-ref.png   | Bin 4985 -> 4910 bytes
 .../reftests/svg1.1/paths-data-01-t-ref.png        | Bin 27842 -> 26399 bytes
 .../reftests/svg1.1/paths-data-02-t-ref.png        | Bin 35876 -> 33710 bytes
 .../reftests/svg1.1/paths-data-03-f-ref.png        | Bin 33259 -> 31695 bytes
 .../reftests/svg1.1/paths-data-04-t-ref.png        | Bin 19715 -> 19047 bytes
 .../reftests/svg1.1/paths-data-05-t-ref.png        | Bin 17198 -> 16742 bytes
 .../reftests/svg1.1/paths-data-06-t-ref.png        | Bin 8461 -> 7852 bytes
 .../reftests/svg1.1/paths-data-07-t-ref.png        | Bin 7647 -> 7084 bytes
 .../reftests/svg1.1/paths-data-08-t-ref.png        | Bin 21515 -> 20084 bytes
 .../reftests/svg1.1/paths-data-09-t-ref.png        | Bin 19348 -> 18175 bytes
 .../reftests/svg1.1/paths-data-10-t-ref.png        | Bin 23846 -> 22672 bytes
 .../reftests/svg1.1/paths-data-12-t-ref.png        | Bin 10181 -> 10133 bytes
 .../reftests/svg1.1/paths-data-13-t-ref.png        | Bin 5039 -> 4991 bytes
 .../reftests/svg1.1/paths-data-14-t-ref.png        | Bin 12954 -> 12867 bytes
 .../reftests/svg1.1/paths-data-15-t-ref.png        | Bin 6468 -> 6383 bytes
 .../reftests/svg1.1/paths-data-16-t-ref.png        | Bin 9812 -> 8536 bytes
 .../reftests/svg1.1/paths-data-17-f-ref.png        | Bin 4954 -> 4903 bytes
 .../reftests/svg1.1/paths-data-18-f-ref.png        | Bin 5250 -> 5164 bytes
 .../reftests/svg1.1/paths-data-19-f-ref.png        | Bin 23941 -> 23865 bytes
 .../reftests/svg1.1/paths-data-20-f-ref.png        | Bin 9633 -> 9572 bytes
 .../reftests/svg1.1/pservers-grad-01-b-ref.png     | Bin 12480 -> 10440 bytes
 .../reftests/svg1.1/pservers-grad-02-b-ref.png     | Bin 25561 -> 23376 bytes
 .../reftests/svg1.1/pservers-grad-03-b-ref.png     | Bin 12249 -> 10705 bytes
 .../reftests/svg1.1/pservers-grad-04-b-ref.png     | Bin 27281 -> 24904 bytes
 .../reftests/svg1.1/pservers-grad-05-b-ref.png     | Bin 65682 -> 65533 bytes
 .../reftests/svg1.1/pservers-grad-06-b-ref.png     | Bin 24587 -> 22598 bytes
 .../reftests/svg1.1/pservers-grad-09-b-ref.png     | Bin 7685 -> 6757 bytes
 .../reftests/svg1.1/pservers-grad-10-b-ref.png     | Bin 12051 -> 10337 bytes
 .../reftests/svg1.1/pservers-grad-11-b-ref.png     | Bin 63163 -> 60103 bytes
 .../reftests/svg1.1/pservers-grad-12-b-ref.png     | Bin 33466 -> 25565 bytes
 .../reftests/svg1.1/pservers-grad-14-b-ref.png     | Bin 29324 -> 26424 bytes
 .../reftests/svg1.1/pservers-grad-15-b-ref.png     | Bin 10660 -> 10564 bytes
 .../reftests/svg1.1/pservers-grad-16-b-ref.png     | Bin 5254 -> 5206 bytes
 .../reftests/svg1.1/pservers-grad-18-b-ref.png     | Bin 5251 -> 5205 bytes
 .../reftests/svg1.1/pservers-grad-22-b-ref.png     | Bin 8073 -> 8028 bytes
 .../reftests/svg1.1/pservers-grad-23-f-ref.png     | Bin 6841 -> 6816 bytes
 .../reftests/svg1.1/pservers-grad-24-f-ref.png     | Bin 8890 -> 8101 bytes
 .../svg1.1/pservers-grad-stops-01-f-ref.png        | Bin 7057 -> 7029 bytes
 .../reftests/svg1.1/pservers-pattern-01-b-ref.png  | Bin 29302 -> 23804 bytes
 .../reftests/svg1.1/pservers-pattern-02-f-ref.png  | Bin 35378 -> 35332 bytes
 .../reftests/svg1.1/pservers-pattern-03-f-ref.png  | Bin 6845 -> 6711 bytes
 .../reftests/svg1.1/pservers-pattern-04-f-ref.png  | Bin 6634 -> 6583 bytes
 .../reftests/svg1.1/pservers-pattern-05-f-ref.png  | Bin 7836 -> 7812 bytes
 .../reftests/svg1.1/pservers-pattern-06-f-ref.png  | Bin 6751 -> 6731 bytes
 .../reftests/svg1.1/pservers-pattern-07-f-ref.png  | Bin 8292 -> 8265 bytes
 .../reftests/svg1.1/pservers-pattern-08-f-ref.png  | Bin 8291 -> 8263 bytes
 .../reftests/svg1.1/pservers-pattern-09-f-ref.png  | Bin 6625 -> 6493 bytes
 .../reftests/svg1.1/shapes-intro-01-t-ref.png      | Bin 9248 -> 8210 bytes
 .../reftests/svg1.1/shapes-intro-02-f-ref.png      | Bin 13081 -> 12989 bytes
 .../reftests/svg1.1/struct-cond-01-t-ref.png       | Bin 5010 -> 4962 bytes
 .../reftests/svg1.1/struct-cond-03-t-ref.png       | Bin 4885 -> 4811 bytes
 .../reftests/svg1.1/struct-group-03-t-ref.png      | Bin 22347 -> 19303 bytes
 .../reftests/svg1.1/struct-svg-03-f-ref.png        | Bin 6668 -> 6531 bytes
 .../reftests/svg1.1/struct-symbol-01-b-ref.png     | Bin 52664 -> 52608 bytes
 .../reftests/svg1.1/struct-use-01-t-ref.png        | Bin 17058 -> 16084 bytes
 .../reftests/svg1.1/struct-use-03-t-ref.png        | Bin 8892 -> 8355 bytes
 .../reftests/svg1.1/struct-use-04-b-ref.png        | Bin 21560 -> 20432 bytes
 .../reftests/svg1.1/struct-use-09-b-ref.png        | Bin 7252 -> 7239 bytes
 .../reftests/svg1.1/struct-use-10-f-ref.png        | Bin 8339 -> 7147 bytes
 .../reftests/svg1.1/styling-css-01-b-ref.png       | Bin 10437 -> 9610 bytes
 .../reftests/svg1.1/styling-css-02-b-ref.png       | Bin 10228 -> 9706 bytes
 .../reftests/svg1.1/styling-css-03-b-ref.png       | Bin 13192 -> 10878 bytes
 .../reftests/svg1.1/styling-css-04-f-ref.png       | Bin 9426 -> 8643 bytes
 .../reftests/svg1.1/styling-css-07-f-ref.png       | Bin 5020 -> 4965 bytes
 .../reftests/svg1.1/styling-css-08-f-ref.png       | Bin 11155 -> 11125 bytes
 .../reftests/svg1.1/text-align-01-b-ref.png        | Bin 24464 -> 20175 bytes
 .../reftests/svg1.1/text-align-02-b-ref.png        | Bin 26495 -> 22826 bytes
 .../reftests/svg1.1/text-align-03-b-ref.png        | Bin 20317 -> 16776 bytes
 .../reftests/svg1.1/text-fonts-02-t-ref.png        | Bin 23442 -> 19470 bytes
 .../reftests/svg1.1/text-text-03-b-ref.png         | Bin 28286 -> 22840 bytes
 .../reftests/svg1.1/text-text-08-b-ref.png         | Bin 43814 -> 44211 bytes
 .../reftests/svg1.1/text-text-10-t-ref.png         | Bin 50554 -> 46725 bytes
 .../reftests/svg1.1/text-tref-01-b-ref.png         | Bin 13431 -> 10142 bytes
 .../reftests/svg1.1/text-tref-02-b-ref.png         | Bin 11909 -> 9828 bytes
 .../reftests/svg1.1/text-tref-03-b-ref.png         | Bin 9970 -> 8441 bytes
 .../reftests/svg1.1/types-basic-02-f-ref.png       | Bin 18281 -> 18139 bytes
 .../reftests/svg2/text-paint-order-ref.png         | Bin 23494 -> 23527 bytes
 tests/src/text.rs                                  |  20 ++----
 178 files changed, 62 insertions(+), 30 deletions(-)
---
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index 2cccf4603..029b50583 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -1380,30 +1380,43 @@ impl DrawingCtx {
         acquired_nodes: &mut AcquiredNodes<'_>,
         clipping: bool,
     ) -> Result<BoundingBox, RenderingError> {
-        let path = pango_layout_to_path(span.x, span.y, &span.layout, span.gravity)?;
-        if path.is_empty() {
-            // Empty strings, or only-whitespace text, get turned into empty paths.
-            // In that case, we really want to return "no bounds" rather than an
-            // empty rectangle.
+        let transform = self.get_transform();
+
+        if span.bbox.is_none() {
             return Ok(self.empty_bbox());
         }
 
+        let mut bbox = span.bbox.unwrap();
+
         with_saved_cr(&self.cr.clone(), || {
             self.cr
                 .set_antialias(cairo::Antialias::from(span.text_rendering));
 
             setup_cr_for_stroke(&self.cr, &span.stroke);
 
+            let rotation_from_gravity = span.gravity.to_rotation();
+            let rotation = if !rotation_from_gravity.approx_eq_cairo(0.0) {
+                Some(-rotation_from_gravity)
+            } else {
+                None
+            };
+
             if clipping {
-                path.to_cairo(&self.cr, false)?;
+                self.cr.move_to(span.x, span.y);
+
+                let matrix = self.cr.matrix();
+                if let Some(rot) = rotation {
+                    self.cr.rotate(rot);
+                }
+
+                pangocairo::functions::update_layout(&self.cr, &span.layout);
+                pangocairo::functions::layout_path(&self.cr, &span.layout);
+
+                self.cr.set_matrix(matrix);
+
                 return Ok(self.empty_bbox());
             }
 
-            path.to_cairo(&self.cr, false)?;
-            let bbox =
-                compute_stroke_and_fill_box(&self.cr, &span.stroke, &span.stroke_paint_source)?;
-            self.cr.new_path();
-
             if span.is_visible {
                 if let Some(ref link_target) = span.link_target {
                     self.link_tag_begin(link_target);
@@ -1416,8 +1429,18 @@ impl DrawingCtx {
                                 self.set_paint_source(&span.fill_paint, acquired_nodes)?;
 
                             if had_paint_server {
-                                path.to_cairo(&self.cr, false)?;
-                                self.cr.fill()?;
+                                self.cr.move_to(span.x, span.y);
+
+                                let matrix = self.cr.matrix();
+                                if let Some(rot) = rotation {
+                                    self.cr.rotate(rot);
+                                }
+
+                                pangocairo::functions::update_layout(&self.cr, &span.layout);
+                                pangocairo::functions::show_layout(&self.cr, &span.layout);
+
+                                self.cr.set_matrix(matrix);
+
                                 self.cr.new_path();
                             }
                         }
@@ -1427,8 +1450,26 @@ impl DrawingCtx {
                                 self.set_paint_source(&span.stroke_paint, acquired_nodes)?;
 
                             if had_paint_server {
-                                path.to_cairo(&self.cr, false)?;
+                                self.cr.move_to(span.x, span.y);
+
+                                let matrix = self.cr.matrix();
+                                if let Some(rot) = rotation {
+                                    self.cr.rotate(rot);
+                                }
+
+                                pangocairo::functions::update_layout(&self.cr, &span.layout);
+                                pangocairo::functions::layout_path(&self.cr, &span.layout);
+
+                                let (x0, y0, x1, y1) = self.cr.stroke_extents()?;
+                                let r = Rect::new(x0, y0, x1, y1);
+                                let ib = BoundingBox::new()
+                                    .with_transform(transform)
+                                    .with_ink_rect(r);
+                                bbox.insert(&ib);
                                 self.cr.stroke()?;
+
+                                self.cr.set_matrix(matrix);
+
                                 self.cr.new_path();
                             }
                         }
@@ -2214,8 +2255,7 @@ impl Path {
 }
 
 fn cairo_path_is_only_move_tos(path: &cairo::Path) -> bool {
-    path.iter()
-        .all(|seg| matches!(seg, cairo::PathSegment::MoveTo((_, _))))
+    path.iter().all(|seg| matches!(seg, cairo::PathSegment::MoveTo((_, _))))
 }
 
 impl PathCommand {
diff --git a/tests/fixtures/reftests/a-pseudo-class-ref.png b/tests/fixtures/reftests/a-pseudo-class-ref.png
index df06baed5..f61ff3000 100644
Binary files a/tests/fixtures/reftests/a-pseudo-class-ref.png and 
b/tests/fixtures/reftests/a-pseudo-class-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/108-font-size-relative-ref.png 
b/tests/fixtures/reftests/bugs/108-font-size-relative-ref.png
index 2b18067b2..c17c8883e 100644
Binary files a/tests/fixtures/reftests/bugs/108-font-size-relative-ref.png and 
b/tests/fixtures/reftests/bugs/108-font-size-relative-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/340047-ref.png b/tests/fixtures/reftests/bugs/340047-ref.png
index bc69bad6e..d4c5352db 100644
Binary files a/tests/fixtures/reftests/bugs/340047-ref.png and b/tests/fixtures/reftests/bugs/340047-ref.png 
differ
diff --git a/tests/fixtures/reftests/bugs/363-missing-space-ref.png 
b/tests/fixtures/reftests/bugs/363-missing-space-ref.png
index be503be47..c01c5e941 100644
Binary files a/tests/fixtures/reftests/bugs/363-missing-space-ref.png and 
b/tests/fixtures/reftests/bugs/363-missing-space-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/481-tspan-uses-at-least-first-x-ref.png 
b/tests/fixtures/reftests/bugs/481-tspan-uses-at-least-first-x-ref.png
index b58830945..5550795fc 100644
Binary files a/tests/fixtures/reftests/bugs/481-tspan-uses-at-least-first-x-ref.png and 
b/tests/fixtures/reftests/bugs/481-tspan-uses-at-least-first-x-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/494-text-accumulate-dy-ref.png 
b/tests/fixtures/reftests/bugs/494-text-accumulate-dy-ref.png
index 67a52de8e..6ec3bca4e 100644
Binary files a/tests/fixtures/reftests/bugs/494-text-accumulate-dy-ref.png and 
b/tests/fixtures/reftests/bugs/494-text-accumulate-dy-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/587721-text-transform-ref.png 
b/tests/fixtures/reftests/bugs/587721-text-transform-ref.png
index 798fc6fbc..6b8a4e860 100644
Binary files a/tests/fixtures/reftests/bugs/587721-text-transform-ref.png and 
b/tests/fixtures/reftests/bugs/587721-text-transform-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/642-nested-tspan-dx-dy-ref.png 
b/tests/fixtures/reftests/bugs/642-nested-tspan-dx-dy-ref.png
index 81887de8b..fb0589b28 100644
Binary files a/tests/fixtures/reftests/bugs/642-nested-tspan-dx-dy-ref.png and 
b/tests/fixtures/reftests/bugs/642-nested-tspan-dx-dy-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/667-tspan-visibility-ref.png 
b/tests/fixtures/reftests/bugs/667-tspan-visibility-ref.png
index 3b48cb6d3..7ac648771 100644
Binary files a/tests/fixtures/reftests/bugs/667-tspan-visibility-ref.png and 
b/tests/fixtures/reftests/bugs/667-tspan-visibility-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/668-small-caps-ref.png 
b/tests/fixtures/reftests/bugs/668-small-caps-ref.png
index 42de8479e..675c84a8d 100644
Binary files a/tests/fixtures/reftests/bugs/668-small-caps-ref.png and 
b/tests/fixtures/reftests/bugs/668-small-caps-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/730-font-scaling-ref.png 
b/tests/fixtures/reftests/bugs/730-font-scaling-ref.png
index 5fef4bdfe..c11c8f7e4 100644
Binary files a/tests/fixtures/reftests/bugs/730-font-scaling-ref.png and 
b/tests/fixtures/reftests/bugs/730-font-scaling-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/749415-ref.png b/tests/fixtures/reftests/bugs/749415-ref.png
index b843dcddb..7c4c0611c 100644
Binary files a/tests/fixtures/reftests/bugs/749415-ref.png and b/tests/fixtures/reftests/bugs/749415-ref.png 
differ
diff --git a/tests/fixtures/reftests/bugs/760180-ref.png b/tests/fixtures/reftests/bugs/760180-ref.png
index a6838ca4f..e46a034a4 100644
Binary files a/tests/fixtures/reftests/bugs/760180-ref.png and b/tests/fixtures/reftests/bugs/760180-ref.png 
differ
diff --git a/tests/fixtures/reftests/bugs/a-inside-text-content-738-ref.png 
b/tests/fixtures/reftests/bugs/a-inside-text-content-738-ref.png
index 3baf75177..ea52230c2 100644
Binary files a/tests/fixtures/reftests/bugs/a-inside-text-content-738-ref.png and 
b/tests/fixtures/reftests/bugs/a-inside-text-content-738-ref.png differ
diff --git a/tests/fixtures/reftests/bugs/a-inside-text-content-pseudo-class-738-ref.png 
b/tests/fixtures/reftests/bugs/a-inside-text-content-pseudo-class-738-ref.png
index 3baf75177..ea52230c2 100644
Binary files a/tests/fixtures/reftests/bugs/a-inside-text-content-pseudo-class-738-ref.png and 
b/tests/fixtures/reftests/bugs/a-inside-text-content-pseudo-class-738-ref.png differ
diff --git a/tests/fixtures/reftests/filter-component-transfer-from-reference-page-ref.png 
b/tests/fixtures/reftests/filter-component-transfer-from-reference-page-ref.png
index ae7977dcb..c42a88218 100644
Binary files a/tests/fixtures/reftests/filter-component-transfer-from-reference-page-ref.png and 
b/tests/fixtures/reftests/filter-component-transfer-from-reference-page-ref.png differ
diff --git a/tests/fixtures/reftests/filter-morphology-from-reference-page-ref.png 
b/tests/fixtures/reftests/filter-morphology-from-reference-page-ref.png
index 0a50037c8..d875b3d8b 100644
Binary files a/tests/fixtures/reftests/filter-morphology-from-reference-page-ref.png and 
b/tests/fixtures/reftests/filter-morphology-from-reference-page-ref.png differ
diff --git a/tests/fixtures/reftests/font-shorthand-ref.png b/tests/fixtures/reftests/font-shorthand-ref.png
index b3b3a0509..a4c766f76 100644
Binary files a/tests/fixtures/reftests/font-shorthand-ref.png and 
b/tests/fixtures/reftests/font-shorthand-ref.png differ
diff --git a/tests/fixtures/reftests/include-fallback-ref.png 
b/tests/fixtures/reftests/include-fallback-ref.png
index 5f33f768b..30edf81a9 100644
Binary files a/tests/fixtures/reftests/include-fallback-ref.png and 
b/tests/fixtures/reftests/include-fallback-ref.png differ
diff --git a/tests/fixtures/reftests/include-text-ref.png b/tests/fixtures/reftests/include-text-ref.png
index 24d71b2a0..36eac1669 100644
Binary files a/tests/fixtures/reftests/include-text-ref.png and 
b/tests/fixtures/reftests/include-text-ref.png differ
diff --git a/tests/fixtures/reftests/rtl-tspan-ref.png b/tests/fixtures/reftests/rtl-tspan-ref.png
index aa425a709..722c67451 100644
Binary files a/tests/fixtures/reftests/rtl-tspan-ref.png and b/tests/fixtures/reftests/rtl-tspan-ref.png 
differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-01-b-ref.png
index 2e6a8ff95..7ad95c3d0 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-02-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-02-t-ref.png
index 4f6f12dfe..9aa0767b6 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-02-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-02-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-03-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-03-t-ref.png
index 3783f54d3..86ed72559 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-03-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-03-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-04-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-04-t-ref.png
index 7407a96af..e150d4287 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-04-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-04-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-05-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-05-t-ref.png
index 0583aa036..137cc5b06 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-05-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-05-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-06-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-06-t-ref.png
index 11c6b394d..bb1c5fb5d 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-06-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-06-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-07-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-07-t-ref.png
index 85acea058..94cb43b6f 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-07-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-07-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-08-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-08-t-ref.png
index e315bd922..cdfd40a24 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-08-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-08-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-trans-09-t-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-trans-09-t-ref.png
index ac21fe286..046506f81 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-trans-09-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-trans-09-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-viewattr-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-viewattr-01-b-ref.png
index ddecd4458..3327ea8f3 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-viewattr-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-viewattr-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-viewattr-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-viewattr-02-b-ref.png
index 21faf2e56..2f08d0ce2 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-viewattr-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-viewattr-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/coords-viewattr-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/coords-viewattr-03-b-ref.png
index cad2b687b..09ed1a13c 100644
Binary files a/tests/fixtures/reftests/svg1.1/coords-viewattr-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/coords-viewattr-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-background-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-background-01-f-ref.png
index 414e6e9eb..651b61e91 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-background-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-background-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-blend-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-blend-01-b-ref.png
index e4812179b..128b6d0cc 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-blend-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-blend-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-color-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-color-01-b-ref.png
index 0d7f72418..2928dd219 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-color-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-color-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-color-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-color-02-b-ref.png
index 3721aadc2..40c5252be 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-color-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-color-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-composite-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-composite-02-b-ref.png
index 01935401c..4fcdb70e6 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-composite-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-composite-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-composite-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-composite-03-f-ref.png
index 9543b9492..9490fc20f 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-composite-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-composite-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-composite-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-composite-04-f-ref.png
index 03d510709..76e79e22f 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-composite-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-composite-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-composite-05-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-composite-05-f-ref.png
index 006f21d7a..d3da59807 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-composite-05-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-composite-05-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-comptran-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-comptran-01-b-ref.png
index 5e40a86cd..3c3d33775 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-comptran-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-comptran-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-conv-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-conv-01-f-ref.png
index b15cf3cba..e7ea86261 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-conv-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-conv-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-conv-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-conv-02-f-ref.png
index 0a5fabf75..9235a7cdc 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-conv-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-conv-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-conv-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-conv-03-f-ref.png
index eaa060f6a..fa7f93b60 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-conv-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-conv-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-conv-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-conv-04-f-ref.png
index 92ef677cf..a5e297eb8 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-conv-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-conv-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-conv-05-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-conv-05-f-ref.png
index 38ce25277..7faaee3e5 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-conv-05-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-conv-05-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-diffuse-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-diffuse-01-f-ref.png
index 74b22af67..73802053e 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-diffuse-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-diffuse-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-displace-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-displace-02-f-ref.png
index a751513d9..057fbac93 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-displace-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-displace-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-felem-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-felem-02-f-ref.png
index 59d231ccc..0cd82e3b9 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-felem-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-felem-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-gauss-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-gauss-01-b-ref.png
index dbe964352..38365834d 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-gauss-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-gauss-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-gauss-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-gauss-02-f-ref.png
index 20dc454fe..eaa34c806 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-gauss-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-gauss-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-gauss-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-gauss-03-f-ref.png
index 13a20c2f4..fe664fd4d 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-gauss-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-gauss-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-image-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-image-01-b-ref.png
index 85a055156..c17724644 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-image-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-image-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-image-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-image-02-b-ref.png
index 5156d7bed..39dea4435 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-image-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-image-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-image-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-image-03-f-ref.png
index 5dc78608d..a84bfdefe 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-image-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-image-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-image-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-image-04-f-ref.png
index 1f1a791a1..e86ff5a43 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-image-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-image-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-image-05-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-image-05-f-ref.png
index f3c73786b..634908208 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-image-05-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-image-05-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-light-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-light-01-f-ref.png
index dba989969..809e6ef38 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-light-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-light-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-light-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-light-02-f-ref.png
index 151c105eb..1865aac26 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-light-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-light-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-light-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-light-03-f-ref.png
index 58830d086..033c33120 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-light-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-light-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-light-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-light-04-f-ref.png
index 5a3099877..0b198599a 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-light-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-light-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-light-05-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-light-05-f-ref.png
index 9b9ed92a2..2db83e920 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-light-05-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-light-05-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-morph-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-morph-01-f-ref.png
index 831631165..e5ec4e67f 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-morph-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-morph-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-offset-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-offset-01-b-ref.png
index 37c8eefb7..64810cebe 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-offset-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-offset-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-overview-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-overview-01-b-ref.png
index b2a6975df..92428dfb0 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-overview-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-overview-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-overview-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-overview-02-b-ref.png
index fcc0827c1..328ecc20d 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-overview-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-overview-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-overview-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-overview-03-b-ref.png
index e987e5bd3..e76e4efef 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-overview-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-overview-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-specular-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-specular-01-f-ref.png
index 622e2ad66..40915925f 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-specular-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-specular-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-tile-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-tile-01-b-ref.png
index 5030256f3..fa22f975f 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-tile-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-tile-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-turb-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-turb-01-f-ref.png
index 2c3ab8300..7c77437fc 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-turb-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-turb-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/filters-turb-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/filters-turb-02-f-ref.png
index 9b3fc165f..fe68dd74f 100644
Binary files a/tests/fixtures/reftests/svg1.1/filters-turb-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/filters-turb-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-filter-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-filter-01-f-ref.png
index b55f77421..f5c91016e 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-filter-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-filter-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-intro-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-intro-01-f-ref.png
index 35baa6a36..1732580cd 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-intro-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-intro-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-mask-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-mask-01-b-ref.png
index 22a28b66b..e5e379ea0 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-mask-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-mask-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-mask-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-mask-02-f-ref.png
index 5c00c54bb..9bc1ebc27 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-mask-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-mask-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-opacity-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-opacity-01-b-ref.png
index 1f74f7992..1c3ecca30 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-opacity-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-opacity-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-path-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-path-01-b-ref.png
index 4a9e5d9ac..ec500b403 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-path-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-path-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-path-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-path-02-b-ref.png
index 7ca12c2bb..efebe458a 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-path-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-path-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-path-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-path-03-b-ref.png
index ee29bb087..fc65a7238 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-path-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-path-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-path-04-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-path-04-b-ref.png
index 60f5dd199..a877b4912 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-path-04-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-path-04-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-path-05-f-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-path-05-f-ref.png
index c324bb4cd..8ac3e5172 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-path-05-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-path-05-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/masking-path-08-b-ref.png 
b/tests/fixtures/reftests/svg1.1/masking-path-08-b-ref.png
index 426b175ca..9471ce964 100644
Binary files a/tests/fixtures/reftests/svg1.1/masking-path-08-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/masking-path-08-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-control-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-control-02-f-ref.png
index def882eb3..332afc1fa 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-control-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-control-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-01-f-ref.png
index f8be006c1..d07949cd0 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-02-f-ref.png
index 688228a1e..9f07cb6b4 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-03-f-ref.png
index 64213c17d..96a750aaa 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-04-f-ref.png
index 40934e392..a14d4c5c6 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-06-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-06-f-ref.png
index a6838ca4f..e46a034a4 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-06-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-06-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-07-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-07-f-ref.png
index 8f78d30b7..41a5da439 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-07-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-07-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-marker-properties-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-marker-properties-01-f-ref.png
index 39a5cdd20..5567ebb93 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-marker-properties-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-marker-properties-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-01-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-01-t-ref.png
index 3a971d566..19b39bd2f 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-01-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-01-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-02-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-02-t-ref.png
index eb4fbd9e9..c0c119b49 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-02-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-02-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-03-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-03-t-ref.png
index 841c049a6..4649e70a0 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-03-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-03-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-04-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-04-t-ref.png
index d89ca5704..5101bb756 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-04-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-04-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-05-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-05-t-ref.png
index 8d329955a..d55f30ea3 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-05-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-05-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-06-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-06-t-ref.png
index 90706f78d..04a343e4d 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-06-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-06-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-07-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-07-t-ref.png
index 39b77721c..052124248 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-07-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-07-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-08-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-08-t-ref.png
index 050ffffdf..ce3e97eb8 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-08-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-08-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/painting-stroke-09-t-ref.png 
b/tests/fixtures/reftests/svg1.1/painting-stroke-09-t-ref.png
index 4cc8fc400..afa235973 100644
Binary files a/tests/fixtures/reftests/svg1.1/painting-stroke-09-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/painting-stroke-09-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-01-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-01-t-ref.png
index 47bd02fce..08cbd002e 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-01-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-01-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-02-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-02-t-ref.png
index fc0dc1d07..bbb8e6c3d 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-02-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-02-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-03-f-ref.png
index 0ca10c6d9..4f6a6d861 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-04-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-04-t-ref.png
index 755895d06..6bc0f0bc1 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-04-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-04-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-05-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-05-t-ref.png
index 50d4aa06c..78ebc3c2d 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-05-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-05-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-06-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-06-t-ref.png
index fb9458dce..b91868df9 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-06-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-06-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-07-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-07-t-ref.png
index 073abccb7..0b61edb4e 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-07-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-07-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-08-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-08-t-ref.png
index f0f337e95..6d2b1e17b 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-08-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-08-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-09-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-09-t-ref.png
index 497b8c20e..1804993ea 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-09-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-09-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-10-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-10-t-ref.png
index 4760d9c00..206bdb3b4 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-10-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-10-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-12-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-12-t-ref.png
index cba3fdae4..0de3d8721 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-12-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-12-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-13-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-13-t-ref.png
index f6e540006..1632e6a62 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-13-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-13-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-14-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-14-t-ref.png
index 4f3206062..4d5a4ee7a 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-14-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-14-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-15-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-15-t-ref.png
index 6c5cea77f..0fd178419 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-15-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-15-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-16-t-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-16-t-ref.png
index e448e6299..aa7f2f143 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-16-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-16-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-17-f-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-17-f-ref.png
index 7a5410f1d..4ec0feaf3 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-17-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-17-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-18-f-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-18-f-ref.png
index 57bc8623a..da0096992 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-18-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-18-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-19-f-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-19-f-ref.png
index fcec95498..3d04241c3 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-19-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-19-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/paths-data-20-f-ref.png 
b/tests/fixtures/reftests/svg1.1/paths-data-20-f-ref.png
index e58d42be1..e59c62652 100644
Binary files a/tests/fixtures/reftests/svg1.1/paths-data-20-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/paths-data-20-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-01-b-ref.png
index 05d5b208c..c99d08693 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-02-b-ref.png
index d9de19a30..94e8d327d 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-03-b-ref.png
index d0ab9cfb4..480231527 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-04-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-04-b-ref.png
index 498ef6bba..ab1741503 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-04-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-04-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-05-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-05-b-ref.png
index 677a0840d..752db93ec 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-05-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-05-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-06-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-06-b-ref.png
index 86a7bc04b..27320951c 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-06-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-06-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-09-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-09-b-ref.png
index 3431292a6..bf9614323 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-09-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-09-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-10-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-10-b-ref.png
index 008680142..e26d695cb 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-10-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-10-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-11-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-11-b-ref.png
index e59d7a9db..446e77f73 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-11-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-11-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-12-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-12-b-ref.png
index 5b5dc8d78..defa1656b 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-12-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-12-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-14-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-14-b-ref.png
index ef89f35e0..82c4bdbc8 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-14-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-14-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-15-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-15-b-ref.png
index 7ad2da9e0..82098ea15 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-15-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-15-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-16-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-16-b-ref.png
index f2077f97a..f34eb40b5 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-16-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-16-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-18-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-18-b-ref.png
index 7fd04c5e2..15af7fab7 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-18-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-18-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-22-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-22-b-ref.png
index 24c8dd06d..f0b3863e3 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-22-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-22-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-23-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-23-f-ref.png
index a68367df0..130737bfe 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-23-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-23-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-24-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-24-f-ref.png
index 9f1dd72c4..af1363227 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-24-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-24-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-grad-stops-01-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-grad-stops-01-f-ref.png
index c69ac8c84..c42cb1d69 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-grad-stops-01-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-grad-stops-01-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-01-b-ref.png
index f1d6b664d..a370a7c80 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-02-f-ref.png
index fb0893ece..6d7f1969b 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-03-f-ref.png
index bdf0afed8..031ff476e 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-04-f-ref.png
index aa1ecd10e..eb71460b9 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-05-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-05-f-ref.png
index f5204b025..321d248ca 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-05-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-05-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-06-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-06-f-ref.png
index aa77dce38..14759acf8 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-06-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-06-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-07-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-07-f-ref.png
index 86d1ff665..6f9f35ec6 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-07-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-07-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-08-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-08-f-ref.png
index 8df5b17cd..534549d98 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-08-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-08-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/pservers-pattern-09-f-ref.png 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-09-f-ref.png
index 98f91ec7d..2cec267c7 100644
Binary files a/tests/fixtures/reftests/svg1.1/pservers-pattern-09-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/pservers-pattern-09-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/shapes-intro-01-t-ref.png 
b/tests/fixtures/reftests/svg1.1/shapes-intro-01-t-ref.png
index edc9f8a61..eae525156 100644
Binary files a/tests/fixtures/reftests/svg1.1/shapes-intro-01-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/shapes-intro-01-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/shapes-intro-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/shapes-intro-02-f-ref.png
index 8fc3db005..4f7a38b09 100644
Binary files a/tests/fixtures/reftests/svg1.1/shapes-intro-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/shapes-intro-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-cond-01-t-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-cond-01-t-ref.png
index e04cd08ae..9e9dac662 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-cond-01-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-cond-01-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png
index cdc1a7b8e..916647824 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-group-03-t-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-group-03-t-ref.png
index 0354fa0c6..1eefb2c2e 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-group-03-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-group-03-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-svg-03-f-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-svg-03-f-ref.png
index f73399a0c..5c1a733df 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-svg-03-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-svg-03-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-symbol-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-symbol-01-b-ref.png
index f60c95a6e..c116cacf5 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-symbol-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-symbol-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-use-01-t-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-use-01-t-ref.png
index 3f0fde907..186af7e1a 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-use-01-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-use-01-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-use-03-t-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-use-03-t-ref.png
index 22d00c648..f0ed4f8ea 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-use-03-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-use-03-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-use-04-b-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-use-04-b-ref.png
index d1050b0b6..f74f1c52b 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-use-04-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-use-04-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-use-09-b-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-use-09-b-ref.png
index 6b8b58d6f..f11fe9ea4 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-use-09-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-use-09-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-use-10-f-ref.png 
b/tests/fixtures/reftests/svg1.1/struct-use-10-f-ref.png
index 228b899ef..28ae5dbec 100644
Binary files a/tests/fixtures/reftests/svg1.1/struct-use-10-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/struct-use-10-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/styling-css-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/styling-css-01-b-ref.png
index 9f425a529..8167bcc13 100644
Binary files a/tests/fixtures/reftests/svg1.1/styling-css-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/styling-css-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/styling-css-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/styling-css-02-b-ref.png
index 149c98fb7..0c7ecb3a9 100644
Binary files a/tests/fixtures/reftests/svg1.1/styling-css-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/styling-css-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/styling-css-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/styling-css-03-b-ref.png
index 92ec59fad..fe4df5bf5 100644
Binary files a/tests/fixtures/reftests/svg1.1/styling-css-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/styling-css-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/styling-css-04-f-ref.png 
b/tests/fixtures/reftests/svg1.1/styling-css-04-f-ref.png
index c29ee5200..3a458a67a 100644
Binary files a/tests/fixtures/reftests/svg1.1/styling-css-04-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/styling-css-04-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/styling-css-07-f-ref.png 
b/tests/fixtures/reftests/svg1.1/styling-css-07-f-ref.png
index 3b0472652..c71266248 100644
Binary files a/tests/fixtures/reftests/svg1.1/styling-css-07-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/styling-css-07-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/styling-css-08-f-ref.png 
b/tests/fixtures/reftests/svg1.1/styling-css-08-f-ref.png
index a1352b3a2..1a1966e9a 100644
Binary files a/tests/fixtures/reftests/svg1.1/styling-css-08-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/styling-css-08-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-align-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-align-01-b-ref.png
index 2eeb41f38..c26488e6f 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-align-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-align-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-align-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-align-02-b-ref.png
index 445e95726..db78ef433 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-align-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-align-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-align-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-align-03-b-ref.png
index 9469ee17b..ec6855458 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-align-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-align-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-fonts-02-t-ref.png 
b/tests/fixtures/reftests/svg1.1/text-fonts-02-t-ref.png
index d173351a7..82703a9d9 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-fonts-02-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-fonts-02-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png
index 14e1b24c1..171c0b24b 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-text-08-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-text-08-b-ref.png
index 4fd120943..9882bf7c1 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-text-08-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-text-08-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-text-10-t-ref.png 
b/tests/fixtures/reftests/svg1.1/text-text-10-t-ref.png
index 09bd056c0..367451259 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-text-10-t-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-text-10-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-tref-01-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-tref-01-b-ref.png
index 4534d5e39..7651eb838 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-tref-01-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-tref-01-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-tref-02-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-tref-02-b-ref.png
index 6e7f42c4b..f16bdffaa 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-tref-02-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-tref-02-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/text-tref-03-b-ref.png 
b/tests/fixtures/reftests/svg1.1/text-tref-03-b-ref.png
index e411736e2..85cd53ee1 100644
Binary files a/tests/fixtures/reftests/svg1.1/text-tref-03-b-ref.png and 
b/tests/fixtures/reftests/svg1.1/text-tref-03-b-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/types-basic-02-f-ref.png 
b/tests/fixtures/reftests/svg1.1/types-basic-02-f-ref.png
index 3ca149231..56b7751cc 100644
Binary files a/tests/fixtures/reftests/svg1.1/types-basic-02-f-ref.png and 
b/tests/fixtures/reftests/svg1.1/types-basic-02-f-ref.png differ
diff --git a/tests/fixtures/reftests/svg2/text-paint-order-ref.png 
b/tests/fixtures/reftests/svg2/text-paint-order-ref.png
index 67c54d375..e1133f1be 100644
Binary files a/tests/fixtures/reftests/svg2/text-paint-order-ref.png and 
b/tests/fixtures/reftests/svg2/text-paint-order-ref.png differ
diff --git a/tests/src/text.rs b/tests/src/text.rs
index 08a80a7d5..8e0ace8f8 100644
--- a/tests/src/text.rs
+++ b/tests/src/text.rs
@@ -42,14 +42,11 @@ test_svg_reference!(
     "tests/fixtures/text/span-bounds-when-offset-by-dx-ref.svg"
 );
 
-// FIXME: Ignored because with the change to render all text as paths, the rendering
-// of these is different.
-//
-// test_svg_reference!(
-//     tspan_direction_change_804,
-//     "tests/fixtures/text/804-tspan-direction-change.svg",
-//     "tests/fixtures/text/804-tspan-direction-change-ref.svg"
-// );
+test_svg_reference!(
+    tspan_direction_change_804,
+    "tests/fixtures/text/804-tspan-direction-change.svg",
+    "tests/fixtures/text/804-tspan-direction-change-ref.svg"
+);
 
 test_svg_reference!(
     unicode_bidi_override,
@@ -122,11 +119,6 @@ fn text_layer_geometry(name: &str) {
 
     for (id, expected_ink_rect) in cases {
         let (ink_rect, _) = renderer.geometry_for_layer(Some(id), &viewport).unwrap();
-        assert!(
-            rectangle_approx_eq(&ink_rect, &expected_ink_rect),
-            "ink_rect: {:?}, expected: {:?}",
-            ink_rect,
-            expected_ink_rect
-        );
+        assert!(rectangle_approx_eq(&ink_rect, &expected_ink_rect));
     }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]