[cairo-commit] 2 commits - src/cairo-tor-scan-converter.c test/reference

Chris Wilson ickle at kemper.freedesktop.org
Tue Sep 30 04:04:46 PDT 2014


 dev/null                                                        |binary
 src/cairo-tor-scan-converter.c                                  |  331 +++++-----
 test/reference/a1-clip-fill-rule.ref.png                        |binary
 test/reference/a8-clear.argb32.ref.png                          |binary
 test/reference/a8-clear.rgb24.ref.png                           |binary
 test/reference/aliasing.argb32.ref.png                          |binary
 test/reference/aliasing.rgb24.ref.png                           |binary
 test/reference/alpha-similar.ref.png                            |binary
 test/reference/arc-direction.argb32.ref.png                     |binary
 test/reference/arc-direction.rgb24.ref.png                      |binary
 test/reference/big-empty-box.ref.png                            |binary
 test/reference/big-empty-triangle.ref.png                       |binary
 test/reference/big-little-box.ref.png                           |binary
 test/reference/big-little-triangle.ref.png                      |binary
 test/reference/big-little-triangle.rgb24.ref.png                |binary
 test/reference/bitmap-font.ref.png                              |binary
 test/reference/bug-extents.argb32.ref.png                       |binary
 test/reference/bug-extents.rgb24.ref.png                        |binary
 test/reference/bug-source-cu.ref.png                            |binary
 test/reference/bug-spline.argb32.ref.png                        |binary
 test/reference/bug-spline.rgb24.ref.png                         |binary
 test/reference/caps-joins-alpha.argb32.ref.png                  |binary
 test/reference/caps-joins-alpha.rgb24.ref.png                   |binary
 test/reference/caps-joins-curve.argb32.ref.png                  |binary
 test/reference/caps-joins-curve.rgb24.ref.png                   |binary
 test/reference/caps-tails-curve.argb32.ref.png                  |binary
 test/reference/caps-tails-curve.rgb24.ref.png                   |binary
 test/reference/clear.ref.png                                    |binary
 test/reference/clip-device-offset.ref.png                       |binary
 test/reference/clip-disjoint-hatching.argb32.ref.png            |binary
 test/reference/clip-disjoint-hatching.rgb24.ref.png             |binary
 test/reference/clip-disjoint-quad.argb32.ref.png                |binary
 test/reference/clip-disjoint-quad.rgb24.ref.png                 |binary
 test/reference/clip-disjoint.argb32.ref.png                     |binary
 test/reference/clip-disjoint.rgb24.ref.png                      |binary
 test/reference/clip-fill-eo-unbounded.ref.png                   |binary
 test/reference/clip-fill-nz-unbounded.ref.png                   |binary
 test/reference/clip-fill-rule-pixel-aligned.ref.png             |binary
 test/reference/clip-fill-rule.ref.png                           |binary
 test/reference/clip-fill.argb32.ref.png                         |binary
 test/reference/clip-fill.rgb24.ref.png                          |binary
 test/reference/clip-group-shapes-circles.argb32.ref.png         |binary
 test/reference/clip-group-shapes-circles.rgb24.ref.png          |binary
 test/reference/clip-intersect.argb32.ref.png                    |binary
 test/reference/clip-intersect.rgb24.ref.png                     |binary
 test/reference/clip-nesting.ref.png                             |binary
 test/reference/clip-operator.ref.png                            |binary
 test/reference/clip-push-group.argb32.ref.png                   |binary
 test/reference/clip-push-group.rgb24.ref.png                    |binary
 test/reference/clip-shape.argb32.ref.png                        |binary
 test/reference/clip-shape.rgb24.ref.png                         |binary
 test/reference/clip-stroke-unbounded.argb32.ref.png             |binary
 test/reference/clip-stroke-unbounded.ref.png                    |binary
 test/reference/clip-stroke-unbounded.rgb24.ref.png              |binary
 test/reference/clip-stroke.argb32.ref.png                       |binary
 test/reference/clip-stroke.rgb24.ref.png                        |binary
 test/reference/clip-text.argb32.ref.png                         |binary
 test/reference/clip-text.rgb24.ref.png                          |binary
 test/reference/clip-twice.ref.png                               |binary
 test/reference/clip-unbounded.ref.png                           |binary
 test/reference/clipped-group.argb32.ref.png                     |binary
 test/reference/clipped-group.rgb24.ref.png                      |binary
 test/reference/dash-curve.argb32.ref.png                        |binary
 test/reference/dash-curve.rgb24.ref.png                         |binary
 test/reference/dash-zero-length.ref.png                         |binary
 test/reference/degenerate-arc.argb32.ref.png                    |binary
 test/reference/degenerate-arc.rgb24.ref.png                     |binary
 test/reference/degenerate-dash.argb32.ref.png                   |binary
 test/reference/degenerate-dash.rgb24.ref.png                    |binary
 test/reference/degenerate-path.ref.png                          |binary
 test/reference/device-offset-positive.ref.png                   |binary
 test/reference/device-offset.ref.png                            |binary
 test/reference/egl-surface-source.ref.png                       |binary
 test/reference/extended-blend-alpha-mask.ref.png                |binary
 test/reference/extended-blend-alpha.ref.png                     |binary
 test/reference/extended-blend-mask.ref.png                      |binary
 test/reference/extended-blend-solid-alpha.ref.png               |binary
 test/reference/extended-blend-solid.ref.png                     |binary
 test/reference/extended-blend.ref.png                           |binary
 test/reference/fallback.ref.png                                 |binary
 test/reference/fill-alpha.argb32.ref.png                        |binary
 test/reference/fill-alpha.rgb24.ref.png                         |binary
 test/reference/fill-and-stroke-alpha-add.argb32.ref.png         |binary
 test/reference/fill-and-stroke-alpha-add.rgb24.ref.png          |binary
 test/reference/fill-and-stroke-alpha.argb32.ref.png             |binary
 test/reference/fill-and-stroke-alpha.rgb24.ref.png              |binary
 test/reference/fill-and-stroke.ref.png                          |binary
 test/reference/fill-degenerate-sort-order.ref.png               |binary
 test/reference/fill-empty.ref.png                               |binary
 test/reference/fill-missed-stop.ref.png                         |binary
 test/reference/fill-rule.ref.png                                |binary
 test/reference/fill.image.argb32.ref.png                        |binary
 test/reference/fill.image.rgb24.ref.png                         |binary
 test/reference/finer-grained-fallbacks.ref.png                  |binary
 test/reference/ft-text-vertical-layout-type1.argb32.ref.png     |binary
 test/reference/ft-text-vertical-layout-type1.rgb24.ref.png      |binary
 test/reference/ft-text-vertical-layout-type3.argb32.ref.png     |binary
 test/reference/ft-text-vertical-layout-type3.rgb24.ref.png      |binary
 test/reference/gl-surface-source.ref.png                        |binary
 test/reference/gradient-alpha.ref.png                           |binary
 test/reference/gradient-constant-alpha.ref.png                  |binary
 test/reference/gradient-zero-stops-mask.ref.png                 |binary
 test/reference/gradient-zero-stops.ref.png                      |binary
 test/reference/group-unaligned.argb32.ref.png                   |binary
 test/reference/group-unaligned.rgb24.ref.png                    |binary
 test/reference/halo-transform.argb32.ref.png                    |binary
 test/reference/halo-transform.rgb24.ref.png                     |binary
 test/reference/halo.argb32.ref.png                              |binary
 test/reference/halo.rgb24.ref.png                               |binary
 test/reference/hatchings.argb32.ref.png                         |binary
 test/reference/hatchings.rgb24.ref.png                          |binary
 test/reference/image-surface-source.ref.png                     |binary
 test/reference/inverted-clip.rgb24.ref.png                      |binary
 test/reference/large-twin-antialias-mixed.argb32.ref.png        |binary
 test/reference/large-twin-antialias-mixed.rgb24.ref.png         |binary
 test/reference/leaky-dashed-stroke.argb32.ref.png               |binary
 test/reference/leaky-dashed-stroke.rgb24.ref.png                |binary
 test/reference/line-width-large-overlap-rotated.argb32.ref.png  |binary
 test/reference/line-width-large-overlap-rotated.rgb24.ref.png   |binary
 test/reference/line-width-overlap-rotated.argb32.ref.png        |binary
 test/reference/line-width-overlap-rotated.rgb24.ref.png         |binary
 test/reference/linear-gradient-one-stop.ref.png                 |binary
 test/reference/linear-gradient-subset.argb32.ref.png            |binary
 test/reference/linear-gradient-subset.rgb24.ref.png             |binary
 test/reference/linear-gradient.argb32.ref.png                   |binary
 test/reference/linear-gradient.rgb24.ref.png                    |binary
 test/reference/mask-alpha.ref.png                               |binary
 test/reference/mask-ctm.ref.png                                 |binary
 test/reference/mask-surface-ctm.ref.png                         |binary
 test/reference/mask.ref.png                                     |binary
 test/reference/new-sub-path.ref.png                             |binary
 test/reference/nil-surface.ref.png                              |binary
 test/reference/operator-alpha.ref.png                           |binary
 test/reference/operator-clear.argb32.ref.png                    |binary
 test/reference/operator-clear.ref.png                           |binary
 test/reference/operator-source.ref.png                          |binary
 test/reference/operator.ref.png                                 |binary
 test/reference/over-above-source.ref.png                        |binary
 test/reference/over-around-source.ref.png                       |binary
 test/reference/over-below-source.ref.png                        |binary
 test/reference/over-between-source.ref.png                      |binary
 test/reference/overlapping-boxes.ref.png                        |binary
 test/reference/overlapping-dash-caps.argb32.ref.png             |binary
 test/reference/overlapping-dash-caps.rgb24.ref.png              |binary
 test/reference/overlapping-glyphs.ref.png                       |binary
 test/reference/paint-with-alpha-clip-mask.argb32.ref.png        |binary
 test/reference/paint-with-alpha-clip-mask.rgb24.ref.png         |binary
 test/reference/pass-through.ref.png                             |binary
 test/reference/path-append.argb32.ref.png                       |binary
 test/reference/path-append.rgb24.ref.png                        |binary
 test/reference/pdf-surface-source.ref.png                       |binary
 test/reference/pixman-rotate.ref.png                            |binary
 test/reference/ps-surface-source.ref.png                        |binary
 test/reference/push-group-color.ref.png                         |binary
 test/reference/push-group.argb32.ref.png                        |binary
 test/reference/push-group.ref.png                               |binary
 test/reference/quartz-surface-source.ref.png                    |binary
 test/reference/radial-gradient-source.ref.png                   |binary
 test/reference/random-clip.argb32.ref.png                       |binary
 test/reference/random-clip.rgb24.ref.png                        |binary
 test/reference/random-intersections-curves-eo.argb32.ref.png    |binary
 test/reference/random-intersections-curves-eo.rgb24.ref.png     |binary
 test/reference/random-intersections-curves-nz.argb32.ref.png    |binary
 test/reference/random-intersections-curves-nz.rgb24.ref.png     |binary
 test/reference/random-intersections-eo.argb32.ref.png           |binary
 test/reference/random-intersections-eo.rgb24.ref.png            |binary
 test/reference/random-intersections-nonzero.argb32.ref.png      |binary
 test/reference/random-intersections-nonzero.rgb24.ref.png       |binary
 test/reference/record-fill-alpha.argb32.ref.png                 |binary
 test/reference/record-fill-alpha.rgb24.ref.png                  |binary
 test/reference/record-paint-alpha-clip-mask.argb32.ref.png      |binary
 test/reference/record-paint-alpha-clip-mask.rgb24.ref.png       |binary
 test/reference/record1414x-fill-alpha.argb32.ref.png            |binary
 test/reference/record1414x-fill-alpha.rgb24.ref.png             |binary
 test/reference/record1414x-paint-alpha-clip-mask.argb32.ref.png |binary
 test/reference/record1414x-paint-alpha-clip-mask.rgb24.ref.png  |binary
 test/reference/record2x-fill-alpha.argb32.ref.png               |binary
 test/reference/record2x-fill-alpha.rgb24.ref.png                |binary
 test/reference/record2x-paint-alpha-clip-mask.argb32.ref.png    |binary
 test/reference/record2x-paint-alpha-clip-mask.rgb24.ref.png     |binary
 test/reference/record90-fill-alpha.argb32.ref.png               |binary
 test/reference/record90-fill-alpha.rgb24.ref.png                |binary
 test/reference/record90-paint-alpha-clip-mask.argb32.ref.png    |binary
 test/reference/record90-paint-alpha-clip-mask.rgb24.ref.png     |binary
 test/reference/record90-paint-alpha-clip.argb32.ref.png         |binary
 test/reference/record90-paint-alpha-clip.rgb24.ref.png          |binary
 test/reference/record90-paint-alpha-solid-clip.argb32.ref.png   |binary
 test/reference/record90-paint-alpha-solid-clip.rgb24.ref.png    |binary
 test/reference/recording-surface-extend-none.ref.png            |binary
 test/reference/recording-surface-extend-pad.ref.png             |binary
 test/reference/recording-surface-extend-reflect.ref.png         |binary
 test/reference/recording-surface-extend-repeat.ref.png          |binary
 test/reference/recording-surface-over.ref.png                   |binary
 test/reference/recording-surface-source.ref.png                 |binary
 test/reference/rel-path.ref.png                                 |binary
 test/reference/rotated-clip.argb32.ref.png                      |binary
 test/reference/rotated-clip.rgb24.ref.png                       |binary
 test/reference/scale-offset-similar.argb32.ref.png              |binary
 test/reference/scale-offset-similar.rgb24.ref.png               |binary
 test/reference/scale-offset.image.argb32.ref.png                |binary
 test/reference/scale-offset.image.rgb24.ref.png                 |binary
 test/reference/scale-source-surface-paint.ref.png               |binary
 test/reference/set-source.ref.png                               |binary
 test/reference/shape-general-convex.argb32.ref.png              |binary
 test/reference/shape-general-convex.rgb24.ref.png               |binary
 test/reference/shape-sierpinski.argb32.ref.png                  |binary
 test/reference/shape-sierpinski.rgb24.ref.png                   |binary
 test/reference/smask-fill.argb32.ref.png                        |binary
 test/reference/smask-fill.rgb24.ref.png                         |binary
 test/reference/smask-stroke.argb32.ref.png                      |binary
 test/reference/smask-stroke.rgb24.ref.png                       |binary
 test/reference/smask.argb32.ref.png                             |binary
 test/reference/smask.rgb24.ref.png                              |binary
 test/reference/source-surface-scale-paint.ref.png               |binary
 test/reference/stroke-clipped.argb32.ref.png                    |binary
 test/reference/stroke-clipped.rgb24.ref.png                     |binary
 test/reference/stroke-pattern.argb32.ref.png                    |binary
 test/reference/stroke-pattern.rgb24.ref.png                     |binary
 test/reference/stroke.image.argb32.ref.png                      |binary
 test/reference/stroke.image.rgb24.ref.png                       |binary
 test/reference/subsurface-outside-target.ref.png                |binary
 test/reference/surface-pattern-operator.ref.png                 |binary
 test/reference/svg-surface-source.ref.png                       |binary
 test/reference/text-pattern.ref.png                             |binary
 test/reference/text-rotate.argb32.ref.png                       |binary
 test/reference/text-rotate.rgb24.ref.png                        |binary
 test/reference/tiger.argb32.ref.png                             |binary
 test/reference/tiger.rgb24.ref.png                              |binary
 test/reference/tighten-bounds.ref.png                           |binary
 test/reference/trap-clip.ref.png                                |binary
 test/reference/twin-antialias-gray.argb32.ref.png               |binary
 test/reference/twin-antialias-gray.rgb24.ref.png                |binary
 test/reference/twin-antialias-mixed.argb32.ref.png              |binary
 test/reference/twin-antialias-mixed.rgb24.ref.png               |binary
 test/reference/twin-antialias-none.argb32.ref.png               |binary
 test/reference/twin-antialias-none.rgb24.ref.png                |binary
 test/reference/twin-antialias-subpixel.argb32.ref.png           |binary
 test/reference/twin-antialias-subpixel.rgb24.ref.png            |binary
 test/reference/twin.argb32.ref.png                              |binary
 test/reference/twin.rgb24.ref.png                               |binary
 test/reference/unbounded-operator.argb32.ref.png                |binary
 test/reference/unbounded-operator.ref.png                       |binary
 test/reference/unclosed-strokes.ref.png                         |binary
 test/reference/user-font-proxy.argb32.ref.png                   |binary
 test/reference/user-font-proxy.rgb24.ref.png                    |binary
 test/reference/user-font.argb32.ref.png                         |binary
 test/reference/user-font.rgb24.ref.png                          |binary
 test/reference/world-map-fill.argb32.ref.png                    |binary
 test/reference/world-map-fill.rgb24.ref.png                     |binary
 test/reference/xcb-surface-source.ref.png                       |binary
 test/reference/xlib-surface-source.ref.png                      |binary
 test/reference/zero-mask.ref.png                                |binary
 252 files changed, 174 insertions(+), 157 deletions(-)

New commits:
commit 03c3d4b7c159a3004071522bac2461e553fec211
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Sep 30 08:44:43 2014 +0100

    tor: Fix loss of precision from projection onto sample grid
    
    The goal is to preserve the precision in the gradients of the edges and
    only apply the projection into the final cell location. We also include
    the half-subrow offset as spotted by Massimo.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=84396
    Testcase: coverage-rhombus
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/cairo-tor-scan-converter.c b/src/cairo-tor-scan-converter.c
index 89ef20f..46473e9 100644
--- a/src/cairo-tor-scan-converter.c
+++ b/src/cairo-tor-scan-converter.c
@@ -262,7 +262,7 @@ typedef int grid_scaled_y_t;
 
 struct quorem {
     int32_t quo;
-    int32_t rem;
+    int64_t rem;
 };
 
 /* Header for a chunk of memory in a memory pool. */
@@ -308,6 +308,9 @@ struct edge {
     /* Next in y-bucket or active list. */
     struct edge *next, *prev;
 
+    /* The clipped y of the top of the edge. */
+    grid_scaled_y_t ytop;
+
     /* Number of subsample rows remaining to scan convert of this
      * edge. */
     grid_scaled_y_t height_left;
@@ -315,7 +318,7 @@ struct edge {
     /* Original sign of the edge: +1 for downwards, -1 for upwards
      * edges.  */
     int dir;
-    int vertical;
+    int cell;
 
     /* Current x coordinate while the edge is on the active
      * list. Initialised to the x coordinate of the top of the
@@ -332,11 +335,8 @@ struct edge {
      * full row's worth of subsample rows at a time. */
     struct quorem dxdy_full;
 
-    /* The clipped y of the top of the edge. */
-    grid_scaled_y_t ytop;
-
     /* y2-y1 after orienting the edge downwards.  */
-    grid_scaled_y_t dy;
+    int64_t dy;
 };
 
 #define EDGE_Y_BUCKET_INDEX(y, ymin) (((y) - (ymin))/GRID_Y)
@@ -473,22 +473,6 @@ floored_divrem(int a, int b)
     return qr;
 }
 
-/* Compute the floored division (x*a)/b. Assumes / and % perform symmetric
- * division. */
-static struct quorem
-floored_muldivrem(int x, int a, int b)
-{
-    struct quorem qr;
-    long long xa = (long long)x*a;
-    qr.quo = xa/b;
-    qr.rem = xa%b;
-    if ((xa>=0) != (b>=0) && qr.rem) {
-	qr.quo -= 1;
-	qr.rem += b;
-    }
-    return qr;
-}
-
 static struct _pool_chunk *
 _pool_chunk_init(
     struct _pool_chunk *p,
@@ -778,6 +762,26 @@ cell_list_add_subspan(struct cell_list *cells,
     }
 }
 
+inline static void full_step (struct edge *e)
+{
+    if (e->dy == 0)
+	return;
+
+    e->x.quo += e->dxdy_full.quo;
+    e->x.rem += e->dxdy_full.rem;
+    if (e->x.rem < 0) {
+	e->x.quo--;
+	e->x.rem += e->dy;
+    } else if (e->x.rem >= e->dy) {
+	++e->x.quo;
+	e->x.rem -= e->dy;
+    }
+    assert (e->x.rem >= 0 && e->x.rem < e->dy);
+
+    e->cell = e->x.quo + (e->x.rem >= e->dy/2);
+}
+
+
 /* Adds the analytical coverage of an edge crossing the current pixel
  * row to the coverage cells and advances the edge's x position to the
  * following row.
@@ -805,22 +809,16 @@ cell_list_render_edge(struct cell_list *cells,
     int ix1, ix2;
     grid_scaled_x_t fx1, fx2;
 
-    struct quorem x1 = edge->x;
-    struct quorem x2 = x1;
+    int x1, x2;
 
-    if (! edge->vertical) {
-	x2.quo += edge->dxdy_full.quo;
-	x2.rem += edge->dxdy_full.rem;
-	if (x2.rem >= 0) {
-	    ++x2.quo;
-	    x2.rem -= edge->dy;
-	}
+    /* XXX review for loss of precision from dropping x.rem in our stepper */
 
-	edge->x = x2;
-    }
+    x1 = edge->cell;
+    full_step (edge);
+    x2 = edge->cell;
 
-    GRID_X_TO_INT_FRAC(x1.quo, ix1, fx1);
-    GRID_X_TO_INT_FRAC(x2.quo, ix2, fx2);
+    GRID_X_TO_INT_FRAC(x1, ix1, fx1);
+    GRID_X_TO_INT_FRAC(x2, ix2, fx2);
 
     /* Edge is entirely within a column? */
     if (ix1 == ix2) {
@@ -833,7 +831,7 @@ cell_list_render_edge(struct cell_list *cells,
     }
 
     /* Orient the edge left-to-right. */
-    dx = x2.quo - x1.quo;
+    dx = x2 - x1;
     if (dx >= 0) {
 	y1 = 0;
 	y2 = GRID_Y;
@@ -976,78 +974,19 @@ _polygon_insert_edge_into_its_y_bucket(struct polygon *polygon,
     *ptail = e;
 }
 
-inline static void
-polygon_add_edge (struct polygon *polygon,
-		  const cairo_edge_t *edge)
-{
-    struct edge *e;
-    grid_scaled_x_t dx;
-    grid_scaled_y_t dy;
-    grid_scaled_y_t ytop, ybot;
-    grid_scaled_y_t ymin = polygon->ymin;
-    grid_scaled_y_t ymax = polygon->ymax;
-
-    if (unlikely (edge->top >= ymax || edge->bottom <= ymin))
-	return;
-
-    e = pool_alloc (polygon->edge_pool.base, sizeof (struct edge));
-
-    dx = edge->line.p2.x - edge->line.p1.x;
-    dy = edge->line.p2.y - edge->line.p1.y;
-    e->dy = dy;
-    e->dir = edge->dir;
-
-    ytop = edge->top >= ymin ? edge->top : ymin;
-    ybot = edge->bottom <= ymax ? edge->bottom : ymax;
-    e->ytop = ytop;
-    e->height_left = ybot - ytop;
-
-    if (dx == 0) {
-	e->vertical = TRUE;
-	e->x.quo = edge->line.p1.x;
-	e->x.rem = 0;
-	e->dxdy.quo = 0;
-	e->dxdy.rem = 0;
-	e->dxdy_full.quo = 0;
-	e->dxdy_full.rem = 0;
-    } else {
-	e->vertical = FALSE;
-	e->dxdy = floored_divrem (dx, dy);
-	if (ytop == edge->line.p1.y) {
-	    e->x.quo = edge->line.p1.x;
-	    e->x.rem = 0;
-	} else {
-	    e->x = floored_muldivrem (ytop - edge->line.p1.y, dx, dy);
-	    e->x.quo += edge->line.p1.x;
-	}
-
-	if (e->height_left >= GRID_Y) {
-	    e->dxdy_full = floored_muldivrem (GRID_Y, dx, dy);
-	} else {
-	    e->dxdy_full.quo = 0;
-	    e->dxdy_full.rem = 0;
-	}
-    }
-
-    _polygon_insert_edge_into_its_y_bucket (polygon, e);
-
-    e->x.rem -= dy;		/* Bias the remainder for faster
-				 * edge advancement. */
-}
-
 static void
 active_list_reset (struct active_list *active)
 {
-    active->head.vertical = 1;
     active->head.height_left = INT_MAX;
-    active->head.x.quo = INT_MIN;
+    active->head.dy = 0;
+    active->head.cell = INT_MIN;
     active->head.prev = NULL;
     active->head.next = &active->tail;
     active->tail.prev = &active->head;
     active->tail.next = NULL;
-    active->tail.x.quo = INT_MAX;
+    active->tail.cell = INT_MAX;
     active->tail.height_left = INT_MAX;
-    active->tail.vertical = 1;
+    active->tail.dy = 0;
     active->min_height = 0;
     active->is_vertical = 1;
 }
@@ -1084,7 +1023,7 @@ merge_sorted_edges (struct edge *head_a, struct edge *head_b)
 
     prev = head_a->prev;
     next = &head;
-    if (head_a->x.quo <= head_b->x.quo) {
+    if (head_a->cell <= head_b->cell) {
 	head = head_a;
     } else {
 	head = head_b;
@@ -1093,8 +1032,8 @@ merge_sorted_edges (struct edge *head_a, struct edge *head_b)
     }
 
     do {
-	x = head_b->x.quo;
-	while (head_a != NULL && head_a->x.quo <= x) {
+	x = head_b->cell;
+	while (head_a != NULL && head_a->cell <= x) {
 	    prev = head_a;
 	    next = &head_a->next;
 	    head_a = head_a->next;
@@ -1106,8 +1045,8 @@ merge_sorted_edges (struct edge *head_a, struct edge *head_b)
 	    return head;
 
 start_with_b:
-	x = head_a->x.quo;
-	while (head_b != NULL && head_b->x.quo <= x) {
+	x = head_a->cell;
+	while (head_b != NULL && head_b->cell <= x) {
 	    prev = head_b;
 	    next = &head_b->next;
 	    head_b = head_b->next;
@@ -1153,7 +1092,7 @@ sort_edges (struct edge *list,
     }
 
     remaining = head_other->next;
-    if (list->x.quo <= head_other->x.quo) {
+    if (list->cell <= head_other->cell) {
 	*head_out = list;
 	head_other->next = NULL;
     } else {
@@ -1197,7 +1136,7 @@ can_do_full_row (struct active_list *active)
 	while (NULL != e) {
 	    if (e->height_left < min_height)
 		min_height = e->height_left;
-	    is_vertical &= e->vertical;
+	    is_vertical &= e->dy == 0;
 	    e = e->next;
 	}
 
@@ -1210,19 +1149,27 @@ can_do_full_row (struct active_list *active)
 
     /* Check for intersections as no edges end during the next row. */
     for (e = active->head.next; e != &active->tail; e = e->next) {
-	struct quorem x = e->x;
+	int cell;
 
-	if (! e->vertical) {
+	if (e->dy) {
+	    struct quorem x = e->x;
 	    x.quo += e->dxdy_full.quo;
 	    x.rem += e->dxdy_full.rem;
-	    if (x.rem >= 0)
-		++x.quo;
-	}
+	    if (x.rem < 0) {
+		x.quo--;
+		x.rem += e->dy;
+	    } else if (x.rem >= e->dy) {
+		x.quo++;
+		x.rem -= e->dy;
+	    }
+	    cell = x.quo + (x.rem >= e->dy/2);
+	} else
+	    cell = e->cell;
 
-	if (x.quo < prev_x)
+	if (cell < prev_x)
 	    return 0;
 
-	prev_x = x.quo;
+	prev_x = cell;
     }
 
     return 1;
@@ -1256,7 +1203,7 @@ polygon_fill_buckets (struct active_list *active,
 	buckets[suby] = edge;
 	if (edge->height_left < min_height)
 	    min_height = edge->height_left;
-	is_vertical &= edge->vertical;
+	is_vertical &= edge->dy == 0;
 	edge = next;
     }
 
@@ -1264,6 +1211,25 @@ polygon_fill_buckets (struct active_list *active,
     active->min_height = min_height;
 }
 
+static void step (struct edge *edge)
+{
+    if (edge->dy == 0)
+	return;
+
+    edge->x.quo += edge->dxdy.quo;
+    edge->x.rem += edge->dxdy.rem;
+    if (edge->x.rem < 0) {
+	--edge->x.quo;
+	edge->x.rem += edge->dy;
+    } else if (edge->x.rem >= edge->dy) {
+	++edge->x.quo;
+	edge->x.rem -= edge->dy;
+    }
+    assert (edge->x.rem >= 0 && edge->x.rem < edge->dy);
+
+    edge->cell = edge->x.quo + (edge->x.rem >= edge->dy/2);
+}
+
 inline static void
 sub_row (struct active_list *active,
 	 struct cell_list *coverages,
@@ -1277,29 +1243,24 @@ sub_row (struct active_list *active,
 
     while (&active->tail != edge) {
 	struct edge *next = edge->next;
-	int xend = edge->x.quo;
+	int xend = edge->cell;
 
 	if (--edge->height_left) {
-	    edge->x.quo += edge->dxdy.quo;
-	    edge->x.rem += edge->dxdy.rem;
-	    if (edge->x.rem >= 0) {
-		++edge->x.quo;
-		edge->x.rem -= edge->dy;
-	    }
+	    step (edge);
 
-	    if (edge->x.quo < prev_x) {
+	    if (edge->cell < prev_x) {
 		struct edge *pos = edge->prev;
 		pos->next = next;
 		next->prev = pos;
 		do {
 		    pos = pos->prev;
-		} while (edge->x.quo < pos->x.quo);
+		} while (edge->cell < pos->cell);
 		pos->next->prev = edge;
 		edge->next = pos->next;
 		edge->prev = pos;
 		pos->next = edge;
 	    } else
-		prev_x = edge->x.quo;
+		prev_x = edge->cell;
 	    active->min_height = -1;
 	} else {
 	    edge->prev->next = next;
@@ -1308,7 +1269,7 @@ sub_row (struct active_list *active,
 
 	winding += edge->dir;
 	if ((winding & mask) == 0) {
-	    if (next->x.quo != xend) {
+	    if (next->cell != xend) {
 		cell_list_add_subspan (coverages, xstart, xend);
 		xstart = INT_MIN;
 	    }
@@ -1329,18 +1290,6 @@ inline static void dec (struct active_list *a, struct edge *e, int h)
     }
 }
 
-inline static void full_step (struct edge *e)
-{
-    if (! e->vertical) {
-	e->x.quo += e->dxdy_full.quo;
-	e->x.rem += e->dxdy_full.rem;
-	if (e->x.rem >= 0) {
-	    ++e->x.quo;
-	    e->x.rem -= e->dy;
-	}
-    }
-}
-
 static void
 full_row (struct active_list *active,
 	  struct cell_list *coverages,
@@ -1360,7 +1309,7 @@ full_row (struct active_list *active,
 	    dec (active, right, GRID_Y);
 
 	    winding += right->dir;
-	    if ((winding & mask) == 0 && right->next->x.quo != right->x.quo)
+	    if ((winding & mask) == 0 && right->next->cell != right->cell)
 		break;
 
 	    full_step (right);
@@ -1482,10 +1431,96 @@ glitter_scan_converter_reset(
 
 #define INPUT_TO_GRID_general(in, out, grid_scale) do {		\
     long long tmp__ = (long long)(grid_scale) * (in);	\
+    tmp__ += 1 << (GLITTER_INPUT_BITS-1);			\
     tmp__ >>= GLITTER_INPUT_BITS;				\
     (out) = tmp__;						\
 } while (0)
 
+inline static void
+polygon_add_edge (struct polygon *polygon,
+		  const cairo_edge_t *edge)
+{
+    struct edge *e;
+    grid_scaled_y_t ytop, ybot;
+    const cairo_point_t *p1, *p2;
+
+    INPUT_TO_GRID_Y (edge->top, ytop);
+    if (ytop < polygon->ymin)
+	    ytop = polygon->ymin;
+
+    INPUT_TO_GRID_Y (edge->bottom, ybot);
+    if (ybot > polygon->ymax)
+	    ybot = polygon->ymax;
+
+    if (ybot <= ytop)
+	    return;
+
+    e = pool_alloc (polygon->edge_pool.base, sizeof (struct edge));
+
+    e->ytop = ytop;
+    e->height_left = ybot - ytop;
+    if (edge->line.p2.y > edge->line.p1.y) {
+	    e->dir = edge->dir;
+	    p1 = &edge->line.p1;
+	    p2 = &edge->line.p2;
+    } else {
+	    e->dir = -edge->dir;
+	    p1 = &edge->line.p2;
+	    p2 = &edge->line.p1;
+    }
+
+    if (p2->x == p1->x) {
+	e->cell = p1->x;
+	e->x.quo = e->x.rem = 0;
+	e->dxdy.quo = e->dxdy.rem = 0;
+	e->dxdy_full.quo = e->dxdy_full.rem = 0;
+	e->dy = 0;
+    } else {
+	int64_t Ex, Ey, tmp;
+
+	Ex = (int64_t)(p2->x - p1->x) * GRID_X;
+	Ey = (int64_t)(p2->y - p1->y) * GRID_Y * (2 << GLITTER_INPUT_BITS);
+
+	e->dxdy.quo = Ex * (2 << GLITTER_INPUT_BITS) / Ey;
+	e->dxdy.rem = Ex * (2 << GLITTER_INPUT_BITS) % Ey;
+
+	tmp = (int64_t)(2*ytop + 1) << GLITTER_INPUT_BITS;
+	tmp -= (int64_t)p1->y * GRID_Y * 2;
+	tmp *= Ex;
+	e->x.quo = tmp / Ey;
+	e->x.rem = tmp % Ey;
+
+#if GRID_X_BITS == GLITTER_INPUT_BITS
+	e->x.quo += p1->x;
+#else
+	tmp = (int64_t)p1->x * GRID_X;
+	e->x.quo += tmp >> GLITTER_INPUT_BITS;
+	e->x.rem += ((tmp & ((1 << GLITTER_INPUT_BITS) - 1)) * Ey) / (1 << GLITTER_INPUT_BITS);
+#endif
+
+	if (e->x.rem < 0) {
+		e->x.quo--;
+		e->x.rem += Ey;
+	} else  if (e->x.rem >= Ey) {
+		e->x.quo++;
+		e->x.rem -= Ey;
+	}
+	assert (e->x.rem >= 0 && e->x.rem < Ey);
+
+	if (e->height_left >= GRID_Y) {
+	    tmp = Ex * (2 * GRID_Y << GLITTER_INPUT_BITS);
+	    e->dxdy_full.quo = tmp / Ey;
+	    e->dxdy_full.rem = tmp % Ey;
+	} else
+	    e->dxdy_full.quo = e->dxdy_full.rem = 0;
+
+	e->cell = e->x.quo + (e->x.rem >= Ey/2);
+	e->dy = Ey;
+    }
+
+    _polygon_insert_edge_into_its_y_bucket (polygon, e);
+}
+
 /* Add a new polygon edge from pixel (x1,y1) to (x2,y2) to the scan
  * converter.  The coordinates represent pixel positions scaled by
  * 2**GLITTER_PIXEL_BITS.  If this function fails then the scan
@@ -1495,25 +1530,7 @@ I void
 glitter_scan_converter_add_edge (glitter_scan_converter_t *converter,
 				 const cairo_edge_t *edge)
 {
-    cairo_edge_t e;
-
-    INPUT_TO_GRID_Y (edge->top, e.top);
-    INPUT_TO_GRID_Y (edge->bottom, e.bottom);
-    if (e.top >= e.bottom)
-	return;
-
-    /* XXX: possible overflows if GRID_X/Y > 2**GLITTER_INPUT_BITS */
-    INPUT_TO_GRID_Y (edge->line.p1.y, e.line.p1.y);
-    INPUT_TO_GRID_Y (edge->line.p2.y, e.line.p2.y);
-    if (e.line.p1.y == e.line.p2.y)
-	e.line.p2.y++; /* little fudge to prevent a div-by-zero */
-
-    INPUT_TO_GRID_X (edge->line.p1.x, e.line.p1.x);
-    INPUT_TO_GRID_X (edge->line.p2.x, e.line.p2.x);
-
-    e.dir = edge->dir;
-
-    polygon_add_edge (converter->polygon, &e);
+    polygon_add_edge (converter->polygon, edge);
 }
 
 static void
diff --git a/test/reference/a1-clip-fill-rule.ref.png b/test/reference/a1-clip-fill-rule.ref.png
new file mode 100644
index 0000000..c3ba9dd
Binary files /dev/null and b/test/reference/a1-clip-fill-rule.ref.png differ
diff --git a/test/reference/a8-clear.argb32.ref.png b/test/reference/a8-clear.argb32.ref.png
index 98a624e..28d2d78 100644
Binary files a/test/reference/a8-clear.argb32.ref.png and b/test/reference/a8-clear.argb32.ref.png differ
diff --git a/test/reference/a8-clear.rgb24.ref.png b/test/reference/a8-clear.rgb24.ref.png
index 98a624e..28d2d78 100644
Binary files a/test/reference/a8-clear.rgb24.ref.png and b/test/reference/a8-clear.rgb24.ref.png differ
diff --git a/test/reference/aliasing.argb32.ref.png b/test/reference/aliasing.argb32.ref.png
index c11eb67..4d3c303 100644
Binary files a/test/reference/aliasing.argb32.ref.png and b/test/reference/aliasing.argb32.ref.png differ
diff --git a/test/reference/aliasing.rgb24.ref.png b/test/reference/aliasing.rgb24.ref.png
index c11eb67..4d3c303 100644
Binary files a/test/reference/aliasing.rgb24.ref.png and b/test/reference/aliasing.rgb24.ref.png differ
diff --git a/test/reference/alpha-similar.ref.png b/test/reference/alpha-similar.ref.png
new file mode 100644
index 0000000..9e1bfaa
Binary files /dev/null and b/test/reference/alpha-similar.ref.png differ
diff --git a/test/reference/arc-direction.argb32.ref.png b/test/reference/arc-direction.argb32.ref.png
index 280c09b..fa90b89 100644
Binary files a/test/reference/arc-direction.argb32.ref.png and b/test/reference/arc-direction.argb32.ref.png differ
diff --git a/test/reference/arc-direction.rgb24.ref.png b/test/reference/arc-direction.rgb24.ref.png
index 280c09b..fa90b89 100644
Binary files a/test/reference/arc-direction.rgb24.ref.png and b/test/reference/arc-direction.rgb24.ref.png differ
diff --git a/test/reference/big-empty-box.ref.png b/test/reference/big-empty-box.ref.png
new file mode 100644
index 0000000..a88d3b6
Binary files /dev/null and b/test/reference/big-empty-box.ref.png differ
diff --git a/test/reference/big-empty-triangle.ref.png b/test/reference/big-empty-triangle.ref.png
new file mode 100644
index 0000000..a88d3b6
Binary files /dev/null and b/test/reference/big-empty-triangle.ref.png differ
diff --git a/test/reference/big-little-box.ref.png b/test/reference/big-little-box.ref.png
new file mode 100644
index 0000000..928c5e6
Binary files /dev/null and b/test/reference/big-little-box.ref.png differ
diff --git a/test/reference/big-little-triangle.ref.png b/test/reference/big-little-triangle.ref.png
new file mode 100644
index 0000000..1c2522f
Binary files /dev/null and b/test/reference/big-little-triangle.ref.png differ
diff --git a/test/reference/big-little-triangle.rgb24.ref.png b/test/reference/big-little-triangle.rgb24.ref.png
new file mode 100644
index 0000000..f22a92b
Binary files /dev/null and b/test/reference/big-little-triangle.rgb24.ref.png differ
diff --git a/test/reference/bitmap-font.ref.png b/test/reference/bitmap-font.ref.png
new file mode 100644
index 0000000..0718bf9
Binary files /dev/null and b/test/reference/bitmap-font.ref.png differ
diff --git a/test/reference/bug-extents.argb32.ref.png b/test/reference/bug-extents.argb32.ref.png
index 2c6875e..00a4466 100644
Binary files a/test/reference/bug-extents.argb32.ref.png and b/test/reference/bug-extents.argb32.ref.png differ
diff --git a/test/reference/bug-extents.rgb24.ref.png b/test/reference/bug-extents.rgb24.ref.png
index 2c6875e..00a4466 100644
Binary files a/test/reference/bug-extents.rgb24.ref.png and b/test/reference/bug-extents.rgb24.ref.png differ
diff --git a/test/reference/bug-source-cu.ref.png b/test/reference/bug-source-cu.ref.png
new file mode 100644
index 0000000..808feb5
Binary files /dev/null and b/test/reference/bug-source-cu.ref.png differ
diff --git a/test/reference/bug-spline.argb32.ref.png b/test/reference/bug-spline.argb32.ref.png
new file mode 100644
index 0000000..ff730a2
Binary files /dev/null and b/test/reference/bug-spline.argb32.ref.png differ
diff --git a/test/reference/bug-spline.ref.png b/test/reference/bug-spline.ref.png
deleted file mode 100644
index dfe8474..0000000
Binary files a/test/reference/bug-spline.ref.png and /dev/null differ
diff --git a/test/reference/bug-spline.rgb24.ref.png b/test/reference/bug-spline.rgb24.ref.png
new file mode 100644
index 0000000..ff730a2
Binary files /dev/null and b/test/reference/bug-spline.rgb24.ref.png differ
diff --git a/test/reference/caps-joins-alpha.argb32.ref.png b/test/reference/caps-joins-alpha.argb32.ref.png
new file mode 100644
index 0000000..d20fc20
Binary files /dev/null and b/test/reference/caps-joins-alpha.argb32.ref.png differ
diff --git a/test/reference/caps-joins-alpha.ref.png b/test/reference/caps-joins-alpha.ref.png
deleted file mode 100644
index 8c056b3..0000000
Binary files a/test/reference/caps-joins-alpha.ref.png and /dev/null differ
diff --git a/test/reference/caps-joins-alpha.rgb24.ref.png b/test/reference/caps-joins-alpha.rgb24.ref.png
new file mode 100644
index 0000000..d20fc20
Binary files /dev/null and b/test/reference/caps-joins-alpha.rgb24.ref.png differ
diff --git a/test/reference/caps-joins-curve.argb32.ref.png b/test/reference/caps-joins-curve.argb32.ref.png
new file mode 100644
index 0000000..4fcd30a
Binary files /dev/null and b/test/reference/caps-joins-curve.argb32.ref.png differ
diff --git a/test/reference/caps-joins-curve.ref.png b/test/reference/caps-joins-curve.ref.png
deleted file mode 100644
index 687194d..0000000
Binary files a/test/reference/caps-joins-curve.ref.png and /dev/null differ
diff --git a/test/reference/caps-joins-curve.rgb24.ref.png b/test/reference/caps-joins-curve.rgb24.ref.png
new file mode 100644
index 0000000..4fcd30a
Binary files /dev/null and b/test/reference/caps-joins-curve.rgb24.ref.png differ
diff --git a/test/reference/caps-tails-curve.argb32.ref.png b/test/reference/caps-tails-curve.argb32.ref.png
new file mode 100644
index 0000000..83b89d7
Binary files /dev/null and b/test/reference/caps-tails-curve.argb32.ref.png differ
diff --git a/test/reference/caps-tails-curve.ref.png b/test/reference/caps-tails-curve.ref.png
deleted file mode 100644
index ac97c82..0000000
Binary files a/test/reference/caps-tails-curve.ref.png and /dev/null differ
diff --git a/test/reference/caps-tails-curve.rgb24.ref.png b/test/reference/caps-tails-curve.rgb24.ref.png
new file mode 100644
index 0000000..83b89d7
Binary files /dev/null and b/test/reference/caps-tails-curve.rgb24.ref.png differ
diff --git a/test/reference/clear.ref.png b/test/reference/clear.ref.png
new file mode 100644
index 0000000..102ac3d
Binary files /dev/null and b/test/reference/clear.ref.png differ
diff --git a/test/reference/clip-device-offset.ref.png b/test/reference/clip-device-offset.ref.png
new file mode 100644
index 0000000..06be985
Binary files /dev/null and b/test/reference/clip-device-offset.ref.png differ
diff --git a/test/reference/clip-disjoint-hatching.argb32.ref.png b/test/reference/clip-disjoint-hatching.argb32.ref.png
index 6b22544..ff47816 100644
Binary files a/test/reference/clip-disjoint-hatching.argb32.ref.png and b/test/reference/clip-disjoint-hatching.argb32.ref.png differ
diff --git a/test/reference/clip-disjoint-hatching.rgb24.ref.png b/test/reference/clip-disjoint-hatching.rgb24.ref.png
index 6b22544..ff47816 100644
Binary files a/test/reference/clip-disjoint-hatching.rgb24.ref.png and b/test/reference/clip-disjoint-hatching.rgb24.ref.png differ
diff --git a/test/reference/clip-disjoint-quad.argb32.ref.png b/test/reference/clip-disjoint-quad.argb32.ref.png
new file mode 100644
index 0000000..a6fbe5a
Binary files /dev/null and b/test/reference/clip-disjoint-quad.argb32.ref.png differ
diff --git a/test/reference/clip-disjoint-quad.ref.png b/test/reference/clip-disjoint-quad.ref.png
deleted file mode 100644
index aaa7603..0000000
Binary files a/test/reference/clip-disjoint-quad.ref.png and /dev/null differ
diff --git a/test/reference/clip-disjoint-quad.rgb24.ref.png b/test/reference/clip-disjoint-quad.rgb24.ref.png
new file mode 100644
index 0000000..a6fbe5a
Binary files /dev/null and b/test/reference/clip-disjoint-quad.rgb24.ref.png differ
diff --git a/test/reference/clip-disjoint.argb32.ref.png b/test/reference/clip-disjoint.argb32.ref.png
new file mode 100644
index 0000000..035f8af
Binary files /dev/null and b/test/reference/clip-disjoint.argb32.ref.png differ
diff --git a/test/reference/clip-disjoint.ref.png b/test/reference/clip-disjoint.ref.png
deleted file mode 100644
index 6577a08..0000000
Binary files a/test/reference/clip-disjoint.ref.png and /dev/null differ
diff --git a/test/reference/clip-disjoint.rgb24.ref.png b/test/reference/clip-disjoint.rgb24.ref.png
new file mode 100644
index 0000000..035f8af
Binary files /dev/null and b/test/reference/clip-disjoint.rgb24.ref.png differ
diff --git a/test/reference/clip-fill-eo-unbounded.ref.png b/test/reference/clip-fill-eo-unbounded.ref.png
new file mode 100644
index 0000000..4e55216
Binary files /dev/null and b/test/reference/clip-fill-eo-unbounded.ref.png differ
diff --git a/test/reference/clip-fill-nz-unbounded.ref.png b/test/reference/clip-fill-nz-unbounded.ref.png
new file mode 100644
index 0000000..4e55216
Binary files /dev/null and b/test/reference/clip-fill-nz-unbounded.ref.png differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.ref.png b/test/reference/clip-fill-rule-pixel-aligned.ref.png
new file mode 100644
index 0000000..66eb685
Binary files /dev/null and b/test/reference/clip-fill-rule-pixel-aligned.ref.png differ
diff --git a/test/reference/clip-fill-rule.ref.png b/test/reference/clip-fill-rule.ref.png
new file mode 100644
index 0000000..cb23ea6
Binary files /dev/null and b/test/reference/clip-fill-rule.ref.png differ
diff --git a/test/reference/clip-fill.argb32.ref.png b/test/reference/clip-fill.argb32.ref.png
index da091b9..b2f555f 100644
Binary files a/test/reference/clip-fill.argb32.ref.png and b/test/reference/clip-fill.argb32.ref.png differ
diff --git a/test/reference/clip-fill.rgb24.ref.png b/test/reference/clip-fill.rgb24.ref.png
index da091b9..b2f555f 100644
Binary files a/test/reference/clip-fill.rgb24.ref.png and b/test/reference/clip-fill.rgb24.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.argb32.ref.png b/test/reference/clip-group-shapes-circles.argb32.ref.png
index 31219b2..a4a8dbb 100644
Binary files a/test/reference/clip-group-shapes-circles.argb32.ref.png and b/test/reference/clip-group-shapes-circles.argb32.ref.png differ
diff --git a/test/reference/clip-group-shapes-circles.rgb24.ref.png b/test/reference/clip-group-shapes-circles.rgb24.ref.png
index 31219b2..a4a8dbb 100644
Binary files a/test/reference/clip-group-shapes-circles.rgb24.ref.png and b/test/reference/clip-group-shapes-circles.rgb24.ref.png differ
diff --git a/test/reference/clip-intersect.argb32.ref.png b/test/reference/clip-intersect.argb32.ref.png
index 6627b3a..eb4105c 100644
Binary files a/test/reference/clip-intersect.argb32.ref.png and b/test/reference/clip-intersect.argb32.ref.png differ
diff --git a/test/reference/clip-intersect.rgb24.ref.png b/test/reference/clip-intersect.rgb24.ref.png
index 6627b3a..eb4105c 100644
Binary files a/test/reference/clip-intersect.rgb24.ref.png and b/test/reference/clip-intersect.rgb24.ref.png differ
diff --git a/test/reference/clip-nesting.ref.png b/test/reference/clip-nesting.ref.png
new file mode 100644
index 0000000..d1c5a03
Binary files /dev/null and b/test/reference/clip-nesting.ref.png differ
diff --git a/test/reference/clip-operator.ref.png b/test/reference/clip-operator.ref.png
new file mode 100644
index 0000000..eef4b5a
Binary files /dev/null and b/test/reference/clip-operator.ref.png differ
diff --git a/test/reference/clip-push-group.argb32.ref.png b/test/reference/clip-push-group.argb32.ref.png
index 86724a2..6a90fb4 100644
Binary files a/test/reference/clip-push-group.argb32.ref.png and b/test/reference/clip-push-group.argb32.ref.png differ
diff --git a/test/reference/clip-push-group.rgb24.ref.png b/test/reference/clip-push-group.rgb24.ref.png
index 86724a2..6a90fb4 100644
Binary files a/test/reference/clip-push-group.rgb24.ref.png and b/test/reference/clip-push-group.rgb24.ref.png differ
diff --git a/test/reference/clip-shape.argb32.ref.png b/test/reference/clip-shape.argb32.ref.png
index 8f71b25..da409fc 100644
Binary files a/test/reference/clip-shape.argb32.ref.png and b/test/reference/clip-shape.argb32.ref.png differ
diff --git a/test/reference/clip-shape.rgb24.ref.png b/test/reference/clip-shape.rgb24.ref.png
index 8f71b25..da409fc 100644
Binary files a/test/reference/clip-shape.rgb24.ref.png and b/test/reference/clip-shape.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.argb32.ref.png b/test/reference/clip-stroke-unbounded.argb32.ref.png
new file mode 100644
index 0000000..800475e
Binary files /dev/null and b/test/reference/clip-stroke-unbounded.argb32.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.ref.png b/test/reference/clip-stroke-unbounded.ref.png
new file mode 100644
index 0000000..316cc36
Binary files /dev/null and b/test/reference/clip-stroke-unbounded.ref.png differ
diff --git a/test/reference/clip-stroke-unbounded.rgb24.ref.png b/test/reference/clip-stroke-unbounded.rgb24.ref.png
new file mode 100644
index 0000000..0252b25
Binary files /dev/null and b/test/reference/clip-stroke-unbounded.rgb24.ref.png differ
diff --git a/test/reference/clip-stroke.argb32.ref.png b/test/reference/clip-stroke.argb32.ref.png
new file mode 100644
index 0000000..2b41f50
Binary files /dev/null and b/test/reference/clip-stroke.argb32.ref.png differ
diff --git a/test/reference/clip-stroke.ref.png b/test/reference/clip-stroke.ref.png
deleted file mode 100644
index 8a6bce7..0000000
Binary files a/test/reference/clip-stroke.ref.png and /dev/null differ
diff --git a/test/reference/clip-stroke.rgb24.ref.png b/test/reference/clip-stroke.rgb24.ref.png
new file mode 100644
index 0000000..2b41f50
Binary files /dev/null and b/test/reference/clip-stroke.rgb24.ref.png differ
diff --git a/test/reference/clip-text.argb32.ref.png b/test/reference/clip-text.argb32.ref.png
index c4b013d..3360650 100644
Binary files a/test/reference/clip-text.argb32.ref.png and b/test/reference/clip-text.argb32.ref.png differ
diff --git a/test/reference/clip-text.rgb24.ref.png b/test/reference/clip-text.rgb24.ref.png
index c4b013d..3360650 100644
Binary files a/test/reference/clip-text.rgb24.ref.png and b/test/reference/clip-text.rgb24.ref.png differ
diff --git a/test/reference/clip-twice.ref.png b/test/reference/clip-twice.ref.png
new file mode 100644
index 0000000..49ab9e5
Binary files /dev/null and b/test/reference/clip-twice.ref.png differ
diff --git a/test/reference/clip-unbounded.ref.png b/test/reference/clip-unbounded.ref.png
new file mode 100644
index 0000000..0b65905
Binary files /dev/null and b/test/reference/clip-unbounded.ref.png differ
diff --git a/test/reference/clipped-group.argb32.ref.png b/test/reference/clipped-group.argb32.ref.png
index 1ab8773..245b16e 100644
Binary files a/test/reference/clipped-group.argb32.ref.png and b/test/reference/clipped-group.argb32.ref.png differ
diff --git a/test/reference/clipped-group.rgb24.ref.png b/test/reference/clipped-group.rgb24.ref.png
index 1ab8773..245b16e 100644
Binary files a/test/reference/clipped-group.rgb24.ref.png and b/test/reference/clipped-group.rgb24.ref.png differ
diff --git a/test/reference/dash-curve.argb32.ref.png b/test/reference/dash-curve.argb32.ref.png
new file mode 100644
index 0000000..8eefce2
Binary files /dev/null and b/test/reference/dash-curve.argb32.ref.png differ
diff --git a/test/reference/dash-curve.ref.png b/test/reference/dash-curve.ref.png
deleted file mode 100644
index 3d5b904..0000000
Binary files a/test/reference/dash-curve.ref.png and /dev/null differ
diff --git a/test/reference/dash-curve.rgb24.ref.png b/test/reference/dash-curve.rgb24.ref.png
new file mode 100644
index 0000000..8eefce2
Binary files /dev/null and b/test/reference/dash-curve.rgb24.ref.png differ
diff --git a/test/reference/dash-zero-length.ref.png b/test/reference/dash-zero-length.ref.png
new file mode 100644
index 0000000..fdc5f5e
Binary files /dev/null and b/test/reference/dash-zero-length.ref.png differ
diff --git a/test/reference/degenerate-arc.argb32.ref.png b/test/reference/degenerate-arc.argb32.ref.png
new file mode 100644
index 0000000..6980a90
Binary files /dev/null and b/test/reference/degenerate-arc.argb32.ref.png differ
diff --git a/test/reference/degenerate-arc.ref.png b/test/reference/degenerate-arc.ref.png
deleted file mode 100644
index 185e1ac..0000000
Binary files a/test/reference/degenerate-arc.ref.png and /dev/null differ
diff --git a/test/reference/degenerate-arc.rgb24.ref.png b/test/reference/degenerate-arc.rgb24.ref.png
new file mode 100644
index 0000000..6980a90
Binary files /dev/null and b/test/reference/degenerate-arc.rgb24.ref.png differ
diff --git a/test/reference/degenerate-dash.argb32.ref.png b/test/reference/degenerate-dash.argb32.ref.png
new file mode 100644
index 0000000..13d9c7d
Binary files /dev/null and b/test/reference/degenerate-dash.argb32.ref.png differ
diff --git a/test/reference/degenerate-dash.ref.png b/test/reference/degenerate-dash.ref.png
deleted file mode 100644
index 3e4f5d6..0000000
Binary files a/test/reference/degenerate-dash.ref.png and /dev/null differ
diff --git a/test/reference/degenerate-dash.rgb24.ref.png b/test/reference/degenerate-dash.rgb24.ref.png
new file mode 100644
index 0000000..13d9c7d
Binary files /dev/null and b/test/reference/degenerate-dash.rgb24.ref.png differ
diff --git a/test/reference/degenerate-path.ref.png b/test/reference/degenerate-path.ref.png
new file mode 100644
index 0000000..f3dafe6
Binary files /dev/null and b/test/reference/degenerate-path.ref.png differ
diff --git a/test/reference/device-offset-positive.ref.png b/test/reference/device-offset-positive.ref.png
new file mode 100644
index 0000000..bdf63af
Binary files /dev/null and b/test/reference/device-offset-positive.ref.png differ
diff --git a/test/reference/device-offset.ref.png b/test/reference/device-offset.ref.png
new file mode 100644
index 0000000..22cbfb4
Binary files /dev/null and b/test/reference/device-offset.ref.png differ
diff --git a/test/reference/egl-surface-source.ref.png b/test/reference/egl-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/egl-surface-source.ref.png differ
diff --git a/test/reference/extended-blend-alpha-mask.ref.png b/test/reference/extended-blend-alpha-mask.ref.png
new file mode 100644
index 0000000..a1dd2a9
Binary files /dev/null and b/test/reference/extended-blend-alpha-mask.ref.png differ
diff --git a/test/reference/extended-blend-alpha.ref.png b/test/reference/extended-blend-alpha.ref.png
new file mode 100644
index 0000000..4d56a21
Binary files /dev/null and b/test/reference/extended-blend-alpha.ref.png differ
diff --git a/test/reference/extended-blend-mask.ref.png b/test/reference/extended-blend-mask.ref.png
new file mode 100644
index 0000000..5fa78e4
Binary files /dev/null and b/test/reference/extended-blend-mask.ref.png differ
diff --git a/test/reference/extended-blend-solid-alpha.ref.png b/test/reference/extended-blend-solid-alpha.ref.png
new file mode 100644
index 0000000..4d56a21
Binary files /dev/null and b/test/reference/extended-blend-solid-alpha.ref.png differ
diff --git a/test/reference/extended-blend-solid.ref.png b/test/reference/extended-blend-solid.ref.png
new file mode 100644
index 0000000..902ef88
Binary files /dev/null and b/test/reference/extended-blend-solid.ref.png differ
diff --git a/test/reference/extended-blend.ref.png b/test/reference/extended-blend.ref.png
new file mode 100644
index 0000000..902ef88
Binary files /dev/null and b/test/reference/extended-blend.ref.png differ
diff --git a/test/reference/fallback.ref.png b/test/reference/fallback.ref.png
new file mode 100644
index 0000000..c97e283
Binary files /dev/null and b/test/reference/fallback.ref.png differ
diff --git a/test/reference/fill-alpha.argb32.ref.png b/test/reference/fill-alpha.argb32.ref.png
index 9de7b50..260c961 100644
Binary files a/test/reference/fill-alpha.argb32.ref.png and b/test/reference/fill-alpha.argb32.ref.png differ
diff --git a/test/reference/fill-alpha.rgb24.ref.png b/test/reference/fill-alpha.rgb24.ref.png
index 9de7b50..260c961 100644
Binary files a/test/reference/fill-alpha.rgb24.ref.png and b/test/reference/fill-alpha.rgb24.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha-add.argb32.ref.png b/test/reference/fill-and-stroke-alpha-add.argb32.ref.png
index c804c7a..f10ffc2 100644
Binary files a/test/reference/fill-and-stroke-alpha-add.argb32.ref.png and b/test/reference/fill-and-stroke-alpha-add.argb32.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha-add.rgb24.ref.png b/test/reference/fill-and-stroke-alpha-add.rgb24.ref.png
index c804c7a..f10ffc2 100644
Binary files a/test/reference/fill-and-stroke-alpha-add.rgb24.ref.png and b/test/reference/fill-and-stroke-alpha-add.rgb24.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha.argb32.ref.png b/test/reference/fill-and-stroke-alpha.argb32.ref.png
index e22ebf9..8e81157 100644
Binary files a/test/reference/fill-and-stroke-alpha.argb32.ref.png and b/test/reference/fill-and-stroke-alpha.argb32.ref.png differ
diff --git a/test/reference/fill-and-stroke-alpha.rgb24.ref.png b/test/reference/fill-and-stroke-alpha.rgb24.ref.png
index e22ebf9..8e81157 100644
Binary files a/test/reference/fill-and-stroke-alpha.rgb24.ref.png and b/test/reference/fill-and-stroke-alpha.rgb24.ref.png differ
diff --git a/test/reference/fill-and-stroke.ref.png b/test/reference/fill-and-stroke.ref.png
new file mode 100644
index 0000000..c71a4e5
Binary files /dev/null and b/test/reference/fill-and-stroke.ref.png differ
diff --git a/test/reference/fill-degenerate-sort-order.ref.png b/test/reference/fill-degenerate-sort-order.ref.png
new file mode 100644
index 0000000..18940af
Binary files /dev/null and b/test/reference/fill-degenerate-sort-order.ref.png differ
diff --git a/test/reference/fill-empty.ref.png b/test/reference/fill-empty.ref.png
new file mode 100644
index 0000000..8c26f7e
Binary files /dev/null and b/test/reference/fill-empty.ref.png differ
diff --git a/test/reference/fill-missed-stop.ref.png b/test/reference/fill-missed-stop.ref.png
new file mode 100644
index 0000000..477eec9
Binary files /dev/null and b/test/reference/fill-missed-stop.ref.png differ
diff --git a/test/reference/fill-rule.ref.png b/test/reference/fill-rule.ref.png
new file mode 100644
index 0000000..282a211
Binary files /dev/null and b/test/reference/fill-rule.ref.png differ
diff --git a/test/reference/fill.image.argb32.ref.png b/test/reference/fill.image.argb32.ref.png
new file mode 100644
index 0000000..70c6bcc
Binary files /dev/null and b/test/reference/fill.image.argb32.ref.png differ
diff --git a/test/reference/fill.image.rgb24.ref.png b/test/reference/fill.image.rgb24.ref.png
new file mode 100644
index 0000000..70c6bcc
Binary files /dev/null and b/test/reference/fill.image.rgb24.ref.png differ
diff --git a/test/reference/finer-grained-fallbacks.ref.png b/test/reference/finer-grained-fallbacks.ref.png
new file mode 100644
index 0000000..cb18717
Binary files /dev/null and b/test/reference/finer-grained-fallbacks.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type1.argb32.ref.png b/test/reference/ft-text-vertical-layout-type1.argb32.ref.png
index 4941965..b2c9db4 100644
Binary files a/test/reference/ft-text-vertical-layout-type1.argb32.ref.png and b/test/reference/ft-text-vertical-layout-type1.argb32.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type1.rgb24.ref.png b/test/reference/ft-text-vertical-layout-type1.rgb24.ref.png
index 4941965..b2c9db4 100644
Binary files a/test/reference/ft-text-vertical-layout-type1.rgb24.ref.png and b/test/reference/ft-text-vertical-layout-type1.rgb24.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type3.argb32.ref.png b/test/reference/ft-text-vertical-layout-type3.argb32.ref.png
new file mode 100644
index 0000000..ad6ffed
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type3.argb32.ref.png differ
diff --git a/test/reference/ft-text-vertical-layout-type3.ref.png b/test/reference/ft-text-vertical-layout-type3.ref.png
deleted file mode 100644
index c778d9d..0000000
Binary files a/test/reference/ft-text-vertical-layout-type3.ref.png and /dev/null differ
diff --git a/test/reference/ft-text-vertical-layout-type3.rgb24.ref.png b/test/reference/ft-text-vertical-layout-type3.rgb24.ref.png
new file mode 100644
index 0000000..ad6ffed
Binary files /dev/null and b/test/reference/ft-text-vertical-layout-type3.rgb24.ref.png differ
diff --git a/test/reference/gl-surface-source.ref.png b/test/reference/gl-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/gl-surface-source.ref.png differ
diff --git a/test/reference/gradient-alpha.ref.png b/test/reference/gradient-alpha.ref.png
new file mode 100644
index 0000000..f64b26a
Binary files /dev/null and b/test/reference/gradient-alpha.ref.png differ
diff --git a/test/reference/gradient-constant-alpha.ref.png b/test/reference/gradient-constant-alpha.ref.png
new file mode 100644
index 0000000..7f49e2c
Binary files /dev/null and b/test/reference/gradient-constant-alpha.ref.png differ
diff --git a/test/reference/gradient-zero-stops-mask.ref.png b/test/reference/gradient-zero-stops-mask.ref.png
new file mode 100644
index 0000000..0a50f4c
Binary files /dev/null and b/test/reference/gradient-zero-stops-mask.ref.png differ
diff --git a/test/reference/gradient-zero-stops.ref.png b/test/reference/gradient-zero-stops.ref.png
new file mode 100644
index 0000000..3f18670
Binary files /dev/null and b/test/reference/gradient-zero-stops.ref.png differ
diff --git a/test/reference/group-unaligned.argb32.ref.png b/test/reference/group-unaligned.argb32.ref.png
index beb0ae2..c5fb48e 100644
Binary files a/test/reference/group-unaligned.argb32.ref.png and b/test/reference/group-unaligned.argb32.ref.png differ
diff --git a/test/reference/group-unaligned.rgb24.ref.png b/test/reference/group-unaligned.rgb24.ref.png
index beb0ae2..c5fb48e 100644
Binary files a/test/reference/group-unaligned.rgb24.ref.png and b/test/reference/group-unaligned.rgb24.ref.png differ
diff --git a/test/reference/halo-transform.argb32.ref.png b/test/reference/halo-transform.argb32.ref.png
index 96c6f42..3f92210 100644
Binary files a/test/reference/halo-transform.argb32.ref.png and b/test/reference/halo-transform.argb32.ref.png differ
diff --git a/test/reference/halo-transform.rgb24.ref.png b/test/reference/halo-transform.rgb24.ref.png
index 96c6f42..3f92210 100644
Binary files a/test/reference/halo-transform.rgb24.ref.png and b/test/reference/halo-transform.rgb24.ref.png differ
diff --git a/test/reference/halo.argb32.ref.png b/test/reference/halo.argb32.ref.png
new file mode 100644
index 0000000..2285e9c
Binary files /dev/null and b/test/reference/halo.argb32.ref.png differ
diff --git a/test/reference/halo.ref.png b/test/reference/halo.ref.png
deleted file mode 100644
index a2b7ae1..0000000
Binary files a/test/reference/halo.ref.png and /dev/null differ
diff --git a/test/reference/halo.rgb24.ref.png b/test/reference/halo.rgb24.ref.png
new file mode 100644
index 0000000..2285e9c
Binary files /dev/null and b/test/reference/halo.rgb24.ref.png differ
diff --git a/test/reference/hatchings.argb32.ref.png b/test/reference/hatchings.argb32.ref.png
new file mode 100644
index 0000000..8e62833
Binary files /dev/null and b/test/reference/hatchings.argb32.ref.png differ
diff --git a/test/reference/hatchings.ref.png b/test/reference/hatchings.ref.png
deleted file mode 100644
index d4c18b4..0000000
Binary files a/test/reference/hatchings.ref.png and /dev/null differ
diff --git a/test/reference/hatchings.rgb24.ref.png b/test/reference/hatchings.rgb24.ref.png
new file mode 100644
index 0000000..8e62833
Binary files /dev/null and b/test/reference/hatchings.rgb24.ref.png differ
diff --git a/test/reference/image-surface-source.ref.png b/test/reference/image-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/image-surface-source.ref.png differ
diff --git a/test/reference/inverted-clip.rgb24.ref.png b/test/reference/inverted-clip.rgb24.ref.png
new file mode 100644
index 0000000..1b93a6b
Binary files /dev/null and b/test/reference/inverted-clip.rgb24.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.argb32.ref.png b/test/reference/large-twin-antialias-mixed.argb32.ref.png
index ace463b..454d24f 100644
Binary files a/test/reference/large-twin-antialias-mixed.argb32.ref.png and b/test/reference/large-twin-antialias-mixed.argb32.ref.png differ
diff --git a/test/reference/large-twin-antialias-mixed.rgb24.ref.png b/test/reference/large-twin-antialias-mixed.rgb24.ref.png
index ace463b..454d24f 100644
Binary files a/test/reference/large-twin-antialias-mixed.rgb24.ref.png and b/test/reference/large-twin-antialias-mixed.rgb24.ref.png differ
diff --git a/test/reference/leaky-dashed-stroke.argb32.ref.png b/test/reference/leaky-dashed-stroke.argb32.ref.png
index ae64dae..b864018 100644
Binary files a/test/reference/leaky-dashed-stroke.argb32.ref.png and b/test/reference/leaky-dashed-stroke.argb32.ref.png differ
diff --git a/test/reference/leaky-dashed-stroke.rgb24.ref.png b/test/reference/leaky-dashed-stroke.rgb24.ref.png
index ae64dae..b864018 100644
Binary files a/test/reference/leaky-dashed-stroke.rgb24.ref.png and b/test/reference/leaky-dashed-stroke.rgb24.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.argb32.ref.png b/test/reference/line-width-large-overlap-rotated.argb32.ref.png
index 35dca5c..ed9eabb 100644
Binary files a/test/reference/line-width-large-overlap-rotated.argb32.ref.png and b/test/reference/line-width-large-overlap-rotated.argb32.ref.png differ
diff --git a/test/reference/line-width-large-overlap-rotated.rgb24.ref.png b/test/reference/line-width-large-overlap-rotated.rgb24.ref.png
index 35dca5c..ed9eabb 100644
Binary files a/test/reference/line-width-large-overlap-rotated.rgb24.ref.png and b/test/reference/line-width-large-overlap-rotated.rgb24.ref.png differ
diff --git a/test/reference/line-width-overlap-rotated.argb32.ref.png b/test/reference/line-width-overlap-rotated.argb32.ref.png
index 619a593..44c0020 100644
Binary files a/test/reference/line-width-overlap-rotated.argb32.ref.png and b/test/reference/line-width-overlap-rotated.argb32.ref.png differ
diff --git a/test/reference/line-width-overlap-rotated.rgb24.ref.png b/test/reference/line-width-overlap-rotated.rgb24.ref.png
index 619a593..44c0020 100644
Binary files a/test/reference/line-width-overlap-rotated.rgb24.ref.png and b/test/reference/line-width-overlap-rotated.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient-one-stop.ref.png b/test/reference/linear-gradient-one-stop.ref.png
new file mode 100644
index 0000000..da02fda
Binary files /dev/null and b/test/reference/linear-gradient-one-stop.ref.png differ
diff --git a/test/reference/linear-gradient-subset.argb32.ref.png b/test/reference/linear-gradient-subset.argb32.ref.png
index 3d30d0a..86f73d7 100644
Binary files a/test/reference/linear-gradient-subset.argb32.ref.png and b/test/reference/linear-gradient-subset.argb32.ref.png differ
diff --git a/test/reference/linear-gradient-subset.rgb24.ref.png b/test/reference/linear-gradient-subset.rgb24.ref.png
index 3d30d0a..86f73d7 100644
Binary files a/test/reference/linear-gradient-subset.rgb24.ref.png and b/test/reference/linear-gradient-subset.rgb24.ref.png differ
diff --git a/test/reference/linear-gradient.argb32.ref.png b/test/reference/linear-gradient.argb32.ref.png
index 3f78c52..7f23874 100644
Binary files a/test/reference/linear-gradient.argb32.ref.png and b/test/reference/linear-gradient.argb32.ref.png differ
diff --git a/test/reference/linear-gradient.rgb24.ref.png b/test/reference/linear-gradient.rgb24.ref.png
index 3f78c52..7f23874 100644
Binary files a/test/reference/linear-gradient.rgb24.ref.png and b/test/reference/linear-gradient.rgb24.ref.png differ
diff --git a/test/reference/mask-alpha.ref.png b/test/reference/mask-alpha.ref.png
new file mode 100644
index 0000000..fda6568
Binary files /dev/null and b/test/reference/mask-alpha.ref.png differ
diff --git a/test/reference/mask-ctm.ref.png b/test/reference/mask-ctm.ref.png
new file mode 100644
index 0000000..88a0402
Binary files /dev/null and b/test/reference/mask-ctm.ref.png differ
diff --git a/test/reference/mask-surface-ctm.ref.png b/test/reference/mask-surface-ctm.ref.png
new file mode 100644
index 0000000..744b1dd
Binary files /dev/null and b/test/reference/mask-surface-ctm.ref.png differ
diff --git a/test/reference/mask.ref.png b/test/reference/mask.ref.png
new file mode 100644
index 0000000..2d740d4
Binary files /dev/null and b/test/reference/mask.ref.png differ
diff --git a/test/reference/new-sub-path.ref.png b/test/reference/new-sub-path.ref.png
new file mode 100644
index 0000000..87a6c91
Binary files /dev/null and b/test/reference/new-sub-path.ref.png differ
diff --git a/test/reference/nil-surface.ref.png b/test/reference/nil-surface.ref.png
new file mode 100644
index 0000000..79dd2bc
Binary files /dev/null and b/test/reference/nil-surface.ref.png differ
diff --git a/test/reference/operator-alpha.ref.png b/test/reference/operator-alpha.ref.png
new file mode 100644
index 0000000..b4f3b71
Binary files /dev/null and b/test/reference/operator-alpha.ref.png differ
diff --git a/test/reference/operator-clear.argb32.ref.png b/test/reference/operator-clear.argb32.ref.png
new file mode 100644
index 0000000..13c6373
Binary files /dev/null and b/test/reference/operator-clear.argb32.ref.png differ
diff --git a/test/reference/operator-clear.ref.png b/test/reference/operator-clear.ref.png
new file mode 100644
index 0000000..41f63bd
Binary files /dev/null and b/test/reference/operator-clear.ref.png differ
diff --git a/test/reference/operator-source.ref.png b/test/reference/operator-source.ref.png
new file mode 100644
index 0000000..359f597
Binary files /dev/null and b/test/reference/operator-source.ref.png differ
diff --git a/test/reference/operator.ref.png b/test/reference/operator.ref.png
new file mode 100644
index 0000000..34fce98
Binary files /dev/null and b/test/reference/operator.ref.png differ
diff --git a/test/reference/over-above-source.ref.png b/test/reference/over-above-source.ref.png
new file mode 100644
index 0000000..80167f9
Binary files /dev/null and b/test/reference/over-above-source.ref.png differ
diff --git a/test/reference/over-around-source.ref.png b/test/reference/over-around-source.ref.png
new file mode 100644
index 0000000..e16108d
Binary files /dev/null and b/test/reference/over-around-source.ref.png differ
diff --git a/test/reference/over-below-source.ref.png b/test/reference/over-below-source.ref.png
new file mode 100644
index 0000000..0b55974
Binary files /dev/null and b/test/reference/over-below-source.ref.png differ
diff --git a/test/reference/over-between-source.ref.png b/test/reference/over-between-source.ref.png
new file mode 100644
index 0000000..1055c4d
Binary files /dev/null and b/test/reference/over-between-source.ref.png differ
diff --git a/test/reference/overlapping-boxes.ref.png b/test/reference/overlapping-boxes.ref.png
new file mode 100644
index 0000000..1c68438
Binary files /dev/null and b/test/reference/overlapping-boxes.ref.png differ
diff --git a/test/reference/overlapping-dash-caps.argb32.ref.png b/test/reference/overlapping-dash-caps.argb32.ref.png
new file mode 100644
index 0000000..1a2abf7
Binary files /dev/null and b/test/reference/overlapping-dash-caps.argb32.ref.png differ
diff --git a/test/reference/overlapping-dash-caps.ref.png b/test/reference/overlapping-dash-caps.ref.png
deleted file mode 100644
index d6cbe68..0000000
Binary files a/test/reference/overlapping-dash-caps.ref.png and /dev/null differ
diff --git a/test/reference/overlapping-dash-caps.rgb24.ref.png b/test/reference/overlapping-dash-caps.rgb24.ref.png
new file mode 100644
index 0000000..1a2abf7
Binary files /dev/null and b/test/reference/overlapping-dash-caps.rgb24.ref.png differ
diff --git a/test/reference/overlapping-glyphs.ref.png b/test/reference/overlapping-glyphs.ref.png
new file mode 100644
index 0000000..4ec4ee5
Binary files /dev/null and b/test/reference/overlapping-glyphs.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.argb32.ref.png b/test/reference/paint-with-alpha-clip-mask.argb32.ref.png
index 5054672..5d7a474 100644
Binary files a/test/reference/paint-with-alpha-clip-mask.argb32.ref.png and b/test/reference/paint-with-alpha-clip-mask.argb32.ref.png differ
diff --git a/test/reference/paint-with-alpha-clip-mask.rgb24.ref.png b/test/reference/paint-with-alpha-clip-mask.rgb24.ref.png
index 5054672..5d7a474 100644
Binary files a/test/reference/paint-with-alpha-clip-mask.rgb24.ref.png and b/test/reference/paint-with-alpha-clip-mask.rgb24.ref.png differ
diff --git a/test/reference/pass-through.ref.png b/test/reference/pass-through.ref.png
new file mode 100644
index 0000000..058a192
Binary files /dev/null and b/test/reference/pass-through.ref.png differ
diff --git a/test/reference/path-append.argb32.ref.png b/test/reference/path-append.argb32.ref.png
index f097af0..637eaca 100644
Binary files a/test/reference/path-append.argb32.ref.png and b/test/reference/path-append.argb32.ref.png differ
diff --git a/test/reference/path-append.rgb24.ref.png b/test/reference/path-append.rgb24.ref.png
index f097af0..637eaca 100644
Binary files a/test/reference/path-append.rgb24.ref.png and b/test/reference/path-append.rgb24.ref.png differ
diff --git a/test/reference/pdf-surface-source.ref.png b/test/reference/pdf-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/pdf-surface-source.ref.png differ
diff --git a/test/reference/pixman-rotate.ref.png b/test/reference/pixman-rotate.ref.png
new file mode 100644
index 0000000..7e47a4d
Binary files /dev/null and b/test/reference/pixman-rotate.ref.png differ
diff --git a/test/reference/ps-surface-source.ref.png b/test/reference/ps-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/ps-surface-source.ref.png differ
diff --git a/test/reference/push-group-color.argb32.ref.png b/test/reference/push-group-color.argb32.ref.png
deleted file mode 100644
index 5615196..0000000
Binary files a/test/reference/push-group-color.argb32.ref.png and /dev/null differ
diff --git a/test/reference/push-group-color.ref.png b/test/reference/push-group-color.ref.png
new file mode 100644
index 0000000..5438a9d
Binary files /dev/null and b/test/reference/push-group-color.ref.png differ
diff --git a/test/reference/push-group-color.rgb24.ref.png b/test/reference/push-group-color.rgb24.ref.png
deleted file mode 100644
index 5615196..0000000
Binary files a/test/reference/push-group-color.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/push-group.argb32.ref.png b/test/reference/push-group.argb32.ref.png
new file mode 100644
index 0000000..355b87e
Binary files /dev/null and b/test/reference/push-group.argb32.ref.png differ
diff --git a/test/reference/push-group.ref.png b/test/reference/push-group.ref.png
new file mode 100644
index 0000000..60f5eec
Binary files /dev/null and b/test/reference/push-group.ref.png differ
diff --git a/test/reference/quartz-surface-source.ref.png b/test/reference/quartz-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/quartz-surface-source.ref.png differ
diff --git a/test/reference/radial-gradient-source.ref.png b/test/reference/radial-gradient-source.ref.png
new file mode 100644
index 0000000..4ab4796
Binary files /dev/null and b/test/reference/radial-gradient-source.ref.png differ
diff --git a/test/reference/random-clip.argb32.ref.png b/test/reference/random-clip.argb32.ref.png
new file mode 100644
index 0000000..d755c61
Binary files /dev/null and b/test/reference/random-clip.argb32.ref.png differ
diff --git a/test/reference/random-clip.ref.png b/test/reference/random-clip.ref.png
deleted file mode 100644
index cdb71dd..0000000
Binary files a/test/reference/random-clip.ref.png and /dev/null differ
diff --git a/test/reference/random-clip.rgb24.ref.png b/test/reference/random-clip.rgb24.ref.png
new file mode 100644
index 0000000..d755c61
Binary files /dev/null and b/test/reference/random-clip.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-curves-eo.argb32.ref.png b/test/reference/random-intersections-curves-eo.argb32.ref.png
index c8b0c53..2221f48 100644
Binary files a/test/reference/random-intersections-curves-eo.argb32.ref.png and b/test/reference/random-intersections-curves-eo.argb32.ref.png differ
diff --git a/test/reference/random-intersections-curves-eo.rgb24.ref.png b/test/reference/random-intersections-curves-eo.rgb24.ref.png
index c8b0c53..2221f48 100644
Binary files a/test/reference/random-intersections-curves-eo.rgb24.ref.png and b/test/reference/random-intersections-curves-eo.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-curves-nz.argb32.ref.png b/test/reference/random-intersections-curves-nz.argb32.ref.png
index 2678590..2dccfce 100644
Binary files a/test/reference/random-intersections-curves-nz.argb32.ref.png and b/test/reference/random-intersections-curves-nz.argb32.ref.png differ
diff --git a/test/reference/random-intersections-curves-nz.rgb24.ref.png b/test/reference/random-intersections-curves-nz.rgb24.ref.png
index 2678590..2dccfce 100644
Binary files a/test/reference/random-intersections-curves-nz.rgb24.ref.png and b/test/reference/random-intersections-curves-nz.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-eo.argb32.ref.png b/test/reference/random-intersections-eo.argb32.ref.png
index 0e8460e..c087a38 100644
Binary files a/test/reference/random-intersections-eo.argb32.ref.png and b/test/reference/random-intersections-eo.argb32.ref.png differ
diff --git a/test/reference/random-intersections-eo.rgb24.ref.png b/test/reference/random-intersections-eo.rgb24.ref.png
index 0e8460e..c087a38 100644
Binary files a/test/reference/random-intersections-eo.rgb24.ref.png and b/test/reference/random-intersections-eo.rgb24.ref.png differ
diff --git a/test/reference/random-intersections-nonzero.argb32.ref.png b/test/reference/random-intersections-nonzero.argb32.ref.png
index dfc2f33..1255014 100644
Binary files a/test/reference/random-intersections-nonzero.argb32.ref.png and b/test/reference/random-intersections-nonzero.argb32.ref.png differ
diff --git a/test/reference/random-intersections-nonzero.rgb24.ref.png b/test/reference/random-intersections-nonzero.rgb24.ref.png
index dfc2f33..1255014 100644
Binary files a/test/reference/random-intersections-nonzero.rgb24.ref.png and b/test/reference/random-intersections-nonzero.rgb24.ref.png differ
diff --git a/test/reference/record-fill-alpha.argb32.ref.png b/test/reference/record-fill-alpha.argb32.ref.png
new file mode 100644
index 0000000..eaf3e9c
Binary files /dev/null and b/test/reference/record-fill-alpha.argb32.ref.png differ
diff --git a/test/reference/record-fill-alpha.ref.png b/test/reference/record-fill-alpha.ref.png
deleted file mode 100644
index 06a4d55..0000000
Binary files a/test/reference/record-fill-alpha.ref.png and /dev/null differ
diff --git a/test/reference/record-fill-alpha.rgb24.ref.png b/test/reference/record-fill-alpha.rgb24.ref.png
new file mode 100644
index 0000000..eaf3e9c
Binary files /dev/null and b/test/reference/record-fill-alpha.rgb24.ref.png differ
diff --git a/test/reference/record-paint-alpha-clip-mask.argb32.ref.png b/test/reference/record-paint-alpha-clip-mask.argb32.ref.png
new file mode 100644
index 0000000..93cdd03
Binary files /dev/null and b/test/reference/record-paint-alpha-clip-mask.argb32.ref.png differ
diff --git a/test/reference/record-paint-alpha-clip-mask.ref.png b/test/reference/record-paint-alpha-clip-mask.ref.png
deleted file mode 100644
index 34d3aa6..0000000
Binary files a/test/reference/record-paint-alpha-clip-mask.ref.png and /dev/null differ
diff --git a/test/reference/record-paint-alpha-clip-mask.rgb24.ref.png b/test/reference/record-paint-alpha-clip-mask.rgb24.ref.png
new file mode 100644
index 0000000..93cdd03
Binary files /dev/null and b/test/reference/record-paint-alpha-clip-mask.rgb24.ref.png differ
diff --git a/test/reference/record1414x-fill-alpha.argb32.ref.png b/test/reference/record1414x-fill-alpha.argb32.ref.png
new file mode 100644
index 0000000..c1ff66f
Binary files /dev/null and b/test/reference/record1414x-fill-alpha.argb32.ref.png differ
diff --git a/test/reference/record1414x-fill-alpha.ref.png b/test/reference/record1414x-fill-alpha.ref.png
deleted file mode 100644
index 4b4c780..0000000
Binary files a/test/reference/record1414x-fill-alpha.ref.png and /dev/null differ
diff --git a/test/reference/record1414x-fill-alpha.rgb24.ref.png b/test/reference/record1414x-fill-alpha.rgb24.ref.png
new file mode 100644
index 0000000..c1ff66f
Binary files /dev/null and b/test/reference/record1414x-fill-alpha.rgb24.ref.png differ
diff --git a/test/reference/record1414x-paint-alpha-clip-mask.argb32.ref.png b/test/reference/record1414x-paint-alpha-clip-mask.argb32.ref.png
index de56943..e410f7f 100644
Binary files a/test/reference/record1414x-paint-alpha-clip-mask.argb32.ref.png and b/test/reference/record1414x-paint-alpha-clip-mask.argb32.ref.png differ
diff --git a/test/reference/record1414x-paint-alpha-clip-mask.rgb24.ref.png b/test/reference/record1414x-paint-alpha-clip-mask.rgb24.ref.png
index de56943..e410f7f 100644
Binary files a/test/reference/record1414x-paint-alpha-clip-mask.rgb24.ref.png and b/test/reference/record1414x-paint-alpha-clip-mask.rgb24.ref.png differ
diff --git a/test/reference/record2x-fill-alpha.argb32.ref.png b/test/reference/record2x-fill-alpha.argb32.ref.png
new file mode 100644
index 0000000..488f2b0
Binary files /dev/null and b/test/reference/record2x-fill-alpha.argb32.ref.png differ
diff --git a/test/reference/record2x-fill-alpha.ref.png b/test/reference/record2x-fill-alpha.ref.png
deleted file mode 100644
index ae0646e..0000000
Binary files a/test/reference/record2x-fill-alpha.ref.png and /dev/null differ
diff --git a/test/reference/record2x-fill-alpha.rgb24.ref.png b/test/reference/record2x-fill-alpha.rgb24.ref.png
new file mode 100644
index 0000000..488f2b0
Binary files /dev/null and b/test/reference/record2x-fill-alpha.rgb24.ref.png differ
diff --git a/test/reference/record2x-paint-alpha-clip-mask.argb32.ref.png b/test/reference/record2x-paint-alpha-clip-mask.argb32.ref.png
index ab56a71..1aa7d68 100644
Binary files a/test/reference/record2x-paint-alpha-clip-mask.argb32.ref.png and b/test/reference/record2x-paint-alpha-clip-mask.argb32.ref.png differ
diff --git a/test/reference/record2x-paint-alpha-clip-mask.rgb24.ref.png b/test/reference/record2x-paint-alpha-clip-mask.rgb24.ref.png
index ab56a71..1aa7d68 100644
Binary files a/test/reference/record2x-paint-alpha-clip-mask.rgb24.ref.png and b/test/reference/record2x-paint-alpha-clip-mask.rgb24.ref.png differ
diff --git a/test/reference/record90-fill-alpha.argb32.ref.png b/test/reference/record90-fill-alpha.argb32.ref.png
new file mode 100644
index 0000000..262dab8
Binary files /dev/null and b/test/reference/record90-fill-alpha.argb32.ref.png differ
diff --git a/test/reference/record90-fill-alpha.ref.png b/test/reference/record90-fill-alpha.ref.png
deleted file mode 100644
index a4c4bb8..0000000
Binary files a/test/reference/record90-fill-alpha.ref.png and /dev/null differ
diff --git a/test/reference/record90-fill-alpha.rgb24.ref.png b/test/reference/record90-fill-alpha.rgb24.ref.png
new file mode 100644
index 0000000..262dab8
Binary files /dev/null and b/test/reference/record90-fill-alpha.rgb24.ref.png differ
diff --git a/test/reference/record90-paint-alpha-clip-mask.argb32.ref.png b/test/reference/record90-paint-alpha-clip-mask.argb32.ref.png
new file mode 100644
index 0000000..5c2106b
Binary files /dev/null and b/test/reference/record90-paint-alpha-clip-mask.argb32.ref.png differ
diff --git a/test/reference/record90-paint-alpha-clip-mask.ref.png b/test/reference/record90-paint-alpha-clip-mask.ref.png
deleted file mode 100644
index 03cf805..0000000
Binary files a/test/reference/record90-paint-alpha-clip-mask.ref.png and /dev/null differ
diff --git a/test/reference/record90-paint-alpha-clip-mask.rgb24.ref.png b/test/reference/record90-paint-alpha-clip-mask.rgb24.ref.png
new file mode 100644
index 0000000..5c2106b
Binary files /dev/null and b/test/reference/record90-paint-alpha-clip-mask.rgb24.ref.png differ
diff --git a/test/reference/record90-paint-alpha-clip.argb32.ref.png b/test/reference/record90-paint-alpha-clip.argb32.ref.png
new file mode 100644
index 0000000..b7703d4
Binary files /dev/null and b/test/reference/record90-paint-alpha-clip.argb32.ref.png differ
diff --git a/test/reference/record90-paint-alpha-clip.ref.png b/test/reference/record90-paint-alpha-clip.ref.png
deleted file mode 100644
index ab1fe3c..0000000
Binary files a/test/reference/record90-paint-alpha-clip.ref.png and /dev/null differ
diff --git a/test/reference/record90-paint-alpha-clip.rgb24.ref.png b/test/reference/record90-paint-alpha-clip.rgb24.ref.png
new file mode 100644
index 0000000..b7703d4
Binary files /dev/null and b/test/reference/record90-paint-alpha-clip.rgb24.ref.png differ
diff --git a/test/reference/record90-paint-alpha-solid-clip.argb32.ref.png b/test/reference/record90-paint-alpha-solid-clip.argb32.ref.png
index 95e7da6..17bff57 100644
Binary files a/test/reference/record90-paint-alpha-solid-clip.argb32.ref.png and b/test/reference/record90-paint-alpha-solid-clip.argb32.ref.png differ
diff --git a/test/reference/record90-paint-alpha-solid-clip.rgb24.ref.png b/test/reference/record90-paint-alpha-solid-clip.rgb24.ref.png
index 95e7da6..17bff57 100644
Binary files a/test/reference/record90-paint-alpha-solid-clip.rgb24.ref.png and b/test/reference/record90-paint-alpha-solid-clip.rgb24.ref.png differ
diff --git a/test/reference/recording-surface-extend-none.ref.png b/test/reference/recording-surface-extend-none.ref.png
new file mode 100644
index 0000000..d69cdc9
Binary files /dev/null and b/test/reference/recording-surface-extend-none.ref.png differ
diff --git a/test/reference/recording-surface-extend-pad.ref.png b/test/reference/recording-surface-extend-pad.ref.png
new file mode 100644
index 0000000..31b7005
Binary files /dev/null and b/test/reference/recording-surface-extend-pad.ref.png differ
diff --git a/test/reference/recording-surface-extend-reflect.ref.png b/test/reference/recording-surface-extend-reflect.ref.png
new file mode 100644
index 0000000..bc1d70f
Binary files /dev/null and b/test/reference/recording-surface-extend-reflect.ref.png differ
diff --git a/test/reference/recording-surface-extend-repeat.ref.png b/test/reference/recording-surface-extend-repeat.ref.png
new file mode 100644
index 0000000..d95245b
Binary files /dev/null and b/test/reference/recording-surface-extend-repeat.ref.png differ
diff --git a/test/reference/recording-surface-over.ref.png b/test/reference/recording-surface-over.ref.png
new file mode 100644
index 0000000..d69cdc9
Binary files /dev/null and b/test/reference/recording-surface-over.ref.png differ
diff --git a/test/reference/recording-surface-source.ref.png b/test/reference/recording-surface-source.ref.png
new file mode 100644
index 0000000..bc6930f
Binary files /dev/null and b/test/reference/recording-surface-source.ref.png differ
diff --git a/test/reference/rel-path.ref.png b/test/reference/rel-path.ref.png
new file mode 100644
index 0000000..67fe178
Binary files /dev/null and b/test/reference/rel-path.ref.png differ
diff --git a/test/reference/rotated-clip.argb32.ref.png b/test/reference/rotated-clip.argb32.ref.png
index dd6cd5f..3ac8ef9 100644
Binary files a/test/reference/rotated-clip.argb32.ref.png and b/test/reference/rotated-clip.argb32.ref.png differ
diff --git a/test/reference/rotated-clip.rgb24.ref.png b/test/reference/rotated-clip.rgb24.ref.png
index dd6cd5f..3ac8ef9 100644
Binary files a/test/reference/rotated-clip.rgb24.ref.png and b/test/reference/rotated-clip.rgb24.ref.png differ
diff --git a/test/reference/scale-offset-similar.argb32.ref.png b/test/reference/scale-offset-similar.argb32.ref.png
index ab1ced8..1247063 100644
Binary files a/test/reference/scale-offset-similar.argb32.ref.png and b/test/reference/scale-offset-similar.argb32.ref.png differ
diff --git a/test/reference/scale-offset-similar.rgb24.ref.png b/test/reference/scale-offset-similar.rgb24.ref.png
index ab1ced8..1247063 100644
Binary files a/test/reference/scale-offset-similar.rgb24.ref.png and b/test/reference/scale-offset-similar.rgb24.ref.png differ
diff --git a/test/reference/scale-offset.image.argb32.ref.png b/test/reference/scale-offset.image.argb32.ref.png
new file mode 100644
index 0000000..1247063
Binary files /dev/null and b/test/reference/scale-offset.image.argb32.ref.png differ
diff --git a/test/reference/scale-offset.image.rgb24.ref.png b/test/reference/scale-offset.image.rgb24.ref.png
new file mode 100644
index 0000000..1247063
Binary files /dev/null and b/test/reference/scale-offset.image.rgb24.ref.png differ
diff --git a/test/reference/scale-source-surface-paint.ref.png b/test/reference/scale-source-surface-paint.ref.png
new file mode 100644
index 0000000..ec3c059
Binary files /dev/null and b/test/reference/scale-source-surface-paint.ref.png differ
diff --git a/test/reference/set-source.ref.png b/test/reference/set-source.ref.png
new file mode 100644
index 0000000..19793e0
Binary files /dev/null and b/test/reference/set-source.ref.png differ
diff --git a/test/reference/shape-general-convex.argb32.ref.png b/test/reference/shape-general-convex.argb32.ref.png
index b4d4df7..2f648d5 100644
Binary files a/test/reference/shape-general-convex.argb32.ref.png and b/test/reference/shape-general-convex.argb32.ref.png differ
diff --git a/test/reference/shape-general-convex.rgb24.ref.png b/test/reference/shape-general-convex.rgb24.ref.png
index b4d4df7..2f648d5 100644
Binary files a/test/reference/shape-general-convex.rgb24.ref.png and b/test/reference/shape-general-convex.rgb24.ref.png differ
diff --git a/test/reference/shape-sierpinski.argb32.ref.png b/test/reference/shape-sierpinski.argb32.ref.png
index ac98557..5d98367 100644
Binary files a/test/reference/shape-sierpinski.argb32.ref.png and b/test/reference/shape-sierpinski.argb32.ref.png differ
diff --git a/test/reference/shape-sierpinski.rgb24.ref.png b/test/reference/shape-sierpinski.rgb24.ref.png
index ac98557..5d98367 100644
Binary files a/test/reference/shape-sierpinski.rgb24.ref.png and b/test/reference/shape-sierpinski.rgb24.ref.png differ
diff --git a/test/reference/smask-fill.argb32.ref.png b/test/reference/smask-fill.argb32.ref.png
index 84e1755..ec4cf52 100644
Binary files a/test/reference/smask-fill.argb32.ref.png and b/test/reference/smask-fill.argb32.ref.png differ
diff --git a/test/reference/smask-fill.rgb24.ref.png b/test/reference/smask-fill.rgb24.ref.png
index 84e1755..ec4cf52 100644
Binary files a/test/reference/smask-fill.rgb24.ref.png and b/test/reference/smask-fill.rgb24.ref.png differ
diff --git a/test/reference/smask-stroke.argb32.ref.png b/test/reference/smask-stroke.argb32.ref.png
index d7b56e5..0284046 100644
Binary files a/test/reference/smask-stroke.argb32.ref.png and b/test/reference/smask-stroke.argb32.ref.png differ
diff --git a/test/reference/smask-stroke.rgb24.ref.png b/test/reference/smask-stroke.rgb24.ref.png
index d7b56e5..0284046 100644
Binary files a/test/reference/smask-stroke.rgb24.ref.png and b/test/reference/smask-stroke.rgb24.ref.png differ
diff --git a/test/reference/smask.argb32.ref.png b/test/reference/smask.argb32.ref.png
index 3b5703e..44e061f 100644
Binary files a/test/reference/smask.argb32.ref.png and b/test/reference/smask.argb32.ref.png differ
diff --git a/test/reference/smask.rgb24.ref.png b/test/reference/smask.rgb24.ref.png
index 3b5703e..44e061f 100644
Binary files a/test/reference/smask.rgb24.ref.png and b/test/reference/smask.rgb24.ref.png differ
diff --git a/test/reference/source-surface-scale-paint.ref.png b/test/reference/source-surface-scale-paint.ref.png
new file mode 100644
index 0000000..a81f93d
Binary files /dev/null and b/test/reference/source-surface-scale-paint.ref.png differ
diff --git a/test/reference/stroke-clipped.argb32.ref.png b/test/reference/stroke-clipped.argb32.ref.png
new file mode 100644
index 0000000..2df639e
Binary files /dev/null and b/test/reference/stroke-clipped.argb32.ref.png differ
diff --git a/test/reference/stroke-clipped.ref.png b/test/reference/stroke-clipped.ref.png
deleted file mode 100644
index 2d4c5d1..0000000
Binary files a/test/reference/stroke-clipped.ref.png and /dev/null differ
diff --git a/test/reference/stroke-clipped.rgb24.ref.png b/test/reference/stroke-clipped.rgb24.ref.png
new file mode 100644
index 0000000..2df639e
Binary files /dev/null and b/test/reference/stroke-clipped.rgb24.ref.png differ
diff --git a/test/reference/stroke-pattern.argb32.ref.png b/test/reference/stroke-pattern.argb32.ref.png
index 38ff6ad..065f089 100644
Binary files a/test/reference/stroke-pattern.argb32.ref.png and b/test/reference/stroke-pattern.argb32.ref.png differ
diff --git a/test/reference/stroke-pattern.rgb24.ref.png b/test/reference/stroke-pattern.rgb24.ref.png
index 38ff6ad..065f089 100644
Binary files a/test/reference/stroke-pattern.rgb24.ref.png and b/test/reference/stroke-pattern.rgb24.ref.png differ
diff --git a/test/reference/stroke.image.argb32.ref.png b/test/reference/stroke.image.argb32.ref.png
new file mode 100644
index 0000000..0dc701f
Binary files /dev/null and b/test/reference/stroke.image.argb32.ref.png differ
diff --git a/test/reference/stroke.image.rgb24.ref.png b/test/reference/stroke.image.rgb24.ref.png
new file mode 100644
index 0000000..0dc701f
Binary files /dev/null and b/test/reference/stroke.image.rgb24.ref.png differ
diff --git a/test/reference/subsurface-outside-target.ref.png b/test/reference/subsurface-outside-target.ref.png
new file mode 100644
index 0000000..337cdd8
Binary files /dev/null and b/test/reference/subsurface-outside-target.ref.png differ
diff --git a/test/reference/surface-pattern-operator.ref.png b/test/reference/surface-pattern-operator.ref.png
new file mode 100644
index 0000000..8178030
Binary files /dev/null and b/test/reference/surface-pattern-operator.ref.png differ
diff --git a/test/reference/svg-surface-source.ref.png b/test/reference/svg-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/svg-surface-source.ref.png differ
diff --git a/test/reference/text-pattern.ref.png b/test/reference/text-pattern.ref.png
new file mode 100644
index 0000000..95410fa
Binary files /dev/null and b/test/reference/text-pattern.ref.png differ
diff --git a/test/reference/text-rotate.argb32.ref.png b/test/reference/text-rotate.argb32.ref.png
new file mode 100644
index 0000000..a64f40d
Binary files /dev/null and b/test/reference/text-rotate.argb32.ref.png differ
diff --git a/test/reference/text-rotate.ref.png b/test/reference/text-rotate.ref.png
deleted file mode 100644
index 00c59e7..0000000
Binary files a/test/reference/text-rotate.ref.png and /dev/null differ
diff --git a/test/reference/text-rotate.rgb24.ref.png b/test/reference/text-rotate.rgb24.ref.png
new file mode 100644
index 0000000..a64f40d
Binary files /dev/null and b/test/reference/text-rotate.rgb24.ref.png differ
diff --git a/test/reference/tiger.argb32.ref.png b/test/reference/tiger.argb32.ref.png
index 85ae151..6fe6dd3 100644
Binary files a/test/reference/tiger.argb32.ref.png and b/test/reference/tiger.argb32.ref.png differ
diff --git a/test/reference/tiger.rgb24.ref.png b/test/reference/tiger.rgb24.ref.png
index 85ae151..6fe6dd3 100644
Binary files a/test/reference/tiger.rgb24.ref.png and b/test/reference/tiger.rgb24.ref.png differ
diff --git a/test/reference/tighten-bounds.ref.png b/test/reference/tighten-bounds.ref.png
new file mode 100644
index 0000000..28bbecc
Binary files /dev/null and b/test/reference/tighten-bounds.ref.png differ
diff --git a/test/reference/trap-clip.ref.png b/test/reference/trap-clip.ref.png
new file mode 100644
index 0000000..719d855
Binary files /dev/null and b/test/reference/trap-clip.ref.png differ
diff --git a/test/reference/twin-antialias-gray.argb32.ref.png b/test/reference/twin-antialias-gray.argb32.ref.png
new file mode 100644
index 0000000..602e005
Binary files /dev/null and b/test/reference/twin-antialias-gray.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-gray.ref.png b/test/reference/twin-antialias-gray.ref.png
deleted file mode 100644
index 20db5c4..0000000
Binary files a/test/reference/twin-antialias-gray.ref.png and /dev/null differ
diff --git a/test/reference/twin-antialias-gray.rgb24.ref.png b/test/reference/twin-antialias-gray.rgb24.ref.png
new file mode 100644
index 0000000..602e005
Binary files /dev/null and b/test/reference/twin-antialias-gray.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.argb32.ref.png b/test/reference/twin-antialias-mixed.argb32.ref.png
index d6c406f..20483ee 100644
Binary files a/test/reference/twin-antialias-mixed.argb32.ref.png and b/test/reference/twin-antialias-mixed.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-mixed.rgb24.ref.png b/test/reference/twin-antialias-mixed.rgb24.ref.png
index d6c406f..20483ee 100644
Binary files a/test/reference/twin-antialias-mixed.rgb24.ref.png and b/test/reference/twin-antialias-mixed.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-none.argb32.ref.png b/test/reference/twin-antialias-none.argb32.ref.png
index cb9628e..0dda0d9 100644
Binary files a/test/reference/twin-antialias-none.argb32.ref.png and b/test/reference/twin-antialias-none.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-none.rgb24.ref.png b/test/reference/twin-antialias-none.rgb24.ref.png
index cb9628e..0dda0d9 100644
Binary files a/test/reference/twin-antialias-none.rgb24.ref.png and b/test/reference/twin-antialias-none.rgb24.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.argb32.ref.png b/test/reference/twin-antialias-subpixel.argb32.ref.png
new file mode 100644
index 0000000..602e005
Binary files /dev/null and b/test/reference/twin-antialias-subpixel.argb32.ref.png differ
diff --git a/test/reference/twin-antialias-subpixel.ref.png b/test/reference/twin-antialias-subpixel.ref.png
deleted file mode 100644
index 20db5c4..0000000
Binary files a/test/reference/twin-antialias-subpixel.ref.png and /dev/null differ
diff --git a/test/reference/twin-antialias-subpixel.rgb24.ref.png b/test/reference/twin-antialias-subpixel.rgb24.ref.png
new file mode 100644
index 0000000..602e005
Binary files /dev/null and b/test/reference/twin-antialias-subpixel.rgb24.ref.png differ
diff --git a/test/reference/twin.argb32.ref.png b/test/reference/twin.argb32.ref.png
new file mode 100644
index 0000000..602e005
Binary files /dev/null and b/test/reference/twin.argb32.ref.png differ
diff --git a/test/reference/twin.ref.png b/test/reference/twin.ref.png
deleted file mode 100644
index 20db5c4..0000000
Binary files a/test/reference/twin.ref.png and /dev/null differ
diff --git a/test/reference/twin.rgb24.ref.png b/test/reference/twin.rgb24.ref.png
new file mode 100644
index 0000000..602e005
Binary files /dev/null and b/test/reference/twin.rgb24.ref.png differ
diff --git a/test/reference/unbounded-operator.argb32.ref.png b/test/reference/unbounded-operator.argb32.ref.png
new file mode 100644
index 0000000..d9b89a6
Binary files /dev/null and b/test/reference/unbounded-operator.argb32.ref.png differ
diff --git a/test/reference/unbounded-operator.ref.png b/test/reference/unbounded-operator.ref.png
new file mode 100644
index 0000000..6e4aa95
Binary files /dev/null and b/test/reference/unbounded-operator.ref.png differ
diff --git a/test/reference/unclosed-strokes.argb32.ref.png b/test/reference/unclosed-strokes.argb32.ref.png
deleted file mode 100644
index 8af8472..0000000
Binary files a/test/reference/unclosed-strokes.argb32.ref.png and /dev/null differ
diff --git a/test/reference/unclosed-strokes.ref.png b/test/reference/unclosed-strokes.ref.png
new file mode 100644
index 0000000..7649c03
Binary files /dev/null and b/test/reference/unclosed-strokes.ref.png differ
diff --git a/test/reference/unclosed-strokes.rgb24.ref.png b/test/reference/unclosed-strokes.rgb24.ref.png
deleted file mode 100644
index 8af8472..0000000
Binary files a/test/reference/unclosed-strokes.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/user-font-proxy.argb32.ref.png b/test/reference/user-font-proxy.argb32.ref.png
index 5acbca5..b97d32b 100644
Binary files a/test/reference/user-font-proxy.argb32.ref.png and b/test/reference/user-font-proxy.argb32.ref.png differ
diff --git a/test/reference/user-font-proxy.rgb24.ref.png b/test/reference/user-font-proxy.rgb24.ref.png
index 5acbca5..b97d32b 100644
Binary files a/test/reference/user-font-proxy.rgb24.ref.png and b/test/reference/user-font-proxy.rgb24.ref.png differ
diff --git a/test/reference/user-font.argb32.ref.png b/test/reference/user-font.argb32.ref.png
new file mode 100644
index 0000000..e6cd9de
Binary files /dev/null and b/test/reference/user-font.argb32.ref.png differ
diff --git a/test/reference/user-font.ref.png b/test/reference/user-font.ref.png
deleted file mode 100644
index 2af673a..0000000
Binary files a/test/reference/user-font.ref.png and /dev/null differ
diff --git a/test/reference/user-font.rgb24.ref.png b/test/reference/user-font.rgb24.ref.png
new file mode 100644
index 0000000..e6cd9de
Binary files /dev/null and b/test/reference/user-font.rgb24.ref.png differ
diff --git a/test/reference/world-map-fill.argb32.ref.png b/test/reference/world-map-fill.argb32.ref.png
index fad82ee..23cec50 100644
Binary files a/test/reference/world-map-fill.argb32.ref.png and b/test/reference/world-map-fill.argb32.ref.png differ
diff --git a/test/reference/world-map-fill.rgb24.ref.png b/test/reference/world-map-fill.rgb24.ref.png
index fad82ee..23cec50 100644
Binary files a/test/reference/world-map-fill.rgb24.ref.png and b/test/reference/world-map-fill.rgb24.ref.png differ
diff --git a/test/reference/xcb-surface-source.ref.png b/test/reference/xcb-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/xcb-surface-source.ref.png differ
diff --git a/test/reference/xlib-surface-source.ref.png b/test/reference/xlib-surface-source.ref.png
new file mode 100644
index 0000000..0182972
Binary files /dev/null and b/test/reference/xlib-surface-source.ref.png differ
diff --git a/test/reference/zero-mask.ref.png b/test/reference/zero-mask.ref.png
new file mode 100644
index 0000000..ffae8d9
Binary files /dev/null and b/test/reference/zero-mask.ref.png differ
commit 8e1e2a54147df32f0e9261d2b7b031eaf8396f06
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Sep 30 11:47:44 2014 +0100

    test: Remove redundant reference images
    
    If we have both a argb32 and rgb24 reference image that are identical,
    we can replace them with a plain reference image. I also prefer to have
    argb32/rgb24 versions of the reference images if rgb24 differs from the
    plain reference.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/test/reference/a1-clip-fill-rule.argb32.ref.png b/test/reference/a1-clip-fill-rule.argb32.ref.png
deleted file mode 100644
index c3ba9dd..0000000
Binary files a/test/reference/a1-clip-fill-rule.argb32.ref.png and /dev/null differ
diff --git a/test/reference/a1-clip-fill-rule.rgb24.ref.png b/test/reference/a1-clip-fill-rule.rgb24.ref.png
deleted file mode 100644
index 6fe9346..0000000
Binary files a/test/reference/a1-clip-fill-rule.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/alpha-similar.argb32.ref.png b/test/reference/alpha-similar.argb32.ref.png
deleted file mode 100644
index 9e1bfaa..0000000
Binary files a/test/reference/alpha-similar.argb32.ref.png and /dev/null differ
diff --git a/test/reference/alpha-similar.rgb24.ref.png b/test/reference/alpha-similar.rgb24.ref.png
deleted file mode 100644
index a1f5280..0000000
Binary files a/test/reference/alpha-similar.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/big-empty-box.argb32.ref.png b/test/reference/big-empty-box.argb32.ref.png
deleted file mode 100644
index a88d3b6..0000000
Binary files a/test/reference/big-empty-box.argb32.ref.png and /dev/null differ
diff --git a/test/reference/big-empty-box.rgb24.ref.png b/test/reference/big-empty-box.rgb24.ref.png
deleted file mode 100644
index 6c2ca32..0000000
Binary files a/test/reference/big-empty-box.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/big-empty-triangle.argb32.ref.png b/test/reference/big-empty-triangle.argb32.ref.png
deleted file mode 100644
index a88d3b6..0000000
Binary files a/test/reference/big-empty-triangle.argb32.ref.png and /dev/null differ
diff --git a/test/reference/big-empty-triangle.rgb24.ref.png b/test/reference/big-empty-triangle.rgb24.ref.png
deleted file mode 100644
index 6c2ca32..0000000
Binary files a/test/reference/big-empty-triangle.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/big-little-box.argb32.ref.png b/test/reference/big-little-box.argb32.ref.png
deleted file mode 100644
index 928c5e6..0000000
Binary files a/test/reference/big-little-box.argb32.ref.png and /dev/null differ
diff --git a/test/reference/big-little-box.rgb24.ref.png b/test/reference/big-little-box.rgb24.ref.png
deleted file mode 100644
index c069d6f..0000000
Binary files a/test/reference/big-little-box.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/big-little-triangle.argb32.ref.png b/test/reference/big-little-triangle.argb32.ref.png
deleted file mode 100644
index 1c2522f..0000000
Binary files a/test/reference/big-little-triangle.argb32.ref.png and /dev/null differ
diff --git a/test/reference/big-little-triangle.rgb24.ref.png b/test/reference/big-little-triangle.rgb24.ref.png
deleted file mode 100644
index 24fc472..0000000
Binary files a/test/reference/big-little-triangle.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/bitmap-font.argb32.ref.png b/test/reference/bitmap-font.argb32.ref.png
deleted file mode 100644
index 0718bf9..0000000
Binary files a/test/reference/bitmap-font.argb32.ref.png and /dev/null differ
diff --git a/test/reference/bitmap-font.rgb24.ref.png b/test/reference/bitmap-font.rgb24.ref.png
deleted file mode 100644
index 285d742..0000000
Binary files a/test/reference/bitmap-font.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/bug-source-cu.argb32.ref.png b/test/reference/bug-source-cu.argb32.ref.png
deleted file mode 100644
index 808feb5..0000000
Binary files a/test/reference/bug-source-cu.argb32.ref.png and /dev/null differ
diff --git a/test/reference/bug-source-cu.rgb24.ref.png b/test/reference/bug-source-cu.rgb24.ref.png
deleted file mode 100644
index 9f2f52c..0000000
Binary files a/test/reference/bug-source-cu.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clear.argb32.ref.png b/test/reference/clear.argb32.ref.png
deleted file mode 100644
index 102ac3d..0000000
Binary files a/test/reference/clear.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clear.rgb24.ref.png b/test/reference/clear.rgb24.ref.png
deleted file mode 100644
index 3267aff..0000000
Binary files a/test/reference/clear.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-device-offset.argb32.ref.png b/test/reference/clip-device-offset.argb32.ref.png
deleted file mode 100644
index 06be985..0000000
Binary files a/test/reference/clip-device-offset.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-device-offset.rgb24.ref.png b/test/reference/clip-device-offset.rgb24.ref.png
deleted file mode 100644
index 2419384..0000000
Binary files a/test/reference/clip-device-offset.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-eo-unbounded.argb32.ref.png b/test/reference/clip-fill-eo-unbounded.argb32.ref.png
deleted file mode 100644
index e86177c..0000000
Binary files a/test/reference/clip-fill-eo-unbounded.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-eo-unbounded.rgb24.ref.png b/test/reference/clip-fill-eo-unbounded.rgb24.ref.png
deleted file mode 100644
index cd0c9b7..0000000
Binary files a/test/reference/clip-fill-eo-unbounded.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-nz-unbounded.argb32.ref.png b/test/reference/clip-fill-nz-unbounded.argb32.ref.png
deleted file mode 100644
index e86177c..0000000
Binary files a/test/reference/clip-fill-nz-unbounded.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-nz-unbounded.rgb24.ref.png b/test/reference/clip-fill-nz-unbounded.rgb24.ref.png
deleted file mode 100644
index cd0c9b7..0000000
Binary files a/test/reference/clip-fill-nz-unbounded.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.argb32.ref.png b/test/reference/clip-fill-rule-pixel-aligned.argb32.ref.png
deleted file mode 100644
index 66eb685..0000000
Binary files a/test/reference/clip-fill-rule-pixel-aligned.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.rgb24.ref.png b/test/reference/clip-fill-rule-pixel-aligned.rgb24.ref.png
deleted file mode 100644
index 0b4f068..0000000
Binary files a/test/reference/clip-fill-rule-pixel-aligned.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-rule.argb32.ref.png b/test/reference/clip-fill-rule.argb32.ref.png
deleted file mode 100644
index cb23ea6..0000000
Binary files a/test/reference/clip-fill-rule.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-fill-rule.rgb24.ref.png b/test/reference/clip-fill-rule.rgb24.ref.png
deleted file mode 100644
index 5265dde..0000000
Binary files a/test/reference/clip-fill-rule.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-nesting.argb32.ref.png b/test/reference/clip-nesting.argb32.ref.png
deleted file mode 100644
index ce0cc0d..0000000
Binary files a/test/reference/clip-nesting.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-nesting.rgb24.ref.png b/test/reference/clip-nesting.rgb24.ref.png
deleted file mode 100644
index c62bf29..0000000
Binary files a/test/reference/clip-nesting.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-operator.argb32.ref.png b/test/reference/clip-operator.argb32.ref.png
deleted file mode 100644
index eef4b5a..0000000
Binary files a/test/reference/clip-operator.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-operator.rgb24.ref.png b/test/reference/clip-operator.rgb24.ref.png
deleted file mode 100644
index 4ac26b0..0000000
Binary files a/test/reference/clip-operator.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-stroke-unbounded.argb32.ref.png b/test/reference/clip-stroke-unbounded.argb32.ref.png
deleted file mode 100644
index 316cc36..0000000
Binary files a/test/reference/clip-stroke-unbounded.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-stroke-unbounded.rgb24.ref.png b/test/reference/clip-stroke-unbounded.rgb24.ref.png
deleted file mode 100644
index ee4bec4..0000000
Binary files a/test/reference/clip-stroke-unbounded.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-twice.argb32.ref.png b/test/reference/clip-twice.argb32.ref.png
deleted file mode 100644
index 877e3db..0000000
Binary files a/test/reference/clip-twice.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-twice.rgb24.ref.png b/test/reference/clip-twice.rgb24.ref.png
deleted file mode 100644
index 325fdff..0000000
Binary files a/test/reference/clip-twice.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/clip-unbounded.argb32.ref.png b/test/reference/clip-unbounded.argb32.ref.png
deleted file mode 100644
index 0b65905..0000000
Binary files a/test/reference/clip-unbounded.argb32.ref.png and /dev/null differ
diff --git a/test/reference/clip-unbounded.rgb24.ref.png b/test/reference/clip-unbounded.rgb24.ref.png
deleted file mode 100644
index 2baf9f4..0000000
Binary files a/test/reference/clip-unbounded.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/dash-zero-length.argb32.ref.png b/test/reference/dash-zero-length.argb32.ref.png
deleted file mode 100644
index fdc5f5e..0000000
Binary files a/test/reference/dash-zero-length.argb32.ref.png and /dev/null differ
diff --git a/test/reference/dash-zero-length.rgb24.ref.png b/test/reference/dash-zero-length.rgb24.ref.png
deleted file mode 100644
index 69432a0..0000000
Binary files a/test/reference/dash-zero-length.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/degenerate-path.argb32.ref.png b/test/reference/degenerate-path.argb32.ref.png
deleted file mode 100644
index f3dafe6..0000000
Binary files a/test/reference/degenerate-path.argb32.ref.png and /dev/null differ
diff --git a/test/reference/degenerate-path.rgb24.ref.png b/test/reference/degenerate-path.rgb24.ref.png
deleted file mode 100644
index 0019fa2..0000000
Binary files a/test/reference/degenerate-path.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/device-offset-positive.argb32.ref.png b/test/reference/device-offset-positive.argb32.ref.png
deleted file mode 100644
index bdf63af..0000000
Binary files a/test/reference/device-offset-positive.argb32.ref.png and /dev/null differ
diff --git a/test/reference/device-offset-positive.rgb24.ref.png b/test/reference/device-offset-positive.rgb24.ref.png
deleted file mode 100644
index dcdd332..0000000
Binary files a/test/reference/device-offset-positive.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/device-offset.argb32.ref.png b/test/reference/device-offset.argb32.ref.png
deleted file mode 100644
index 22cbfb4..0000000
Binary files a/test/reference/device-offset.argb32.ref.png and /dev/null differ
diff --git a/test/reference/device-offset.rgb24.ref.png b/test/reference/device-offset.rgb24.ref.png
deleted file mode 100644
index f19acba..0000000
Binary files a/test/reference/device-offset.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/egl-surface-source.argb32.ref.png b/test/reference/egl-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/egl-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/egl-surface-source.rgb24.ref.png b/test/reference/egl-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/egl-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-alpha-mask.argb32.ref.png b/test/reference/extended-blend-alpha-mask.argb32.ref.png
deleted file mode 100644
index a1dd2a9..0000000
Binary files a/test/reference/extended-blend-alpha-mask.argb32.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-alpha-mask.rgb24.ref.png b/test/reference/extended-blend-alpha-mask.rgb24.ref.png
deleted file mode 100644
index b5f12f1..0000000
Binary files a/test/reference/extended-blend-alpha-mask.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-alpha.argb32.ref.png b/test/reference/extended-blend-alpha.argb32.ref.png
deleted file mode 100644
index 4d56a21..0000000
Binary files a/test/reference/extended-blend-alpha.argb32.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-alpha.rgb24.ref.png b/test/reference/extended-blend-alpha.rgb24.ref.png
deleted file mode 100644
index 86d0e2d..0000000
Binary files a/test/reference/extended-blend-alpha.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-mask.argb32.ref.png b/test/reference/extended-blend-mask.argb32.ref.png
deleted file mode 100644
index 5fa78e4..0000000
Binary files a/test/reference/extended-blend-mask.argb32.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-mask.rgb24.ref.png b/test/reference/extended-blend-mask.rgb24.ref.png
deleted file mode 100644
index 1c85474..0000000
Binary files a/test/reference/extended-blend-mask.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-solid-alpha.argb32.ref.png b/test/reference/extended-blend-solid-alpha.argb32.ref.png
deleted file mode 100644
index 4d56a21..0000000
Binary files a/test/reference/extended-blend-solid-alpha.argb32.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-solid-alpha.rgb24.ref.png b/test/reference/extended-blend-solid-alpha.rgb24.ref.png
deleted file mode 100644
index 86d0e2d..0000000
Binary files a/test/reference/extended-blend-solid-alpha.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-solid.argb32.ref.png b/test/reference/extended-blend-solid.argb32.ref.png
deleted file mode 100644
index 902ef88..0000000
Binary files a/test/reference/extended-blend-solid.argb32.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend-solid.rgb24.ref.png b/test/reference/extended-blend-solid.rgb24.ref.png
deleted file mode 100644
index 4580e0d..0000000
Binary files a/test/reference/extended-blend-solid.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend.argb32.ref.png b/test/reference/extended-blend.argb32.ref.png
deleted file mode 100644
index 902ef88..0000000
Binary files a/test/reference/extended-blend.argb32.ref.png and /dev/null differ
diff --git a/test/reference/extended-blend.rgb24.ref.png b/test/reference/extended-blend.rgb24.ref.png
deleted file mode 100644
index 4580e0d..0000000
Binary files a/test/reference/extended-blend.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fallback.argb32.ref.png b/test/reference/fallback.argb32.ref.png
deleted file mode 100644
index 32386d5..0000000
Binary files a/test/reference/fallback.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fallback.rgb24.ref.png b/test/reference/fallback.rgb24.ref.png
deleted file mode 100644
index 6d728ab..0000000
Binary files a/test/reference/fallback.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fill-and-stroke.argb32.ref.png b/test/reference/fill-and-stroke.argb32.ref.png
deleted file mode 100644
index b51f4b0..0000000
Binary files a/test/reference/fill-and-stroke.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fill-and-stroke.rgb24.ref.png b/test/reference/fill-and-stroke.rgb24.ref.png
deleted file mode 100644
index 4017293..0000000
Binary files a/test/reference/fill-and-stroke.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fill-degenerate-sort-order.argb32.ref.png b/test/reference/fill-degenerate-sort-order.argb32.ref.png
deleted file mode 100644
index 38bb1a0..0000000
Binary files a/test/reference/fill-degenerate-sort-order.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fill-degenerate-sort-order.rgb24.ref.png b/test/reference/fill-degenerate-sort-order.rgb24.ref.png
deleted file mode 100644
index c392c21..0000000
Binary files a/test/reference/fill-degenerate-sort-order.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fill-empty.argb32.ref.png b/test/reference/fill-empty.argb32.ref.png
deleted file mode 100644
index 8c26f7e..0000000
Binary files a/test/reference/fill-empty.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fill-empty.rgb24.ref.png b/test/reference/fill-empty.rgb24.ref.png
deleted file mode 100644
index dc7a8a0..0000000
Binary files a/test/reference/fill-empty.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fill-missed-stop.argb32.ref.png b/test/reference/fill-missed-stop.argb32.ref.png
deleted file mode 100644
index 477eec9..0000000
Binary files a/test/reference/fill-missed-stop.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fill-missed-stop.rgb24.ref.png b/test/reference/fill-missed-stop.rgb24.ref.png
deleted file mode 100644
index 2e663f0..0000000
Binary files a/test/reference/fill-missed-stop.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/fill-rule.argb32.ref.png b/test/reference/fill-rule.argb32.ref.png
deleted file mode 100644
index 23e0a3a..0000000
Binary files a/test/reference/fill-rule.argb32.ref.png and /dev/null differ
diff --git a/test/reference/fill-rule.rgb24.ref.png b/test/reference/fill-rule.rgb24.ref.png
deleted file mode 100644
index 55486e6..0000000
Binary files a/test/reference/fill-rule.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/finer-grained-fallbacks.argb32.ref.png b/test/reference/finer-grained-fallbacks.argb32.ref.png
deleted file mode 100644
index 8960179..0000000
Binary files a/test/reference/finer-grained-fallbacks.argb32.ref.png and /dev/null differ
diff --git a/test/reference/finer-grained-fallbacks.rgb24.ref.png b/test/reference/finer-grained-fallbacks.rgb24.ref.png
deleted file mode 100644
index 1a9a0c0..0000000
Binary files a/test/reference/finer-grained-fallbacks.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/gl-surface-source.argb32.ref.png b/test/reference/gl-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/gl-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/gl-surface-source.rgb24.ref.png b/test/reference/gl-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/gl-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/gradient-alpha.argb32.ref.png b/test/reference/gradient-alpha.argb32.ref.png
deleted file mode 100644
index f64b26a..0000000
Binary files a/test/reference/gradient-alpha.argb32.ref.png and /dev/null differ
diff --git a/test/reference/gradient-alpha.rgb24.ref.png b/test/reference/gradient-alpha.rgb24.ref.png
deleted file mode 100644
index 3c7258d..0000000
Binary files a/test/reference/gradient-alpha.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/gradient-constant-alpha.argb32.ref.png b/test/reference/gradient-constant-alpha.argb32.ref.png
deleted file mode 100644
index 7f49e2c..0000000
Binary files a/test/reference/gradient-constant-alpha.argb32.ref.png and /dev/null differ
diff --git a/test/reference/gradient-constant-alpha.rgb24.ref.png b/test/reference/gradient-constant-alpha.rgb24.ref.png
deleted file mode 100644
index 69cd596..0000000
Binary files a/test/reference/gradient-constant-alpha.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/gradient-zero-stops-mask.argb32.ref.png b/test/reference/gradient-zero-stops-mask.argb32.ref.png
deleted file mode 100644
index 0a50f4c..0000000
Binary files a/test/reference/gradient-zero-stops-mask.argb32.ref.png and /dev/null differ
diff --git a/test/reference/gradient-zero-stops-mask.rgb24.ref.png b/test/reference/gradient-zero-stops-mask.rgb24.ref.png
deleted file mode 100644
index 21465ce..0000000
Binary files a/test/reference/gradient-zero-stops-mask.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/gradient-zero-stops.argb32.ref.png b/test/reference/gradient-zero-stops.argb32.ref.png
deleted file mode 100644
index 3f18670..0000000
Binary files a/test/reference/gradient-zero-stops.argb32.ref.png and /dev/null differ
diff --git a/test/reference/gradient-zero-stops.rgb24.ref.png b/test/reference/gradient-zero-stops.rgb24.ref.png
deleted file mode 100644
index 21465ce..0000000
Binary files a/test/reference/gradient-zero-stops.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/image-surface-source.argb32.ref.png b/test/reference/image-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/image-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/image-surface-source.rgb24.ref.png b/test/reference/image-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/image-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/linear-gradient-one-stop.argb32.ref.png b/test/reference/linear-gradient-one-stop.argb32.ref.png
deleted file mode 100644
index da02fda..0000000
Binary files a/test/reference/linear-gradient-one-stop.argb32.ref.png and /dev/null differ
diff --git a/test/reference/linear-gradient-one-stop.rgb24.ref.png b/test/reference/linear-gradient-one-stop.rgb24.ref.png
deleted file mode 100644
index efc12ee..0000000
Binary files a/test/reference/linear-gradient-one-stop.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/mask-alpha.argb32.ref.png b/test/reference/mask-alpha.argb32.ref.png
deleted file mode 100644
index 20f0663..0000000
Binary files a/test/reference/mask-alpha.argb32.ref.png and /dev/null differ
diff --git a/test/reference/mask-alpha.rgb24.ref.png b/test/reference/mask-alpha.rgb24.ref.png
deleted file mode 100644
index df7a0c1..0000000
Binary files a/test/reference/mask-alpha.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/mask-ctm.argb32.ref.png b/test/reference/mask-ctm.argb32.ref.png
deleted file mode 100644
index 88a0402..0000000
Binary files a/test/reference/mask-ctm.argb32.ref.png and /dev/null differ
diff --git a/test/reference/mask-ctm.rgb24.ref.png b/test/reference/mask-ctm.rgb24.ref.png
deleted file mode 100644
index de3fa09..0000000
Binary files a/test/reference/mask-ctm.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/mask-surface-ctm.argb32.ref.png b/test/reference/mask-surface-ctm.argb32.ref.png
deleted file mode 100644
index 744b1dd..0000000
Binary files a/test/reference/mask-surface-ctm.argb32.ref.png and /dev/null differ
diff --git a/test/reference/mask-surface-ctm.rgb24.ref.png b/test/reference/mask-surface-ctm.rgb24.ref.png
deleted file mode 100644
index de3fa09..0000000
Binary files a/test/reference/mask-surface-ctm.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/mask.argb32.ref.png b/test/reference/mask.argb32.ref.png
deleted file mode 100644
index 2d740d4..0000000
Binary files a/test/reference/mask.argb32.ref.png and /dev/null differ
diff --git a/test/reference/mask.rgb24.ref.png b/test/reference/mask.rgb24.ref.png
deleted file mode 100644
index 12114a7..0000000
Binary files a/test/reference/mask.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/new-sub-path.argb32.ref.png b/test/reference/new-sub-path.argb32.ref.png
deleted file mode 100644
index 87a6c91..0000000
Binary files a/test/reference/new-sub-path.argb32.ref.png and /dev/null differ
diff --git a/test/reference/new-sub-path.rgb24.ref.png b/test/reference/new-sub-path.rgb24.ref.png
deleted file mode 100644
index eb297be..0000000
Binary files a/test/reference/new-sub-path.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/nil-surface.argb32.ref.png b/test/reference/nil-surface.argb32.ref.png
deleted file mode 100644
index 79dd2bc..0000000
Binary files a/test/reference/nil-surface.argb32.ref.png and /dev/null differ
diff --git a/test/reference/nil-surface.rgb24.ref.png b/test/reference/nil-surface.rgb24.ref.png
deleted file mode 100644
index 7d5589c..0000000
Binary files a/test/reference/nil-surface.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/operator-alpha.argb32.ref.png b/test/reference/operator-alpha.argb32.ref.png
deleted file mode 100644
index b4f3b71..0000000
Binary files a/test/reference/operator-alpha.argb32.ref.png and /dev/null differ
diff --git a/test/reference/operator-alpha.rgb24.ref.png b/test/reference/operator-alpha.rgb24.ref.png
deleted file mode 100644
index bc7be3a..0000000
Binary files a/test/reference/operator-alpha.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/operator-clear.argb32.ref.png b/test/reference/operator-clear.argb32.ref.png
deleted file mode 100644
index 41f63bd..0000000
Binary files a/test/reference/operator-clear.argb32.ref.png and /dev/null differ
diff --git a/test/reference/operator-clear.rgb24.ref.png b/test/reference/operator-clear.rgb24.ref.png
deleted file mode 100644
index 8302c80..0000000
Binary files a/test/reference/operator-clear.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/operator-source.argb32.ref.png b/test/reference/operator-source.argb32.ref.png
deleted file mode 100644
index 359f597..0000000
Binary files a/test/reference/operator-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/operator-source.rgb24.ref.png b/test/reference/operator-source.rgb24.ref.png
deleted file mode 100644
index 65c19ce..0000000
Binary files a/test/reference/operator-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/operator.argb32.ref.png b/test/reference/operator.argb32.ref.png
deleted file mode 100644
index 34fce98..0000000
Binary files a/test/reference/operator.argb32.ref.png and /dev/null differ
diff --git a/test/reference/operator.rgb24.ref.png b/test/reference/operator.rgb24.ref.png
deleted file mode 100644
index aa6103d..0000000
Binary files a/test/reference/operator.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/over-above-source.argb32.ref.png b/test/reference/over-above-source.argb32.ref.png
deleted file mode 100644
index 8c2ce1d..0000000
Binary files a/test/reference/over-above-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/over-above-source.rgb24.ref.png b/test/reference/over-above-source.rgb24.ref.png
deleted file mode 100644
index 240de27..0000000
Binary files a/test/reference/over-above-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/over-around-source.argb32.ref.png b/test/reference/over-around-source.argb32.ref.png
deleted file mode 100644
index 38df9b7..0000000
Binary files a/test/reference/over-around-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/over-around-source.rgb24.ref.png b/test/reference/over-around-source.rgb24.ref.png
deleted file mode 100644
index 65fd8e8..0000000
Binary files a/test/reference/over-around-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/over-below-source.argb32.ref.png b/test/reference/over-below-source.argb32.ref.png
deleted file mode 100644
index 0b55974..0000000
Binary files a/test/reference/over-below-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/over-below-source.rgb24.ref.png b/test/reference/over-below-source.rgb24.ref.png
deleted file mode 100644
index 9ddde0e..0000000
Binary files a/test/reference/over-below-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/over-between-source.argb32.ref.png b/test/reference/over-between-source.argb32.ref.png
deleted file mode 100644
index dd03f98..0000000
Binary files a/test/reference/over-between-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/over-between-source.rgb24.ref.png b/test/reference/over-between-source.rgb24.ref.png
deleted file mode 100644
index 8569720..0000000
Binary files a/test/reference/over-between-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/overlapping-boxes.argb32.ref.png b/test/reference/overlapping-boxes.argb32.ref.png
deleted file mode 100644
index 1c68438..0000000
Binary files a/test/reference/overlapping-boxes.argb32.ref.png and /dev/null differ
diff --git a/test/reference/overlapping-boxes.rgb24.ref.png b/test/reference/overlapping-boxes.rgb24.ref.png
deleted file mode 100644
index 0edeafa..0000000
Binary files a/test/reference/overlapping-boxes.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/overlapping-glyphs.argb32.ref.png b/test/reference/overlapping-glyphs.argb32.ref.png
deleted file mode 100644
index 4ec4ee5..0000000
Binary files a/test/reference/overlapping-glyphs.argb32.ref.png and /dev/null differ
diff --git a/test/reference/overlapping-glyphs.rgb24.ref.png b/test/reference/overlapping-glyphs.rgb24.ref.png
deleted file mode 100644
index 5217c15..0000000
Binary files a/test/reference/overlapping-glyphs.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/pass-through.argb32.ref.png b/test/reference/pass-through.argb32.ref.png
deleted file mode 100644
index 058a192..0000000
Binary files a/test/reference/pass-through.argb32.ref.png and /dev/null differ
diff --git a/test/reference/pass-through.rgb24.ref.png b/test/reference/pass-through.rgb24.ref.png
deleted file mode 100644
index 1be631a..0000000
Binary files a/test/reference/pass-through.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/pdf-surface-source.argb32.ref.png b/test/reference/pdf-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/pdf-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/pdf-surface-source.rgb24.ref.png b/test/reference/pdf-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/pdf-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/pixman-rotate.argb32.ref.png b/test/reference/pixman-rotate.argb32.ref.png
deleted file mode 100644
index 7e47a4d..0000000
Binary files a/test/reference/pixman-rotate.argb32.ref.png and /dev/null differ
diff --git a/test/reference/pixman-rotate.rgb24.ref.png b/test/reference/pixman-rotate.rgb24.ref.png
deleted file mode 100644
index 397acbe..0000000
Binary files a/test/reference/pixman-rotate.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/ps-surface-source.argb32.ref.png b/test/reference/ps-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/ps-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/ps-surface-source.rgb24.ref.png b/test/reference/ps-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/ps-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/push-group.argb32.ref.png b/test/reference/push-group.argb32.ref.png
deleted file mode 100644
index 60f5eec..0000000
Binary files a/test/reference/push-group.argb32.ref.png and /dev/null differ
diff --git a/test/reference/push-group.rgb24.ref.png b/test/reference/push-group.rgb24.ref.png
deleted file mode 100644
index 19f0a2b..0000000
Binary files a/test/reference/push-group.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/quartz-surface-source.argb32.ref.png b/test/reference/quartz-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/quartz-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/quartz-surface-source.rgb24.ref.png b/test/reference/quartz-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/quartz-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/radial-gradient-source.argb32.ref.png b/test/reference/radial-gradient-source.argb32.ref.png
deleted file mode 100644
index 4ab4796..0000000
Binary files a/test/reference/radial-gradient-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/radial-gradient-source.rgb24.ref.png b/test/reference/radial-gradient-source.rgb24.ref.png
deleted file mode 100644
index afaa241..0000000
Binary files a/test/reference/radial-gradient-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-none.argb32.ref.png b/test/reference/recording-surface-extend-none.argb32.ref.png
deleted file mode 100644
index d69cdc9..0000000
Binary files a/test/reference/recording-surface-extend-none.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-none.rgb24.ref.png b/test/reference/recording-surface-extend-none.rgb24.ref.png
deleted file mode 100644
index 48401f9..0000000
Binary files a/test/reference/recording-surface-extend-none.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-pad.argb32.ref.png b/test/reference/recording-surface-extend-pad.argb32.ref.png
deleted file mode 100644
index 31b7005..0000000
Binary files a/test/reference/recording-surface-extend-pad.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-pad.rgb24.ref.png b/test/reference/recording-surface-extend-pad.rgb24.ref.png
deleted file mode 100644
index 06a6ce2..0000000
Binary files a/test/reference/recording-surface-extend-pad.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-reflect.argb32.ref.png b/test/reference/recording-surface-extend-reflect.argb32.ref.png
deleted file mode 100644
index bc1d70f..0000000
Binary files a/test/reference/recording-surface-extend-reflect.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-reflect.rgb24.ref.png b/test/reference/recording-surface-extend-reflect.rgb24.ref.png
deleted file mode 100644
index f6f52e7..0000000
Binary files a/test/reference/recording-surface-extend-reflect.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-repeat.argb32.ref.png b/test/reference/recording-surface-extend-repeat.argb32.ref.png
deleted file mode 100644
index d95245b..0000000
Binary files a/test/reference/recording-surface-extend-repeat.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-extend-repeat.rgb24.ref.png b/test/reference/recording-surface-extend-repeat.rgb24.ref.png
deleted file mode 100644
index 2d77522..0000000
Binary files a/test/reference/recording-surface-extend-repeat.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-over.argb32.ref.png b/test/reference/recording-surface-over.argb32.ref.png
deleted file mode 100644
index d69cdc9..0000000
Binary files a/test/reference/recording-surface-over.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-over.rgb24.ref.png b/test/reference/recording-surface-over.rgb24.ref.png
deleted file mode 100644
index 48401f9..0000000
Binary files a/test/reference/recording-surface-over.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-source.argb32.ref.png b/test/reference/recording-surface-source.argb32.ref.png
deleted file mode 100644
index bc6930f..0000000
Binary files a/test/reference/recording-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/recording-surface-source.rgb24.ref.png b/test/reference/recording-surface-source.rgb24.ref.png
deleted file mode 100644
index b77d6dc..0000000
Binary files a/test/reference/recording-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/rel-path.argb32.ref.png b/test/reference/rel-path.argb32.ref.png
deleted file mode 100644
index 67fe178..0000000
Binary files a/test/reference/rel-path.argb32.ref.png and /dev/null differ
diff --git a/test/reference/rel-path.rgb24.ref.png b/test/reference/rel-path.rgb24.ref.png
deleted file mode 100644
index 0301ed2..0000000
Binary files a/test/reference/rel-path.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/scale-source-surface-paint.argb32.ref.png b/test/reference/scale-source-surface-paint.argb32.ref.png
deleted file mode 100644
index ec3c059..0000000
Binary files a/test/reference/scale-source-surface-paint.argb32.ref.png and /dev/null differ
diff --git a/test/reference/scale-source-surface-paint.rgb24.ref.png b/test/reference/scale-source-surface-paint.rgb24.ref.png
deleted file mode 100644
index 3491a7c..0000000
Binary files a/test/reference/scale-source-surface-paint.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/set-source.argb32.ref.png b/test/reference/set-source.argb32.ref.png
deleted file mode 100644
index 19793e0..0000000
Binary files a/test/reference/set-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/set-source.rgb24.ref.png b/test/reference/set-source.rgb24.ref.png
deleted file mode 100644
index 5e13c82..0000000
Binary files a/test/reference/set-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/source-surface-scale-paint.argb32.ref.png b/test/reference/source-surface-scale-paint.argb32.ref.png
deleted file mode 100644
index a81f93d..0000000
Binary files a/test/reference/source-surface-scale-paint.argb32.ref.png and /dev/null differ
diff --git a/test/reference/source-surface-scale-paint.rgb24.ref.png b/test/reference/source-surface-scale-paint.rgb24.ref.png
deleted file mode 100644
index 322af21..0000000
Binary files a/test/reference/source-surface-scale-paint.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/subsurface-outside-target.argb32.ref.png b/test/reference/subsurface-outside-target.argb32.ref.png
deleted file mode 100644
index 337cdd8..0000000
Binary files a/test/reference/subsurface-outside-target.argb32.ref.png and /dev/null differ
diff --git a/test/reference/subsurface-outside-target.rgb24.ref.png b/test/reference/subsurface-outside-target.rgb24.ref.png
deleted file mode 100644
index 368936e..0000000
Binary files a/test/reference/subsurface-outside-target.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/surface-pattern-operator.argb32.ref.png b/test/reference/surface-pattern-operator.argb32.ref.png
deleted file mode 100644
index 8178030..0000000
Binary files a/test/reference/surface-pattern-operator.argb32.ref.png and /dev/null differ
diff --git a/test/reference/surface-pattern-operator.rgb24.ref.png b/test/reference/surface-pattern-operator.rgb24.ref.png
deleted file mode 100644
index 2378bdd..0000000
Binary files a/test/reference/surface-pattern-operator.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/svg-surface-source.argb32.ref.png b/test/reference/svg-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/svg-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/svg-surface-source.rgb24.ref.png b/test/reference/svg-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/svg-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/text-pattern.argb32.ref.png b/test/reference/text-pattern.argb32.ref.png
deleted file mode 100644
index 95410fa..0000000
Binary files a/test/reference/text-pattern.argb32.ref.png and /dev/null differ
diff --git a/test/reference/text-pattern.rgb24.ref.png b/test/reference/text-pattern.rgb24.ref.png
deleted file mode 100644
index a6b9e4c..0000000
Binary files a/test/reference/text-pattern.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/tighten-bounds.argb32.ref.png b/test/reference/tighten-bounds.argb32.ref.png
deleted file mode 100644
index 6634ed1..0000000
Binary files a/test/reference/tighten-bounds.argb32.ref.png and /dev/null differ
diff --git a/test/reference/tighten-bounds.rgb24.ref.png b/test/reference/tighten-bounds.rgb24.ref.png
deleted file mode 100644
index d15bddd..0000000
Binary files a/test/reference/tighten-bounds.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/trap-clip.argb32.ref.png b/test/reference/trap-clip.argb32.ref.png
deleted file mode 100644
index 719d855..0000000
Binary files a/test/reference/trap-clip.argb32.ref.png and /dev/null differ
diff --git a/test/reference/trap-clip.rgb24.ref.png b/test/reference/trap-clip.rgb24.ref.png
deleted file mode 100644
index 8c6d49a..0000000
Binary files a/test/reference/trap-clip.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/unbounded-operator.argb32.ref.png b/test/reference/unbounded-operator.argb32.ref.png
deleted file mode 100644
index 6e4aa95..0000000
Binary files a/test/reference/unbounded-operator.argb32.ref.png and /dev/null differ
diff --git a/test/reference/unbounded-operator.rgb24.ref.png b/test/reference/unbounded-operator.rgb24.ref.png
deleted file mode 100644
index 910999b..0000000
Binary files a/test/reference/unbounded-operator.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/xcb-surface-source.argb32.ref.png b/test/reference/xcb-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/xcb-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/xcb-surface-source.rgb24.ref.png b/test/reference/xcb-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/xcb-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/xlib-surface-source.argb32.ref.png b/test/reference/xlib-surface-source.argb32.ref.png
deleted file mode 100644
index 0182972..0000000
Binary files a/test/reference/xlib-surface-source.argb32.ref.png and /dev/null differ
diff --git a/test/reference/xlib-surface-source.rgb24.ref.png b/test/reference/xlib-surface-source.rgb24.ref.png
deleted file mode 100644
index 0d68a82..0000000
Binary files a/test/reference/xlib-surface-source.rgb24.ref.png and /dev/null differ
diff --git a/test/reference/zero-mask.argb32.ref.png b/test/reference/zero-mask.argb32.ref.png
deleted file mode 100644
index ffae8d9..0000000
Binary files a/test/reference/zero-mask.argb32.ref.png and /dev/null differ
diff --git a/test/reference/zero-mask.rgb24.ref.png b/test/reference/zero-mask.rgb24.ref.png
deleted file mode 100644
index 263c3d1..0000000
Binary files a/test/reference/zero-mask.rgb24.ref.png and /dev/null differ


More information about the cairo-commit mailing list