summaryrefslogtreecommitdiffstats
path: root/gfx/wr/wrench/reftests/image
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /gfx/wr/wrench/reftests/image
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'gfx/wr/wrench/reftests/image')
-rw-r--r--gfx/wr/wrench/reftests/image/colorrect.pngbin0 -> 256 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/downscale.pngbin0 -> 10613 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/downscale.yaml18
-rw-r--r--gfx/wr/wrench/reftests/image/firefox.pngbin0 -> 25927 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/green-alpha-ref.yaml4
-rw-r--r--gfx/wr/wrench/reftests/image/image-alpha-stretch-tile.yaml8
-rw-r--r--gfx/wr/wrench/reftests/image/image-alpha-stretch.yaml6
-rw-r--r--gfx/wr/wrench/reftests/image/image-filter-stretch-tile.yaml10
-rw-r--r--gfx/wr/wrench/reftests/image/image-filter-stretch.yaml8
-rw-r--r--gfx/wr/wrench/reftests/image/occlusion.pngbin0 -> 57660 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/occlusion.yaml15
-rw-r--r--gfx/wr/wrench/reftests/image/reftest.list19
-rw-r--r--gfx/wr/wrench/reftests/image/rgb_composite.yaml10
-rw-r--r--gfx/wr/wrench/reftests/image/rgb_composite_ref.yaml9
-rw-r--r--gfx/wr/wrench/reftests/image/segments.pngbin0 -> 7200 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/segments.yaml12
-rw-r--r--gfx/wr/wrench/reftests/image/spacex-u.pngbin0 -> 81302 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/spacex-uv.pngbin0 -> 202309 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/spacex-v.pngbin0 -> 97851 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/spacex-y.pngbin0 -> 128761 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/spacex-yuv.pngbin0 -> 310131 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/texture-rect-ref.yaml15
-rw-r--r--gfx/wr/wrench/reftests/image/texture-rect.yaml7
-rw-r--r--gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose-ref.yaml8
-rw-r--r--gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose.yaml17
-rw-r--r--gfx/wr/wrench/reftests/image/tile-size-ref.yaml14
-rw-r--r--gfx/wr/wrench/reftests/image/tile-size.yaml19
-rw-r--r--gfx/wr/wrench/reftests/image/tile-with-spacing-ref.yaml6
-rw-r--r--gfx/wr/wrench/reftests/image/tile-with-spacing.yaml12
-rw-r--r--gfx/wr/wrench/reftests/image/tiled-clip-chain-ref.yaml10
-rw-r--r--gfx/wr/wrench/reftests/image/tiled-clip-chain.yaml11
-rw-r--r--gfx/wr/wrench/reftests/image/tiled-complex-clip-ref.yaml10
-rw-r--r--gfx/wr/wrench/reftests/image/tiled-complex-clip.yaml13
-rw-r--r--gfx/wr/wrench/reftests/image/very-big-ref.yaml5
-rw-r--r--gfx/wr/wrench/reftests/image/very-big-tile-size-ref.yaml5
-rw-r--r--gfx/wr/wrench/reftests/image/very-big-tile-size.yaml9
-rw-r--r--gfx/wr/wrench/reftests/image/very-big.yaml5
-rw-r--r--gfx/wr/wrench/reftests/image/yuv-clip.yaml26
-rw-r--r--gfx/wr/wrench/reftests/image/yuv.pngbin0 -> 620802 bytes
-rw-r--r--gfx/wr/wrench/reftests/image/yuv.yaml19
40 files changed, 330 insertions, 0 deletions
diff --git a/gfx/wr/wrench/reftests/image/colorrect.png b/gfx/wr/wrench/reftests/image/colorrect.png
new file mode 100644
index 0000000000..75283ee1f1
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/colorrect.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/downscale.png b/gfx/wr/wrench/reftests/image/downscale.png
new file mode 100644
index 0000000000..460a29df19
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/downscale.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/downscale.yaml b/gfx/wr/wrench/reftests/image/downscale.yaml
new file mode 100644
index 0000000000..a848af7ad4
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/downscale.yaml
@@ -0,0 +1,18 @@
+# Tests the image quality of using a very large A8 image
+# as a clip mask. It's currently not very good!
+# https://github.com/servo/webrender/issues/2023
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "firefox.png"
+ rect: [0, 0, 350, 90]
+ repeat: false
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 350, 90]
+ color: blue
+
diff --git a/gfx/wr/wrench/reftests/image/firefox.png b/gfx/wr/wrench/reftests/image/firefox.png
new file mode 100644
index 0000000000..f00696789a
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/firefox.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/green-alpha-ref.yaml b/gfx/wr/wrench/reftests/image/green-alpha-ref.yaml
new file mode 100644
index 0000000000..62811ac9e2
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/green-alpha-ref.yaml
@@ -0,0 +1,4 @@
+root:
+ items:
+ - image: solid-color(0, 255, 0, 127, 400, 400)
+ bounds: 0 0 400 400
diff --git a/gfx/wr/wrench/reftests/image/image-alpha-stretch-tile.yaml b/gfx/wr/wrench/reftests/image/image-alpha-stretch-tile.yaml
new file mode 100644
index 0000000000..8579d03720
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/image-alpha-stretch-tile.yaml
@@ -0,0 +1,8 @@
+root:
+ items:
+ - image: solid-color(0, 255, 0, 255, 40, 4097)
+ bounds: 0 0 400 400
+ alpha: premultiplied-alpha
+ color: 255 255 255 0.5
+ stretch-size: 200 200
+ tile-spacing: 0 0
diff --git a/gfx/wr/wrench/reftests/image/image-alpha-stretch.yaml b/gfx/wr/wrench/reftests/image/image-alpha-stretch.yaml
new file mode 100644
index 0000000000..776d750745
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/image-alpha-stretch.yaml
@@ -0,0 +1,6 @@
+root:
+ items:
+ - image: solid-color(0, 255, 0, 255, 40, 4097)
+ bounds: 0 0 400 400
+ alpha: premultiplied-alpha
+ color: 255 255 255 0.5
diff --git a/gfx/wr/wrench/reftests/image/image-filter-stretch-tile.yaml b/gfx/wr/wrench/reftests/image/image-filter-stretch-tile.yaml
new file mode 100644
index 0000000000..facb98d7da
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/image-filter-stretch-tile.yaml
@@ -0,0 +1,10 @@
+root:
+ items:
+ - type: stacking-context
+ bounds: [0, 0, 400, 400]
+ filters: [opacity(0.5)]
+ items:
+ - image: solid-color(0, 255, 0, 255, 40, 4097)
+ bounds: 0 0 400 400
+ stretch-size: 200 200
+ tile-spacing: 0 0
diff --git a/gfx/wr/wrench/reftests/image/image-filter-stretch.yaml b/gfx/wr/wrench/reftests/image/image-filter-stretch.yaml
new file mode 100644
index 0000000000..c988f174ea
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/image-filter-stretch.yaml
@@ -0,0 +1,8 @@
+root:
+ items:
+ - type: stacking-context
+ bounds: [0, 0, 400, 400]
+ filters: [opacity(0.5)]
+ items:
+ - image: solid-color(0, 255, 0, 255, 40, 4097)
+ bounds: 0 0 400 400
diff --git a/gfx/wr/wrench/reftests/image/occlusion.png b/gfx/wr/wrench/reftests/image/occlusion.png
new file mode 100644
index 0000000000..56332f2ef5
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/occlusion.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/occlusion.yaml b/gfx/wr/wrench/reftests/image/occlusion.yaml
new file mode 100644
index 0000000000..4e89a7765b
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/occlusion.yaml
@@ -0,0 +1,15 @@
+# Ensure that the clip rect of a primitive that is promoted to a compositor
+# surface is correctly applied when registering it as an occlusion plane.
+
+root:
+ items:
+ - type: rect
+ color: red
+ bounds: [50, 50, 200, 200]
+
+ - type: yuv-image
+ format: interleaved
+ src: spacex-yuv.png
+ bounds: [50, 50, 200, 200]
+ prefer-compositor-surface: true
+ clip-rect: [75, 75, 150, 150]
diff --git a/gfx/wr/wrench/reftests/image/reftest.list b/gfx/wr/wrench/reftests/image/reftest.list
new file mode 100644
index 0000000000..a02e322105
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/reftest.list
@@ -0,0 +1,19 @@
+== tile-size.yaml tile-size-ref.yaml
+== very-big.yaml very-big-ref.yaml
+== very-big-tile-size.yaml very-big-tile-size-ref.yaml
+== tile-with-spacing.yaml tile-with-spacing-ref.yaml
+skip_on(android,device) fuzzy(1,331264) == tile-repeat-prim-or-decompose.yaml tile-repeat-prim-or-decompose-ref.yaml
+platform(linux,mac) options(allow-mipmaps) == downscale.yaml downscale.png
+skip_on(android,device) fuzzy-if(platform(swgl),1,20) == segments.yaml segments.png
+platform(linux,mac) fuzzy(1,6105) == yuv.yaml yuv.png
+platform(linux,mac) fuzzy(1,6105) fuzzy-if(platform(swgl),1,205000) == yuv-clip.yaml yuv.png
+skip_on(android,device) == tiled-clip-chain.yaml tiled-clip-chain-ref.yaml
+skip_on(android,device) == tiled-complex-clip.yaml tiled-complex-clip-ref.yaml
+platform(linux,mac) == texture-rect.yaml texture-rect-ref.yaml
+platform(linux) fuzzy(1,161) == occlusion.yaml occlusion.png
+# allow slight lerp change where the squares meet, but catch lerping problems on the boundary (should clamp)
+fuzzy-range(<=2,*450) == rgb_composite.yaml rgb_composite_ref.yaml
+fuzzy(1,160000) == image-alpha-stretch.yaml green-alpha-ref.yaml
+fuzzy(1,160000) == image-alpha-stretch-tile.yaml green-alpha-ref.yaml
+fuzzy(1,160000) == image-filter-stretch.yaml green-alpha-ref.yaml
+fuzzy(1,160000) == image-filter-stretch-tile.yaml green-alpha-ref.yaml
diff --git a/gfx/wr/wrench/reftests/image/rgb_composite.yaml b/gfx/wr/wrench/reftests/image/rgb_composite.yaml
new file mode 100644
index 0000000000..74db512eed
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/rgb_composite.yaml
@@ -0,0 +1,10 @@
+---
+root:
+ items:
+ - type: stacking-context
+ bounds: [50, 50, 100, 100]
+ transform: scale(1.5)
+ items:
+ - image: colorrect.png
+ bounds: [0, 0, 100, 100]
+ prefer-compositor-surface: true
diff --git a/gfx/wr/wrench/reftests/image/rgb_composite_ref.yaml b/gfx/wr/wrench/reftests/image/rgb_composite_ref.yaml
new file mode 100644
index 0000000000..0bc4a6e436
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/rgb_composite_ref.yaml
@@ -0,0 +1,9 @@
+---
+root:
+ items:
+ - type: stacking-context
+ bounds: [50, 50, 100, 100]
+ transform: scale(1.5)
+ items:
+ - image: colorrect.png
+ bounds: [0, 0, 100, 100]
diff --git a/gfx/wr/wrench/reftests/image/segments.png b/gfx/wr/wrench/reftests/image/segments.png
new file mode 100644
index 0000000000..45e4b544d4
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/segments.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/segments.yaml b/gfx/wr/wrench/reftests/image/segments.yaml
new file mode 100644
index 0000000000..840fc60398
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/segments.yaml
@@ -0,0 +1,12 @@
+root:
+ items:
+ - type: clip
+ id: 2
+ complex:
+ - rect: [10, 10, 260, 260]
+ radius: 32
+ - image: checkerboard(2, 16, 16)
+ clip-chain: [2]
+ bounds: [10, 10, 260, 260]
+ - image: checkerboard(2, 16, 16)
+ bounds: [10, 290, 260, 260]
diff --git a/gfx/wr/wrench/reftests/image/spacex-u.png b/gfx/wr/wrench/reftests/image/spacex-u.png
new file mode 100644
index 0000000000..1de9b6ff66
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/spacex-u.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/spacex-uv.png b/gfx/wr/wrench/reftests/image/spacex-uv.png
new file mode 100644
index 0000000000..4b0259900e
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/spacex-uv.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/spacex-v.png b/gfx/wr/wrench/reftests/image/spacex-v.png
new file mode 100644
index 0000000000..1d1a1c0118
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/spacex-v.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/spacex-y.png b/gfx/wr/wrench/reftests/image/spacex-y.png
new file mode 100644
index 0000000000..2256fabecd
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/spacex-y.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/spacex-yuv.png b/gfx/wr/wrench/reftests/image/spacex-yuv.png
new file mode 100644
index 0000000000..6073e71735
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/spacex-yuv.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml b/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml
new file mode 100644
index 0000000000..42d8907434
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/texture-rect-ref.yaml
@@ -0,0 +1,15 @@
+# Reference for test to ensure external images using the textureRect sampler mode work correctly.
+root:
+ items:
+ - type: rect
+ bounds: [0, 0, 50, 50]
+ color: red
+ - type: rect
+ bounds: [50, 0, 50, 50]
+ color: blue
+ - type: rect
+ bounds: [0, 50, 50, 50]
+ color: green
+ - type: rect
+ bounds: [50, 50, 50, 50]
+ color: white \ No newline at end of file
diff --git a/gfx/wr/wrench/reftests/image/texture-rect.yaml b/gfx/wr/wrench/reftests/image/texture-rect.yaml
new file mode 100644
index 0000000000..78e7ce6e86
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/texture-rect.yaml
@@ -0,0 +1,7 @@
+# Test to ensure external images using the textureRect sampler mode work correctly.
+root:
+ items:
+ - image: colorrect.png
+ bounds: [0, 0, 100, 100]
+ external: true
+ external-target: rect \ No newline at end of file
diff --git a/gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose-ref.yaml b/gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose-ref.yaml
new file mode 100644
index 0000000000..8b7e801d56
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose-ref.yaml
@@ -0,0 +1,8 @@
+root:
+ items:
+ - image: xy-gradient(500, 50)
+ bounds: 0 0 800 800
+ stretch-size: 50 50
+ - image: xy-gradient(50, 500)
+ bounds: 800 0 800 800
+ stretch-size: 50 50
diff --git a/gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose.yaml b/gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose.yaml
new file mode 100644
index 0000000000..43b12bbd94
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tile-repeat-prim-or-decompose.yaml
@@ -0,0 +1,17 @@
+# This test aims at exercising the different ways we handle repetition of tiled images.
+root:
+ items:
+ # This should cause the primitive repetition to be decomposed on the cpu along the x axis
+ # but perform the repetition along the y axis on the image shader because the image width
+ # fits within the tile size.
+ - image: xy-gradient(500, 50)
+ bounds: 0 0 800 800
+ stretch-size: 50 50
+ tile-size: 50
+ # This should cause the primitive repetition to be decomposed on the cpu along the y axis
+ # but perform the repetition along the x axis in the image shader because the image height
+ # fits within the tile size.
+ - image: xy-gradient(50, 500)
+ bounds: 800 0 800 800
+ stretch-size: 50 50
+ tile-size: 50
diff --git a/gfx/wr/wrench/reftests/image/tile-size-ref.yaml b/gfx/wr/wrench/reftests/image/tile-size-ref.yaml
new file mode 100644
index 0000000000..c90ea8a341
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tile-size-ref.yaml
@@ -0,0 +1,14 @@
+root:
+ items:
+ - image: xy-gradient(512, 512)
+ bounds: 0 0 512 512
+ stretch-size: 512 512
+ - image: xy-gradient(512, 512)
+ bounds: 512 0 512 512
+ stretch-size: 512 512
+ - image: xy-gradient(512, 512)
+ bounds: 0 512 512 512
+ stretch-size: 512 512
+ - image: xy-gradient(512, 512)
+ bounds: 512 512 512 512
+ stretch-size: 512 512
diff --git a/gfx/wr/wrench/reftests/image/tile-size.yaml b/gfx/wr/wrench/reftests/image/tile-size.yaml
new file mode 100644
index 0000000000..e17a7b53a4
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tile-size.yaml
@@ -0,0 +1,19 @@
+root:
+ items:
+ - image: xy-gradient(512, 512)
+ bounds: 0 0 512 512
+ stretch-size: 512 512
+ tile-size: 64
+ - image: xy-gradient(512, 512)
+ bounds: 512 0 512 512
+ stretch-size: 512 512
+ tile-size: 128
+ - image: xy-gradient(512, 512)
+ bounds: 0 512 512 512
+ stretch-size: 512 512
+ tile-size: 256
+ # tile size bigger than the image itself
+ - image: xy-gradient(512, 512)
+ bounds: 512 512 512 512
+ stretch-size: 512 512
+ tile-size: 4096
diff --git a/gfx/wr/wrench/reftests/image/tile-with-spacing-ref.yaml b/gfx/wr/wrench/reftests/image/tile-with-spacing-ref.yaml
new file mode 100644
index 0000000000..63e1315f0b
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tile-with-spacing-ref.yaml
@@ -0,0 +1,6 @@
+root:
+ items:
+ - image: solid-color(255, 0, 0, 255, 300, 300)
+ bounds: 0 0 800 800
+ stretch-size: 200 200
+ tile-spacing: 10 10
diff --git a/gfx/wr/wrench/reftests/image/tile-with-spacing.yaml b/gfx/wr/wrench/reftests/image/tile-with-spacing.yaml
new file mode 100644
index 0000000000..40bc5802d4
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tile-with-spacing.yaml
@@ -0,0 +1,12 @@
+root:
+ items:
+ # TODO: This test would be more useful if we used an image with variations instead
+ # of a solid color. To do this we first need to change the way pixel snapping is
+ # applied so that when an image is split into several primitives, so that the latter
+ # all get snapped the same way rather than independently.
+ #- image: xy-gradient(300, 300)
+ - image: solid-color(255, 0, 0, 255, 300, 300)
+ bounds: 0 0 800 800
+ stretch-size: 200 200
+ tile-spacing: 10 10
+ tile-size: 64
diff --git a/gfx/wr/wrench/reftests/image/tiled-clip-chain-ref.yaml b/gfx/wr/wrench/reftests/image/tiled-clip-chain-ref.yaml
new file mode 100644
index 0000000000..83b4494269
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tiled-clip-chain-ref.yaml
@@ -0,0 +1,10 @@
+root:
+ items:
+ - image: checkerboard(2, 16, 16)
+ bounds: [10, 10, 260, 260]
+ - type: rect
+ bounds: [10, 110, 200, 200]
+ color: white
+ - type: rect
+ bounds: [110, 10, 200, 270]
+ color: white \ No newline at end of file
diff --git a/gfx/wr/wrench/reftests/image/tiled-clip-chain.yaml b/gfx/wr/wrench/reftests/image/tiled-clip-chain.yaml
new file mode 100644
index 0000000000..9647e319dc
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tiled-clip-chain.yaml
@@ -0,0 +1,11 @@
+# Test that local clip rects from clip-chains are correctly
+# propagated into the local clip rect for tiled images.
+root:
+ items:
+ - type: clip
+ id: 2
+ bounds: [10, 10, 100, 100]
+ - image: checkerboard(2, 16, 16)
+ clip-chain: [2]
+ bounds: [10, 10, 260, 260]
+ tile-size: 64 \ No newline at end of file
diff --git a/gfx/wr/wrench/reftests/image/tiled-complex-clip-ref.yaml b/gfx/wr/wrench/reftests/image/tiled-complex-clip-ref.yaml
new file mode 100644
index 0000000000..871807336a
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tiled-complex-clip-ref.yaml
@@ -0,0 +1,10 @@
+root:
+ items:
+ - type: clip
+ id: 2
+ complex:
+ - rect: [10, 10, 100, 100]
+ radius: 32
+ - image: checkerboard(2, 16, 16)
+ clip-chain: [2]
+ bounds: [10, 10, 260, 260]
diff --git a/gfx/wr/wrench/reftests/image/tiled-complex-clip.yaml b/gfx/wr/wrench/reftests/image/tiled-complex-clip.yaml
new file mode 100644
index 0000000000..00cc8124f5
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/tiled-complex-clip.yaml
@@ -0,0 +1,13 @@
+# Test that complex clips from clip-chains are correctly
+# taken into account for tiled images.
+root:
+ items:
+ - type: clip
+ id: 2
+ complex:
+ - rect: [10, 10, 100, 100]
+ radius: 32
+ - image: checkerboard(2, 16, 16)
+ clip-chain: [2]
+ bounds: [10, 10, 260, 260]
+ tile-size: 64
diff --git a/gfx/wr/wrench/reftests/image/very-big-ref.yaml b/gfx/wr/wrench/reftests/image/very-big-ref.yaml
new file mode 100644
index 0000000000..6d7ea1b4b1
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/very-big-ref.yaml
@@ -0,0 +1,5 @@
+root:
+ items:
+ - type: rect
+ bounds: 0 0 500 500
+ color: red
diff --git a/gfx/wr/wrench/reftests/image/very-big-tile-size-ref.yaml b/gfx/wr/wrench/reftests/image/very-big-tile-size-ref.yaml
new file mode 100644
index 0000000000..6d7ea1b4b1
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/very-big-tile-size-ref.yaml
@@ -0,0 +1,5 @@
+root:
+ items:
+ - type: rect
+ bounds: 0 0 500 500
+ color: red
diff --git a/gfx/wr/wrench/reftests/image/very-big-tile-size.yaml b/gfx/wr/wrench/reftests/image/very-big-tile-size.yaml
new file mode 100644
index 0000000000..d3bb3b8ec7
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/very-big-tile-size.yaml
@@ -0,0 +1,9 @@
+root:
+ items:
+ - type: rect
+ bounds: 0 0 500 500
+ color: green
+ - image: solid-color(255, 0, 0, 255, 100000, 1000)
+ bounds: 0 0 500 500
+ stretch-size: 1000000 1000
+ tile-size: 60000
diff --git a/gfx/wr/wrench/reftests/image/very-big.yaml b/gfx/wr/wrench/reftests/image/very-big.yaml
new file mode 100644
index 0000000000..dc0981d3a4
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/very-big.yaml
@@ -0,0 +1,5 @@
+root:
+ items:
+ - image: solid-color(255, 0, 0, 255, 100000, 1000)
+ bounds: 0 0 500 500
+ stretch-size: 1000000 1000
diff --git a/gfx/wr/wrench/reftests/image/yuv-clip.yaml b/gfx/wr/wrench/reftests/image/yuv-clip.yaml
new file mode 100644
index 0000000000..03fe55c3cd
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/yuv-clip.yaml
@@ -0,0 +1,26 @@
+root:
+ items:
+ - type: clip
+ id: 2
+ complex:
+ - rect: [0, 0, 1314, 650]
+ - type: yuv-image
+ clip-chain: [2]
+ format: planar
+ src-y: spacex-y.png
+ src-u: spacex-u.png
+ src-v: spacex-v.png
+ bounds: [10, 10, 427, 640]
+
+ - type: yuv-image
+ clip-chain: [2]
+ format: interleaved
+ src: spacex-yuv.png
+ bounds: [447, 10, 427, 640]
+
+ - type: yuv-image
+ clip-chain: [2]
+ format: nv12
+ src-y: spacex-y.png
+ src-uv: spacex-uv.png
+ bounds: [887, 10, 427, 640]
diff --git a/gfx/wr/wrench/reftests/image/yuv.png b/gfx/wr/wrench/reftests/image/yuv.png
new file mode 100644
index 0000000000..66519bea8f
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/yuv.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/image/yuv.yaml b/gfx/wr/wrench/reftests/image/yuv.yaml
new file mode 100644
index 0000000000..8120d93f8c
--- /dev/null
+++ b/gfx/wr/wrench/reftests/image/yuv.yaml
@@ -0,0 +1,19 @@
+root:
+ items:
+ - type: yuv-image
+ format: planar
+ src-y: spacex-y.png
+ src-u: spacex-u.png
+ src-v: spacex-v.png
+ bounds: [10, 10, 427, 640]
+
+ - type: yuv-image
+ format: interleaved
+ src: spacex-yuv.png
+ bounds: [447, 10, 427, 640]
+
+ - type: yuv-image
+ format: nv12
+ src-y: spacex-y.png
+ src-uv: spacex-uv.png
+ bounds: [887, 10, 427, 640]