summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2023-06-05 22:18:33 +0000
committerAdrian Johnson <ajohnson@redneon.com>2023-06-05 22:18:33 +0000
commit111095d9dd0d529b0540b06d5909cc672ad66a95 (patch)
tree099ae66ae3f140c0a649d3dab159d44ec4a7099a
parent38873d256821558013bd7c6e5f01cc92dd12fd4a (diff)
parent90fda589340097e176785051a84cc8389d786967 (diff)
Merge branch 'update-to-fedora-38' into 'master'
Update CI to Fedora 38 See merge request cairo/cairo!474
-rw-r--r--.gitlab-ci.yml9
-rw-r--r--.gitlab-ci/ignore-ps3-argb32.txt2
-rw-r--r--.gitlab-ci/ignore-ps3-rgb24.txt1
-rw-r--r--.gitlab-ci/ignore-svg11-argb32.txt1
-rw-r--r--.gitlab-ci/ignore-svg11-rgb24.txt1
-rw-r--r--src/cairo-ft-font.c2
-rw-r--r--test/cairo-test-runner.c2
-rw-r--r--test/reference/big-line.ps.ref.pngbin946 -> 958 bytes
-rw-r--r--test/reference/big-trap.ps.ref.pngbin0 -> 319 bytes
-rw-r--r--test/reference/bug-bo-collins.ps.ref.pngbin0 -> 251 bytes
-rw-r--r--test/reference/bug-bo-rectangular.ps.xfail.pngbin945 -> 967 bytes
-rw-r--r--test/reference/bug-source-cu.ps.argb32.ref.pngbin3192 -> 3202 bytes
-rw-r--r--test/reference/bug-source-cu.ps.rgb24.ref.pngbin3192 -> 3196 bytes
-rw-r--r--test/reference/clip-complex-shape-eo-aa.ps.ref.pngbin0 -> 325 bytes
-rw-r--r--test/reference/clip-complex-shape-eo-mono.ps.ref.pngbin0 -> 325 bytes
-rw-r--r--test/reference/clip-disjoint-quad.ps.ref.pngbin1560 -> 1496 bytes
-rw-r--r--test/reference/clip-fill-rule-pixel-aligned.ps.argb32.ref.pngbin175 -> 181 bytes
-rw-r--r--test/reference/clip-fill-rule-pixel-aligned.ps.rgb24.ref.pngbin165 -> 170 bytes
-rw-r--r--test/reference/clip-group-shapes-aligned-rectangles.ps.ref.pngbin0 -> 387 bytes
-rw-r--r--test/reference/clip-rectilinear.ps.ref.pngbin395 -> 413 bytes
-rw-r--r--test/reference/copy-disjoint.ps.ref.pngbin0 -> 1116 bytes
-rw-r--r--test/reference/extended-blend-alpha-mask.svg.ref.pngbin0 -> 10396 bytes
-rw-r--r--test/reference/extended-blend-alpha.svg.ref.pngbin0 -> 9589 bytes
-rw-r--r--test/reference/extended-blend-alpha.svg.rgb24.ref.pngbin0 -> 5470 bytes
-rw-r--r--test/reference/extended-blend-mask.svg.ref.pngbin0 -> 4032 bytes
-rw-r--r--test/reference/extended-blend-mask.svg.rgb24.ref.pngbin0 -> 3706 bytes
-rw-r--r--test/reference/extended-blend.svg.ref.pngbin0 -> 4072 bytes
-rw-r--r--test/reference/extended-blend.svg.rgb24.ref.pngbin0 -> 3780 bytes
-rw-r--r--test/reference/fallback-resolution.ppi144x144.pdf.ref.pngbin8653 -> 8641 bytes
-rw-r--r--test/reference/fallback-resolution.ppi144x144.ps.ref.pngbin5911 -> 5962 bytes
-rw-r--r--test/reference/fallback-resolution.ppi144x144.svg.ref.pngbin8653 -> 8641 bytes
-rw-r--r--test/reference/fallback-resolution.ppi144x72.pdf.ref.pngbin8681 -> 8667 bytes
-rw-r--r--test/reference/fallback-resolution.ppi144x72.ps.ref.pngbin7206 -> 7163 bytes
-rw-r--r--test/reference/fallback-resolution.ppi144x72.svg.ref.pngbin8681 -> 8667 bytes
-rw-r--r--test/reference/fallback-resolution.ppi288x288.pdf.ref.pngbin8654 -> 8594 bytes
-rw-r--r--test/reference/fallback-resolution.ppi288x288.ps.ref.pngbin4450 -> 4426 bytes
-rw-r--r--test/reference/fallback-resolution.ppi288x288.svg.ref.pngbin8654 -> 8594 bytes
-rw-r--r--test/reference/fallback-resolution.ppi288x72.pdf.ref.pngbin8757 -> 8722 bytes
-rw-r--r--test/reference/fallback-resolution.ppi288x72.ps.ref.pngbin6444 -> 6517 bytes
-rw-r--r--test/reference/fallback-resolution.ppi288x72.svg.ref.pngbin8757 -> 8722 bytes
-rw-r--r--test/reference/fallback-resolution.ppi576x576.pdf.ref.pngbin8588 -> 8578 bytes
-rw-r--r--test/reference/fallback-resolution.ppi576x576.ps.ref.pngbin3448 -> 3478 bytes
-rw-r--r--test/reference/fallback-resolution.ppi576x576.svg.ref.pngbin8588 -> 8578 bytes
-rw-r--r--test/reference/fallback-resolution.ppi576x72.pdf.ref.pngbin8751 -> 8749 bytes
-rw-r--r--test/reference/fallback-resolution.ppi576x72.ps.ref.pngbin5992 -> 6062 bytes
-rw-r--r--test/reference/fallback-resolution.ppi576x72.svg.ref.pngbin8751 -> 8749 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x144.pdf.ref.pngbin8597 -> 8565 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x144.ps.ref.pngbin7270 -> 7355 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x144.svg.ref.pngbin8597 -> 8565 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x288.pdf.ref.pngbin8667 -> 8640 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x288.ps.ref.pngbin6616 -> 6541 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x288.svg.ref.pngbin8667 -> 8640 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x576.pdf.ref.pngbin8665 -> 8625 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x576.ps.ref.pngbin6349 -> 6322 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x576.svg.ref.pngbin8665 -> 8625 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x72.pdf.ref.pngbin8713 -> 8696 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x72.ps.ref.pngbin0 -> 8696 bytes
-rw-r--r--test/reference/fallback-resolution.ppi72x72.svg.ref.pngbin8713 -> 8696 bytes
-rw-r--r--test/reference/ft-color-font.image16.ref.pngbin887 -> 888 bytes
-rw-r--r--test/reference/ft-color-font.pdf.ref.pngbin0 -> 1196 bytes
-rw-r--r--test/reference/ft-color-font.pdf.xfail.pngbin585 -> 0 bytes
-rw-r--r--test/reference/ft-color-font.ps2.argb32.ref.pngbin0 -> 1186 bytes
-rw-r--r--test/reference/ft-color-font.ps2.rgb24.ref.pngbin0 -> 1177 bytes
-rw-r--r--test/reference/ft-color-font.ps3.argb32.ref.pngbin0 -> 1186 bytes
-rw-r--r--test/reference/ft-color-font.ps3.rgb24.ref.pngbin0 -> 1177 bytes
-rw-r--r--test/reference/ft-color-font.ref.pngbin1813 -> 1791 bytes
-rw-r--r--test/reference/ft-color-font.script.ref.pngbin0 -> 2472 bytes
-rw-r--r--test/reference/ft-svg-cairo-logo.image16.ref.pngbin0 -> 10638 bytes
-rw-r--r--test/reference/ft-svg-cairo-logo.ps.ref.pngbin0 -> 15708 bytes
-rw-r--r--test/reference/ft-svg-cairo-logo.ps.rgb24.ref.pngbin0 -> 12251 bytes
-rw-r--r--test/reference/ft-svg-cairo-logo.script.ref.pngbin0 -> 6541 bytes
-rw-r--r--test/reference/ft-svg-cairo-logo.svg.rgb24.ref.pngbin0 -> 14069 bytes
-rw-r--r--test/reference/ft-svg-render-color.image16.ref.pngbin0 -> 3365 bytes
-rw-r--r--test/reference/ft-svg-render-color.pdf.ref.pngbin0 -> 4713 bytes
-rw-r--r--test/reference/ft-svg-render-color.ps.ref.pngbin0 -> 4627 bytes
-rw-r--r--test/reference/ft-svg-render-color.ps.rgb24.ref.pngbin0 -> 4134 bytes
-rw-r--r--test/reference/ft-svg-render-color.script.ref.pngbin0 -> 3894 bytes
-rw-r--r--test/reference/ft-svg-render-color.svg.rgb24.ref.pngbin0 -> 5040 bytes
-rw-r--r--test/reference/ft-svg-render-doc.image16.ref.pngbin0 -> 8653 bytes
-rw-r--r--test/reference/ft-svg-render-doc.pdf.ref.pngbin0 -> 11081 bytes
-rw-r--r--test/reference/ft-svg-render-doc.ps.ref.pngbin0 -> 11081 bytes
-rw-r--r--test/reference/ft-svg-render-doc.ps.rgb24.ref.pngbin0 -> 9516 bytes
-rw-r--r--test/reference/ft-svg-render-doc.script.ref.pngbin0 -> 3178 bytes
-rw-r--r--test/reference/ft-svg-render-doc.svg.rgb24.ref.pngbin0 -> 13060 bytes
-rw-r--r--test/reference/ft-svg-render-fill.image16.ref.pngbin0 -> 1595 bytes
-rw-r--r--test/reference/ft-svg-render-fill.pdf.ref.pngbin0 -> 1686 bytes
-rw-r--r--test/reference/ft-svg-render-fill.ps.ref.pngbin0 -> 2395 bytes
-rw-r--r--test/reference/ft-svg-render-fill.ps.rgb24.ref.pngbin0 -> 1006 bytes
-rw-r--r--test/reference/ft-svg-render-fill.script.ref.pngbin0 -> 999 bytes
-rw-r--r--test/reference/ft-svg-render-fill.svg.rgb24.ref.pngbin0 -> 2305 bytes
-rw-r--r--test/reference/ft-svg-render-gradient.image16.ref.pngbin0 -> 6224 bytes
-rw-r--r--test/reference/ft-svg-render-gradient.pdf.ref.pngbin0 -> 6949 bytes
-rw-r--r--test/reference/ft-svg-render-gradient.ps.ref.pngbin0 -> 11160 bytes
-rw-r--r--test/reference/ft-svg-render-gradient.ps.rgb24.ref.pngbin0 -> 10678 bytes
-rw-r--r--test/reference/ft-svg-render-gradient.script.ref.pngbin0 -> 2182 bytes
-rw-r--r--test/reference/ft-svg-render-gradient.svg.rgb24.ref.pngbin0 -> 12204 bytes
-rw-r--r--test/reference/ft-svg-render-path.image16.ref.pngbin0 -> 2279 bytes
-rw-r--r--test/reference/ft-svg-render-path.ps.ref.pngbin0 -> 3169 bytes
-rw-r--r--test/reference/ft-svg-render-path.ps.rgb24.ref.pngbin0 -> 755 bytes
-rw-r--r--test/reference/ft-svg-render-path.script.ref.pngbin0 -> 695 bytes
-rw-r--r--test/reference/ft-svg-render-path.svg.rgb24.ref.pngbin0 -> 2865 bytes
-rw-r--r--test/reference/ft-svg-render-shapes.image16.ref.pngbin0 -> 2676 bytes
-rw-r--r--test/reference/ft-svg-render-shapes.ps.ref.pngbin0 -> 3766 bytes
-rw-r--r--test/reference/ft-svg-render-shapes.ps.rgb24.ref.pngbin0 -> 783 bytes
-rw-r--r--test/reference/ft-svg-render-shapes.script.ref.pngbin0 -> 695 bytes
-rw-r--r--test/reference/ft-svg-render-shapes.svg.rgb24.ref.pngbin0 -> 3565 bytes
-rw-r--r--test/reference/ft-svg-render-stroke.image16.ref.pngbin0 -> 2157 bytes
-rw-r--r--test/reference/ft-svg-render-stroke.ps.ref.pngbin0 -> 6353 bytes
-rw-r--r--test/reference/ft-svg-render-stroke.ps.rgb24.ref.pngbin0 -> 1088 bytes
-rw-r--r--test/reference/ft-svg-render-stroke.script.ref.pngbin0 -> 1026 bytes
-rw-r--r--test/reference/ft-svg-render-stroke.svg.rgb24.ref.pngbin0 -> 6137 bytes
-rw-r--r--test/reference/ft-svg-render-transform.image16.ref.pngbin0 -> 3710 bytes
-rw-r--r--test/reference/ft-svg-render-transform.pdf.ref.pngbin0 -> 4383 bytes
-rw-r--r--test/reference/ft-svg-render-transform.ps.ref.pngbin0 -> 5705 bytes
-rw-r--r--test/reference/ft-svg-render-transform.ps.rgb24.ref.pngbin0 -> 1981 bytes
-rw-r--r--test/reference/ft-svg-render-transform.script.ref.pngbin0 -> 695 bytes
-rw-r--r--test/reference/ft-svg-render-transform.svg.ref.pngbin0 -> 4246 bytes
-rw-r--r--test/reference/ft-svg-render-transform.svg.rgb24.ref.pngbin0 -> 5161 bytes
-rw-r--r--test/reference/implicit-close.ps.ref.pngbin252 -> 260 bytes
-rw-r--r--test/reference/line-width-large-overlap-flipped.ps.ref.pngbin0 -> 312 bytes
-rw-r--r--test/reference/line-width-large-overlap-flopped.ps.ref.pngbin0 -> 312 bytes
-rw-r--r--test/reference/line-width-large-overlap-offset.ps.ref.pngbin0 -> 312 bytes
-rw-r--r--test/reference/line-width-large-overlap-rotated.ps.ref.pngbin385 -> 462 bytes
-rw-r--r--test/reference/line-width-large-overlap.ps.ref.pngbin0 -> 312 bytes
-rw-r--r--test/reference/linear-gradient-extend.ps.ref.pngbin0 -> 530 bytes
-rw-r--r--test/reference/linear-gradient-one-stop.ps.ref.pngbin0 -> 222 bytes
-rw-r--r--test/reference/linear-gradient-one-stop.ps.rgb24.ref.pngbin174 -> 200 bytes
-rw-r--r--test/reference/long-lines.ps.ref.pngbin0 -> 234 bytes
-rw-r--r--test/reference/mask.svg.ref.pngbin8584 -> 8514 bytes
-rw-r--r--test/reference/mask.svg.rgb24.ref.pngbin0 -> 7129 bytes
-rw-r--r--test/reference/paint-clip-fill-aa.ps.ref.pngbin0 -> 326 bytes
-rw-r--r--test/reference/paint-clip-fill-mono.ps.ref.pngbin0 -> 326 bytes
-rw-r--r--test/reference/partial-clip-text-bottom.ps.ref.pngbin192 -> 175 bytes
-rw-r--r--test/reference/partial-clip-text-left.ps.ref.pngbin218 -> 185 bytes
-rw-r--r--test/reference/partial-clip-text-right.ps.ref.pngbin123 -> 139 bytes
-rw-r--r--test/reference/pdf-surface-source.ps.argb32.ref.pngbin307 -> 0 bytes
-rw-r--r--test/reference/pdf-surface-source.ps.ref.pngbin0 -> 316 bytes
-rw-r--r--test/reference/pdf-surface-source.ps.rgb24.ref.pngbin312 -> 0 bytes
-rw-r--r--test/reference/pdf-surface-source.svg.ref.pngbin0 -> 348 bytes
-rw-r--r--test/reference/ps-surface-source.ps.argb32.ref.pngbin307 -> 0 bytes
-rw-r--r--test/reference/ps-surface-source.ps.ref.pngbin0 -> 316 bytes
-rw-r--r--test/reference/ps-surface-source.ps.rgb24.ref.pngbin312 -> 0 bytes
-rw-r--r--test/reference/ps-surface-source.svg.ref.pngbin0 -> 348 bytes
-rw-r--r--test/reference/pthread-same-source.svg.ref.pngbin956 -> 955 bytes
-rw-r--r--test/reference/pthread-show-text.ps.ref.pngbin17905 -> 17553 bytes
-rw-r--r--test/reference/record1414x-paint.ps.ref.pngbin0 -> 103 bytes
-rw-r--r--test/reference/record1414x-paint.ps.rgb24.ref.pngbin0 -> 101 bytes
-rw-r--r--test/reference/self-copy.ps2.ref.pngbin335 -> 286 bytes
-rw-r--r--test/reference/self-copy.ps3.ref.pngbin335 -> 286 bytes
-rw-r--r--test/reference/self-copy.svg.ref.pngbin0 -> 249 bytes
-rw-r--r--test/reference/text-unhinted-metrics.xcb-fallback.ref.pngbin0 -> 8649 bytes
-rw-r--r--test/reference/text-unhinted-metrics.xcb.ref.pngbin0 -> 8462 bytes
-rw-r--r--test/reference/user-font-color.pdf.ref.pngbin7700 -> 8691 bytes
-rw-r--r--test/reference/user-font-color.ps2.argb32.ref.png (renamed from test/reference/user-font-color.ps.ref.png)bin8826 -> 8826 bytes
-rw-r--r--test/reference/user-font-color.ps2.rgb24.ref.pngbin0 -> 8427 bytes
-rw-r--r--test/reference/user-font-color.ps3.argb32.ref.pngbin0 -> 8826 bytes
-rw-r--r--test/reference/user-font-color.ps3.rgb24.ref.pngbin0 -> 8427 bytes
-rw-r--r--test/reference/user-font-proxy.pdf.argb32.ref.pngbin10978 -> 10975 bytes
-rw-r--r--test/reference/user-font-proxy.pdf.rgb24.ref.pngbin10978 -> 10975 bytes
-rw-r--r--test/reference/xlib-expose-event.svg.ref.pngbin0 -> 27472 bytes
160 files changed, 8 insertions, 10 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 960b95527..bac6f6005 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,7 +2,7 @@
include:
- template: 'Workflows/Branch-Pipelines.gitlab-ci.yml'
- project: 'freedesktop/ci-templates'
- ref: '88ed1082df2af02090916566742543f1dbaee988'
+ ref: '7811ba9814a3bad379377241c6c6b62d78b20eac'
file: '/templates/fedora.yml'
# From https://gitlab.freedesktop.org/freedesktop/ci-templates/-/blob/master/src/gitlab-ci.tmpl
@@ -15,8 +15,8 @@ workflow:
variables:
FDO_UPSTREAM_REPO: 'cairo/cairo'
- FDO_DISTRIBUTION_VERSION: '34'
- FDO_DISTRIBUTION_TAG: '2021-09-20.0'
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: '2023-04-29.1'
# TODO: should probably get its own image at some point instead of reusing the GStreamer one
# See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/.gitlab-image-tags.yml for latest
@@ -96,6 +96,7 @@ fedora image:
dejavu-serif-fonts
google-noto-emoji-color-fonts
fonttools
+ util-linux
.test fedora meson:
dependencies:
@@ -259,6 +260,7 @@ meson mingw-32 build:
before_script:
- dnf install -y 'dnf-command(builddep)'
- dnf builddep -y mingw32-cairo
+ - dnf install -y mingw32-gcc-c++
script:
- mkdir builddir
- cd builddir
@@ -277,6 +279,7 @@ meson mingw-64 build:
before_script:
- dnf install -y 'dnf-command(builddep)'
- dnf builddep -y mingw64-cairo
+ - dnf install -y mingw64-gcc-c++
script:
- mkdir builddir
- cd builddir
diff --git a/.gitlab-ci/ignore-ps3-argb32.txt b/.gitlab-ci/ignore-ps3-argb32.txt
index 9e433d5c3..d59940c9c 100644
--- a/.gitlab-ci/ignore-ps3-argb32.txt
+++ b/.gitlab-ci/ignore-ps3-argb32.txt
@@ -68,7 +68,6 @@ filter-nearest-offset
filter-nearest-transformed
finer-grained-fallbacks
font-matrix-translation
-ft-color-font
ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
gradient-constant-alpha
@@ -208,7 +207,6 @@ trap-clip
twin
unclosed-strokes
user-font
-user-font-color
user-font-mask
user-font-proxy
user-font-rescale
diff --git a/.gitlab-ci/ignore-ps3-rgb24.txt b/.gitlab-ci/ignore-ps3-rgb24.txt
index c4c6a0362..70584a89e 100644
--- a/.gitlab-ci/ignore-ps3-rgb24.txt
+++ b/.gitlab-ci/ignore-ps3-rgb24.txt
@@ -64,7 +64,6 @@ fill-rule
filter-nearest-offset
filter-nearest-transformed
font-matrix-translation
-ft-color-font
ft-text-vertical-layout-type1
ft-text-vertical-layout-type3
gradient-zero-stops
diff --git a/.gitlab-ci/ignore-svg11-argb32.txt b/.gitlab-ci/ignore-svg11-argb32.txt
index a37cf287d..2f53dd340 100644
--- a/.gitlab-ci/ignore-svg11-argb32.txt
+++ b/.gitlab-ci/ignore-svg11-argb32.txt
@@ -19,7 +19,6 @@ paint-source-alpha
paint-with-alpha
paint-with-alpha-clip
paint-with-alpha-clip-mask
-record1414x-fill-alpha
record1414x-paint-alpha
record1414x-paint-alpha-clip
record1414x-paint-alpha-clip-mask
diff --git a/.gitlab-ci/ignore-svg11-rgb24.txt b/.gitlab-ci/ignore-svg11-rgb24.txt
index 952ab2786..44ddbff0e 100644
--- a/.gitlab-ci/ignore-svg11-rgb24.txt
+++ b/.gitlab-ci/ignore-svg11-rgb24.txt
@@ -58,7 +58,6 @@ pixman-rotate
ps-surface-source
radial-gradient-mask-source
radial-gradient-source
-record1414x-fill-alpha
record1414x-paint
record1414x-paint-alpha
record1414x-paint-alpha-clip
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
index 76c9e008f..59dba1867 100644
--- a/src/cairo-ft-font.c
+++ b/src/cairo-ft-font.c
@@ -3503,7 +3503,7 @@ _cairo_ft_scaled_glyph_init (void *abstract_font,
goto FAIL;
}
- if (info & CAIRO_SCALED_GLYPH_INFO_COLOR_SURFACE) {
+ if ((info & CAIRO_SCALED_GLYPH_INFO_COLOR_SURFACE) && scaled_font->base.options.color_mode != CAIRO_COLOR_MODE_NO_COLOR) {
if (glyph_priv->format == CAIRO_FT_GLYPH_TYPE_SVG ||
glyph_priv->format == CAIRO_FT_GLYPH_TYPE_COLR_V1)
{
diff --git a/test/cairo-test-runner.c b/test/cairo-test-runner.c
index 72aa1ff9b..acbb53930 100644
--- a/test/cairo-test-runner.c
+++ b/test/cairo-test-runner.c
@@ -883,7 +883,7 @@ main (int argc, char **argv)
if (ctx.test->preamble != NULL) {
status = _cairo_test_runner_preamble (&runner, &ctx);
if (getenv ("CAIRO_TEST_UGLY_HACK_TO_IGNORE_PS_FAILURES")) {
- if (strcmp (ctx.test_name, "ps-eps") == 0 || strcmp (ctx.test_name, "fallback-resolution") == 0) {
+ if (strcmp (ctx.test_name, "ps-eps") == 0) {
if (status == CAIRO_TEST_FAILURE) {
cairo_test_log (&ctx, "Turning FAIL into XFAIL due to env\n");
fprintf (stderr, "Turning FAIL into XFAIL due to env\n");
diff --git a/test/reference/big-line.ps.ref.png b/test/reference/big-line.ps.ref.png
index 7b7e875d4..b5b227f8f 100644
--- a/test/reference/big-line.ps.ref.png
+++ b/test/reference/big-line.ps.ref.png
Binary files differ
diff --git a/test/reference/big-trap.ps.ref.png b/test/reference/big-trap.ps.ref.png
new file mode 100644
index 000000000..776221a50
--- /dev/null
+++ b/test/reference/big-trap.ps.ref.png
Binary files differ
diff --git a/test/reference/bug-bo-collins.ps.ref.png b/test/reference/bug-bo-collins.ps.ref.png
new file mode 100644
index 000000000..7e3693a10
--- /dev/null
+++ b/test/reference/bug-bo-collins.ps.ref.png
Binary files differ
diff --git a/test/reference/bug-bo-rectangular.ps.xfail.png b/test/reference/bug-bo-rectangular.ps.xfail.png
index 44b8c0331..c2314a125 100644
--- a/test/reference/bug-bo-rectangular.ps.xfail.png
+++ b/test/reference/bug-bo-rectangular.ps.xfail.png
Binary files differ
diff --git a/test/reference/bug-source-cu.ps.argb32.ref.png b/test/reference/bug-source-cu.ps.argb32.ref.png
index 678a17daa..ca0fdd934 100644
--- a/test/reference/bug-source-cu.ps.argb32.ref.png
+++ b/test/reference/bug-source-cu.ps.argb32.ref.png
Binary files differ
diff --git a/test/reference/bug-source-cu.ps.rgb24.ref.png b/test/reference/bug-source-cu.ps.rgb24.ref.png
index 678a17daa..5caf13915 100644
--- a/test/reference/bug-source-cu.ps.rgb24.ref.png
+++ b/test/reference/bug-source-cu.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/clip-complex-shape-eo-aa.ps.ref.png b/test/reference/clip-complex-shape-eo-aa.ps.ref.png
new file mode 100644
index 000000000..07f976208
--- /dev/null
+++ b/test/reference/clip-complex-shape-eo-aa.ps.ref.png
Binary files differ
diff --git a/test/reference/clip-complex-shape-eo-mono.ps.ref.png b/test/reference/clip-complex-shape-eo-mono.ps.ref.png
new file mode 100644
index 000000000..07f976208
--- /dev/null
+++ b/test/reference/clip-complex-shape-eo-mono.ps.ref.png
Binary files differ
diff --git a/test/reference/clip-disjoint-quad.ps.ref.png b/test/reference/clip-disjoint-quad.ps.ref.png
index 5de2fcf01..d7c2621a4 100644
--- a/test/reference/clip-disjoint-quad.ps.ref.png
+++ b/test/reference/clip-disjoint-quad.ps.ref.png
Binary files differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.ps.argb32.ref.png b/test/reference/clip-fill-rule-pixel-aligned.ps.argb32.ref.png
index 9a814b5a2..6b946fcdf 100644
--- a/test/reference/clip-fill-rule-pixel-aligned.ps.argb32.ref.png
+++ b/test/reference/clip-fill-rule-pixel-aligned.ps.argb32.ref.png
Binary files differ
diff --git a/test/reference/clip-fill-rule-pixel-aligned.ps.rgb24.ref.png b/test/reference/clip-fill-rule-pixel-aligned.ps.rgb24.ref.png
index 0b4f06883..01760134b 100644
--- a/test/reference/clip-fill-rule-pixel-aligned.ps.rgb24.ref.png
+++ b/test/reference/clip-fill-rule-pixel-aligned.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/clip-group-shapes-aligned-rectangles.ps.ref.png b/test/reference/clip-group-shapes-aligned-rectangles.ps.ref.png
new file mode 100644
index 000000000..95a1a85f7
--- /dev/null
+++ b/test/reference/clip-group-shapes-aligned-rectangles.ps.ref.png
Binary files differ
diff --git a/test/reference/clip-rectilinear.ps.ref.png b/test/reference/clip-rectilinear.ps.ref.png
index 9478f8624..06a924069 100644
--- a/test/reference/clip-rectilinear.ps.ref.png
+++ b/test/reference/clip-rectilinear.ps.ref.png
Binary files differ
diff --git a/test/reference/copy-disjoint.ps.ref.png b/test/reference/copy-disjoint.ps.ref.png
new file mode 100644
index 000000000..3af890587
--- /dev/null
+++ b/test/reference/copy-disjoint.ps.ref.png
Binary files differ
diff --git a/test/reference/extended-blend-alpha-mask.svg.ref.png b/test/reference/extended-blend-alpha-mask.svg.ref.png
new file mode 100644
index 000000000..2368f1ac0
--- /dev/null
+++ b/test/reference/extended-blend-alpha-mask.svg.ref.png
Binary files differ
diff --git a/test/reference/extended-blend-alpha.svg.ref.png b/test/reference/extended-blend-alpha.svg.ref.png
new file mode 100644
index 000000000..0614cda86
--- /dev/null
+++ b/test/reference/extended-blend-alpha.svg.ref.png
Binary files differ
diff --git a/test/reference/extended-blend-alpha.svg.rgb24.ref.png b/test/reference/extended-blend-alpha.svg.rgb24.ref.png
new file mode 100644
index 000000000..8c35cd6ef
--- /dev/null
+++ b/test/reference/extended-blend-alpha.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/extended-blend-mask.svg.ref.png b/test/reference/extended-blend-mask.svg.ref.png
new file mode 100644
index 000000000..7c6a5db2e
--- /dev/null
+++ b/test/reference/extended-blend-mask.svg.ref.png
Binary files differ
diff --git a/test/reference/extended-blend-mask.svg.rgb24.ref.png b/test/reference/extended-blend-mask.svg.rgb24.ref.png
new file mode 100644
index 000000000..ed5f34dba
--- /dev/null
+++ b/test/reference/extended-blend-mask.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/extended-blend.svg.ref.png b/test/reference/extended-blend.svg.ref.png
new file mode 100644
index 000000000..8b98a40d1
--- /dev/null
+++ b/test/reference/extended-blend.svg.ref.png
Binary files differ
diff --git a/test/reference/extended-blend.svg.rgb24.ref.png b/test/reference/extended-blend.svg.rgb24.ref.png
new file mode 100644
index 000000000..6c85918b0
--- /dev/null
+++ b/test/reference/extended-blend.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi144x144.pdf.ref.png b/test/reference/fallback-resolution.ppi144x144.pdf.ref.png
index df706cdd2..5d0b15252 100644
--- a/test/reference/fallback-resolution.ppi144x144.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi144x144.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi144x144.ps.ref.png b/test/reference/fallback-resolution.ppi144x144.ps.ref.png
index 0922f03d3..c7cfa6251 100644
--- a/test/reference/fallback-resolution.ppi144x144.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi144x144.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi144x144.svg.ref.png b/test/reference/fallback-resolution.ppi144x144.svg.ref.png
index df706cdd2..5d0b15252 100644
--- a/test/reference/fallback-resolution.ppi144x144.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi144x144.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi144x72.pdf.ref.png b/test/reference/fallback-resolution.ppi144x72.pdf.ref.png
index ef92955b2..551f8430b 100644
--- a/test/reference/fallback-resolution.ppi144x72.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi144x72.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi144x72.ps.ref.png b/test/reference/fallback-resolution.ppi144x72.ps.ref.png
index 2f8d82d8d..b55fdfc49 100644
--- a/test/reference/fallback-resolution.ppi144x72.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi144x72.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi144x72.svg.ref.png b/test/reference/fallback-resolution.ppi144x72.svg.ref.png
index ef92955b2..551f8430b 100644
--- a/test/reference/fallback-resolution.ppi144x72.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi144x72.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi288x288.pdf.ref.png b/test/reference/fallback-resolution.ppi288x288.pdf.ref.png
index 94af2cea1..fcd8484cf 100644
--- a/test/reference/fallback-resolution.ppi288x288.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi288x288.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi288x288.ps.ref.png b/test/reference/fallback-resolution.ppi288x288.ps.ref.png
index 99bccef2a..3edfdbcdd 100644
--- a/test/reference/fallback-resolution.ppi288x288.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi288x288.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi288x288.svg.ref.png b/test/reference/fallback-resolution.ppi288x288.svg.ref.png
index 94af2cea1..fcd8484cf 100644
--- a/test/reference/fallback-resolution.ppi288x288.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi288x288.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi288x72.pdf.ref.png b/test/reference/fallback-resolution.ppi288x72.pdf.ref.png
index 9bb224e98..107cdca6a 100644
--- a/test/reference/fallback-resolution.ppi288x72.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi288x72.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi288x72.ps.ref.png b/test/reference/fallback-resolution.ppi288x72.ps.ref.png
index 89b9c5176..a4de1163a 100644
--- a/test/reference/fallback-resolution.ppi288x72.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi288x72.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi288x72.svg.ref.png b/test/reference/fallback-resolution.ppi288x72.svg.ref.png
index 9bb224e98..107cdca6a 100644
--- a/test/reference/fallback-resolution.ppi288x72.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi288x72.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi576x576.pdf.ref.png b/test/reference/fallback-resolution.ppi576x576.pdf.ref.png
index 306527634..e7947b2b0 100644
--- a/test/reference/fallback-resolution.ppi576x576.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi576x576.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi576x576.ps.ref.png b/test/reference/fallback-resolution.ppi576x576.ps.ref.png
index 9dc473532..f2dcf7ce4 100644
--- a/test/reference/fallback-resolution.ppi576x576.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi576x576.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi576x576.svg.ref.png b/test/reference/fallback-resolution.ppi576x576.svg.ref.png
index 306527634..e7947b2b0 100644
--- a/test/reference/fallback-resolution.ppi576x576.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi576x576.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi576x72.pdf.ref.png b/test/reference/fallback-resolution.ppi576x72.pdf.ref.png
index 7d541d8c9..b435fb8bc 100644
--- a/test/reference/fallback-resolution.ppi576x72.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi576x72.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi576x72.ps.ref.png b/test/reference/fallback-resolution.ppi576x72.ps.ref.png
index 9ac6be4a5..8aee2a988 100644
--- a/test/reference/fallback-resolution.ppi576x72.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi576x72.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi576x72.svg.ref.png b/test/reference/fallback-resolution.ppi576x72.svg.ref.png
index 7d541d8c9..b435fb8bc 100644
--- a/test/reference/fallback-resolution.ppi576x72.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi576x72.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x144.pdf.ref.png b/test/reference/fallback-resolution.ppi72x144.pdf.ref.png
index 48c7f5b68..753e00798 100644
--- a/test/reference/fallback-resolution.ppi72x144.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi72x144.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x144.ps.ref.png b/test/reference/fallback-resolution.ppi72x144.ps.ref.png
index 50b5a9905..88e57af78 100644
--- a/test/reference/fallback-resolution.ppi72x144.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi72x144.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x144.svg.ref.png b/test/reference/fallback-resolution.ppi72x144.svg.ref.png
index 48c7f5b68..753e00798 100644
--- a/test/reference/fallback-resolution.ppi72x144.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi72x144.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x288.pdf.ref.png b/test/reference/fallback-resolution.ppi72x288.pdf.ref.png
index 8c6b95693..eb9883dd5 100644
--- a/test/reference/fallback-resolution.ppi72x288.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi72x288.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x288.ps.ref.png b/test/reference/fallback-resolution.ppi72x288.ps.ref.png
index b4ff82d72..ab149801e 100644
--- a/test/reference/fallback-resolution.ppi72x288.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi72x288.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x288.svg.ref.png b/test/reference/fallback-resolution.ppi72x288.svg.ref.png
index 8c6b95693..eb9883dd5 100644
--- a/test/reference/fallback-resolution.ppi72x288.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi72x288.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x576.pdf.ref.png b/test/reference/fallback-resolution.ppi72x576.pdf.ref.png
index c1fac1dc9..b24e393cb 100644
--- a/test/reference/fallback-resolution.ppi72x576.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi72x576.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x576.ps.ref.png b/test/reference/fallback-resolution.ppi72x576.ps.ref.png
index 6a3ddcb5c..c1b592f9d 100644
--- a/test/reference/fallback-resolution.ppi72x576.ps.ref.png
+++ b/test/reference/fallback-resolution.ppi72x576.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x576.svg.ref.png b/test/reference/fallback-resolution.ppi72x576.svg.ref.png
index c1fac1dc9..b24e393cb 100644
--- a/test/reference/fallback-resolution.ppi72x576.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi72x576.svg.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x72.pdf.ref.png b/test/reference/fallback-resolution.ppi72x72.pdf.ref.png
index 18be8df0c..8a0d6e8bf 100644
--- a/test/reference/fallback-resolution.ppi72x72.pdf.ref.png
+++ b/test/reference/fallback-resolution.ppi72x72.pdf.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x72.ps.ref.png b/test/reference/fallback-resolution.ppi72x72.ps.ref.png
new file mode 100644
index 000000000..8a0d6e8bf
--- /dev/null
+++ b/test/reference/fallback-resolution.ppi72x72.ps.ref.png
Binary files differ
diff --git a/test/reference/fallback-resolution.ppi72x72.svg.ref.png b/test/reference/fallback-resolution.ppi72x72.svg.ref.png
index 18be8df0c..8a0d6e8bf 100644
--- a/test/reference/fallback-resolution.ppi72x72.svg.ref.png
+++ b/test/reference/fallback-resolution.ppi72x72.svg.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.image16.ref.png b/test/reference/ft-color-font.image16.ref.png
index 8c7463420..43b39dc37 100644
--- a/test/reference/ft-color-font.image16.ref.png
+++ b/test/reference/ft-color-font.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.pdf.ref.png b/test/reference/ft-color-font.pdf.ref.png
new file mode 100644
index 000000000..a37fe13d5
--- /dev/null
+++ b/test/reference/ft-color-font.pdf.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.pdf.xfail.png b/test/reference/ft-color-font.pdf.xfail.png
deleted file mode 100644
index 5832a3464..000000000
--- a/test/reference/ft-color-font.pdf.xfail.png
+++ /dev/null
Binary files differ
diff --git a/test/reference/ft-color-font.ps2.argb32.ref.png b/test/reference/ft-color-font.ps2.argb32.ref.png
new file mode 100644
index 000000000..562bed74d
--- /dev/null
+++ b/test/reference/ft-color-font.ps2.argb32.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.ps2.rgb24.ref.png b/test/reference/ft-color-font.ps2.rgb24.ref.png
new file mode 100644
index 000000000..f50466450
--- /dev/null
+++ b/test/reference/ft-color-font.ps2.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.ps3.argb32.ref.png b/test/reference/ft-color-font.ps3.argb32.ref.png
new file mode 100644
index 000000000..562bed74d
--- /dev/null
+++ b/test/reference/ft-color-font.ps3.argb32.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.ps3.rgb24.ref.png b/test/reference/ft-color-font.ps3.rgb24.ref.png
new file mode 100644
index 000000000..f50466450
--- /dev/null
+++ b/test/reference/ft-color-font.ps3.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.ref.png b/test/reference/ft-color-font.ref.png
index 104f24923..9ccb673f7 100644
--- a/test/reference/ft-color-font.ref.png
+++ b/test/reference/ft-color-font.ref.png
Binary files differ
diff --git a/test/reference/ft-color-font.script.ref.png b/test/reference/ft-color-font.script.ref.png
new file mode 100644
index 000000000..15c054e19
--- /dev/null
+++ b/test/reference/ft-color-font.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-cairo-logo.image16.ref.png b/test/reference/ft-svg-cairo-logo.image16.ref.png
new file mode 100644
index 000000000..2edddcbdf
--- /dev/null
+++ b/test/reference/ft-svg-cairo-logo.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-cairo-logo.ps.ref.png b/test/reference/ft-svg-cairo-logo.ps.ref.png
new file mode 100644
index 000000000..48124e341
--- /dev/null
+++ b/test/reference/ft-svg-cairo-logo.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-cairo-logo.ps.rgb24.ref.png b/test/reference/ft-svg-cairo-logo.ps.rgb24.ref.png
new file mode 100644
index 000000000..8ef8798be
--- /dev/null
+++ b/test/reference/ft-svg-cairo-logo.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-cairo-logo.script.ref.png b/test/reference/ft-svg-cairo-logo.script.ref.png
new file mode 100644
index 000000000..f3514cad8
--- /dev/null
+++ b/test/reference/ft-svg-cairo-logo.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-cairo-logo.svg.rgb24.ref.png b/test/reference/ft-svg-cairo-logo.svg.rgb24.ref.png
new file mode 100644
index 000000000..9fb5d3b1b
--- /dev/null
+++ b/test/reference/ft-svg-cairo-logo.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-color.image16.ref.png b/test/reference/ft-svg-render-color.image16.ref.png
new file mode 100644
index 000000000..79177f3b1
--- /dev/null
+++ b/test/reference/ft-svg-render-color.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-color.pdf.ref.png b/test/reference/ft-svg-render-color.pdf.ref.png
new file mode 100644
index 000000000..933a9ff0f
--- /dev/null
+++ b/test/reference/ft-svg-render-color.pdf.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-color.ps.ref.png b/test/reference/ft-svg-render-color.ps.ref.png
new file mode 100644
index 000000000..4ded8cfb1
--- /dev/null
+++ b/test/reference/ft-svg-render-color.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-color.ps.rgb24.ref.png b/test/reference/ft-svg-render-color.ps.rgb24.ref.png
new file mode 100644
index 000000000..b5435cea1
--- /dev/null
+++ b/test/reference/ft-svg-render-color.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-color.script.ref.png b/test/reference/ft-svg-render-color.script.ref.png
new file mode 100644
index 000000000..bbacb1ea4
--- /dev/null
+++ b/test/reference/ft-svg-render-color.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-color.svg.rgb24.ref.png b/test/reference/ft-svg-render-color.svg.rgb24.ref.png
new file mode 100644
index 000000000..fd7d76786
--- /dev/null
+++ b/test/reference/ft-svg-render-color.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-doc.image16.ref.png b/test/reference/ft-svg-render-doc.image16.ref.png
new file mode 100644
index 000000000..eb9acb0de
--- /dev/null
+++ b/test/reference/ft-svg-render-doc.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-doc.pdf.ref.png b/test/reference/ft-svg-render-doc.pdf.ref.png
new file mode 100644
index 000000000..9c8aa822a
--- /dev/null
+++ b/test/reference/ft-svg-render-doc.pdf.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-doc.ps.ref.png b/test/reference/ft-svg-render-doc.ps.ref.png
new file mode 100644
index 000000000..10a12ea5d
--- /dev/null
+++ b/test/reference/ft-svg-render-doc.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-doc.ps.rgb24.ref.png b/test/reference/ft-svg-render-doc.ps.rgb24.ref.png
new file mode 100644
index 000000000..f3f4099f0
--- /dev/null
+++ b/test/reference/ft-svg-render-doc.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-doc.script.ref.png b/test/reference/ft-svg-render-doc.script.ref.png
new file mode 100644
index 000000000..37ffb9dff
--- /dev/null
+++ b/test/reference/ft-svg-render-doc.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-doc.svg.rgb24.ref.png b/test/reference/ft-svg-render-doc.svg.rgb24.ref.png
new file mode 100644
index 000000000..791feb909
--- /dev/null
+++ b/test/reference/ft-svg-render-doc.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-fill.image16.ref.png b/test/reference/ft-svg-render-fill.image16.ref.png
new file mode 100644
index 000000000..8ab42ed19
--- /dev/null
+++ b/test/reference/ft-svg-render-fill.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-fill.pdf.ref.png b/test/reference/ft-svg-render-fill.pdf.ref.png
new file mode 100644
index 000000000..135a251a7
--- /dev/null
+++ b/test/reference/ft-svg-render-fill.pdf.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-fill.ps.ref.png b/test/reference/ft-svg-render-fill.ps.ref.png
new file mode 100644
index 000000000..35512795d
--- /dev/null
+++ b/test/reference/ft-svg-render-fill.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-fill.ps.rgb24.ref.png b/test/reference/ft-svg-render-fill.ps.rgb24.ref.png
new file mode 100644
index 000000000..91a0199d1
--- /dev/null
+++ b/test/reference/ft-svg-render-fill.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-fill.script.ref.png b/test/reference/ft-svg-render-fill.script.ref.png
new file mode 100644
index 000000000..46884dea6
--- /dev/null
+++ b/test/reference/ft-svg-render-fill.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-fill.svg.rgb24.ref.png b/test/reference/ft-svg-render-fill.svg.rgb24.ref.png
new file mode 100644
index 000000000..ac892036a
--- /dev/null
+++ b/test/reference/ft-svg-render-fill.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-gradient.image16.ref.png b/test/reference/ft-svg-render-gradient.image16.ref.png
new file mode 100644
index 000000000..e6c5f410a
--- /dev/null
+++ b/test/reference/ft-svg-render-gradient.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-gradient.pdf.ref.png b/test/reference/ft-svg-render-gradient.pdf.ref.png
new file mode 100644
index 000000000..52721c8ed
--- /dev/null
+++ b/test/reference/ft-svg-render-gradient.pdf.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-gradient.ps.ref.png b/test/reference/ft-svg-render-gradient.ps.ref.png
new file mode 100644
index 000000000..9ddb9ce9b
--- /dev/null
+++ b/test/reference/ft-svg-render-gradient.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-gradient.ps.rgb24.ref.png b/test/reference/ft-svg-render-gradient.ps.rgb24.ref.png
new file mode 100644
index 000000000..bca01bf6b
--- /dev/null
+++ b/test/reference/ft-svg-render-gradient.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-gradient.script.ref.png b/test/reference/ft-svg-render-gradient.script.ref.png
new file mode 100644
index 000000000..d9cb57bd3
--- /dev/null
+++ b/test/reference/ft-svg-render-gradient.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-gradient.svg.rgb24.ref.png b/test/reference/ft-svg-render-gradient.svg.rgb24.ref.png
new file mode 100644
index 000000000..6bbb38a87
--- /dev/null
+++ b/test/reference/ft-svg-render-gradient.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-path.image16.ref.png b/test/reference/ft-svg-render-path.image16.ref.png
new file mode 100644
index 000000000..bf6bde2bd
--- /dev/null
+++ b/test/reference/ft-svg-render-path.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-path.ps.ref.png b/test/reference/ft-svg-render-path.ps.ref.png
new file mode 100644
index 000000000..025febd2c
--- /dev/null
+++ b/test/reference/ft-svg-render-path.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-path.ps.rgb24.ref.png b/test/reference/ft-svg-render-path.ps.rgb24.ref.png
new file mode 100644
index 000000000..4000c5ebd
--- /dev/null
+++ b/test/reference/ft-svg-render-path.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-path.script.ref.png b/test/reference/ft-svg-render-path.script.ref.png
new file mode 100644
index 000000000..e2557e83d
--- /dev/null
+++ b/test/reference/ft-svg-render-path.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-path.svg.rgb24.ref.png b/test/reference/ft-svg-render-path.svg.rgb24.ref.png
new file mode 100644
index 000000000..cc3f5f5d9
--- /dev/null
+++ b/test/reference/ft-svg-render-path.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-shapes.image16.ref.png b/test/reference/ft-svg-render-shapes.image16.ref.png
new file mode 100644
index 000000000..9fe411396
--- /dev/null
+++ b/test/reference/ft-svg-render-shapes.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-shapes.ps.ref.png b/test/reference/ft-svg-render-shapes.ps.ref.png
new file mode 100644
index 000000000..6dba36080
--- /dev/null
+++ b/test/reference/ft-svg-render-shapes.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-shapes.ps.rgb24.ref.png b/test/reference/ft-svg-render-shapes.ps.rgb24.ref.png
new file mode 100644
index 000000000..f9fa25a88
--- /dev/null
+++ b/test/reference/ft-svg-render-shapes.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-shapes.script.ref.png b/test/reference/ft-svg-render-shapes.script.ref.png
new file mode 100644
index 000000000..e2557e83d
--- /dev/null
+++ b/test/reference/ft-svg-render-shapes.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-shapes.svg.rgb24.ref.png b/test/reference/ft-svg-render-shapes.svg.rgb24.ref.png
new file mode 100644
index 000000000..00fa79caa
--- /dev/null
+++ b/test/reference/ft-svg-render-shapes.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-stroke.image16.ref.png b/test/reference/ft-svg-render-stroke.image16.ref.png
new file mode 100644
index 000000000..8316d7488
--- /dev/null
+++ b/test/reference/ft-svg-render-stroke.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-stroke.ps.ref.png b/test/reference/ft-svg-render-stroke.ps.ref.png
new file mode 100644
index 000000000..e8fb884bd
--- /dev/null
+++ b/test/reference/ft-svg-render-stroke.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-stroke.ps.rgb24.ref.png b/test/reference/ft-svg-render-stroke.ps.rgb24.ref.png
new file mode 100644
index 000000000..987562ca8
--- /dev/null
+++ b/test/reference/ft-svg-render-stroke.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-stroke.script.ref.png b/test/reference/ft-svg-render-stroke.script.ref.png
new file mode 100644
index 000000000..6efbe7e44
--- /dev/null
+++ b/test/reference/ft-svg-render-stroke.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-stroke.svg.rgb24.ref.png b/test/reference/ft-svg-render-stroke.svg.rgb24.ref.png
new file mode 100644
index 000000000..33818db81
--- /dev/null
+++ b/test/reference/ft-svg-render-stroke.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.image16.ref.png b/test/reference/ft-svg-render-transform.image16.ref.png
new file mode 100644
index 000000000..48c2aa980
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.image16.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.pdf.ref.png b/test/reference/ft-svg-render-transform.pdf.ref.png
new file mode 100644
index 000000000..f528dd59f
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.pdf.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.ps.ref.png b/test/reference/ft-svg-render-transform.ps.ref.png
new file mode 100644
index 000000000..1b14939e8
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.ps.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.ps.rgb24.ref.png b/test/reference/ft-svg-render-transform.ps.rgb24.ref.png
new file mode 100644
index 000000000..41b9b6387
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.script.ref.png b/test/reference/ft-svg-render-transform.script.ref.png
new file mode 100644
index 000000000..e2557e83d
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.script.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.svg.ref.png b/test/reference/ft-svg-render-transform.svg.ref.png
new file mode 100644
index 000000000..6d2f606b0
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.svg.ref.png
Binary files differ
diff --git a/test/reference/ft-svg-render-transform.svg.rgb24.ref.png b/test/reference/ft-svg-render-transform.svg.rgb24.ref.png
new file mode 100644
index 000000000..872749cc6
--- /dev/null
+++ b/test/reference/ft-svg-render-transform.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/implicit-close.ps.ref.png b/test/reference/implicit-close.ps.ref.png
index 66baf2480..cb84de031 100644
--- a/test/reference/implicit-close.ps.ref.png
+++ b/test/reference/implicit-close.ps.ref.png
Binary files differ
diff --git a/test/reference/line-width-large-overlap-flipped.ps.ref.png b/test/reference/line-width-large-overlap-flipped.ps.ref.png
new file mode 100644
index 000000000..89092b9cb
--- /dev/null
+++ b/test/reference/line-width-large-overlap-flipped.ps.ref.png
Binary files differ
diff --git a/test/reference/line-width-large-overlap-flopped.ps.ref.png b/test/reference/line-width-large-overlap-flopped.ps.ref.png
new file mode 100644
index 000000000..89092b9cb
--- /dev/null
+++ b/test/reference/line-width-large-overlap-flopped.ps.ref.png
Binary files differ
diff --git a/test/reference/line-width-large-overlap-offset.ps.ref.png b/test/reference/line-width-large-overlap-offset.ps.ref.png
new file mode 100644
index 000000000..89092b9cb
--- /dev/null
+++ b/test/reference/line-width-large-overlap-offset.ps.ref.png
Binary files differ
diff --git a/test/reference/line-width-large-overlap-rotated.ps.ref.png b/test/reference/line-width-large-overlap-rotated.ps.ref.png
index 35f384733..3d500d9df 100644
--- a/test/reference/line-width-large-overlap-rotated.ps.ref.png
+++ b/test/reference/line-width-large-overlap-rotated.ps.ref.png
Binary files differ
diff --git a/test/reference/line-width-large-overlap.ps.ref.png b/test/reference/line-width-large-overlap.ps.ref.png
new file mode 100644
index 000000000..89092b9cb
--- /dev/null
+++ b/test/reference/line-width-large-overlap.ps.ref.png
Binary files differ
diff --git a/test/reference/linear-gradient-extend.ps.ref.png b/test/reference/linear-gradient-extend.ps.ref.png
new file mode 100644
index 000000000..b638e3a50
--- /dev/null
+++ b/test/reference/linear-gradient-extend.ps.ref.png
Binary files differ
diff --git a/test/reference/linear-gradient-one-stop.ps.ref.png b/test/reference/linear-gradient-one-stop.ps.ref.png
new file mode 100644
index 000000000..3dd878e1d
--- /dev/null
+++ b/test/reference/linear-gradient-one-stop.ps.ref.png
Binary files differ
diff --git a/test/reference/linear-gradient-one-stop.ps.rgb24.ref.png b/test/reference/linear-gradient-one-stop.ps.rgb24.ref.png
index efc12ee71..d54bba273 100644
--- a/test/reference/linear-gradient-one-stop.ps.rgb24.ref.png
+++ b/test/reference/linear-gradient-one-stop.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/long-lines.ps.ref.png b/test/reference/long-lines.ps.ref.png
new file mode 100644
index 000000000..79ae24cf5
--- /dev/null
+++ b/test/reference/long-lines.ps.ref.png
Binary files differ
diff --git a/test/reference/mask.svg.ref.png b/test/reference/mask.svg.ref.png
index 999f41595..4737df38c 100644
--- a/test/reference/mask.svg.ref.png
+++ b/test/reference/mask.svg.ref.png
Binary files differ
diff --git a/test/reference/mask.svg.rgb24.ref.png b/test/reference/mask.svg.rgb24.ref.png
new file mode 100644
index 000000000..8bc4f8b58
--- /dev/null
+++ b/test/reference/mask.svg.rgb24.ref.png
Binary files differ
diff --git a/test/reference/paint-clip-fill-aa.ps.ref.png b/test/reference/paint-clip-fill-aa.ps.ref.png
new file mode 100644
index 000000000..b6f7e82b5
--- /dev/null
+++ b/test/reference/paint-clip-fill-aa.ps.ref.png
Binary files differ
diff --git a/test/reference/paint-clip-fill-mono.ps.ref.png b/test/reference/paint-clip-fill-mono.ps.ref.png
new file mode 100644
index 000000000..b6f7e82b5
--- /dev/null
+++ b/test/reference/paint-clip-fill-mono.ps.ref.png
Binary files differ
diff --git a/test/reference/partial-clip-text-bottom.ps.ref.png b/test/reference/partial-clip-text-bottom.ps.ref.png
index cda2b3d82..026bb421a 100644
--- a/test/reference/partial-clip-text-bottom.ps.ref.png
+++ b/test/reference/partial-clip-text-bottom.ps.ref.png
Binary files differ
diff --git a/test/reference/partial-clip-text-left.ps.ref.png b/test/reference/partial-clip-text-left.ps.ref.png
index a717f7b23..5c9b0fe36 100644
--- a/test/reference/partial-clip-text-left.ps.ref.png
+++ b/test/reference/partial-clip-text-left.ps.ref.png
Binary files differ
diff --git a/test/reference/partial-clip-text-right.ps.ref.png b/test/reference/partial-clip-text-right.ps.ref.png
index a88ef8276..344ac5086 100644
--- a/test/reference/partial-clip-text-right.ps.ref.png
+++ b/test/reference/partial-clip-text-right.ps.ref.png
Binary files differ
diff --git a/test/reference/pdf-surface-source.ps.argb32.ref.png b/test/reference/pdf-surface-source.ps.argb32.ref.png
deleted file mode 100644
index 8b51d9bd7..000000000
--- a/test/reference/pdf-surface-source.ps.argb32.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/reference/pdf-surface-source.ps.ref.png b/test/reference/pdf-surface-source.ps.ref.png
new file mode 100644
index 000000000..6f4937316
--- /dev/null
+++ b/test/reference/pdf-surface-source.ps.ref.png
Binary files differ
diff --git a/test/reference/pdf-surface-source.ps.rgb24.ref.png b/test/reference/pdf-surface-source.ps.rgb24.ref.png
deleted file mode 100644
index 26cbb57c4..000000000
--- a/test/reference/pdf-surface-source.ps.rgb24.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/reference/pdf-surface-source.svg.ref.png b/test/reference/pdf-surface-source.svg.ref.png
new file mode 100644
index 000000000..45c409681
--- /dev/null
+++ b/test/reference/pdf-surface-source.svg.ref.png
Binary files differ
diff --git a/test/reference/ps-surface-source.ps.argb32.ref.png b/test/reference/ps-surface-source.ps.argb32.ref.png
deleted file mode 100644
index 8b51d9bd7..000000000
--- a/test/reference/ps-surface-source.ps.argb32.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/reference/ps-surface-source.ps.ref.png b/test/reference/ps-surface-source.ps.ref.png
new file mode 100644
index 000000000..6f4937316
--- /dev/null
+++ b/test/reference/ps-surface-source.ps.ref.png
Binary files differ
diff --git a/test/reference/ps-surface-source.ps.rgb24.ref.png b/test/reference/ps-surface-source.ps.rgb24.ref.png
deleted file mode 100644
index 26cbb57c4..000000000
--- a/test/reference/ps-surface-source.ps.rgb24.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/reference/ps-surface-source.svg.ref.png b/test/reference/ps-surface-source.svg.ref.png
new file mode 100644
index 000000000..45c409681
--- /dev/null
+++ b/test/reference/ps-surface-source.svg.ref.png
Binary files differ
diff --git a/test/reference/pthread-same-source.svg.ref.png b/test/reference/pthread-same-source.svg.ref.png
index a48886e6c..b64337fe8 100644
--- a/test/reference/pthread-same-source.svg.ref.png
+++ b/test/reference/pthread-same-source.svg.ref.png
Binary files differ
diff --git a/test/reference/pthread-show-text.ps.ref.png b/test/reference/pthread-show-text.ps.ref.png
index 7137e49f4..4b6a49594 100644
--- a/test/reference/pthread-show-text.ps.ref.png
+++ b/test/reference/pthread-show-text.ps.ref.png
Binary files differ
diff --git a/test/reference/record1414x-paint.ps.ref.png b/test/reference/record1414x-paint.ps.ref.png
new file mode 100644
index 000000000..8121e4965
--- /dev/null
+++ b/test/reference/record1414x-paint.ps.ref.png
Binary files differ
diff --git a/test/reference/record1414x-paint.ps.rgb24.ref.png b/test/reference/record1414x-paint.ps.rgb24.ref.png
new file mode 100644
index 000000000..8dcd8eba2
--- /dev/null
+++ b/test/reference/record1414x-paint.ps.rgb24.ref.png
Binary files differ
diff --git a/test/reference/self-copy.ps2.ref.png b/test/reference/self-copy.ps2.ref.png
index 5c9dd5771..0ddf4cade 100644
--- a/test/reference/self-copy.ps2.ref.png
+++ b/test/reference/self-copy.ps2.ref.png
Binary files differ
diff --git a/test/reference/self-copy.ps3.ref.png b/test/reference/self-copy.ps3.ref.png
index 5c9dd5771..0ddf4cade 100644
--- a/test/reference/self-copy.ps3.ref.png
+++ b/test/reference/self-copy.ps3.ref.png
Binary files differ
diff --git a/test/reference/self-copy.svg.ref.png b/test/reference/self-copy.svg.ref.png
new file mode 100644
index 000000000..e35a5e9c5
--- /dev/null
+++ b/test/reference/self-copy.svg.ref.png
Binary files differ
diff --git a/test/reference/text-unhinted-metrics.xcb-fallback.ref.png b/test/reference/text-unhinted-metrics.xcb-fallback.ref.png
new file mode 100644
index 000000000..2b7646d32
--- /dev/null
+++ b/test/reference/text-unhinted-metrics.xcb-fallback.ref.png
Binary files differ
diff --git a/test/reference/text-unhinted-metrics.xcb.ref.png b/test/reference/text-unhinted-metrics.xcb.ref.png
new file mode 100644
index 000000000..706298de4
--- /dev/null
+++ b/test/reference/text-unhinted-metrics.xcb.ref.png
Binary files differ
diff --git a/test/reference/user-font-color.pdf.ref.png b/test/reference/user-font-color.pdf.ref.png
index bc14795ca..5221769ca 100644
--- a/test/reference/user-font-color.pdf.ref.png
+++ b/test/reference/user-font-color.pdf.ref.png
Binary files differ
diff --git a/test/reference/user-font-color.ps.ref.png b/test/reference/user-font-color.ps2.argb32.ref.png
index 59932e64e..59932e64e 100644
--- a/test/reference/user-font-color.ps.ref.png
+++ b/test/reference/user-font-color.ps2.argb32.ref.png
Binary files differ
diff --git a/test/reference/user-font-color.ps2.rgb24.ref.png b/test/reference/user-font-color.ps2.rgb24.ref.png
new file mode 100644
index 000000000..71b25f6fa
--- /dev/null
+++ b/test/reference/user-font-color.ps2.rgb24.ref.png
Binary files differ
diff --git a/test/reference/user-font-color.ps3.argb32.ref.png b/test/reference/user-font-color.ps3.argb32.ref.png
new file mode 100644
index 000000000..59932e64e
--- /dev/null
+++ b/test/reference/user-font-color.ps3.argb32.ref.png
Binary files differ
diff --git a/test/reference/user-font-color.ps3.rgb24.ref.png b/test/reference/user-font-color.ps3.rgb24.ref.png
new file mode 100644
index 000000000..71b25f6fa
--- /dev/null
+++ b/test/reference/user-font-color.ps3.rgb24.ref.png
Binary files differ
diff --git a/test/reference/user-font-proxy.pdf.argb32.ref.png b/test/reference/user-font-proxy.pdf.argb32.ref.png
index bda5eec9d..d7bba13e4 100644
--- a/test/reference/user-font-proxy.pdf.argb32.ref.png
+++ b/test/reference/user-font-proxy.pdf.argb32.ref.png
Binary files differ
diff --git a/test/reference/user-font-proxy.pdf.rgb24.ref.png b/test/reference/user-font-proxy.pdf.rgb24.ref.png
index bda5eec9d..d7bba13e4 100644
--- a/test/reference/user-font-proxy.pdf.rgb24.ref.png
+++ b/test/reference/user-font-proxy.pdf.rgb24.ref.png
Binary files differ
diff --git a/test/reference/xlib-expose-event.svg.ref.png b/test/reference/xlib-expose-event.svg.ref.png
new file mode 100644
index 000000000..2a4cf8322
--- /dev/null
+++ b/test/reference/xlib-expose-event.svg.ref.png
Binary files differ