[cairo-commit] 10 commits - boilerplate/meson.build .gitlab-ci/ignore-image16-rgb24.txt .gitlab-ci/ignore-image-argb32.txt .gitlab-ci/ignore-image-rgb24.txt .gitlab-ci/ignore-pdf-argb32.txt .gitlab-ci/ignore-pdf-rgb24.txt .gitlab-ci/ignore-quartz-argb32.txt .gitlab-ci/ignore-quartz-rgb24.txt .gitlab-ci/ignore-recording-argb32.txt .gitlab-ci/ignore-recording-rgb24.txt .gitlab-ci/ignore-script-argb32.txt .gitlab-ci/ignore-svg11-argb32.txt .gitlab-ci/ignore-svg11-rgb24.txt .gitlab-ci/ignore-xcb-argb32.txt .gitlab-ci/ignore-xcb-fallback-rgb24.txt .gitlab-ci/ignore-xcb-render-0-0-argb32.txt .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt .gitlab-ci/ignore-xcb-rgb24.txt .gitlab-ci/ignore-xcb-window&-rgb24.txt .gitlab-ci/ignore-xcb-window-rgb24.txt .gitlab-ci/ignore-xlib-argb32.txt .gitlab-ci/ignore-xlib-fallback-rgb24.txt .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt .gitlab-ci/ignore-xlib-rgb24.txt .gitlab-ci/ignore-xlib-window-rgb24.txt .gitlab-ci.yml meson.build perf/meson.build perf/micro src/check -headers.sh src/check-plt.sh src/meson.build test/any2ppm.c test/meson.build test/pdiff util/cairo-gobject util/cairo-missing util/cairo-script util/cairo-sphinx util/meson.build

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 17 14:25:18 UTC 2021


 .gitlab-ci.yml                              |   48 ++---
 .gitlab-ci/ignore-image-argb32.txt          |   20 ++
 .gitlab-ci/ignore-image-rgb24.txt           |   22 ++
 .gitlab-ci/ignore-image16-rgb24.txt         |  264 ++++++++++++++++++++++++++++
 .gitlab-ci/ignore-pdf-argb32.txt            |   75 +++++++
 .gitlab-ci/ignore-pdf-rgb24.txt             |   90 +++++++++
 .gitlab-ci/ignore-quartz-argb32.txt         |   53 +++++
 .gitlab-ci/ignore-quartz-rgb24.txt          |   54 +++++
 .gitlab-ci/ignore-recording-argb32.txt      |   35 +++
 .gitlab-ci/ignore-recording-rgb24.txt       |   36 +++
 .gitlab-ci/ignore-script-argb32.txt         |  190 ++++++++++++++++++++
 .gitlab-ci/ignore-svg11-argb32.txt          |   63 ++++++
 .gitlab-ci/ignore-svg11-rgb24.txt           |   69 +++++++
 .gitlab-ci/ignore-xcb-argb32.txt            |   56 +++++
 .gitlab-ci/ignore-xcb-fallback-rgb24.txt    |   23 ++
 .gitlab-ci/ignore-xcb-render-0-0-argb32.txt |   30 +++
 .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt  |   36 +++
 .gitlab-ci/ignore-xcb-rgb24.txt             |  132 ++++++++++++++
 .gitlab-ci/ignore-xcb-window&-rgb24.txt     |  115 ++++++++++++
 .gitlab-ci/ignore-xcb-window-rgb24.txt      |  115 ++++++++++++
 .gitlab-ci/ignore-xlib-argb32.txt           |  127 +++++++++++++
 .gitlab-ci/ignore-xlib-fallback-rgb24.txt   |  108 +++++++++++
 .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt |   54 +++++
 .gitlab-ci/ignore-xlib-rgb24.txt            |  185 +++++++++++++++++++
 .gitlab-ci/ignore-xlib-window-rgb24.txt     |  167 +++++++++++++++++
 boilerplate/meson.build                     |   10 -
 meson.build                                 |    4 
 perf/meson.build                            |   93 +++++++++
 perf/micro/meson.build                      |   57 ++++++
 src/check-headers.sh                        |    2 
 src/check-plt.sh                            |   12 -
 src/meson.build                             |   30 +++
 test/any2ppm.c                              |    3 
 test/meson.build                            |   20 --
 test/pdiff/meson.build                      |   15 +
 util/cairo-gobject/meson.build              |    9 
 util/cairo-missing/meson.build              |    7 
 util/cairo-script/meson.build               |   24 --
 util/cairo-sphinx/meson.build               |    6 
 util/meson.build                            |    7 
 40 files changed, 2384 insertions(+), 82 deletions(-)

New commits:
commit 43a48fb6a51066665e2ed5736eb8874c8f696693
Merge: 07d601218 339671c78
Author: Uli Schlachter <psychon at znc.in>
Date:   Thu Jun 17 14:25:16 2021 +0000

    Merge branch 'more-meson' into 'master'
    
    Add more of the auto-foo build to meson
    
    See merge request cairo/cairo!183

commit 07d60121858e91ddba1aa7eda5f6474977b8c940
Merge: 39db60e95 47c70d53e
Author: Uli Schlachter <psychon at znc.in>
Date:   Thu Jun 3 23:52:43 2021 +0000

    Merge branch 'expected-failure-line-separated' into 'master'
    
    Move test failure lists into separate files with one test name per line
    
    See merge request cairo/cairo!187

commit 39db60e957c71e2acfd9c32ab17b4a28b4a28218
Merge: 2edcb1ac2 1e3465142
Author: Uli Schlachter <psychon at znc.in>
Date:   Thu Jun 3 15:26:07 2021 +0000

    Merge branch 'build-without-zlib' into 'master'
    
    meson: Use more dependency objects & fix build without zlib
    
    Closes #475
    
    See merge request cairo/cairo!184

commit 47c70d53e48a9ce74b6cbb64d0dffe0b96bc7ad6
Author: Uli Schlachter <psychon at znc.in>
Date:   Thu Jun 3 17:19:17 2021 +0200

    Switch to line-separated test failure lists
    
    Having comma separated lists of test names that we expect to fail leads
    to really unreadable and useless diffs. Thus, this commit changes these
    lists to be separated by newlines. This change was generated with:
    
      ( cd .gitlab-ci ; for x in * ; do tr ',' '\n' < $x > .$x ; mv .$x $x ; done )
    
    The code in .gitlab-ci.yml is changed to use tr again to transfer these
    lists back so that everything still works.
    
    Signed-off-by: Uli Schlachter <psychon at znc.in>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1eb93e5bd..52db4de47 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -104,28 +104,28 @@ fedora autotools build:
     # Current test failures that we ignore for now
     - export CAIRO_TEST_UGLY_HACK_TO_SOMETIMES_IGNORE_SCRIPT_XCB_HUGE_IMAGE_SHM=1
     - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_CREATE_FOR_STREAM=1
-    - export CAIRO_TEST_IGNORE_pdf_argb32=$(cat .gitlab-ci/ignore-pdf-argb32.txt)
-    - export CAIRO_TEST_IGNORE_pdf_rgb24=$(cat .gitlab-ci/ignore-pdf-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_script_argb32=$(cat .gitlab-ci/ignore-script-argb32.txt)
-    - export CAIRO_TEST_IGNORE_image_argb32=$(cat .gitlab-ci/ignore-image-argb32.txt)
-    - export CAIRO_TEST_IGNORE_image_rgb24=$(cat .gitlab-ci/ignore-image-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_image16_rgb24=$(cat .gitlab-ci/ignore-image16-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_recording_argb32=$(cat .gitlab-ci/ignore-recording-argb32.txt)
-    - export CAIRO_TEST_IGNORE_recording_rgb24=$(cat .gitlab-ci/ignore-recording-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_svg11_argb32=$(cat .gitlab-ci/ignore-svg11-argb32.txt)
-    - export CAIRO_TEST_IGNORE_svg11_rgb24=$(cat .gitlab-ci/ignore-svg11-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xcb_argb32=$(cat .gitlab-ci/ignore-xcb-argb32.txt)
-    - export CAIRO_TEST_IGNORE_xcb_rgb24=$(cat .gitlab-ci/ignore-xcb-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xcb_window_rgb24=$(cat .gitlab-ci/ignore-xcb-window-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xcb_window__rgb24=$(cat '.gitlab-ci/ignore-xcb-window&-rgb24.txt')
-    - export CAIRO_TEST_IGNORE_xcb_render_0_0_argb32=$(cat .gitlab-ci/ignore-xcb-render-0-0-argb32.txt)
-    - export CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24=$(cat .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xcb_fallback_rgb24=$(cat .gitlab-ci/ignore-xcb-fallback-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xlib_argb32=$(cat .gitlab-ci/ignore-xlib-argb32.txt)
-    - export CAIRO_TEST_IGNORE_xlib_rgb24=$(cat .gitlab-ci/ignore-xlib-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xlib_window_rgb24=$(cat .gitlab-ci/ignore-xlib-window-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xlib_render_0_0_rgb24=$(cat .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xlib_fallback_rgb24=$(cat .gitlab-ci/ignore-xlib-fallback-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_pdf_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-pdf-argb32.txt)
+    - export CAIRO_TEST_IGNORE_pdf_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-pdf-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_script_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-script-argb32.txt)
+    - export CAIRO_TEST_IGNORE_image_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-image-argb32.txt)
+    - export CAIRO_TEST_IGNORE_image_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-image-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_image16_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-image16-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_recording_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-recording-argb32.txt)
+    - export CAIRO_TEST_IGNORE_recording_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-recording-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_svg11_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-svg11-argb32.txt)
+    - export CAIRO_TEST_IGNORE_svg11_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-svg11-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-xcb-argb32.txt)
+    - export CAIRO_TEST_IGNORE_xcb_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xcb-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_window_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xcb-window-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_window__rgb24=$(tr '\n' ',' < '.gitlab-ci/ignore-xcb-window&-rgb24.txt')
+    - export CAIRO_TEST_IGNORE_xcb_render_0_0_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-xcb-render-0-0-argb32.txt)
+    - export CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_fallback_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xcb-fallback-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-xlib-argb32.txt)
+    - export CAIRO_TEST_IGNORE_xlib_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xlib-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_window_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xlib-window-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_render_0_0_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_fallback_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-xlib-fallback-rgb24.txt)
     - export CAIRO_BOILERPLATE_OPEN_NO_DAEMON=1
     - export CAIRO_BOILERPLATE_DO_NOT_CRASH_ON_ANY2PPM_ERROR=1
     - export ANY2PPM="timeout 3m ./any2ppm"
@@ -288,7 +288,7 @@ meson macOS:
     - meson setup -Dpixman:tests=disabled build
     - meson compile --verbose -C build
     # Test cairo-quartz. Other backends should be covered by other jobs
-    - export CAIRO_TEST_IGNORE_quartz_argb32=$(cat .gitlab-ci/ignore-quartz-argb32.txt)
-    - export CAIRO_TEST_IGNORE_quartz_rgb24=$(cat .gitlab-ci/ignore-quartz-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_quartz_argb32=$(tr '\n' ',' < .gitlab-ci/ignore-quartz-argb32.txt)
+    - export CAIRO_TEST_IGNORE_quartz_rgb24=$(tr '\n' ',' < .gitlab-ci/ignore-quartz-rgb24.txt)
     - export CAIRO_TEST_TARGET=quartz
     - (cd build/test && srcdir=../../test ./cairo-test-suite)
diff --git a/.gitlab-ci/ignore-image-argb32.txt b/.gitlab-ci/ignore-image-argb32.txt
index d906b2379..9b70c84a5 100644
--- a/.gitlab-ci/ignore-image-argb32.txt
+++ b/.gitlab-ci/ignore-image-argb32.txt
@@ -1 +1,20 @@
-clip-text,culled-glyphs,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+clip-text
+culled-glyphs
+halo-transform
+overlapping-glyphs
+record1414x-select-font-face
+record1414x-text-transform
+show-glyphs-advance
+subsurface
+subsurface-scale
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-image-rgb24.txt b/.gitlab-ci/ignore-image-rgb24.txt
index c5e73feaa..abaa20111 100644
--- a/.gitlab-ci/ignore-image-rgb24.txt
+++ b/.gitlab-ci/ignore-image-rgb24.txt
@@ -1 +1,22 @@
-clip-text,culled-glyphs,extended-blend-alpha-mask,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,shifted-operator,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+clip-text
+culled-glyphs
+extended-blend-alpha-mask
+halo-transform
+overlapping-glyphs
+record1414x-select-font-face
+record1414x-text-transform
+shifted-operator
+show-glyphs-advance
+subsurface
+subsurface-scale
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-image16-rgb24.txt b/.gitlab-ci/ignore-image16-rgb24.txt
index eb8f8b2fe..6705caf6b 100644
--- a/.gitlab-ci/ignore-image16-rgb24.txt
+++ b/.gitlab-ci/ignore-image16-rgb24.txt
@@ -1 +1,264 @@
-a1-bug,aliasing,arc-direction,arc-looping-dash,big-line,bug-spline,bug-84115,bug-bo-ricotz,bug-source-cu,bug-extents,bug-seams,bug-image-compositor,caps,caps-2,caps-05,caps-joins-2,caps-joins-alpha,caps-joins-curve,caps-tails-curve,clear-source,clip-disjoint,clip-disjoint-quad,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-fill,clip-image,clip-intersect,clip-operator,clip-push-group,clip-shape,clip-stroke,clip-text,clip-twice,close-path-current-point,copy-path,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,dash-state,dash-zero-length,degenerate-arc,degenerate-curve-to,degenerate-path,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extend-pad-border,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid,extended-blend-so
 lid-alpha,fallback,fill-alpha,fill-alpha-pattern,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-degenerate-sort-order,fill-image,fill-missed-stop,fill-rule,filter-bilinear-extents,finer-grained-fallbacks,font-matrix-translation,glyph-cache-pressure,gradient-alpha,gradient-constant-alpha,group-unaligned,halo,halo-transform,hatchings,huge-linear,huge-radial,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-font,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-overlap-offset,line-width-scale,linear-gradient,linear-gradient-reflect,linear-gradient-subset,long-dashed-lines,mask,mask-alpha,mask-ctm,mask-surface-ctm,mask-transformed-image,mask-transformed-similar,mesh-pattern,mesh-pattern-conical,mesh-pattern-control-points,mesh-pattern-fold,mesh-pattern-overlap,mesh-pattern-transformed,new-sub-path,operator-source,over-around-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip
 ,paint-with-alpha-clip-mask,partial-coverage-reference,partial-coverage-three-quarter-reference,pass-through,path-append,path-stroke-twice,pdf-isolated-group,pixman-downscale-fast-96,pixman-downscale-good-96,pixman-downscale-best-96,pixman-downscale-best-24,pixman-downscale-nearest-96,pixman-downscale-bilinear-96,pixman-rotate,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,raster-source,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-se
 lect-font-face,record2x-text-transform,record90-paint-alpha,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-dash-scale-unaligned,reflected-stroke,rel-path,rotate-clip-image-surface-paint,rotated-clip,rounded-rectangle-fill,rounded-rectangle-stroke,scale-off
 set-image,scale-offset-similar,stroke-ctm-caps,stroke-image,select-font-face,set-source,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-fill,smask-mask,smask-paint,smask-stroke,smask-text,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,tiger,a1-tiger,transforms,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,user-font,user-font-mask,user-font-proxy,user-font-rescale,world-map,world-map-stroke,world-map-fill,xcb-huge-image-shm,xcb-huge-subimage,xcomposite-projection,pthread-same-source,pth
 read-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+a1-bug
+aliasing
+arc-direction
+arc-looping-dash
+big-line
+bug-spline
+bug-84115
+bug-bo-ricotz
+bug-source-cu
+bug-extents
+bug-seams
+bug-image-compositor
+caps
+caps-2
+caps-05
+caps-joins-2
+caps-joins-alpha
+caps-joins-curve
+caps-tails-curve
+clear-source
+clip-disjoint
+clip-disjoint-quad
+clip-stroke-unbounded
+clip-fill-nz-unbounded
+clip-fill-eo-unbounded
+clip-fill
+clip-image
+clip-intersect
+clip-operator
+clip-push-group
+clip-shape
+clip-stroke
+clip-text
+clip-twice
+close-path-current-point
+copy-path
+coverage-rectangles
+coverage-rhombus
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-row-triangles
+coverage-column-triangles
+coverage-triangles
+coverage-abutting
+culled-glyphs
+dash-caps-joins
+dash-curve
+dash-scale
+dash-state
+dash-zero-length
+degenerate-arc
+degenerate-curve-to
+degenerate-path
+degenerate-pen
+degenerate-rel-curve-to
+drunkard-tails
+extend-pad-border
+extended-blend
+extended-blend-alpha
+extended-blend-mask
+extended-blend-alpha-mask
+extended-blend-solid
+extended-blend-solid-alpha
+fallback
+fill-alpha
+fill-alpha-pattern
+fill-and-stroke
+fill-and-stroke-alpha
+fill-and-stroke-alpha-add
+fill-degenerate-sort-order
+fill-image
+fill-missed-stop
+fill-rule
+filter-bilinear-extents
+finer-grained-fallbacks
+font-matrix-translation
+glyph-cache-pressure
+gradient-alpha
+gradient-constant-alpha
+group-unaligned
+halo
+halo-transform
+hatchings
+huge-linear
+huge-radial
+inverse-text
+joins
+joins-loop
+joins-star
+joins-retrace
+large-font
+large-twin-antialias-mixed
+leaky-dashed-stroke
+line-width-overlap-offset
+line-width-scale
+linear-gradient
+linear-gradient-reflect
+linear-gradient-subset
+long-dashed-lines
+mask
+mask-alpha
+mask-ctm
+mask-surface-ctm
+mask-transformed-image
+mask-transformed-similar
+mesh-pattern
+mesh-pattern-conical
+mesh-pattern-control-points
+mesh-pattern-fold
+mesh-pattern-overlap
+mesh-pattern-transformed
+new-sub-path
+operator-source
+over-around-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+paint-source-alpha
+paint-with-alpha
+paint-with-alpha-clip
+paint-with-alpha-clip-mask
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+pass-through
+path-append
+path-stroke-twice
+pdf-isolated-group
+pixman-downscale-fast-96
+pixman-downscale-good-96
+pixman-downscale-best-96
+pixman-downscale-best-24
+pixman-downscale-nearest-96
+pixman-downscale-bilinear-96
+pixman-rotate
+push-group
+push-group-color
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+random-clip
+random-intersections-eo
+random-intersections-nonzero
+random-intersections-curves-eo
+random-intersections-curves-nz
+raster-source
+record-paint-alpha
+record-paint-alpha-clip
+record-paint-alpha-clip-mask
+record-fill-alpha
+record-select-font-face
+record-text-transform
+record1414x-paint-alpha
+record1414x-paint-alpha-clip
+record1414x-paint-alpha-clip-mask
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha
+record2x-paint-alpha-clip
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record2x-select-font-face
+record2x-text-transform
+record90-paint-alpha
+record90-paint-alpha-clip
+record90-paint-alpha-clip-mask
+record90-fill-alpha
+record90-select-font-face
+record90-text-transform
+recordflip-whole-paint-alpha
+recordflip-whole-paint-alpha-clip
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-select-font-face
+recordflip-whole-text-transform
+recordflip-paint-alpha
+recordflip-paint-alpha-clip
+recordflip-paint-alpha-clip-mask
+recordflip-fill-alpha
+recordflip-select-font-face
+recordflip-text-transform
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-mesh
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+rectilinear-dash-scale-unaligned
+reflected-stroke
+rel-path
+rotate-clip-image-surface-paint
+rotated-clip
+rounded-rectangle-fill
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+stroke-ctm-caps
+stroke-image
+select-font-face
+set-source
+shifted-operator
+show-glyphs-advance
+show-text-current-point
+shape-general-convex
+shape-sierpinski
+simple-edge
+smask
+smask-fill
+smask-mask
+smask-paint
+smask-stroke
+smask-text
+spline-decomposition
+stroke-pattern
+subsurface
+subsurface-scale
+surface-pattern
+surface-pattern-operator
+surface-pattern-scale-down
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+tighten-bounds
+tiger
+a1-tiger
+transforms
+trap-clip
+twin
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-subpixel
+unbounded-operator
+unclosed-strokes
+user-font
+user-font-mask
+user-font-proxy
+user-font-rescale
+world-map
+world-map-stroke
+world-map-fill
+xcb-huge-image-shm
+xcb-huge-subimage
+xcomposite-projection
+pthread-same-source
+pthread-show-text
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-pdf-argb32.txt b/.gitlab-ci/ignore-pdf-argb32.txt
index 8c1017c32..2fc1fa760 100644
--- a/.gitlab-ci/ignore-pdf-argb32.txt
+++ b/.gitlab-ci/ignore-pdf-argb32.txt
@@ -1 +1,75 @@
-bug-image-compositor,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend,extended-blend-solid,fallback,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,record1414x-select-font-face,record1414x-text-transform,record2x-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-miter-limit,rectili
 near-dash,rectilinear-stroke,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,thin-lines,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+bug-image-compositor
+clear-source
+clip-operator
+clip-text
+culled-glyphs
+extended-blend
+extended-blend-solid
+fallback
+filter-bilinear-extents
+filter-nearest-offset
+filter-nearest-transformed
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+inverse-text
+large-font
+linear-gradient-reflect
+mask
+operator-alpha-alpha
+overlapping-glyphs
+paint-with-alpha-clip
+partial-clip-text-bottom
+partial-clip-text-left
+pixman-downscale-fast-95
+pixman-downscale-fast-24
+pixman-downscale-good-24
+pixman-downscale-best-95
+pixman-downscale-best-24
+pixman-downscale-nearest-95
+pixman-downscale-nearest-24
+pixman-downscale-bilinear-24
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-gradient-one-stop
+record1414x-select-font-face
+record1414x-text-transform
+record2x-text-transform
+record-replay-extend-repeat
+record-replay-extend-reflect
+recording-surface-over
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+rectilinear-miter-limit
+rectilinear-dash
+rectilinear-stroke
+rotate-image-surface-paint
+rotate-clip-image-surface-paint
+select-font-face
+self-copy
+show-glyphs-advance
+show-text-current-point
+smask-text
+smp-glyph
+surface-pattern
+surface-pattern-operator
+surface-pattern-scale-down
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+thin-lines
+trap-clip
+twin
+user-font-proxy
+user-font-rescale
+pthread-same-source
+pthread-show-text
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-pdf-rgb24.txt b/.gitlab-ci/ignore-pdf-rgb24.txt
index 5c99e00e6..ae5e7e994 100644
--- a/.gitlab-ci/ignore-pdf-rgb24.txt
+++ b/.gitlab-ci/ignore-pdf-rgb24.txt
@@ -1 +1,90 @@
-bug-image-compositor,clear-source,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,random-intersections-curves-eo,random-intersections-curves-nz,record-paint-alpha-clip,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-select-font-face,record1414x-text-tra
 nsform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,rectilinear-miter-limit,rectilinear-dash,rectilinear-stroke,rel-path,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type
 3
+bug-image-compositor
+clear-source
+clip-text
+culled-glyphs
+extended-blend-alpha-mask
+extended-blend-solid
+filter-bilinear-extents
+filter-nearest-offset
+filter-nearest-transformed
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+inverse-text
+large-font
+linear-gradient-reflect
+mask
+operator-alpha-alpha
+overlapping-glyphs
+paint-with-alpha-clip
+partial-clip-text-bottom
+partial-clip-text-left
+pixman-downscale-fast-95
+pixman-downscale-fast-24
+pixman-downscale-good-24
+pixman-downscale-best-95
+pixman-downscale-best-24
+pixman-downscale-nearest-95
+pixman-downscale-nearest-24
+pixman-downscale-bilinear-24
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-gradient-one-stop
+random-intersections-curves-eo
+random-intersections-curves-nz
+record-paint-alpha-clip
+record-select-font-face
+record-text-transform
+record1414x-paint-alpha
+record1414x-paint-alpha-clip
+record1414x-paint-alpha-clip-mask
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-select-font-face
+record2x-text-transform
+record90-paint-alpha-clip
+record90-paint-alpha-clip-mask
+record90-select-font-face
+record90-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+recordflip-select-font-face
+recordflip-text-transform
+record-replay-extend-repeat
+record-replay-extend-reflect
+recording-surface-over
+recording-surface-extend-repeat
+rectilinear-miter-limit
+rectilinear-dash
+rectilinear-stroke
+rel-path
+rotate-image-surface-paint
+rotate-clip-image-surface-paint
+select-font-face
+self-copy
+show-glyphs-advance
+show-text-current-point
+smask-text
+smp-glyph
+surface-pattern
+surface-pattern-scale-down
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+trap-clip
+twin
+user-font-proxy
+user-font-rescale
+pthread-same-source
+pthread-show-text
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-quartz-argb32.txt b/.gitlab-ci/ignore-quartz-argb32.txt
index 157f2f4d6..67810065a 100644
--- a/.gitlab-ci/ignore-quartz-argb32.txt
+++ b/.gitlab-ci/ignore-quartz-argb32.txt
@@ -1 +1,53 @@
-bug-361,bug-431,bug-image-compositor,clip-operator,coverage-rhombus,culled-glyphs,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid-alpha,fallback,negative-stride-image,operator-www,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,simple-edge,subsurface,subsurface-outside-target,subsurface-scale,surface-pattern,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias
 -subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-unhinted-metrics,user-font-proxy,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+bug-361
+bug-431
+bug-image-compositor
+clip-operator
+coverage-rhombus
+culled-glyphs
+extended-blend-alpha
+extended-blend-mask
+extended-blend-alpha-mask
+extended-blend-solid-alpha
+fallback
+negative-stride-image
+operator-www
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+record-paint-alpha-clip-mask
+record-fill-alpha
+record-select-font-face
+record-text-transform
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-select-font-face
+record2x-text-transform
+record90-fill-alpha
+record90-select-font-face
+record90-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-text-transform
+recordflip-select-font-face
+recordflip-text-transform
+record-neg-extents-bounded
+record-mesh
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+simple-edge
+subsurface
+subsurface-outside-target
+subsurface-scale
+surface-pattern
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-unhinted-metrics
+user-font-proxy
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-quartz-rgb24.txt b/.gitlab-ci/ignore-quartz-rgb24.txt
index 68f54907e..314ef4aef 100644
--- a/.gitlab-ci/ignore-quartz-rgb24.txt
+++ b/.gitlab-ci/ignore-quartz-rgb24.txt
@@ -1 +1,54 @@
-bug-361,bug-431,bug-448,bug-image-compositor,coverage-rhombus,culled-glyphs,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,negative-stride-image,operator-www,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,shifted-operator,simple-edge,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-su
 bpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-unhinted-metrics,user-font-proxy,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+bug-361
+bug-431
+bug-448
+bug-image-compositor
+coverage-rhombus
+culled-glyphs
+extended-blend
+extended-blend-alpha
+extended-blend-mask
+extended-blend-alpha-mask
+extended-blend-solid
+extended-blend-solid-alpha
+negative-stride-image
+operator-www
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+record-paint-alpha-clip-mask
+record-fill-alpha
+record-select-font-face
+record-text-transform
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-select-font-face
+record2x-text-transform
+record90-fill-alpha
+record90-select-font-face
+record90-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-text-transform
+recordflip-select-font-face
+recordflip-text-transform
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-mesh
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+shifted-operator
+simple-edge
+subsurface
+subsurface-scale
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-unhinted-metrics
+user-font-proxy
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-recording-argb32.txt b/.gitlab-ci/ignore-recording-argb32.txt
index b406fd1a7..99cee110f 100644
--- a/.gitlab-ci/ignore-recording-argb32.txt
+++ b/.gitlab-ci/ignore-recording-argb32.txt
@@ -1 +1,35 @@
-bug-source-cu,clear-source,clip-text,coverage-rectangles,culled-glyphs,finer-grained-fallbacks,halo-transform,overlapping-glyphs,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-text-transform,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,scale-offset-similar,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,pthread-same-source,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+bug-source-cu
+clear-source
+clip-text
+coverage-rectangles
+culled-glyphs
+finer-grained-fallbacks
+halo-transform
+overlapping-glyphs
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record2x-text-transform
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+scale-offset-similar
+show-glyphs-advance
+subsurface
+subsurface-scale
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+pthread-same-source
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-recording-rgb24.txt b/.gitlab-ci/ignore-recording-rgb24.txt
index f1f9c37a5..47838dcc3 100644
--- a/.gitlab-ci/ignore-recording-rgb24.txt
+++ b/.gitlab-ci/ignore-recording-rgb24.txt
@@ -1 +1,36 @@
-bug-source-cu,clear-source,clip-text,coverage-rectangles,culled-glyphs,extended-blend-alpha-mask,finer-grained-fallbacks,halo-transform,overlapping-glyphs,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-text-transform,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,scale-offset-similar,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,pthread-same-source,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+bug-source-cu
+clear-source
+clip-text
+coverage-rectangles
+culled-glyphs
+extended-blend-alpha-mask
+finer-grained-fallbacks
+halo-transform
+overlapping-glyphs
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record2x-text-transform
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+scale-offset-similar
+show-glyphs-advance
+subsurface
+subsurface-scale
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+pthread-same-source
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-script-argb32.txt b/.gitlab-ci/ignore-script-argb32.txt
index b6cb256ff..493e69bdb 100644
--- a/.gitlab-ci/ignore-script-argb32.txt
+++ b/.gitlab-ci/ignore-script-argb32.txt
@@ -1 +1,190 @@
-a1-bug,a1-fill,arc-looping-dash,bilevel-image,bug-51910,bug-84115,bug-seams,caps,caps-2,caps-1,caps-05,checkerboard,caps-joins-2,caps-joins-1,caps-joins-05,caps-joins-curve,caps-tails-curve,caps-sub-paths,clear-source,clip-disjoint-quad,clip-device-offset,clip-image,clip-mixed-antialias,clip-push-group,clip-polygons,clip-text,close-path,close-path-current-point,composite-integer-translate-over-repeat,copy-path,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-infinite-loop,dash-scale,dash-state,degenerate-curve-to,degenerate-linear-gradient,degenerate-pen,degenerate-radial-gradient,degenerate-rel-curve-to,device-offset-scale,extend-pad-border,fill-and-stroke-alpha,fill-and-stroke-alpha-add,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,huge-radial,image-surface-source,xcb-surface-source,xlib-surface-source,infinite-join,inverse-text,joins,large-font
 ,large-source,large-twin-antialias-mixed,leaky-dashed-rectangle,leaky-dashed-stroke,leaky-polygon,line-width-scale,line-width-tolerance,linear-gradient-extend,linear-gradient-reflect,long-dashed-lines,map-all-to-image,map-bit-to-image,map-to-image-fill,mask-transformed-image,mask-transformed-similar,mesh-pattern,mesh-pattern-conical,mesh-pattern-control-points,mesh-pattern-fold,mesh-pattern-overlap,mesh-pattern-transformed,negative-stride-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-solid-clip,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,partial-coverage-half-reference,path-stroke-twice,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,radial-gradient-extend,record-paint-alpha-solid-clip,record-paint-alpha-clip,record-select-font-face,record-text-transform,rec
 ord1414x-paint-alpha,record1414x-paint-alpha-solid-clip,record1414x-paint-alpha-clip,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-solid-clip,record2x-paint-alpha-clip,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-miter-limit,reflected-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,shape-sierpinski,smask,smask-image-mask,smask-mask,smask-paint,smask
 -text,stride-12-image,subsurface,subsurface-scale,surface-pattern,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,transforms,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,user-font,user-font-proxy,user-font-rescale,world-map,world-map-stroke,world-map-fill,xcb-stress-cache,xcomposite-projection,pthread-show-text,bitmap-font,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3,ft-text-antialias-none,pdf-surface-source,ps-surface-source
+a1-bug
+a1-fill
+arc-looping-dash
+bilevel-image
+bug-51910
+bug-84115
+bug-seams
+caps
+caps-2
+caps-1
+caps-05
+checkerboard
+caps-joins-2
+caps-joins-1
+caps-joins-05
+caps-joins-curve
+caps-tails-curve
+caps-sub-paths
+clear-source
+clip-disjoint-quad
+clip-device-offset
+clip-image
+clip-mixed-antialias
+clip-push-group
+clip-polygons
+clip-text
+close-path
+close-path-current-point
+composite-integer-translate-over-repeat
+copy-path
+coverage-rectangles
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-abutting
+culled-glyphs
+dash-caps-joins
+dash-curve
+dash-infinite-loop
+dash-scale
+dash-state
+degenerate-curve-to
+degenerate-linear-gradient
+degenerate-pen
+degenerate-radial-gradient
+degenerate-rel-curve-to
+device-offset-scale
+extend-pad-border
+fill-and-stroke-alpha
+fill-and-stroke-alpha-add
+filter-bilinear-extents
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+huge-radial
+image-surface-source
+xcb-surface-source
+xlib-surface-source
+infinite-join
+inverse-text
+joins
+large-font
+large-source
+large-twin-antialias-mixed
+leaky-dashed-rectangle
+leaky-dashed-stroke
+leaky-polygon
+line-width-scale
+line-width-tolerance
+linear-gradient-extend
+linear-gradient-reflect
+long-dashed-lines
+map-all-to-image
+map-bit-to-image
+map-to-image-fill
+mask-transformed-image
+mask-transformed-similar
+mesh-pattern
+mesh-pattern-conical
+mesh-pattern-control-points
+mesh-pattern-fold
+mesh-pattern-overlap
+mesh-pattern-transformed
+negative-stride-image
+operator-alpha-alpha
+overlapping-glyphs
+paint-source-alpha
+paint-with-alpha
+paint-with-alpha-solid-clip
+paint-with-alpha-clip
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+partial-coverage-half-reference
+path-stroke-twice
+push-group-color
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-gradient-one-stop
+radial-gradient-extend
+record-paint-alpha-solid-clip
+record-paint-alpha-clip
+record-select-font-face
+record-text-transform
+record1414x-paint-alpha
+record1414x-paint-alpha-solid-clip
+record1414x-paint-alpha-clip
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha
+record2x-paint-alpha-solid-clip
+record2x-paint-alpha-clip
+record2x-select-font-face
+record2x-text-transform
+record90-paint-alpha-clip-mask
+record90-select-font-face
+record90-text-transform
+recordflip-whole-select-font-face
+recordflip-whole-text-transform
+recordflip-select-font-face
+recordflip-text-transform
+record-neg-extents-bounded
+record-mesh
+record-replay-extend-none
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+rectilinear-miter-limit
+reflected-stroke
+scale-offset-image
+scale-offset-similar
+stroke-ctm-caps
+select-font-face
+self-copy
+show-glyphs-advance
+show-text-current-point
+shape-sierpinski
+smask
+smask-image-mask
+smask-mask
+smask-paint
+smask-text
+stride-12-image
+subsurface
+subsurface-scale
+surface-pattern
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+transforms
+twin
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-none
+twin-antialias-subpixel
+unclosed-strokes
+user-font
+user-font-proxy
+user-font-rescale
+world-map
+world-map-stroke
+world-map-fill
+xcb-stress-cache
+xcomposite-projection
+pthread-show-text
+bitmap-font
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
+ft-text-antialias-none
+pdf-surface-source
+ps-surface-source
diff --git a/.gitlab-ci/ignore-svg11-argb32.txt b/.gitlab-ci/ignore-svg11-argb32.txt
index 11422691b..26de01d66 100644
--- a/.gitlab-ci/ignore-svg11-argb32.txt
+++ b/.gitlab-ci/ignore-svg11-argb32.txt
@@ -1 +1,63 @@
-alpha-similar,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend-solid,extended-blend-solid-alpha,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,halo-transform,linear-gradient-reflect,mask-transformed-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,radial-gradient,radial-gradient-mask,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,scale-offset-image,scale-sou
 rce-surface-paint,self-copy,show-glyphs-advance,smask,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,surface-pattern,surface-pattern-operator,surface-pattern-scale-up,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,unbounded-operator,pthread-similar,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+alpha-similar
+clear-source
+clip-operator
+clip-text
+culled-glyphs
+extended-blend-solid
+extended-blend-solid-alpha
+filter-bilinear-extents
+filter-nearest-offset
+filter-nearest-transformed
+halo-transform
+linear-gradient-reflect
+mask-transformed-image
+operator-alpha-alpha
+overlapping-glyphs
+paint-source-alpha
+paint-with-alpha
+paint-with-alpha-clip
+paint-with-alpha-clip-mask
+radial-gradient
+radial-gradient-mask
+record-paint-alpha
+record-paint-alpha-clip
+record-paint-alpha-clip-mask
+record1414x-paint-alpha
+record1414x-paint-alpha-clip
+record1414x-paint-alpha-clip-mask
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha
+record2x-paint-alpha-clip
+record2x-paint-alpha-clip-mask
+record90-paint-alpha-clip
+record90-paint-alpha-clip-mask
+recordflip-whole-paint-alpha
+recordflip-whole-paint-alpha-clip
+recordflip-whole-paint-alpha-clip-mask
+recordflip-paint-alpha
+recordflip-paint-alpha-clip
+recordflip-paint-alpha-clip-mask
+scale-offset-image
+scale-source-surface-paint
+self-copy
+show-glyphs-advance
+smask
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smask-text
+surface-pattern
+surface-pattern-operator
+surface-pattern-scale-up
+text-pattern
+text-rotate
+text-unhinted-metrics
+tighten-bounds
+unbounded-operator
+pthread-similar
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-svg11-rgb24.txt b/.gitlab-ci/ignore-svg11-rgb24.txt
index a00568bdc..4dd13ae01 100644
--- a/.gitlab-ci/ignore-svg11-rgb24.txt
+++ b/.gitlab-ci/ignore-svg11-rgb24.txt
@@ -1 +1,69 @@
-alpha-similar,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,gradient-alpha,gradient-constant-alpha,halo-transform,linear-gradient-reflect,mask,mask-transformed-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-c
 lip-mask,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,scale-offset-image,scale-source-surface-paint,self-copy,show-glyphs-advance,smask,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,surface-pattern,surface-pattern-operator,surface-pattern-scale-up,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,unbounded-operator,pthread-similar,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+alpha-similar
+clear-source
+clip-operator
+clip-text
+culled-glyphs
+extended-blend-alpha-mask
+extended-blend-solid
+extended-blend-solid-alpha
+filter-bilinear-extents
+filter-nearest-offset
+filter-nearest-transformed
+gradient-alpha
+gradient-constant-alpha
+halo-transform
+linear-gradient-reflect
+mask
+mask-transformed-image
+operator-alpha-alpha
+overlapping-glyphs
+paint-source-alpha
+paint-with-alpha
+paint-with-alpha-clip
+paint-with-alpha-clip-mask
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+record-paint-alpha
+record-paint-alpha-clip
+record-paint-alpha-clip-mask
+record1414x-paint-alpha
+record1414x-paint-alpha-clip
+record1414x-paint-alpha-clip-mask
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-text-transform
+record2x-paint-alpha
+record2x-paint-alpha-clip
+record2x-paint-alpha-clip-mask
+record90-paint-alpha-clip
+record90-paint-alpha-clip-mask
+recordflip-whole-paint-alpha
+recordflip-whole-paint-alpha-clip
+recordflip-whole-paint-alpha-clip-mask
+recordflip-paint-alpha
+recordflip-paint-alpha-clip
+recordflip-paint-alpha-clip-mask
+scale-offset-image
+scale-source-surface-paint
+self-copy
+show-glyphs-advance
+smask
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smask-text
+surface-pattern
+surface-pattern-operator
+surface-pattern-scale-up
+text-pattern
+text-rotate
+text-unhinted-metrics
+tighten-bounds
+unbounded-operator
+pthread-similar
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-argb32.txt b/.gitlab-ci/ignore-xcb-argb32.txt
index 2241039c7..2acf41059 100644
--- a/.gitlab-ci/ignore-xcb-argb32.txt
+++ b/.gitlab-ci/ignore-xcb-argb32.txt
@@ -1 +1,56 @@
-bug-spline,clip-operator,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,culled-glyphs,fill-image,halo,halo-transform,hatchings,operator-source,overlapping-boxes,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-extend-repeat,recording-surface-extend-pad,rotated-clip,stroke-cl
 ipped,stroke-image,simple-edge,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-rotate,tighten-bounds,a1-tiger,twin-antialias-none,unantialiased-shapes,user-font,user-font-proxy,ft-text-vertical-layout-type1
+bug-spline
+clip-operator
+coverage-rectangles
+coverage-rhombus
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-row-triangles
+coverage-column-triangles
+coverage-triangles
+culled-glyphs
+fill-image
+halo
+halo-transform
+hatchings
+operator-source
+overlapping-boxes
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-outer-focus
+random-clip
+record-self-intersecting
+record1414x-fill-alpha
+record1414x-self-intersecting
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-self-intersecting
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-self-intersecting
+recordflip-paint-alpha-clip-mask
+recordflip-self-intersecting
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-extend-repeat
+recording-surface-extend-pad
+rotated-clip
+stroke-clipped
+stroke-image
+simple-edge
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-rotate
+tighten-bounds
+a1-tiger
+twin-antialias-none
+unantialiased-shapes
+user-font
+user-font-proxy
+ft-text-vertical-layout-type1
diff --git a/.gitlab-ci/ignore-xcb-fallback-rgb24.txt b/.gitlab-ci/ignore-xcb-fallback-rgb24.txt
index 39e43d94e..8f2477884 100644
--- a/.gitlab-ci/ignore-xcb-fallback-rgb24.txt
+++ b/.gitlab-ci/ignore-xcb-fallback-rgb24.txt
@@ -1 +1,23 @@
-clip-text,coverage-intersecting-triangles,culled-glyphs,extended-blend-alpha-mask,fallback,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+clip-text
+coverage-intersecting-triangles
+culled-glyphs
+extended-blend-alpha-mask
+fallback
+halo-transform
+overlapping-glyphs
+record1414x-select-font-face
+record1414x-text-transform
+show-glyphs-advance
+subsurface
+subsurface-scale
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt b/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt
index 79727e7dd..13bcae273 100644
--- a/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt
+++ b/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt
@@ -1 +1,30 @@
-clip-disjoint-hatching,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-operator,clip-polygons,clip-shape,clip-twice,coverage-intersecting-triangles,culled-glyphs,hatchings,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,record-paint-alpha-solid-clip,record1414x-select-font-face,record1414x-text-transform,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,rotated-clip,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,trap-clip,ft-text-vertical-layout-type1
+clip-disjoint-hatching
+clip-stroke-unbounded
+clip-fill-nz-unbounded
+clip-fill-eo-unbounded
+clip-operator
+clip-polygons
+clip-shape
+clip-twice
+coverage-intersecting-triangles
+culled-glyphs
+hatchings
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+random-clip
+record-paint-alpha-solid-clip
+record1414x-select-font-face
+record1414x-text-transform
+record-neg-extents-bounded
+record-replay-extend-repeat
+record-replay-extend-reflect
+rotated-clip
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+trap-clip
+ft-text-vertical-layout-type1
diff --git a/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt b/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt
index d2c1efacd..21de16050 100644
--- a/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt
+++ b/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt
@@ -1 +1,36 @@
-clip-disjoint-hatching,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-operator,clip-polygons,clip-shape,clip-twice,coverage-intersecting-triangles,culled-glyphs,extended-blend-alpha-mask,fallback,hatchings,mask,operator-source,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,record-paint-alpha-solid-clip,record1414x-select-font-face,record1414x-text-transform,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-none,rotated-clip,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,trap-clip,ft-text-vertical-layout-type1
+clip-disjoint-hatching
+clip-stroke-unbounded
+clip-fill-nz-unbounded
+clip-fill-eo-unbounded
+clip-operator
+clip-polygons
+clip-shape
+clip-twice
+coverage-intersecting-triangles
+culled-glyphs
+extended-blend-alpha-mask
+fallback
+hatchings
+mask
+operator-source
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+random-clip
+record-paint-alpha-solid-clip
+record1414x-select-font-face
+record1414x-text-transform
+record-neg-extents-bounded
+record-replay-extend-repeat
+record-replay-extend-reflect
+recording-surface-over
+recording-surface-extend-none
+rotated-clip
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+trap-clip
+ft-text-vertical-layout-type1
diff --git a/.gitlab-ci/ignore-xcb-rgb24.txt b/.gitlab-ci/ignore-xcb-rgb24.txt
index c673be6ae..c1823bb5a 100644
--- a/.gitlab-ci/ignore-xcb-rgb24.txt
+++ b/.gitlab-ci/ignore-xcb-rgb24.txt
@@ -1 +1,132 @@
-arc-looping-dash,bug-spline,bug-51910,bug-84115,bug-source-cu,bug-image-compositor,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-curve,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,hatchings,inverse-text,large-font,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,rad
 ial-outer-focus,random-clip,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,s
 ubsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,a1-tiger,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,user-font,user-font-proxy,world-map,world-map-fill,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+arc-looping-dash
+bug-spline
+bug-51910
+bug-84115
+bug-source-cu
+bug-image-compositor
+caps-2
+caps-1
+caps-05
+caps-joins-2
+caps-joins-1
+caps-joins-05
+clear-source
+clip-operator
+clip-text
+coverage-rectangles
+coverage-rhombus
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-row-triangles
+coverage-column-triangles
+coverage-triangles
+coverage-abutting
+culled-glyphs
+dash-curve
+extended-blend-alpha-mask
+fallback
+fill-image
+filter-bilinear-extents
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+hatchings
+inverse-text
+large-font
+linear-gradient
+linear-gradient-subset
+mask
+mask-transformed-image
+mask-transformed-similar
+operator-alpha-alpha
+operator-clear
+operator-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+push-group
+push-group-color
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-outer-focus
+random-clip
+record-self-intersecting
+record1414x-fill-alpha
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-fill-alpha
+record90-self-intersecting
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-self-intersecting
+recordflip-paint-alpha-clip-mask
+recordflip-fill-alpha
+recordflip-self-intersecting
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+recording-surface-extend-pad
+reflected-stroke
+rotated-clip
+select-font-face
+stroke-clipped
+stroke-image
+show-glyphs-advance
+show-text-current-point
+simple-edge
+smask
+smask-fill
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smp-glyph
+subsurface
+subsurface-scale
+surface-pattern-operator
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-rotate
+text-transform
+tighten-bounds
+a1-tiger
+trap-clip
+twin
+twin-antialias-gray
+twin-antialias-none
+twin-antialias-subpixel
+unantialiased-shapes
+unbounded-operator
+user-font
+user-font-proxy
+world-map
+world-map-fill
+xcomposite-projection
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-window&-rgb24.txt b/.gitlab-ci/ignore-xcb-window&-rgb24.txt
index ad655e852..f0137c1c2 100644
--- a/.gitlab-ci/ignore-xcb-window&-rgb24.txt
+++ b/.gitlab-ci/ignore-xcb-window&-rgb24.txt
@@ -1 +1,115 @@
-arc-looping-dash,bug-spline,bug-51910,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-outer-focus,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-p
 aint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-su
 bpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+arc-looping-dash
+bug-spline
+bug-51910
+caps-2
+caps-1
+caps-05
+caps-joins-2
+caps-joins-1
+caps-joins-05
+clear-source
+clip-operator
+clip-text
+coverage-rectangles
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-row-triangles
+coverage-column-triangles
+coverage-triangles
+coverage-abutting
+culled-glyphs
+extended-blend-alpha-mask
+fallback
+fill-image
+filter-bilinear-extents
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+inverse-text
+linear-gradient
+linear-gradient-subset
+mask
+mask-transformed-image
+mask-transformed-similar
+operator-alpha-alpha
+operator-clear
+operator-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+push-group
+push-group-color
+radial-outer-focus
+record-self-intersecting
+record1414x-fill-alpha
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-fill-alpha
+record90-self-intersecting
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-self-intersecting
+recordflip-paint-alpha-clip-mask
+recordflip-fill-alpha
+recordflip-self-intersecting
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+recording-surface-extend-pad
+reflected-stroke
+rotated-clip
+select-font-face
+stroke-clipped
+stroke-image
+show-glyphs-advance
+show-text-current-point
+simple-edge
+smask
+smask-fill
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smp-glyph
+subsurface
+subsurface-scale
+surface-pattern-operator
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-rotate
+text-transform
+tighten-bounds
+trap-clip
+twin
+twin-antialias-gray
+twin-antialias-none
+twin-antialias-subpixel
+unantialiased-shapes
+unbounded-operator
+xcomposite-projection
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-window-rgb24.txt b/.gitlab-ci/ignore-xcb-window-rgb24.txt
index ad655e852..f0137c1c2 100644
--- a/.gitlab-ci/ignore-xcb-window-rgb24.txt
+++ b/.gitlab-ci/ignore-xcb-window-rgb24.txt
@@ -1 +1,115 @@
-arc-looping-dash,bug-spline,bug-51910,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-outer-focus,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-p
 aint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-su
 bpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+arc-looping-dash
+bug-spline
+bug-51910
+caps-2
+caps-1
+caps-05
+caps-joins-2
+caps-joins-1
+caps-joins-05
+clear-source
+clip-operator
+clip-text
+coverage-rectangles
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-row-triangles
+coverage-column-triangles
+coverage-triangles
+coverage-abutting
+culled-glyphs
+extended-blend-alpha-mask
+fallback
+fill-image
+filter-bilinear-extents
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+inverse-text
+linear-gradient
+linear-gradient-subset
+mask
+mask-transformed-image
+mask-transformed-similar
+operator-alpha-alpha
+operator-clear
+operator-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+push-group
+push-group-color
+radial-outer-focus
+record-self-intersecting
+record1414x-fill-alpha
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-fill-alpha
+record90-self-intersecting
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-self-intersecting
+recordflip-paint-alpha-clip-mask
+recordflip-fill-alpha
+recordflip-self-intersecting
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+recording-surface-extend-pad
+reflected-stroke
+rotated-clip
+select-font-face
+stroke-clipped
+stroke-image
+show-glyphs-advance
+show-text-current-point
+simple-edge
+smask
+smask-fill
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smp-glyph
+subsurface
+subsurface-scale
+surface-pattern-operator
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-rotate
+text-transform
+tighten-bounds
+trap-clip
+twin
+twin-antialias-gray
+twin-antialias-none
+twin-antialias-subpixel
+unantialiased-shapes
+unbounded-operator
+xcomposite-projection
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-argb32.txt b/.gitlab-ci/ignore-xlib-argb32.txt
index 9ea528ad2..914a7c1bf 100644
--- a/.gitlab-ci/ignore-xlib-argb32.txt
+++ b/.gitlab-ci/ignore-xlib-argb32.txt
@@ -1 +1,127 @@
-aliasing,arc-looping-dash,bug-spline,bug-84115,bug-extents,bug-image-compositor,caps-joins-curve,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rhombus,coverage-column-triangles,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-alpha-mask,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,halo,halo-transform,hatchings,joins,joins-loop,joins-retrace,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,long-dashed-lines,new-sub-path,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,path-stroke-twice,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,record-select-font
 -face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-extend-repeat,recording-surface-extend-pad,reflected-stroke,rel-path,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar
 ,stroke-clipped,stroke-image,show-glyphs-advance,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-stroke,smask-text,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,user-font,user-font-proxy,world-map,world-map-stroke,pthread-show-text,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+aliasing
+arc-looping-dash
+bug-spline
+bug-84115
+bug-extents
+bug-image-compositor
+caps-joins-curve
+clip-disjoint
+clip-stroke-unbounded
+clip-operator
+clip-shape
+clip-stroke
+clip-text
+close-path-current-point
+coverage-rhombus
+coverage-column-triangles
+culled-glyphs
+dash-caps-joins
+dash-curve
+dash-scale
+degenerate-curve-to
+degenerate-pen
+degenerate-rel-curve-to
+drunkard-tails
+extended-blend-alpha-mask
+fill-and-stroke
+fill-and-stroke-alpha
+fill-and-stroke-alpha-add
+fill-image
+halo
+halo-transform
+hatchings
+joins
+joins-loop
+joins-retrace
+large-twin-antialias-mixed
+leaky-dashed-stroke
+line-width-scale
+line-width-tolerance
+long-dashed-lines
+new-sub-path
+operator-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+path-stroke-twice
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-outer-focus
+random-clip
+random-intersections-eo
+random-intersections-nonzero
+random-intersections-curves-eo
+random-intersections-curves-nz
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record2x-select-font-face
+record2x-text-transform
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+recordflip-paint-alpha-clip-mask
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-none
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-extend-repeat
+recording-surface-extend-pad
+reflected-stroke
+rel-path
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+stroke-clipped
+stroke-image
+show-glyphs-advance
+shape-general-convex
+shape-sierpinski
+simple-edge
+smask
+smask-stroke
+smask-text
+spline-decomposition
+stroke-pattern
+subsurface
+subsurface-scale
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+tighten-bounds
+twin
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-none
+twin-antialias-subpixel
+unclosed-strokes
+user-font
+user-font-proxy
+world-map
+world-map-stroke
+pthread-show-text
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-fallback-rgb24.txt b/.gitlab-ci/ignore-xlib-fallback-rgb24.txt
index b1f31afa8..f308f68c2 100644
--- a/.gitlab-ci/ignore-xlib-fallback-rgb24.txt
+++ b/.gitlab-ci/ignore-xlib-fallback-rgb24.txt
@@ -1 +1,108 @@
-arc-looping-dash,bug-51910,bug-seams,caps,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,caps-joins-curve,caps-sub-paths,clear-source,clip-disjoint-quad,clip-image,clip-mixed-antialias,clip-push-group,clip-polygons,clip-text,close-path,close-path-current-point,copy-path,coverage-intersecting-quads,coverage-abutting,culled-glyphs,dash-caps-joins,dash-infinite-loop,dash-scale,dash-zero-length,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,extended-blend-alpha-mask,fallback,filter-bilinear-extents,finer-grained-fallbacks,font-matrix-translation,glyph-cache-pressure,halo-transform,infinite-join,inverse-text,joins,large-twin-antialias-mixed,leaky-dashed-stroke,leaky-polygon,line-width-scale,line-width-tolerance,long-dashed-lines,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,over-above-source,over-around-source,over-between-source,overlapping-glyphs,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage
 -three-quarter-reference,path-stroke-twice,push-group-color,record1414x-select-font-face,record1414x-text-transform,recording-surface-over,recording-surface-extend-none,rectilinear-miter-limit,reflected-stroke,stroke-ctm-caps,select-font-face,self-copy,shifted-operator,show-glyphs-advance,show-text-current-point,smask,smask-image-mask,smask-mask,smask-paint,smask-text,smp-glyph,subsurface,subsurface-scale,surface-pattern-scale-down-extend-none,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,transforms,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,xcomposite-projection,pthread-show-text,pthread-similar,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+arc-looping-dash
+bug-51910
+bug-seams
+caps
+caps-2
+caps-1
+caps-05
+caps-joins-2
+caps-joins-1
+caps-joins-05
+caps-joins-curve
+caps-sub-paths
+clear-source
+clip-disjoint-quad
+clip-image
+clip-mixed-antialias
+clip-push-group
+clip-polygons
+clip-text
+close-path
+close-path-current-point
+copy-path
+coverage-intersecting-quads
+coverage-abutting
+culled-glyphs
+dash-caps-joins
+dash-infinite-loop
+dash-scale
+dash-zero-length
+degenerate-curve-to
+degenerate-pen
+degenerate-rel-curve-to
+extended-blend-alpha-mask
+fallback
+filter-bilinear-extents
+finer-grained-fallbacks
+font-matrix-translation
+glyph-cache-pressure
+halo-transform
+infinite-join
+inverse-text
+joins
+large-twin-antialias-mixed
+leaky-dashed-stroke
+leaky-polygon
+line-width-scale
+line-width-tolerance
+long-dashed-lines
+mask-transformed-image
+mask-transformed-similar
+operator-alpha-alpha
+over-above-source
+over-around-source
+over-between-source
+overlapping-glyphs
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+path-stroke-twice
+push-group-color
+record1414x-select-font-face
+record1414x-text-transform
+recording-surface-over
+recording-surface-extend-none
+rectilinear-miter-limit
+reflected-stroke
+stroke-ctm-caps
+select-font-face
+self-copy
+shifted-operator
+show-glyphs-advance
+show-text-current-point
+smask
+smask-image-mask
+smask-mask
+smask-paint
+smask-text
+smp-glyph
+subsurface
+subsurface-scale
+surface-pattern-scale-down-extend-none
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+transforms
+twin
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-none
+twin-antialias-subpixel
+unclosed-strokes
+xcomposite-projection
+pthread-show-text
+pthread-similar
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt b/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt
index ab55902d1..fb2c53607 100644
--- a/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt
+++ b/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt
@@ -1 +1,54 @@
-caps-sub-paths,clear-source,clip-operator,clip-push-group,clip-text,clipped-group,coverage-intersecting-triangles,culled-glyphs,curve-to-as-line-to,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,finer-grained-fallbacks,halo-transform,horizontal-clip,infinite-join,large-twin-antialias-mixed,leaky-polygon,mask,operator-clear,operator-source,overlapping-glyphs,radial-outer-focus,record1414x-select-font-face,record1414x-text-transform,rectilinear-miter-limit,rectilinear-stroke,rel-path,show-glyphs-advance,smask,smask-text,subsurface,subsurface-scale,surface-pattern-operator,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,pthread-show-text,ft-show-glyphs-positioning,ft-text-vertic
 al-layout-type1,ft-text-vertical-layout-type3
+caps-sub-paths
+clear-source
+clip-operator
+clip-push-group
+clip-text
+clipped-group
+coverage-intersecting-triangles
+culled-glyphs
+curve-to-as-line-to
+extended-blend-alpha-mask
+fallback
+fill-and-stroke
+fill-and-stroke-alpha
+fill-and-stroke-alpha-add
+finer-grained-fallbacks
+halo-transform
+horizontal-clip
+infinite-join
+large-twin-antialias-mixed
+leaky-polygon
+mask
+operator-clear
+operator-source
+overlapping-glyphs
+radial-outer-focus
+record1414x-select-font-face
+record1414x-text-transform
+rectilinear-miter-limit
+rectilinear-stroke
+rel-path
+show-glyphs-advance
+smask
+smask-text
+subsurface
+subsurface-scale
+surface-pattern-operator
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-pattern
+text-rotate
+text-unhinted-metrics
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-none
+twin-antialias-subpixel
+unbounded-operator
+pthread-show-text
+ft-show-glyphs-positioning
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-rgb24.txt b/.gitlab-ci/ignore-xlib-rgb24.txt
index 568cf5e8b..144bbf2ad 100644
--- a/.gitlab-ci/ignore-xlib-rgb24.txt
+++ b/.gitlab-ci/ignore-xlib-rgb24.txt
@@ -1 +1,185 @@
-aliasing,arc-looping-dash,bug-spline,bug-51910,bug-84115,bug-source-cu,bug-extents,bug-image-compositor,caps-joins-05,caps-joins-curve,caps-tails-curve,clear-source,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rhombus,coverage-column-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-mask,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,hatchings,infinite-join,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-font,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,linear-gradient,linear-gradient-subset,long-dashed-lines,mask,mask-transformed-image,mask-transformed-similar,miter-precision,new-sub-path,oper
 ator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fi
 ll-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rel-path,rotated-clip,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-clipped,stroke-image,select-font-face,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,smp-glyph,spline-decomposition,stroke-pattern,subsurface
 ,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,user-font,user-font-proxy,world-map,world-map-stroke,world-map-fill,xcomposite-projection,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+aliasing
+arc-looping-dash
+bug-spline
+bug-51910
+bug-84115
+bug-source-cu
+bug-extents
+bug-image-compositor
+caps-joins-05
+caps-joins-curve
+caps-tails-curve
+clear-source
+clip-disjoint
+clip-stroke-unbounded
+clip-operator
+clip-shape
+clip-stroke
+clip-text
+close-path-current-point
+coverage-rhombus
+coverage-column-triangles
+coverage-abutting
+culled-glyphs
+dash-caps-joins
+dash-curve
+dash-scale
+degenerate-curve-to
+degenerate-pen
+degenerate-rel-curve-to
+drunkard-tails
+extended-blend-mask
+extended-blend-alpha-mask
+fallback
+fill-and-stroke
+fill-and-stroke-alpha
+fill-and-stroke-alpha-add
+fill-image
+filter-bilinear-extents
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+hatchings
+infinite-join
+inverse-text
+joins
+joins-loop
+joins-star
+joins-retrace
+large-font
+large-twin-antialias-mixed
+leaky-dashed-stroke
+line-width-scale
+line-width-tolerance
+linear-gradient
+linear-gradient-subset
+long-dashed-lines
+mask
+mask-transformed-image
+mask-transformed-similar
+miter-precision
+new-sub-path
+operator-alpha-alpha
+operator-clear
+operator-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+path-stroke-twice
+push-group
+push-group-color
+radial-gradient
+radial-gradient-mask
+radial-gradient-source
+radial-gradient-mask-source
+radial-outer-focus
+random-clip
+random-intersections-eo
+random-intersections-nonzero
+random-intersections-curves-eo
+random-intersections-curves-nz
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record2x-select-font-face
+record2x-text-transform
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-fill-alpha
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+recordflip-paint-alpha-clip-mask
+recordflip-fill-alpha
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-none
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+recording-surface-extend-pad
+reflected-stroke
+rel-path
+rotated-clip
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+stroke-ctm-caps
+stroke-clipped
+stroke-image
+select-font-face
+shifted-operator
+show-glyphs-advance
+show-text-current-point
+shape-general-convex
+shape-sierpinski
+simple-edge
+smask
+smask-fill
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smask-text
+smp-glyph
+spline-decomposition
+stroke-pattern
+subsurface
+subsurface-scale
+surface-pattern-operator
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+tighten-bounds
+trap-clip
+twin
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-none
+twin-antialias-subpixel
+unbounded-operator
+unclosed-strokes
+user-font
+user-font-proxy
+world-map
+world-map-stroke
+world-map-fill
+xcomposite-projection
+pthread-show-text
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-window-rgb24.txt b/.gitlab-ci/ignore-xlib-window-rgb24.txt
index 304fe0c24..7501b8c11 100644
--- a/.gitlab-ci/ignore-xlib-window-rgb24.txt
+++ b/.gitlab-ci/ignore-xlib-window-rgb24.txt
@@ -1 +1,167 @@
-aliasing,arc-looping-dash,bug-spline,bug-51910,bug-extents,caps-joins-05,caps-joins-curve,clear-source,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-mask,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,infinite-join,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,linear-gradient,linear-gradient-subset,long-dashed-lines,mask,mask-transformed-image,mask-transformed-similar,miter-precision,new-su
 b-path,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group,push-group-color,radial-outer-focus,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-
 self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rel-path,rotated-clip,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-clipped,stroke-image,select-font-face,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,smp-glyph,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-
 vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,xcomposite-projection,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+aliasing
+arc-looping-dash
+bug-spline
+bug-51910
+bug-extents
+caps-joins-05
+caps-joins-curve
+clear-source
+clip-disjoint
+clip-stroke-unbounded
+clip-operator
+clip-shape
+clip-stroke
+clip-text
+close-path-current-point
+coverage-rectangles
+coverage-intersecting-quads
+coverage-intersecting-triangles
+coverage-row-triangles
+coverage-column-triangles
+coverage-triangles
+coverage-abutting
+culled-glyphs
+dash-caps-joins
+dash-scale
+degenerate-curve-to
+degenerate-pen
+degenerate-rel-curve-to
+drunkard-tails
+extended-blend-mask
+extended-blend-alpha-mask
+fallback
+fill-and-stroke
+fill-and-stroke-alpha
+fill-and-stroke-alpha-add
+fill-image
+filter-bilinear-extents
+font-matrix-translation
+glyph-cache-pressure
+halo
+halo-transform
+infinite-join
+inverse-text
+joins
+joins-loop
+joins-star
+joins-retrace
+large-twin-antialias-mixed
+leaky-dashed-stroke
+line-width-scale
+line-width-tolerance
+linear-gradient
+linear-gradient-subset
+long-dashed-lines
+mask
+mask-transformed-image
+mask-transformed-similar
+miter-precision
+new-sub-path
+operator-alpha-alpha
+operator-clear
+operator-source
+overlapping-boxes
+overlapping-glyphs
+overlapping-dash-caps
+partial-clip-text-bottom
+partial-clip-text-left
+partial-coverage-reference
+partial-coverage-three-quarter-reference
+path-stroke-twice
+push-group
+push-group-color
+radial-outer-focus
+record-select-font-face
+record-self-intersecting
+record-text-transform
+record1414x-fill-alpha
+record1414x-select-font-face
+record1414x-self-intersecting
+record1414x-text-transform
+record2x-paint-alpha-clip-mask
+record2x-fill-alpha
+record2x-select-font-face
+record2x-text-transform
+record90-paint-alpha-solid-clip
+record90-paint-alpha-clip
+record90-fill-alpha
+record90-select-font-face
+record90-self-intersecting
+record90-text-transform
+recordflip-whole-paint-alpha-clip-mask
+recordflip-whole-fill-alpha
+recordflip-whole-select-font-face
+recordflip-whole-self-intersecting
+recordflip-whole-text-transform
+recordflip-paint-alpha-clip-mask
+recordflip-fill-alpha
+recordflip-select-font-face
+recordflip-self-intersecting
+recordflip-text-transform
+record-neg-extents-unbounded
+record-neg-extents-bounded
+record-replay-extend-none
+record-replay-extend-repeat
+record-replay-extend-reflect
+record-replay-extend-pad
+recording-surface-over
+recording-surface-source
+recording-surface-extend-none
+recording-surface-extend-repeat
+recording-surface-extend-reflect
+recording-surface-extend-pad
+reflected-stroke
+rel-path
+rotated-clip
+rounded-rectangle-stroke
+scale-offset-image
+scale-offset-similar
+stroke-ctm-caps
+stroke-clipped
+stroke-image
+select-font-face
+shifted-operator
+show-glyphs-advance
+show-text-current-point
+shape-general-convex
+simple-edge
+smask
+smask-fill
+smask-image-mask
+smask-mask
+smask-paint
+smask-stroke
+smask-text
+smp-glyph
+spline-decomposition
+stroke-pattern
+subsurface
+subsurface-scale
+surface-pattern-operator
+surface-pattern-scale-up
+text-antialias-gray
+text-antialias-subpixel
+text-antialias-subpixel-rgb
+text-antialias-subpixel-bgr
+text-antialias-subpixel-vrgb
+text-antialias-subpixel-vbgr
+text-glyph-range
+text-pattern
+text-rotate
+text-transform
+text-unhinted-metrics
+tighten-bounds
+trap-clip
+twin
+twin-antialias-gray
+twin-antialias-mixed
+twin-antialias-none
+twin-antialias-subpixel
+unbounded-operator
+unclosed-strokes
+xcomposite-projection
+pthread-show-text
+ft-show-glyphs-positioning
+ft-show-glyphs-table
+ft-text-vertical-layout-type1
+ft-text-vertical-layout-type3
commit 9c9883cac0052c4786cd244b9a27c60d9d76245f
Author: Uli Schlachter <psychon at znc.in>
Date:   Thu Jun 3 17:13:57 2021 +0200

    Rename a file
    
    Because shell variables cannot contain &, this character was replaced
    with an underscore in the shell variable. However, we can have this
    character just fine in the file name. Thus, this commits renames a file
    to actually include the proper name of the boilerplate target, which is
    xcb-window&.
    
    Signed-off-by: Uli Schlachter <psychon at znc.in>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0af4fbe39..1eb93e5bd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -117,7 +117,7 @@ fedora autotools build:
     - export CAIRO_TEST_IGNORE_xcb_argb32=$(cat .gitlab-ci/ignore-xcb-argb32.txt)
     - export CAIRO_TEST_IGNORE_xcb_rgb24=$(cat .gitlab-ci/ignore-xcb-rgb24.txt)
     - export CAIRO_TEST_IGNORE_xcb_window_rgb24=$(cat .gitlab-ci/ignore-xcb-window-rgb24.txt)
-    - export CAIRO_TEST_IGNORE_xcb_window__rgb24=$(cat .gitlab-ci/ignore-xcb-window--rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_window__rgb24=$(cat '.gitlab-ci/ignore-xcb-window&-rgb24.txt')
     - export CAIRO_TEST_IGNORE_xcb_render_0_0_argb32=$(cat .gitlab-ci/ignore-xcb-render-0-0-argb32.txt)
     - export CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24=$(cat .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt)
     - export CAIRO_TEST_IGNORE_xcb_fallback_rgb24=$(cat .gitlab-ci/ignore-xcb-fallback-rgb24.txt)
diff --git a/.gitlab-ci/ignore-xcb-window--rgb24.txt b/.gitlab-ci/ignore-xcb-window&-rgb24.txt
similarity index 100%
rename from .gitlab-ci/ignore-xcb-window--rgb24.txt
rename to .gitlab-ci/ignore-xcb-window&-rgb24.txt
commit 04697b33af759adab35603dab96fca8de83d650b
Author: Uli Schlachter <psychon at znc.in>
Date:   Thu Jun 3 17:09:08 2021 +0200

    Move test failure lists into separate files
    
    Before this commit, .gitlab-ci.yml is way too large, because it contains
    the list with all the expected test failure. This commit moves those
    lists to extra files.
    
    The files were generated with a shell one-liner:
    
      grep CAIRO_TEST_IGNORE .gitlab-ci.yml | while read line ; do
      backend=$(echo $line | cut -f 3 -d ' ' | cut -f1 -d= | sed -e
      's/CAIRO_TEST_IGNORE_//;s/_/-/g') ; content=$(echo $line | cut -f2-
      -d=) ; echo $backend ; echo $content >
      .gitlab-ci/ignore-${backend}.txt ; done
    
    The changes to .gitlab-ci.yml were also generated with some shell
    scripting that generates a sed argument:
    
      grep CAIRO_TEST_IGNORE .gitlab-ci.yml | while read line ; do
      backend=$(echo $line | cut -f 3 -d ' ' | cut -f1 -d= ) ; file=$(echo
      $backend | sed -e 's/CAIRO_TEST_IGNORE_//;s/_/-/g') ; printf
      "/$backend/s#=.*#=\$(cat .gitlab-ci/ignore-${file}.txt)#;"; done ;
      echo
    
    The above can then be applied via (but of course adding ' around it and
    I also left out the final ;):
    
      sed -i -e [the output of the above] .gitlab-ci.yml
    
    Just for completeness, [the output of the above] is:
    
      /CAIRO_TEST_IGNORE_pdf_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-pdf-argb32.txt)#;/CAIRO_TEST_IGNORE_pdf_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-pdf-rgb24.txt)#;/CAIRO_TEST_IGNORE_script_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-script-argb32.txt)#;/CAIRO_TEST_IGNORE_image_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-image-argb32.txt)#;/CAIRO_TEST_IGNORE_image_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-image-rgb24.txt)#;/CAIRO_TEST_IGNORE_image16_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-image16-rgb24.txt)#;/CAIRO_TEST_IGNORE_recording_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-recording-argb32.txt)#;/CAIRO_TEST_IGNORE_recording_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-recording-rgb24.txt)#;/CAIRO_TEST_IGNORE_svg11_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-svg11-argb32.txt)#;/CAIRO_TEST_IGNORE_svg11_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-svg11-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-argb32.txt)#;/CAIRO_TEST_IGNORE_xcb_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_window_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-window-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_window__rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-window--rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_render_0_0_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-render-0-0-argb32.txt)#;/CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt)#;/CAIRO_TEST_IGNORE_xcb_fallback_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xcb-fallback-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-xlib-argb32.txt)#;/CAIRO_TEST_IGNORE_xlib_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xlib-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_window_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xlib-window-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_render_0_0_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt)#;/CAIRO_TEST_IGNORE_xlib_fallback_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-xlib-fallback-rgb24.txt)#;/CAIRO_TEST_IGNORE_quartz_argb32/s#=.*#=$(cat
      .gitlab-ci/ignore-quartz-argb32.txt)#;/CAIRO_TEST_IGNORE_quartz_rgb24/s#=.*#=$(cat
      .gitlab-ci/ignore-quartz-rgb24.txt)#;
    
    (All line breaks are only added for readability and are not part of the
    one-liners)
    
    Signed-off-by: Uli Schlachter <psychon at znc.in>

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c05529df9..0af4fbe39 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -104,28 +104,28 @@ fedora autotools build:
     # Current test failures that we ignore for now
     - export CAIRO_TEST_UGLY_HACK_TO_SOMETIMES_IGNORE_SCRIPT_XCB_HUGE_IMAGE_SHM=1
     - export CAIRO_TEST_UGLY_HACK_TO_IGNORE_CREATE_FOR_STREAM=1
-    - export CAIRO_TEST_IGNORE_pdf_argb32=bug-image-compositor,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend,extended-blend-solid,fallback,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,record1414x-select-font-face,record1414x-text-transform,record2x-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,recording-surface-exte
 nd-reflect,rectilinear-miter-limit,rectilinear-dash,rectilinear-stroke,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,thin-lines,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_pdf_rgb24=bug-image-compositor,clear-source,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,random-intersections-curves-eo,random-intersections-curves-nz,record-paint-alpha-clip,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record14
 14x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,rectilinear-miter-limit,rectilinear-dash,rectilinear-stroke,rel-path,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-
 layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_script_argb32=a1-bug,a1-fill,arc-looping-dash,bilevel-image,bug-51910,bug-84115,bug-seams,caps,caps-2,caps-1,caps-05,checkerboard,caps-joins-2,caps-joins-1,caps-joins-05,caps-joins-curve,caps-tails-curve,caps-sub-paths,clear-source,clip-disjoint-quad,clip-device-offset,clip-image,clip-mixed-antialias,clip-push-group,clip-polygons,clip-text,close-path,close-path-current-point,composite-integer-translate-over-repeat,copy-path,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-infinite-loop,dash-scale,dash-state,degenerate-curve-to,degenerate-linear-gradient,degenerate-pen,degenerate-radial-gradient,degenerate-rel-curve-to,device-offset-scale,extend-pad-border,fill-and-stroke-alpha,fill-and-stroke-alpha-add,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,huge-radial,image-surface-source,xcb-surface-source,xlib-surface-sourc
 e,infinite-join,inverse-text,joins,large-font,large-source,large-twin-antialias-mixed,leaky-dashed-rectangle,leaky-dashed-stroke,leaky-polygon,line-width-scale,line-width-tolerance,linear-gradient-extend,linear-gradient-reflect,long-dashed-lines,map-all-to-image,map-bit-to-image,map-to-image-fill,mask-transformed-image,mask-transformed-similar,mesh-pattern,mesh-pattern-conical,mesh-pattern-control-points,mesh-pattern-fold,mesh-pattern-overlap,mesh-pattern-transformed,negative-stride-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-solid-clip,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,partial-coverage-half-reference,path-stroke-twice,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,radial-gradient-extend,record-paint-alpha-solid-clip,record-paint-alpha-clip,reco
 rd-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-solid-clip,record1414x-paint-alpha-clip,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-solid-clip,record2x-paint-alpha-clip,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-miter-limit,reflected-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,shape-sierpinski,smask,
 smask-image-mask,smask-mask,smask-paint,smask-text,stride-12-image,subsurface,subsurface-scale,surface-pattern,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,transforms,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,user-font,user-font-proxy,user-font-rescale,world-map,world-map-stroke,world-map-fill,xcb-stress-cache,xcomposite-projection,pthread-show-text,bitmap-font,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3,ft-text-antialias-none,pdf-surface-source,ps-surface-source
-    - export CAIRO_TEST_IGNORE_image_argb32=clip-text,culled-glyphs,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_image_rgb24=clip-text,culled-glyphs,extended-blend-alpha-mask,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,shifted-operator,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_image16_rgb24=a1-bug,aliasing,arc-direction,arc-looping-dash,big-line,bug-spline,bug-84115,bug-bo-ricotz,bug-source-cu,bug-extents,bug-seams,bug-image-compositor,caps,caps-2,caps-05,caps-joins-2,caps-joins-alpha,caps-joins-curve,caps-tails-curve,clear-source,clip-disjoint,clip-disjoint-quad,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-fill,clip-image,clip-intersect,clip-operator,clip-push-group,clip-shape,clip-stroke,clip-text,clip-twice,close-path-current-point,copy-path,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,dash-state,dash-zero-length,degenerate-arc,degenerate-curve-to,degenerate-path,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extend-pad-border,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alph
 a-mask,extended-blend-solid,extended-blend-solid-alpha,fallback,fill-alpha,fill-alpha-pattern,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-degenerate-sort-order,fill-image,fill-missed-stop,fill-rule,filter-bilinear-extents,finer-grained-fallbacks,font-matrix-translation,glyph-cache-pressure,gradient-alpha,gradient-constant-alpha,group-unaligned,halo,halo-transform,hatchings,huge-linear,huge-radial,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-font,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-overlap-offset,line-width-scale,linear-gradient,linear-gradient-reflect,linear-gradient-subset,long-dashed-lines,mask,mask-alpha,mask-ctm,mask-surface-ctm,mask-transformed-image,mask-transformed-similar,mesh-pattern,mesh-pattern-conical,mesh-pattern-control-points,mesh-pattern-fold,mesh-pattern-overlap,mesh-pattern-transformed,new-sub-path,operator-source,over-around-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,paint-source
 -alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,partial-coverage-reference,partial-coverage-three-quarter-reference,pass-through,path-append,path-stroke-twice,pdf-isolated-group,pixman-downscale-fast-96,pixman-downscale-good-96,pixman-downscale-best-96,pixman-downscale-best-24,pixman-downscale-nearest-96,pixman-downscale-bilinear-96,pixman-rotate,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,raster-source,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-al
 pha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-dash-scale-unaligned,reflected-stroke,rel-path,rotate-clip-image-surface-paint,rotated-clip,rounded-rect
 angle-fill,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-image,select-font-face,set-source,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-fill,smask-mask,smask-paint,smask-stroke,smask-text,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,tiger,a1-tiger,transforms,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,user-font,user-font-mask,user-font-proxy,user-font-rescale,world-map,world-map-stroke,world-map-fill,xcb-huge-image-shm,xcb-huge-subimage,
 xcomposite-projection,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_recording_argb32=bug-source-cu,clear-source,clip-text,coverage-rectangles,culled-glyphs,finer-grained-fallbacks,halo-transform,overlapping-glyphs,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-text-transform,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,scale-offset-similar,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,pthread-same-source,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_recording_rgb24=bug-source-cu,clear-source,clip-text,coverage-rectangles,culled-glyphs,extended-blend-alpha-mask,finer-grained-fallbacks,halo-transform,overlapping-glyphs,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-text-transform,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,scale-offset-similar,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,pthread-same-source,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_svg11_argb32=alpha-similar,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend-solid,extended-blend-solid-alpha,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,halo-transform,linear-gradient-reflect,mask-transformed-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,radial-gradient,radial-gradient-mask,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-
 alpha-clip-mask,scale-offset-image,scale-source-surface-paint,self-copy,show-glyphs-advance,smask,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,surface-pattern,surface-pattern-operator,surface-pattern-scale-up,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,unbounded-operator,pthread-similar,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_svg11_rgb24=alpha-similar,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,gradient-alpha,gradient-constant-alpha,halo-transform,linear-gradient-reflect,mask,mask-transformed-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,recordflip-whole-paint-alpha,recordflip-whole-pain
 t-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,scale-offset-image,scale-source-surface-paint,self-copy,show-glyphs-advance,smask,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,surface-pattern,surface-pattern-operator,surface-pattern-scale-up,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,unbounded-operator,pthread-similar,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xcb_argb32=bug-spline,clip-operator,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,culled-glyphs,fill-image,halo,halo-transform,hatchings,operator-source,overlapping-boxes,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-extend-repeat,recording
 -surface-extend-pad,rotated-clip,stroke-clipped,stroke-image,simple-edge,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-rotate,tighten-bounds,a1-tiger,twin-antialias-none,unantialiased-shapes,user-font,user-font-proxy,ft-text-vertical-layout-type1
-    - export CAIRO_TEST_IGNORE_xcb_rgb24=arc-looping-dash,bug-spline,bug-51910,bug-84115,bug-source-cu,bug-image-compositor,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-curve,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,hatchings,inverse-text,large-font,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradie
 nt-source,radial-gradient-mask-source,radial-outer-focus,random-clip,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-
 mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,a1-tiger,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,user-font,user-font-proxy,world-map,world-map-fill,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xcb_window_rgb24=arc-looping-dash,bug-spline,bug-51910,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-outer-focus,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-pain
 t-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-r
 gb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xcb_window__rgb24=arc-looping-dash,bug-spline,bug-51910,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-outer-focus,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-pai
 nt-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-
 rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xcb_render_0_0_argb32=clip-disjoint-hatching,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-operator,clip-polygons,clip-shape,clip-twice,coverage-intersecting-triangles,culled-glyphs,hatchings,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,record-paint-alpha-solid-clip,record1414x-select-font-face,record1414x-text-transform,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,rotated-clip,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,trap-clip,ft-text-vertical-layout-type1
-    - export CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24=clip-disjoint-hatching,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-operator,clip-polygons,clip-shape,clip-twice,coverage-intersecting-triangles,culled-glyphs,extended-blend-alpha-mask,fallback,hatchings,mask,operator-source,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,record-paint-alpha-solid-clip,record1414x-select-font-face,record1414x-text-transform,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-none,rotated-clip,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,trap-clip,ft-text-vertical-layout-type1
-    - export CAIRO_TEST_IGNORE_xcb_fallback_rgb24=clip-text,coverage-intersecting-triangles,culled-glyphs,extended-blend-alpha-mask,fallback,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xlib_argb32=aliasing,arc-looping-dash,bug-spline,bug-84115,bug-extents,bug-image-compositor,caps-joins-curve,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rhombus,coverage-column-triangles,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-alpha-mask,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,halo,halo-transform,hatchings,joins,joins-loop,joins-retrace,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,long-dashed-lines,new-sub-path,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,path-stroke-twice,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random
 -intersections-curves-nz,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-extend-repeat,recording-surface-extend-pad,reflected-stroke,rel-path,rounded-rectangle-str
 oke,scale-offset-image,scale-offset-similar,stroke-clipped,stroke-image,show-glyphs-advance,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-stroke,smask-text,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,user-font,user-font-proxy,world-map,world-map-stroke,pthread-show-text,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xlib_rgb24=aliasing,arc-looping-dash,bug-spline,bug-51910,bug-84115,bug-source-cu,bug-extents,bug-image-compositor,caps-joins-05,caps-joins-curve,caps-tails-curve,clear-source,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rhombus,coverage-column-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-mask,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,hatchings,infinite-join,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-font,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,linear-gradient,linear-gradient-subset,long-dashed-lines,mask,mask-transformed-image,mask-transformed
 -similar,miter-precision,new-sub-path,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole
 -paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rel-path,rotated-clip,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-clipped,stroke-image,select-font-face,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,smp-glyph,spli
 ne-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,user-font,user-font-proxy,world-map,world-map-stroke,world-map-fill,xcomposite-projection,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xlib_window_rgb24=aliasing,arc-looping-dash,bug-spline,bug-51910,bug-extents,caps-joins-05,caps-joins-curve,clear-source,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-mask,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,infinite-join,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,linear-gradient,linear-gradient-subset,long-dashed-lines,mask,mask-transformed-imag
 e,mask-transformed-similar,miter-precision,new-sub-path,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group,push-group-color,radial-outer-focus,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-f
 ill-alpha,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rel-path,rotated-clip,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-clipped,stroke-image,select-font-face,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,smp-glyph,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text
 -antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,xcomposite-projection,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xlib_render_0_0_rgb24=caps-sub-paths,clear-source,clip-operator,clip-push-group,clip-text,clipped-group,coverage-intersecting-triangles,culled-glyphs,curve-to-as-line-to,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,finer-grained-fallbacks,halo-transform,horizontal-clip,infinite-join,large-twin-antialias-mixed,leaky-polygon,mask,operator-clear,operator-source,overlapping-glyphs,radial-outer-focus,record1414x-select-font-face,record1414x-text-transform,rectilinear-miter-limit,rectilinear-stroke,rel-path,show-glyphs-advance,smask,smask-text,subsurface,subsurface-scale,surface-pattern-operator,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,pthrea
 d-show-text,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_xlib_fallback_rgb24=arc-looping-dash,bug-51910,bug-seams,caps,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,caps-joins-curve,caps-sub-paths,clear-source,clip-disjoint-quad,clip-image,clip-mixed-antialias,clip-push-group,clip-polygons,clip-text,close-path,close-path-current-point,copy-path,coverage-intersecting-quads,coverage-abutting,culled-glyphs,dash-caps-joins,dash-infinite-loop,dash-scale,dash-zero-length,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,extended-blend-alpha-mask,fallback,filter-bilinear-extents,finer-grained-fallbacks,font-matrix-translation,glyph-cache-pressure,halo-transform,infinite-join,inverse-text,joins,large-twin-antialias-mixed,leaky-dashed-stroke,leaky-polygon,line-width-scale,line-width-tolerance,long-dashed-lines,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,over-above-source,over-around-source,over-between-source,overlapping-glyphs,partial-clip-text-bottom,partial-clip-te
 xt-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group-color,record1414x-select-font-face,record1414x-text-transform,recording-surface-over,recording-surface-extend-none,rectilinear-miter-limit,reflected-stroke,stroke-ctm-caps,select-font-face,self-copy,shifted-operator,show-glyphs-advance,show-text-current-point,smask,smask-image-mask,smask-mask,smask-paint,smask-text,smp-glyph,subsurface,subsurface-scale,surface-pattern-scale-down-extend-none,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,transforms,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,xcomposite-projection,pthread-show-text,pthread-similar,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertic
 al-layout-type1,ft-text-vertical-layout-type3
+    - export CAIRO_TEST_IGNORE_pdf_argb32=$(cat .gitlab-ci/ignore-pdf-argb32.txt)
+    - export CAIRO_TEST_IGNORE_pdf_rgb24=$(cat .gitlab-ci/ignore-pdf-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_script_argb32=$(cat .gitlab-ci/ignore-script-argb32.txt)
+    - export CAIRO_TEST_IGNORE_image_argb32=$(cat .gitlab-ci/ignore-image-argb32.txt)
+    - export CAIRO_TEST_IGNORE_image_rgb24=$(cat .gitlab-ci/ignore-image-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_image16_rgb24=$(cat .gitlab-ci/ignore-image16-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_recording_argb32=$(cat .gitlab-ci/ignore-recording-argb32.txt)
+    - export CAIRO_TEST_IGNORE_recording_rgb24=$(cat .gitlab-ci/ignore-recording-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_svg11_argb32=$(cat .gitlab-ci/ignore-svg11-argb32.txt)
+    - export CAIRO_TEST_IGNORE_svg11_rgb24=$(cat .gitlab-ci/ignore-svg11-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_argb32=$(cat .gitlab-ci/ignore-xcb-argb32.txt)
+    - export CAIRO_TEST_IGNORE_xcb_rgb24=$(cat .gitlab-ci/ignore-xcb-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_window_rgb24=$(cat .gitlab-ci/ignore-xcb-window-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_window__rgb24=$(cat .gitlab-ci/ignore-xcb-window--rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_render_0_0_argb32=$(cat .gitlab-ci/ignore-xcb-render-0-0-argb32.txt)
+    - export CAIRO_TEST_IGNORE_xcb_render_0_0_rgb24=$(cat .gitlab-ci/ignore-xcb-render-0-0-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xcb_fallback_rgb24=$(cat .gitlab-ci/ignore-xcb-fallback-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_argb32=$(cat .gitlab-ci/ignore-xlib-argb32.txt)
+    - export CAIRO_TEST_IGNORE_xlib_rgb24=$(cat .gitlab-ci/ignore-xlib-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_window_rgb24=$(cat .gitlab-ci/ignore-xlib-window-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_render_0_0_rgb24=$(cat .gitlab-ci/ignore-xlib-render-0-0-rgb24.txt)
+    - export CAIRO_TEST_IGNORE_xlib_fallback_rgb24=$(cat .gitlab-ci/ignore-xlib-fallback-rgb24.txt)
     - export CAIRO_BOILERPLATE_OPEN_NO_DAEMON=1
     - export CAIRO_BOILERPLATE_DO_NOT_CRASH_ON_ANY2PPM_ERROR=1
     - export ANY2PPM="timeout 3m ./any2ppm"
@@ -288,7 +288,7 @@ meson macOS:
     - meson setup -Dpixman:tests=disabled build
     - meson compile --verbose -C build
     # Test cairo-quartz. Other backends should be covered by other jobs
-    - export CAIRO_TEST_IGNORE_quartz_argb32=bug-361,bug-431,bug-image-compositor,clip-operator,coverage-rhombus,culled-glyphs,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid-alpha,fallback,negative-stride-image,operator-www,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,simple-edge,subsurface,subsurface-outside-target,subsurface-scale,surface-pattern,text-antialias-subpix
 el,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-unhinted-metrics,user-font-proxy,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
-    - export CAIRO_TEST_IGNORE_quartz_rgb24=bug-361,bug-431,bug-448,bug-image-compositor,coverage-rhombus,culled-glyphs,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,negative-stride-image,operator-www,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,shifted-operator,simple-edge,subsurface,subsurface-sca
 le,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-unhinted-metrics,user-font-proxy,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
+    - export CAIRO_TEST_IGNORE_quartz_argb32=$(cat .gitlab-ci/ignore-quartz-argb32.txt)
+    - export CAIRO_TEST_IGNORE_quartz_rgb24=$(cat .gitlab-ci/ignore-quartz-rgb24.txt)
     - export CAIRO_TEST_TARGET=quartz
     - (cd build/test && srcdir=../../test ./cairo-test-suite)
diff --git a/.gitlab-ci/ignore-image-argb32.txt b/.gitlab-ci/ignore-image-argb32.txt
new file mode 100644
index 000000000..d906b2379
--- /dev/null
+++ b/.gitlab-ci/ignore-image-argb32.txt
@@ -0,0 +1 @@
+clip-text,culled-glyphs,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-image-rgb24.txt b/.gitlab-ci/ignore-image-rgb24.txt
new file mode 100644
index 000000000..c5e73feaa
--- /dev/null
+++ b/.gitlab-ci/ignore-image-rgb24.txt
@@ -0,0 +1 @@
+clip-text,culled-glyphs,extended-blend-alpha-mask,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,shifted-operator,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-image16-rgb24.txt b/.gitlab-ci/ignore-image16-rgb24.txt
new file mode 100644
index 000000000..eb8f8b2fe
--- /dev/null
+++ b/.gitlab-ci/ignore-image16-rgb24.txt
@@ -0,0 +1 @@
+a1-bug,aliasing,arc-direction,arc-looping-dash,big-line,bug-spline,bug-84115,bug-bo-ricotz,bug-source-cu,bug-extents,bug-seams,bug-image-compositor,caps,caps-2,caps-05,caps-joins-2,caps-joins-alpha,caps-joins-curve,caps-tails-curve,clear-source,clip-disjoint,clip-disjoint-quad,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-fill,clip-image,clip-intersect,clip-operator,clip-push-group,clip-shape,clip-stroke,clip-text,clip-twice,close-path-current-point,copy-path,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,dash-state,dash-zero-length,degenerate-arc,degenerate-curve-to,degenerate-path,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extend-pad-border,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid,extended-blend-so
 lid-alpha,fallback,fill-alpha,fill-alpha-pattern,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-degenerate-sort-order,fill-image,fill-missed-stop,fill-rule,filter-bilinear-extents,finer-grained-fallbacks,font-matrix-translation,glyph-cache-pressure,gradient-alpha,gradient-constant-alpha,group-unaligned,halo,halo-transform,hatchings,huge-linear,huge-radial,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-font,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-overlap-offset,line-width-scale,linear-gradient,linear-gradient-reflect,linear-gradient-subset,long-dashed-lines,mask,mask-alpha,mask-ctm,mask-surface-ctm,mask-transformed-image,mask-transformed-similar,mesh-pattern,mesh-pattern-conical,mesh-pattern-control-points,mesh-pattern-fold,mesh-pattern-overlap,mesh-pattern-transformed,new-sub-path,operator-source,over-around-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip
 ,paint-with-alpha-clip-mask,partial-coverage-reference,partial-coverage-three-quarter-reference,pass-through,path-append,path-stroke-twice,pdf-isolated-group,pixman-downscale-fast-96,pixman-downscale-good-96,pixman-downscale-best-96,pixman-downscale-best-24,pixman-downscale-nearest-96,pixman-downscale-bilinear-96,pixman-rotate,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,raster-source,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-se
 lect-font-face,record2x-text-transform,record90-paint-alpha,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-dash-scale-unaligned,reflected-stroke,rel-path,rotate-clip-image-surface-paint,rotated-clip,rounded-rectangle-fill,rounded-rectangle-stroke,scale-off
 set-image,scale-offset-similar,stroke-ctm-caps,stroke-image,select-font-face,set-source,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-fill,smask-mask,smask-paint,smask-stroke,smask-text,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,tiger,a1-tiger,transforms,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,user-font,user-font-mask,user-font-proxy,user-font-rescale,world-map,world-map-stroke,world-map-fill,xcb-huge-image-shm,xcb-huge-subimage,xcomposite-projection,pthread-same-source,pth
 read-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-pdf-argb32.txt b/.gitlab-ci/ignore-pdf-argb32.txt
new file mode 100644
index 000000000..8c1017c32
--- /dev/null
+++ b/.gitlab-ci/ignore-pdf-argb32.txt
@@ -0,0 +1 @@
+bug-image-compositor,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend,extended-blend-solid,fallback,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,record1414x-select-font-face,record1414x-text-transform,record2x-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-miter-limit,rectili
 near-dash,rectilinear-stroke,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-operator,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,thin-lines,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-pdf-rgb24.txt b/.gitlab-ci/ignore-pdf-rgb24.txt
new file mode 100644
index 000000000..5c99e00e6
--- /dev/null
+++ b/.gitlab-ci/ignore-pdf-rgb24.txt
@@ -0,0 +1 @@
+bug-image-compositor,clear-source,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,large-font,linear-gradient-reflect,mask,operator-alpha-alpha,overlapping-glyphs,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,pixman-downscale-fast-95,pixman-downscale-fast-24,pixman-downscale-good-24,pixman-downscale-best-95,pixman-downscale-best-24,pixman-downscale-nearest-95,pixman-downscale-nearest-24,pixman-downscale-bilinear-24,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,random-intersections-curves-eo,random-intersections-curves-nz,record-paint-alpha-clip,record-select-font-face,record-text-transform,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-select-font-face,record1414x-text-tra
 nsform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-repeat,rectilinear-miter-limit,rectilinear-dash,rectilinear-stroke,rel-path,rotate-image-surface-paint,rotate-clip-image-surface-paint,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,smask-text,smp-glyph,surface-pattern,surface-pattern-scale-down,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,trap-clip,twin,user-font-proxy,user-font-rescale,pthread-same-source,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type
 3
diff --git a/.gitlab-ci/ignore-quartz-argb32.txt b/.gitlab-ci/ignore-quartz-argb32.txt
new file mode 100644
index 000000000..157f2f4d6
--- /dev/null
+++ b/.gitlab-ci/ignore-quartz-argb32.txt
@@ -0,0 +1 @@
+bug-361,bug-431,bug-image-compositor,clip-operator,coverage-rhombus,culled-glyphs,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid-alpha,fallback,negative-stride-image,operator-www,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,simple-edge,subsurface,subsurface-outside-target,subsurface-scale,surface-pattern,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias
 -subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-unhinted-metrics,user-font-proxy,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-quartz-rgb24.txt b/.gitlab-ci/ignore-quartz-rgb24.txt
new file mode 100644
index 000000000..68f54907e
--- /dev/null
+++ b/.gitlab-ci/ignore-quartz-rgb24.txt
@@ -0,0 +1 @@
+bug-361,bug-431,bug-448,bug-image-compositor,coverage-rhombus,culled-glyphs,extended-blend,extended-blend-alpha,extended-blend-mask,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,negative-stride-image,operator-www,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha-clip-mask,record-fill-alpha,record-select-font-face,record-text-transform,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-select-font-face,record2x-text-transform,record90-fill-alpha,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-mesh,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,shifted-operator,simple-edge,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-su
 bpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-unhinted-metrics,user-font-proxy,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-recording-argb32.txt b/.gitlab-ci/ignore-recording-argb32.txt
new file mode 100644
index 000000000..b406fd1a7
--- /dev/null
+++ b/.gitlab-ci/ignore-recording-argb32.txt
@@ -0,0 +1 @@
+bug-source-cu,clear-source,clip-text,coverage-rectangles,culled-glyphs,finer-grained-fallbacks,halo-transform,overlapping-glyphs,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-text-transform,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,scale-offset-similar,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,pthread-same-source,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-recording-rgb24.txt b/.gitlab-ci/ignore-recording-rgb24.txt
new file mode 100644
index 000000000..f1f9c37a5
--- /dev/null
+++ b/.gitlab-ci/ignore-recording-rgb24.txt
@@ -0,0 +1 @@
+bug-source-cu,clear-source,clip-text,coverage-rectangles,culled-glyphs,extended-blend-alpha-mask,finer-grained-fallbacks,halo-transform,overlapping-glyphs,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-text-transform,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,scale-offset-similar,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,pthread-same-source,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-script-argb32.txt b/.gitlab-ci/ignore-script-argb32.txt
new file mode 100644
index 000000000..b6cb256ff
--- /dev/null
+++ b/.gitlab-ci/ignore-script-argb32.txt
@@ -0,0 +1 @@
+a1-bug,a1-fill,arc-looping-dash,bilevel-image,bug-51910,bug-84115,bug-seams,caps,caps-2,caps-1,caps-05,checkerboard,caps-joins-2,caps-joins-1,caps-joins-05,caps-joins-curve,caps-tails-curve,caps-sub-paths,clear-source,clip-disjoint-quad,clip-device-offset,clip-image,clip-mixed-antialias,clip-push-group,clip-polygons,clip-text,close-path,close-path-current-point,composite-integer-translate-over-repeat,copy-path,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-infinite-loop,dash-scale,dash-state,degenerate-curve-to,degenerate-linear-gradient,degenerate-pen,degenerate-radial-gradient,degenerate-rel-curve-to,device-offset-scale,extend-pad-border,fill-and-stroke-alpha,fill-and-stroke-alpha-add,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,huge-radial,image-surface-source,xcb-surface-source,xlib-surface-source,infinite-join,inverse-text,joins,large-font
 ,large-source,large-twin-antialias-mixed,leaky-dashed-rectangle,leaky-dashed-stroke,leaky-polygon,line-width-scale,line-width-tolerance,linear-gradient-extend,linear-gradient-reflect,long-dashed-lines,map-all-to-image,map-bit-to-image,map-to-image-fill,mask-transformed-image,mask-transformed-similar,mesh-pattern,mesh-pattern-conical,mesh-pattern-control-points,mesh-pattern-fold,mesh-pattern-overlap,mesh-pattern-transformed,negative-stride-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-solid-clip,paint-with-alpha-clip,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,partial-coverage-half-reference,path-stroke-twice,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-gradient-one-stop,radial-gradient-extend,record-paint-alpha-solid-clip,record-paint-alpha-clip,record-select-font-face,record-text-transform,rec
 ord1414x-paint-alpha,record1414x-paint-alpha-solid-clip,record1414x-paint-alpha-clip,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-solid-clip,record2x-paint-alpha-clip,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-clip-mask,record90-select-font-face,record90-text-transform,recordflip-whole-select-font-face,recordflip-whole-text-transform,recordflip-select-font-face,recordflip-text-transform,record-neg-extents-bounded,record-mesh,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,rectilinear-miter-limit,reflected-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,select-font-face,self-copy,show-glyphs-advance,show-text-current-point,shape-sierpinski,smask,smask-image-mask,smask-mask,smask-paint,smask
 -text,stride-12-image,subsurface,subsurface-scale,surface-pattern,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,transforms,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,user-font,user-font-proxy,user-font-rescale,world-map,world-map-stroke,world-map-fill,xcb-stress-cache,xcomposite-projection,pthread-show-text,bitmap-font,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3,ft-text-antialias-none,pdf-surface-source,ps-surface-source
diff --git a/.gitlab-ci/ignore-svg11-argb32.txt b/.gitlab-ci/ignore-svg11-argb32.txt
new file mode 100644
index 000000000..11422691b
--- /dev/null
+++ b/.gitlab-ci/ignore-svg11-argb32.txt
@@ -0,0 +1 @@
+alpha-similar,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend-solid,extended-blend-solid-alpha,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,halo-transform,linear-gradient-reflect,mask-transformed-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,radial-gradient,radial-gradient-mask,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-clip-mask,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,scale-offset-image,scale-sou
 rce-surface-paint,self-copy,show-glyphs-advance,smask,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,surface-pattern,surface-pattern-operator,surface-pattern-scale-up,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,unbounded-operator,pthread-similar,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-svg11-rgb24.txt b/.gitlab-ci/ignore-svg11-rgb24.txt
new file mode 100644
index 000000000..a00568bdc
--- /dev/null
+++ b/.gitlab-ci/ignore-svg11-rgb24.txt
@@ -0,0 +1 @@
+alpha-similar,clear-source,clip-operator,clip-text,culled-glyphs,extended-blend-alpha-mask,extended-blend-solid,extended-blend-solid-alpha,filter-bilinear-extents,filter-nearest-offset,filter-nearest-transformed,gradient-alpha,gradient-constant-alpha,halo-transform,linear-gradient-reflect,mask,mask-transformed-image,operator-alpha-alpha,overlapping-glyphs,paint-source-alpha,paint-with-alpha,paint-with-alpha-clip,paint-with-alpha-clip-mask,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,record-paint-alpha,record-paint-alpha-clip,record-paint-alpha-clip-mask,record1414x-paint-alpha,record1414x-paint-alpha-clip,record1414x-paint-alpha-clip-mask,record1414x-fill-alpha,record1414x-select-font-face,record1414x-text-transform,record2x-paint-alpha,record2x-paint-alpha-clip,record2x-paint-alpha-clip-mask,record90-paint-alpha-clip,record90-paint-alpha-clip-mask,recordflip-whole-paint-alpha,recordflip-whole-paint-alpha-clip,recordflip-whole-paint-alpha-c
 lip-mask,recordflip-paint-alpha,recordflip-paint-alpha-clip,recordflip-paint-alpha-clip-mask,scale-offset-image,scale-source-surface-paint,self-copy,show-glyphs-advance,smask,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,surface-pattern,surface-pattern-operator,surface-pattern-scale-up,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,unbounded-operator,pthread-similar,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-argb32.txt b/.gitlab-ci/ignore-xcb-argb32.txt
new file mode 100644
index 000000000..2241039c7
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-argb32.txt
@@ -0,0 +1 @@
+bug-spline,clip-operator,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,culled-glyphs,fill-image,halo,halo-transform,hatchings,operator-source,overlapping-boxes,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-extend-repeat,recording-surface-extend-pad,rotated-clip,stroke-cl
 ipped,stroke-image,simple-edge,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-rotate,tighten-bounds,a1-tiger,twin-antialias-none,unantialiased-shapes,user-font,user-font-proxy,ft-text-vertical-layout-type1
diff --git a/.gitlab-ci/ignore-xcb-fallback-rgb24.txt b/.gitlab-ci/ignore-xcb-fallback-rgb24.txt
new file mode 100644
index 000000000..39e43d94e
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-fallback-rgb24.txt
@@ -0,0 +1 @@
+clip-text,coverage-intersecting-triangles,culled-glyphs,extended-blend-alpha-mask,fallback,halo-transform,overlapping-glyphs,record1414x-select-font-face,record1414x-text-transform,show-glyphs-advance,subsurface,subsurface-scale,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt b/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt
new file mode 100644
index 000000000..79727e7dd
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-render-0-0-argb32.txt
@@ -0,0 +1 @@
+clip-disjoint-hatching,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-operator,clip-polygons,clip-shape,clip-twice,coverage-intersecting-triangles,culled-glyphs,hatchings,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,record-paint-alpha-solid-clip,record1414x-select-font-face,record1414x-text-transform,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,rotated-clip,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,trap-clip,ft-text-vertical-layout-type1
diff --git a/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt b/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt
new file mode 100644
index 000000000..d2c1efacd
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-render-0-0-rgb24.txt
@@ -0,0 +1 @@
+clip-disjoint-hatching,clip-stroke-unbounded,clip-fill-nz-unbounded,clip-fill-eo-unbounded,clip-operator,clip-polygons,clip-shape,clip-twice,coverage-intersecting-triangles,culled-glyphs,extended-blend-alpha-mask,fallback,hatchings,mask,operator-source,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,random-clip,record-paint-alpha-solid-clip,record1414x-select-font-face,record1414x-text-transform,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,recording-surface-over,recording-surface-extend-none,rotated-clip,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,trap-clip,ft-text-vertical-layout-type1
diff --git a/.gitlab-ci/ignore-xcb-rgb24.txt b/.gitlab-ci/ignore-xcb-rgb24.txt
new file mode 100644
index 000000000..c673be6ae
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-rgb24.txt
@@ -0,0 +1 @@
+arc-looping-dash,bug-spline,bug-51910,bug-84115,bug-source-cu,bug-image-compositor,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-rhombus,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-curve,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,hatchings,inverse-text,large-font,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,rad
 ial-outer-focus,random-clip,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,s
 ubsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,a1-tiger,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,user-font,user-font-proxy,world-map,world-map-fill,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-window--rgb24.txt b/.gitlab-ci/ignore-xcb-window--rgb24.txt
new file mode 100644
index 000000000..ad655e852
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-window--rgb24.txt
@@ -0,0 +1 @@
+arc-looping-dash,bug-spline,bug-51910,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-outer-focus,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-p
 aint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-su
 bpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xcb-window-rgb24.txt b/.gitlab-ci/ignore-xcb-window-rgb24.txt
new file mode 100644
index 000000000..ad655e852
--- /dev/null
+++ b/.gitlab-ci/ignore-xcb-window-rgb24.txt
@@ -0,0 +1 @@
+arc-looping-dash,bug-spline,bug-51910,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,clear-source,clip-operator,clip-text,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,extended-blend-alpha-mask,fallback,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,inverse-text,linear-gradient,linear-gradient-subset,mask,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,push-group,push-group-color,radial-outer-focus,record-self-intersecting,record1414x-fill-alpha,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record90-p
 aint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-self-intersecting,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-self-intersecting,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-self-intersecting,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rotated-clip,select-font-face,stroke-clipped,stroke-image,show-glyphs-advance,show-text-current-point,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smp-glyph,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-su
 bpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-rotate,text-transform,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-none,twin-antialias-subpixel,unantialiased-shapes,unbounded-operator,xcomposite-projection,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-argb32.txt b/.gitlab-ci/ignore-xlib-argb32.txt
new file mode 100644
index 000000000..9ea528ad2
--- /dev/null
+++ b/.gitlab-ci/ignore-xlib-argb32.txt
@@ -0,0 +1 @@
+aliasing,arc-looping-dash,bug-spline,bug-84115,bug-extents,bug-image-compositor,caps-joins-curve,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rhombus,coverage-column-triangles,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-alpha-mask,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,halo,halo-transform,hatchings,joins,joins-loop,joins-retrace,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,long-dashed-lines,new-sub-path,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,path-stroke-twice,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,record-select-font
 -face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-extend-repeat,recording-surface-extend-pad,reflected-stroke,rel-path,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar
 ,stroke-clipped,stroke-image,show-glyphs-advance,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-stroke,smask-text,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,tighten-bounds,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,user-font,user-font-proxy,world-map,world-map-stroke,pthread-show-text,ft-show-glyphs-positioning,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-fallback-rgb24.txt b/.gitlab-ci/ignore-xlib-fallback-rgb24.txt
new file mode 100644
index 000000000..b1f31afa8
--- /dev/null
+++ b/.gitlab-ci/ignore-xlib-fallback-rgb24.txt
@@ -0,0 +1 @@
+arc-looping-dash,bug-51910,bug-seams,caps,caps-2,caps-1,caps-05,caps-joins-2,caps-joins-1,caps-joins-05,caps-joins-curve,caps-sub-paths,clear-source,clip-disjoint-quad,clip-image,clip-mixed-antialias,clip-push-group,clip-polygons,clip-text,close-path,close-path-current-point,copy-path,coverage-intersecting-quads,coverage-abutting,culled-glyphs,dash-caps-joins,dash-infinite-loop,dash-scale,dash-zero-length,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,extended-blend-alpha-mask,fallback,filter-bilinear-extents,finer-grained-fallbacks,font-matrix-translation,glyph-cache-pressure,halo-transform,infinite-join,inverse-text,joins,large-twin-antialias-mixed,leaky-dashed-stroke,leaky-polygon,line-width-scale,line-width-tolerance,long-dashed-lines,mask-transformed-image,mask-transformed-similar,operator-alpha-alpha,over-above-source,over-around-source,over-between-source,overlapping-glyphs,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage
 -three-quarter-reference,path-stroke-twice,push-group-color,record1414x-select-font-face,record1414x-text-transform,recording-surface-over,recording-surface-extend-none,rectilinear-miter-limit,reflected-stroke,stroke-ctm-caps,select-font-face,self-copy,shifted-operator,show-glyphs-advance,show-text-current-point,smask,smask-image-mask,smask-mask,smask-paint,smask-text,smp-glyph,subsurface,subsurface-scale,surface-pattern-scale-down-extend-none,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,transforms,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unclosed-strokes,xcomposite-projection,pthread-show-text,pthread-similar,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt b/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt
new file mode 100644
index 000000000..ab55902d1
--- /dev/null
+++ b/.gitlab-ci/ignore-xlib-render-0-0-rgb24.txt
@@ -0,0 +1 @@
+caps-sub-paths,clear-source,clip-operator,clip-push-group,clip-text,clipped-group,coverage-intersecting-triangles,culled-glyphs,curve-to-as-line-to,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,finer-grained-fallbacks,halo-transform,horizontal-clip,infinite-join,large-twin-antialias-mixed,leaky-polygon,mask,operator-clear,operator-source,overlapping-glyphs,radial-outer-focus,record1414x-select-font-face,record1414x-text-transform,rectilinear-miter-limit,rectilinear-stroke,rel-path,show-glyphs-advance,smask,smask-text,subsurface,subsurface-scale,surface-pattern-operator,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-pattern,text-rotate,text-unhinted-metrics,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,pthread-show-text,ft-show-glyphs-positioning,ft-text-vertic
 al-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-rgb24.txt b/.gitlab-ci/ignore-xlib-rgb24.txt
new file mode 100644
index 000000000..568cf5e8b
--- /dev/null
+++ b/.gitlab-ci/ignore-xlib-rgb24.txt
@@ -0,0 +1 @@
+aliasing,arc-looping-dash,bug-spline,bug-51910,bug-84115,bug-source-cu,bug-extents,bug-image-compositor,caps-joins-05,caps-joins-curve,caps-tails-curve,clear-source,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rhombus,coverage-column-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-curve,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-mask,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,hatchings,infinite-join,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-font,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,linear-gradient,linear-gradient-subset,long-dashed-lines,mask,mask-transformed-image,mask-transformed-similar,miter-precision,new-sub-path,oper
 ator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group,push-group-color,radial-gradient,radial-gradient-mask,radial-gradient-source,radial-gradient-mask-source,radial-outer-focus,random-clip,random-intersections-eo,random-intersections-nonzero,random-intersections-curves-eo,random-intersections-curves-nz,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fi
 ll-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rel-path,rotated-clip,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-clipped,stroke-image,select-font-face,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,shape-sierpinski,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,smp-glyph,spline-decomposition,stroke-pattern,subsurface
 ,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,user-font,user-font-proxy,world-map,world-map-stroke,world-map-fill,xcomposite-projection,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
diff --git a/.gitlab-ci/ignore-xlib-window-rgb24.txt b/.gitlab-ci/ignore-xlib-window-rgb24.txt
new file mode 100644
index 000000000..304fe0c24
--- /dev/null
+++ b/.gitlab-ci/ignore-xlib-window-rgb24.txt
@@ -0,0 +1 @@
+aliasing,arc-looping-dash,bug-spline,bug-51910,bug-extents,caps-joins-05,caps-joins-curve,clear-source,clip-disjoint,clip-stroke-unbounded,clip-operator,clip-shape,clip-stroke,clip-text,close-path-current-point,coverage-rectangles,coverage-intersecting-quads,coverage-intersecting-triangles,coverage-row-triangles,coverage-column-triangles,coverage-triangles,coverage-abutting,culled-glyphs,dash-caps-joins,dash-scale,degenerate-curve-to,degenerate-pen,degenerate-rel-curve-to,drunkard-tails,extended-blend-mask,extended-blend-alpha-mask,fallback,fill-and-stroke,fill-and-stroke-alpha,fill-and-stroke-alpha-add,fill-image,filter-bilinear-extents,font-matrix-translation,glyph-cache-pressure,halo,halo-transform,infinite-join,inverse-text,joins,joins-loop,joins-star,joins-retrace,large-twin-antialias-mixed,leaky-dashed-stroke,line-width-scale,line-width-tolerance,linear-gradient,linear-gradient-subset,long-dashed-lines,mask,mask-transformed-image,mask-transformed-similar,miter-precision,new-su
 b-path,operator-alpha-alpha,operator-clear,operator-source,overlapping-boxes,overlapping-glyphs,overlapping-dash-caps,partial-clip-text-bottom,partial-clip-text-left,partial-coverage-reference,partial-coverage-three-quarter-reference,path-stroke-twice,push-group,push-group-color,radial-outer-focus,record-select-font-face,record-self-intersecting,record-text-transform,record1414x-fill-alpha,record1414x-select-font-face,record1414x-self-intersecting,record1414x-text-transform,record2x-paint-alpha-clip-mask,record2x-fill-alpha,record2x-select-font-face,record2x-text-transform,record90-paint-alpha-solid-clip,record90-paint-alpha-clip,record90-fill-alpha,record90-select-font-face,record90-self-intersecting,record90-text-transform,recordflip-whole-paint-alpha-clip-mask,recordflip-whole-fill-alpha,recordflip-whole-select-font-face,recordflip-whole-self-intersecting,recordflip-whole-text-transform,recordflip-paint-alpha-clip-mask,recordflip-fill-alpha,recordflip-select-font-face,recordflip-
 self-intersecting,recordflip-text-transform,record-neg-extents-unbounded,record-neg-extents-bounded,record-replay-extend-none,record-replay-extend-repeat,record-replay-extend-reflect,record-replay-extend-pad,recording-surface-over,recording-surface-source,recording-surface-extend-none,recording-surface-extend-repeat,recording-surface-extend-reflect,recording-surface-extend-pad,reflected-stroke,rel-path,rotated-clip,rounded-rectangle-stroke,scale-offset-image,scale-offset-similar,stroke-ctm-caps,stroke-clipped,stroke-image,select-font-face,shifted-operator,show-glyphs-advance,show-text-current-point,shape-general-convex,simple-edge,smask,smask-fill,smask-image-mask,smask-mask,smask-paint,smask-stroke,smask-text,smp-glyph,spline-decomposition,stroke-pattern,subsurface,subsurface-scale,surface-pattern-operator,surface-pattern-scale-up,text-antialias-gray,text-antialias-subpixel,text-antialias-subpixel-rgb,text-antialias-subpixel-bgr,text-antialias-subpixel-vrgb,text-antialias-subpixel-
 vbgr,text-glyph-range,text-pattern,text-rotate,text-transform,text-unhinted-metrics,tighten-bounds,trap-clip,twin,twin-antialias-gray,twin-antialias-mixed,twin-antialias-none,twin-antialias-subpixel,unbounded-operator,unclosed-strokes,xcomposite-projection,pthread-show-text,ft-show-glyphs-positioning,ft-show-glyphs-table,ft-text-vertical-layout-type1,ft-text-vertical-layout-type3
commit 1e34651420fa77edb09045ee0ff33432c4e73d70
Author: Uli Schlachter <psychon at znc.in>
Date:   Sat May 22 08:16:47 2021 +0200

    Fix meson build without zlib
    
    Trying to build with meson with -Dzlib=disabled failed with the
    following error message:
    
    cairo/test/meson.build:599:2: ERROR: Unknown variable
    "libcairoscript_dep".
    
    This commit fixes that problem by adding a not-found dependency if
    cairo-script is not built.
    
    Additionally, follow-up problems are fixed:
    
    - any2ppm.c still tried to include cairo-script-interpreter.h, which was
      not found
    - Building cairo-test-trace was attempted, but that also failed because
      of missing script support.
    
    Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/475
    Signed-off-by: Uli Schlachter <psychon at znc.in>

diff --git a/test/any2ppm.c b/test/any2ppm.c
index d2d5fc5e2..f601ec835 100644
--- a/test/any2ppm.c
+++ b/test/any2ppm.c
@@ -60,7 +60,10 @@
 #include <string.h>
 
 #include <cairo.h>
+
+#if CAIRO_HAS_INTERPRETER
 #include <cairo-script-interpreter.h>
+#endif
 
 #if CAIRO_CAN_TEST_PDF_SURFACE
 #include <poppler.h>
diff --git a/test/meson.build b/test/meson.build
index 3039cf6da..fed35c310 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -602,7 +602,7 @@ if build_any2ppm
   test_depends += [any2ppm_exe]
 endif
 
-if have_shm
+if have_shm and conf.get('CAIRO_HAS_INTERPRETER', 0) == 1
   cairo_test_trace_exe = executable('cairo-test-trace', cairo_test_trace_sources,
   include_directories: [incbase],
   c_args: pthread_c_args,
diff --git a/util/meson.build b/util/meson.build
index 0fa8ec758..152b23729 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -8,6 +8,8 @@ endif
 
 if conf.get('CAIRO_HAS_INTERPRETER', 0) == 1
   subdir('cairo-script')
+else
+  libcairoscript_dep = dependency('', required: false)
 endif
 
 if conf.get('CAIRO_HAS_TRACE', 0) == 1
commit 1981fb6dfb51f44feb68590f51309520185e0780
Author: Uli Schlachter <psychon at znc.in>
Date:   Sat May 22 07:59:52 2021 +0200

    meson: Use more dependency objects
    
    For example, to depend on cairo-script, inccairoscript was added to
    "include_directories:" and libcairoscript was added to "link_with:".
    This commit instead uses the libcairoscript_dep dependency everywhere.
    
    Signed-off-by: Uli Schlachter <psychon at znc.in>

diff --git a/boilerplate/meson.build b/boilerplate/meson.build
index 0216b7a6c..cc6bc9519 100644
--- a/boilerplate/meson.build
+++ b/boilerplate/meson.build
@@ -35,9 +35,13 @@ cairo_boilerplate_constructors = custom_target('cairo-boilerplate-constructors.c
   command: [python3, files('make-cairo-boilerplate-constructors.py')[0], '@OUTPUT@', '@INPUT@'])
 
 libcairoboilerplate = static_library('cairoboilerplate', cairo_boilerplate_sources + [cairo_boilerplate_constructors],
-  include_directories: [incbase, incsrc],
-  dependencies: deps,
-  link_with: [libcairo],
+  include_directories: [incbase],
+  dependencies: deps + [libcairo_dep],
   install: false,
   build_by_default: false,
 )
+
+cairoboilerplate_dep = declare_dependency(
+  link_with: [libcairoboilerplate],
+  include_directories: include_directories('.'),
+)
diff --git a/meson.build b/meson.build
index 9901bdf29..8d989abe9 100644
--- a/meson.build
+++ b/meson.build
@@ -890,11 +890,10 @@ deps += internal_deps
 
 subdir('src')
 
-incboilerplate = include_directories('boilerplate')
 if feature_conf.get('CAIRO_HAS_PNG_FUNCTIONS', 0) == 1
   subdir('boilerplate')
 else
-  libcairoboilerplate = []
+  cairoboilerplate_dep = dependency()
 endif
 
 subdir('util')
diff --git a/src/meson.build b/src/meson.build
index 2905fdc8a..58a798404 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -309,7 +309,8 @@ cairo_headers += [configure_file(output: 'cairo-features.h', configuration: feat
 
 libcairo_dep = declare_dependency(link_with: libcairo,
   dependencies: deps,
-  include_directories: incsrc)
+  include_directories: incsrc
+)
 
 pkgmod.generate(libcairo,
   description: 'Multi-platform 2D graphics library',
diff --git a/test/meson.build b/test/meson.build
index 70082f94a..3039cf6da 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -572,8 +572,6 @@ cairo_test_constructors = custom_target('cairo-test-constructors.c',
   output: 'cairo-test-constructors.c',
   command: [python3, files('make-cairo-test-constructors.py')[0], '@OUTPUT@', '@INPUT@'])
 
-incpdiff = include_directories('pdiff')
-
 test_depends = []
 
 subdir('pdiff')
@@ -598,27 +596,25 @@ endif
 
 if build_any2ppm
   any2ppm_exe = executable('any2ppm', 'any2ppm.c',
-    include_directories: [incbase, incsrc, inccairoscript],
-    link_with: [libcairo, libcairoscript],
-    dependencies: deps + test_deps,
+    include_directories: [incbase],
+    dependencies: deps + test_deps + [libcairo_dep, libcairoscript_dep],
   )
   test_depends += [any2ppm_exe]
 endif
 
 if have_shm
   cairo_test_trace_exe = executable('cairo-test-trace', cairo_test_trace_sources,
-  include_directories: [incbase, incsrc, incboilerplate, incpdiff, inccairoscript, inccairomissing],
+  include_directories: [incbase],
   c_args: pthread_c_args,
-  link_with: [libcairo, libcairoboilerplate, libpdiff, libcairoscript, libcairomissing],
   link_args: extra_link_args,
-  dependencies: deps + test_deps + [rt_dep])
+  dependencies: deps + test_deps + [rt_dep, libcairo_dep, cairoboilerplate_dep, libpdiff_dep, libcairomissing_dep, libcairoscript_dep])
 endif
 
 exe = executable('cairo-test-suite', [cairo_test_suite_sources, test_sources, cairo_test_constructors],
-  include_directories: [incbase, incsrc, incboilerplate, incpdiff],
-  link_with: [libcairo, libcairoboilerplate, libpdiff],
+  include_directories: [incbase],
   link_args: extra_link_args,
-  dependencies: deps + test_deps,
+  dependencies: deps + test_deps + [libcairo_dep, cairoboilerplate_dep,
+    libpdiff_dep],
 )
 
 env = environment()
diff --git a/test/pdiff/meson.build b/test/pdiff/meson.build
index 30c6f1b5f..636871a1f 100644
--- a/test/pdiff/meson.build
+++ b/test/pdiff/meson.build
@@ -9,11 +9,16 @@ perceptualdiff_sources = [
 ]
 
 libpdiff = static_library('pdiff', libpdiff_sources,
-  include_directories: [incbase, incsrc],
-  dependencies: deps,
-  link_with: [libcairo],
+  include_directories: [incbase],
+  dependencies: deps + [libcairo_dep],
+)
+
+libpdiff_dep = declare_dependency(
+  include_directories: include_directories('.'),
+  link_with: [libpdiff],
 )
 
 perceptualdiff = executable('perceptualdiff', perceptualdiff_sources,
-  include_directories: [incbase, incsrc],
-  link_with: [libpdiff])
+  include_directories: [incbase],
+  dependencies: [libcairo_dep, libpdiff_dep],
+)
diff --git a/util/cairo-gobject/meson.build b/util/cairo-gobject/meson.build
index e4e3c8302..0a525b6fa 100644
--- a/util/cairo-gobject/meson.build
+++ b/util/cairo-gobject/meson.build
@@ -8,18 +8,15 @@ cairo_gobject_headers = [
 ]
 
 libcairogobject = library('cairo-gobject', cairo_gobject_sources,
-  include_directories: [incbase, incsrc],
-  dependencies: [glib_dep, gobject_dep],
-  link_with: [libcairo],
+  include_directories: [incbase],
+  dependencies: [glib_dep, gobject_dep, libcairo_dep],
   soversion: cairo_version_sonum,
   version: cairo_libversion,
   install: true,
 )
 
-incgobject = include_directories('.')
-
 libcairogobject_dep = declare_dependency(link_with: libcairogobject,
-  include_directories: [incgobject],
+  include_directories: include_directories('.'),
   dependencies: libcairo_dep)
 
 pkgmod.generate(libcairogobject,
diff --git a/util/cairo-missing/meson.build b/util/cairo-missing/meson.build
index 18c6caf33..3280b03fe 100644
--- a/util/cairo-missing/meson.build
+++ b/util/cairo-missing/meson.build
@@ -3,10 +3,13 @@ cairo_missing_sources = [
   'getline.c',
 ]
 
-inccairomissing = include_directories('.')
-
 libcairomissing = static_library('cairo-missing', cairo_missing_sources,
   include_directories: [incbase, incsrc],
   install: false,
   build_by_default: false,
 )
+
+libcairomissing_dep = declare_dependency(
+  link_with: libcairomissing,
+  include_directories: include_directories('.'),
+)
diff --git a/util/cairo-script/meson.build b/util/cairo-script/meson.build
index 7a6b55818..653c19d33 100644
--- a/util/cairo-script/meson.build
+++ b/util/cairo-script/meson.build
@@ -26,18 +26,15 @@ csi_trace_sources = [
 
 libcairoscript = library('cairo-script-interpreter',
   cairoscript_interpreter_sources,
-  include_directories: [incbase, incsrc],
-  dependencies: deps,
-  link_with: [libcairo],
+  include_directories: [incbase],
+  dependencies: deps + [libcairo_dep],
   soversion: cairo_version_sonum,
   version: cairo_libversion,
   install: true,
 )
 
-inccairoscript = include_directories('.')
-
 libcairoscript_dep = declare_dependency(link_with: libcairoscript,
-  include_directories: [inccairoscript],
+  include_directories: include_directories('.'),
   dependencies: libcairo_dep)
 
 pkgmod.generate(libcairoscript,
@@ -49,22 +46,19 @@ pkgmod.generate(libcairoscript,
 meson.override_dependency('cairo-script-interpreter', libcairoscript_dep)
 
 csi_replay_exe = executable('csi-replay', csi_replay_sources,
-  include_directories: [incbase, incsrc],
-  link_with: [libcairo, libcairoscript],
-  dependencies: deps,
+  include_directories: [incbase],
+  dependencies: deps + [libcairo_dep, libcairoscript_dep],
 )
 
 csi_exec_exe = executable('csi-exec', csi_exec_sources,
-  include_directories: [incbase, incsrc],
-  link_with: [libcairo, libcairoscript],
-  dependencies: deps,
+  include_directories: [incbase],
+  dependencies: deps + [libcairo_dep, libcairoscript_dep],
 )
 
 if feature_conf.get('CAIRO_HAS_SCRIPT_SURFACE', 0) == 1 and conf.get('HAVE_LIBGEN_H', 0) == 1
   csi_trace_exe = executable('csi-trace', csi_trace_sources,
-    include_directories: [incbase, incsrc],
-    link_with: [libcairo, libcairoscript],
-    dependencies: deps,
+    include_directories: [incbase],
+    dependencies: deps + [libcairo_dep, libcairoscript_dep],
   )
 endif
 
diff --git a/util/cairo-sphinx/meson.build b/util/cairo-sphinx/meson.build
index f779744b9..20ea04d7f 100644
--- a/util/cairo-sphinx/meson.build
+++ b/util/cairo-sphinx/meson.build
@@ -16,10 +16,10 @@ libcairosphinx = library('cairo-sphinx', libcairo_sphinx_sources,
 libdir = join_paths(get_option('prefix'), get_option('libdir'))
 
 cairosphinx_exe = executable('cairo-sphinx', cairo_sphinx_sources,
-  include_directories: [incbase, incsrc, inccairoscript, incboilerplate],
+  include_directories: [incbase],
   c_args: ['-DLIBDIR="@0@"'.format(libdir)] + pthread_c_args,
-  dependencies: deps + [glib_dep, rt_dep],
-  link_with: [libcairo, libcairosphinx, libcairoscript, libcairoboilerplate],
+  dependencies: deps + [glib_dep, rt_dep, libcairo_dep, cairoboilerplate_dep, libcairoscript_dep],
+  link_with: [libcairosphinx],
   link_args: extra_link_args,
   install: true,
 )
diff --git a/util/meson.build b/util/meson.build
index e3a1ace96..0fa8ec758 100644
--- a/util/meson.build
+++ b/util/meson.build
@@ -52,9 +52,8 @@ foreach util : cairo_utils
   exe_name = util[0].split('.')[0]
   util_deps = util.get(1, {}).get('deps', [])
   executable(exe_name, util[0],
-    include_directories: [incbase, incsrc, inccairoscript],
-    dependencies: deps + util_deps,
-    link_with: [libcairo, libcairoscript],
+    include_directories: [incbase],
+    dependencies: deps + util_deps + [libcairo_dep, libcairoscript_dep],
   )
 endforeach
 
commit 339671c7872335a5ce748a635a314cbe375e303e
Author: Uli Schlachter <psychon at znc.in>
Date:   Sat May 15 10:53:08 2021 +0200

    meson: Add perf/ directory
    
    This adds the code under perf/ to meson. The only testing I did was "it
    builds for me". I do not have gtk+2 installed and so I did not even try
    whether that thing builds. Besides that, I mostly tried to stay close to
    the autofoo build.

diff --git a/meson.build b/meson.build
index 06df7f9c1..11002f501 100644
--- a/meson.build
+++ b/meson.build
@@ -901,6 +901,7 @@ subdir('util')
 
 if not get_option('tests').disabled() and feature_conf.get('CAIRO_HAS_PNG_FUNCTIONS', 0) == 1
   subdir('test')
+  subdir('perf')
 endif
 
 configure_file(output: 'config.h', configuration: conf)
diff --git a/perf/meson.build b/perf/meson.build
new file mode 100644
index 000000000..40ebeea05
--- /dev/null
+++ b/perf/meson.build
@@ -0,0 +1,93 @@
+incmicro = include_directories('.')
+
+subdir('micro')
+
+gtk2_dep = dependency('gtk+-2.0', required: false)
+
+libcairoperf = static_library('cairoperf',
+  [
+    'cairo-perf.c',
+    'cairo-perf-report.c',
+    'cairo-stats.c',
+    '../src/cairo-time.c',
+    'cairo-perf.h',
+    'cairo-stats.h',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate, inccairomissing],
+  link_with: [libcairomissing, libcairoboilerplate],
+  dependencies: [pixman_dep],
+)
+
+
+analyse_trace = executable('cairo-analyse-trace',
+  [
+    'cairo-analyse-trace.c',
+    '../src/cairo-error.c',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate, inccairoscript, inccairomissing],
+  link_with: [libcairo, libcairoboilerplate, libcairoscript, libcairomissing],
+  dependencies: [pixman_dep, fontconfig_dep],
+)
+
+perf_trace = executable('cairo-perf-trace',
+  [
+    'cairo-perf-trace.c',
+    '../src/cairo-error.c',
+    '../src/cairo-hash.c',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate, inccairoscript, inccairomissing],
+  link_with: [libcairoperf, libcairoscript],
+  dependencies: [pixman_dep, fontconfig_dep],
+)
+
+micro = executable('cairo-perf-micro',
+  [ 'cairo-perf-micro.c', ],
+  include_directories: [incbase, incsrc, incboilerplate, inccairomissing],
+  link_with: [libcairoperf, libcairoperfmicro],
+  dependencies: [fontconfig_dep],
+)
+
+diff_files = executable('cairo-perf-diff-files',
+  [
+    'cairo-perf-diff-files.c',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate],
+  link_with: [libcairoperf],
+)
+
+print = executable('cairo-perf-print',
+  [
+    'cairo-perf-print.c',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate],
+  link_with: [libcairoperf],
+)
+
+chart = executable('cairo-perf-chart',
+  [
+    'cairo-perf-chart.c',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate],
+  link_with: [libcairoperf],
+)
+
+compare_backends = executable('cairo-perf-compare-backends',
+  [
+    'cairo-perf-compare-backends.c',
+  ],
+  include_directories: [incbase, incsrc, incboilerplate],
+  link_with: [libcairoperf],
+)
+
+if gtk2_dep.found()
+  graph_files = executable('cairo-perf-graph',
+    [
+      'cairo-perf-graph-files.c',
+      'cairo-perf-graph-widget.c',
+      'cairo-perf-graph.h',
+    ],
+    include_directories: [incbase, incsrc, incboilerplate],
+    link_with: [libcairo, libcairoboilerplate, libcairoperf],
+    dependencies: [gtk2_dep],
+  )
+endif
diff --git a/perf/micro/meson.build b/perf/micro/meson.build
new file mode 100644
index 000000000..5ee45b5ce
--- /dev/null
+++ b/perf/micro/meson.build
@@ -0,0 +1,57 @@
+perf_micro_sources = [
+  'cairo-perf-cover.c',
+  'box-outline.c',
+  'composite-checker.c',
+  'disjoint.c',
+  'fill.c',
+  'hatching.c',
+  'hash-table.c',
+  'line.c',
+  'a1-line.c',
+  'long-lines.c',
+  'mosaic.c',
+  'paint.c',
+  'paint-with-alpha.c',
+  'mask.c',
+  'pattern_create_radial.c',
+  'rectangles.c',
+  'rounded-rectangles.c',
+  'stroke.c',
+  'subimage_copy.c',
+  'tessellate.c',
+  'text.c',
+  'tiger.c',
+  'glyphs.c',
+  'twin.c',
+  'unaligned-clip.c',
+  'wave.c',
+  'world-map.c',
+  'zrusin.c',
+  'long-dashed-lines.c',
+  'dragon.c',
+  'pythagoras-tree.c',
+  'intersections.c',
+  'many-strokes.c',
+  'wide-strokes.c',
+  'many-fills.c',
+  'wide-fills.c',
+  'many-curves.c',
+  'curve.c',
+  'a1-curve.c',
+  'spiral.c',
+  'pixel.c',
+  'sierpinski.c',
+  'fill-clip.c',
+]
+
+perf_micro_headers = [
+  'mosaic.h',
+  'world-map.h',
+  'zrusin-another.h',
+]
+
+libcairoperfmicro = static_library('cairo-perf-micro',
+  perf_micro_sources + perf_micro_headers,
+  include_directories: [incbase, incsrc, incboilerplate, incmicro],
+  dependencies: [pixman_dep],
+)
commit 1c5b4716f727584373178ff5aa46d6f2df400b84
Author: Uli Schlachter <psychon at znc.in>
Date:   Fri May 14 17:08:02 2021 +0200

    meson: Add shell script tests
    
    There are a couple of shell scripts in src/ that run various tests. This
    commit adds them to the meson build.
    
    The one exception is check-def.sh, which I couldn't get to work and thus
    only add it commented out.
    
    check-headers.sh and check-plt.sh required some tweaking to get them to
    work. check-plt.sh will print an error when run since the file
    '.libs/lib*.so' does not exist, but it will still run its check
    correctly.

diff --git a/src/check-headers.sh b/src/check-headers.sh
index 61232954b..f6c7bd59f 100755
--- a/src/check-headers.sh
+++ b/src/check-headers.sh
@@ -11,7 +11,7 @@ echo Checking public headers for missing cairo_public decorators
 cd "$srcdir"
 FILES=$all_cairo_headers
 if test "x$FILES" = x; then
-	FILES=`find . -name 'cairo*.h' ! -name '*-private.h' ! -name 'cairoint.h'`
+	FILES=`find . -name 'cairo*.h' ! -name '*-private.h' ! -name 'cairoint.h' ! -name '*-inline.h' ! -name cairo-drm-intel-brw-eu.h`
 fi
 
 grep -B 1 '^cairo_.*[ 	]\+(' /dev/null $FILES |
diff --git a/src/check-plt.sh b/src/check-plt.sh
index 5a9dae126..6f3d07401 100755
--- a/src/check-plt.sh
+++ b/src/check-plt.sh
@@ -14,13 +14,15 @@ test -z "$srcdir" && srcdir=.
 test -z "$MAKE" && MAKE=make
 stat=0
 
-$MAKE check-has-hidden-symbols.i > /dev/null || exit 1
-if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then
-	echo "Compiler doesn't support symbol visibility; skipping test"
-	exit 0
+if [ "x$CAIRO_HAS_HIDDEN_SYMBOLS" = x ]; then
+	$MAKE check-has-hidden-symbols.i > /dev/null || exit 1
+	if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then
+		echo "Compiler doesn't support symbol visibility; skipping test"
+		exit 0
+	fi
 fi
 
-for so in .libs/lib*.so; do
+for so in .libs/lib*.so "$@"; do
 	echo Checking "$so" for local PLT entries
 	readelf -W -r "$so" | grep 'JU\?MP_SLO' | grep 'cairo' >&2 && stat=1
 done
diff --git a/src/meson.build b/src/meson.build
index 2905fdc8a..d04b4976c 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -319,3 +319,30 @@ pkgmod.generate(libcairo,
 meson.override_dependency('cairo', libcairo_dep)
 
 install_headers(cairo_headers, subdir: 'cairo')
+
+shell = find_program('sh', required: false)
+if shell.found()
+  test_scripts = [
+    # This script calls back into make to generate cairo.def
+    # TODO: Make this work, somehow
+    #'check-def.sh',
+    'check-doc-syntax.sh',
+    'check-headers.sh',
+    'check-preprocessor-syntax.sh',
+  ]
+
+  foreach test_script: test_scripts
+    test(test_script, shell,
+      args: [test_script],
+      workdir: meson.current_source_dir())
+  endforeach
+
+  env = environment()
+  env.set('CAIRO_HAS_HIDDEN_SYMBOLS', '1')
+
+  test('check-plt.sh', shell,
+    args: ['check-plt.sh', libcairo ],
+    env: env,
+    workdir: meson.current_source_dir())
+
+endif


More information about the cairo-commit mailing list