summaryrefslogtreecommitdiffstats
path: root/gfx/wr/wrench/reftests/mask
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /gfx/wr/wrench/reftests/mask
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--gfx/wr/wrench/reftests/mask/aligned-layer-rect-ref.yaml8
-rw-r--r--gfx/wr/wrench/reftests/mask/aligned-layer-rect.yaml17
-rw-r--r--gfx/wr/wrench/reftests/mask/checkerboard-tiling.yaml18
-rw-r--r--gfx/wr/wrench/reftests/mask/checkerboard.pngbin0 -> 4958 bytes
-rw-r--r--gfx/wr/wrench/reftests/mask/checkerboard.yaml15
-rw-r--r--gfx/wr/wrench/reftests/mask/circle.pngbin0 -> 4928 bytes
-rw-r--r--gfx/wr/wrench/reftests/mask/green.yaml6
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-atomicity-ref.yaml17
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-atomicity-tiling.yaml28
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-atomicity.yaml27
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-perspective-tiling.yaml25
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-perspective.pngbin0 -> 279 bytes
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-perspective.yaml24
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-ref.yaml9
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-tiling.yaml16
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect-ref.yaml6
-rw-r--r--gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect.yaml25
-rw-r--r--gfx/wr/wrench/reftests/mask/mask.pngbin0 -> 187 bytes
-rw-r--r--gfx/wr/wrench/reftests/mask/mask.yaml15
-rw-r--r--gfx/wr/wrench/reftests/mask/missing-mask-ref.yaml7
-rw-r--r--gfx/wr/wrench/reftests/mask/missing-mask.yaml14
-rw-r--r--gfx/wr/wrench/reftests/mask/nested-mask-ref.yaml9
-rw-r--r--gfx/wr/wrench/reftests/mask/nested-mask-tiling.yaml23
-rw-r--r--gfx/wr/wrench/reftests/mask/nested-mask.yaml21
-rw-r--r--gfx/wr/wrench/reftests/mask/out-of-bounds.yaml16
-rw-r--r--gfx/wr/wrench/reftests/mask/reftest.list17
-rw-r--r--gfx/wr/wrench/reftests/mask/rounded-corners.pngbin0 -> 1697 bytes
-rw-r--r--gfx/wr/wrench/reftests/mask/rounded-corners.yaml24
-rw-r--r--gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.pngbin0 -> 5314 bytes
-rw-r--r--gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.yaml30
-rw-r--r--gfx/wr/wrench/reftests/mask/tiny-check-mask.pngbin0 -> 138 bytes
31 files changed, 417 insertions, 0 deletions
diff --git a/gfx/wr/wrench/reftests/mask/aligned-layer-rect-ref.yaml b/gfx/wr/wrench/reftests/mask/aligned-layer-rect-ref.yaml
new file mode 100644
index 0000000000..d4ef946d7c
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/aligned-layer-rect-ref.yaml
@@ -0,0 +1,8 @@
+---
+root:
+ items:
+ - type: stacking-context
+ items:
+ - type: rect
+ bounds: [9, 9, 10, 10]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/aligned-layer-rect.yaml b/gfx/wr/wrench/reftests/mask/aligned-layer-rect.yaml
new file mode 100644
index 0000000000..7c2628b008
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/aligned-layer-rect.yaml
@@ -0,0 +1,17 @@
+---
+root:
+ items:
+ - type: scroll-frame
+ id: 2
+ bounds: [9, 9, 10, 10]
+ content-size: [95, 88]
+ clip-to-frame: true
+ items:
+ - type: scroll-frame
+ bounds: [0, 0, 100, 100]
+ items:
+ - type: rect
+ bounds: [0, 0, 100, 100]
+ color: blue
+ clip-chain: [2]
+ \ No newline at end of file
diff --git a/gfx/wr/wrench/reftests/mask/checkerboard-tiling.yaml b/gfx/wr/wrench/reftests/mask/checkerboard-tiling.yaml
new file mode 100644
index 0000000000..db9f115d92
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/checkerboard-tiling.yaml
@@ -0,0 +1,18 @@
+# Tests a tiled image mask with leftover tile offsets.
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: transparent-checkerboard(2, 16, 16)
+ rect: [0, 0, 200, 200]
+ repeat: false
+ # This is the point of the test, can't be a divisor of 200.
+ tile-size: 37
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 200, 200]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/checkerboard.png b/gfx/wr/wrench/reftests/mask/checkerboard.png
new file mode 100644
index 0000000000..f2c45c3194
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/checkerboard.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/mask/checkerboard.yaml b/gfx/wr/wrench/reftests/mask/checkerboard.yaml
new file mode 100644
index 0000000000..755b4f8556
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/checkerboard.yaml
@@ -0,0 +1,15 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: transparent-checkerboard(2, 16, 16)
+ rect: [0, 0, 200, 200]
+ repeat: false
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 200, 200]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/circle.png b/gfx/wr/wrench/reftests/mask/circle.png
new file mode 100644
index 0000000000..ea5789e44f
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/circle.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/mask/green.yaml b/gfx/wr/wrench/reftests/mask/green.yaml
new file mode 100644
index 0000000000..0d3df60582
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/green.yaml
@@ -0,0 +1,6 @@
+---
+root:
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: green
diff --git a/gfx/wr/wrench/reftests/mask/mask-atomicity-ref.yaml b/gfx/wr/wrench/reftests/mask/mask-atomicity-ref.yaml
new file mode 100644
index 0000000000..81480856c0
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-atomicity-ref.yaml
@@ -0,0 +1,17 @@
+---
+root:
+ items:
+ - type: rect
+ bounds: [25, 25, 100, 100]
+ color: red
+ - type: stacking-context
+ bounds: [0, 0, 200, 200]
+ filters:
+ - "opacity(0.5)"
+ items:
+ - type: rect
+ bounds: [0, 0, 100, 100]
+ color: blue
+ - type: rect
+ bounds: [50, 50, 100, 100]
+ color: green
diff --git a/gfx/wr/wrench/reftests/mask/mask-atomicity-tiling.yaml b/gfx/wr/wrench/reftests/mask/mask-atomicity-tiling.yaml
new file mode 100644
index 0000000000..17d779d779
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-atomicity-tiling.yaml
@@ -0,0 +1,28 @@
+---
+root:
+ items:
+ - type: rect
+ bounds: [25, 25, 100, 100]
+ color: red
+ - type: clip
+ id: 2
+ image-mask:
+ # premultiplied 0.5 alpha white(??)
+ image: solid-color(127,127,127,127,200,200)
+ rect: [0, 0, 200, 200]
+ tile-size: 10
+ repeat: false
+ -
+ type: "clip-chain"
+ id: 3
+ clips: [2]
+ - type: stacking-context
+ bounds: [0, 0, 200, 200]
+ clip-chain: 3
+ items:
+ - type: rect
+ bounds: [0, 0, 100, 100]
+ color: blue
+ - type: rect
+ bounds: [50, 50, 100, 100]
+ color: green
diff --git a/gfx/wr/wrench/reftests/mask/mask-atomicity.yaml b/gfx/wr/wrench/reftests/mask/mask-atomicity.yaml
new file mode 100644
index 0000000000..26a3e9cede
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-atomicity.yaml
@@ -0,0 +1,27 @@
+---
+root:
+ items:
+ - type: rect
+ bounds: [25, 25, 100, 100]
+ color: red
+ - type: clip
+ id: 2
+ image-mask:
+ # premultiplied 0.5 alpha white(??)
+ image: solid-color(127,127,127,127,200,200)
+ rect: [0, 0, 200, 200]
+ repeat: false
+ -
+ type: "clip-chain"
+ id: 3
+ clips: [2]
+ - type: stacking-context
+ bounds: [0, 0, 200, 200]
+ clip-chain: 3
+ items:
+ - type: rect
+ bounds: [0, 0, 100, 100]
+ color: blue
+ - type: rect
+ bounds: [50, 50, 100, 100]
+ color: green
diff --git a/gfx/wr/wrench/reftests/mask/mask-perspective-tiling.yaml b/gfx/wr/wrench/reftests/mask/mask-perspective-tiling.yaml
new file mode 100644
index 0000000000..fd297c5dfa
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-perspective-tiling.yaml
@@ -0,0 +1,25 @@
+---
+root:
+ items:
+ -
+ type: stacking-context
+ perspective: 1
+ perspective-origin: 0 0
+ items:
+ -
+ type: stacking-context
+ transform: 10 0 0 0 0 10 0 0 0 0 10 0 0 0 -9 1
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "mask.png"
+ rect: [0, 0, 35, 35]
+ repeat: false
+ tile-size: 5
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/mask-perspective.png b/gfx/wr/wrench/reftests/mask/mask-perspective.png
new file mode 100644
index 0000000000..425872c290
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-perspective.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/mask/mask-perspective.yaml b/gfx/wr/wrench/reftests/mask/mask-perspective.yaml
new file mode 100644
index 0000000000..24f7ba417e
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-perspective.yaml
@@ -0,0 +1,24 @@
+---
+root:
+ items:
+ -
+ type: stacking-context
+ perspective: 1
+ perspective-origin: 0 0
+ items:
+ -
+ type: stacking-context
+ transform: 10 0 0 0 0 10 0 0 0 0 10 0 0 0 -9 1
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "mask.png"
+ rect: [0, 0, 35, 35]
+ repeat: false
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/mask-ref.yaml b/gfx/wr/wrench/reftests/mask/mask-ref.yaml
new file mode 100644
index 0000000000..01c4e60946
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-ref.yaml
@@ -0,0 +1,9 @@
+---
+root:
+ items:
+ - type: stacking-context
+ bounds: [0, 0, 95, 88]
+ items:
+ - type: rect
+ bounds: [9, 9, 10, 10]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/mask-tiling.yaml b/gfx/wr/wrench/reftests/mask/mask-tiling.yaml
new file mode 100644
index 0000000000..711095b924
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-tiling.yaml
@@ -0,0 +1,16 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "mask.png"
+ rect: [0, 0, 35, 35]
+ repeat: false
+ tile-size: 5
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect-ref.yaml b/gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect-ref.yaml
new file mode 100644
index 0000000000..1df66453d6
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect-ref.yaml
@@ -0,0 +1,6 @@
+---
+root:
+ items:
+ - type: rect
+ bounds: [0, 0, 100, 100]
+ color: 0 255 0 1.0
diff --git a/gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect.yaml b/gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect.yaml
new file mode 100644
index 0000000000..739e54fa5b
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask-transformed-to-empty-rect.yaml
@@ -0,0 +1,25 @@
+---
+root:
+ items:
+ - type: stacking-context
+ bounds: [0, 0, 300, 300]
+ "scroll-policy": scrollable
+ z-index: 4
+ transform: [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 150, -150, 1]
+ items:
+ - type: clip
+ # This image mask here assures that we will be forced to try to
+ # mask instead of skipping it due to the mask rect becoming a
+ # zero rect.
+ image-mask:
+ image: "tiny-check-mask.png"
+ rect: [0, 0, 300, 300]
+ repeat: false
+ id: 2
+ - type: rect
+ clip-chain: [2]
+ bounds: [0, 0, 300, 300]
+ color: 0 128 0 1.0000
+ - type: rect
+ bounds: [0, 0, 100, 100]
+ color: 0 255 0 1.0
diff --git a/gfx/wr/wrench/reftests/mask/mask.png b/gfx/wr/wrench/reftests/mask/mask.png
new file mode 100644
index 0000000000..ab1bdb9b50
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/mask/mask.yaml b/gfx/wr/wrench/reftests/mask/mask.yaml
new file mode 100644
index 0000000000..65b3127621
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/mask.yaml
@@ -0,0 +1,15 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "mask.png"
+ rect: [0, 0, 35, 35]
+ repeat: false
+ - type: stacking-context
+ clip-chain: [2]
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/missing-mask-ref.yaml b/gfx/wr/wrench/reftests/mask/missing-mask-ref.yaml
new file mode 100644
index 0000000000..112da9c9d1
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/missing-mask-ref.yaml
@@ -0,0 +1,7 @@
+# Don't crash when supplied an invalid image key for the mask!
+---
+root:
+ items:
+ - type: rect
+ bounds: [0, 0, 35, 35]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/missing-mask.yaml b/gfx/wr/wrench/reftests/mask/missing-mask.yaml
new file mode 100644
index 0000000000..69a1c72774
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/missing-mask.yaml
@@ -0,0 +1,14 @@
+# Don't crash when supplied an invalid image key for the mask!
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: invalid
+ rect: [0, 0, 35, 35]
+ repeat: false
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
+ clip-chain: [2]
diff --git a/gfx/wr/wrench/reftests/mask/nested-mask-ref.yaml b/gfx/wr/wrench/reftests/mask/nested-mask-ref.yaml
new file mode 100644
index 0000000000..c16df79e4c
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/nested-mask-ref.yaml
@@ -0,0 +1,9 @@
+---
+root:
+ items:
+ - type: stacking-context
+ bounds: [0, 0, 95, 88]
+ items:
+ - type: rect
+ bounds: [13, 13, 6, 6]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/nested-mask-tiling.yaml b/gfx/wr/wrench/reftests/mask/nested-mask-tiling.yaml
new file mode 100644
index 0000000000..b096021380
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/nested-mask-tiling.yaml
@@ -0,0 +1,23 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "mask.png"
+ rect: [0, 0, 35, 35]
+ repeat: false
+ tile-size: 5
+ - type: clip
+ id: 3
+ image-mask:
+ image: "mask.png"
+ rect: [4, 4, 35, 35]
+ repeat: false
+ tile-size: 5
+ - type: stacking-context
+ clip-chain: [2, 3]
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/nested-mask.yaml b/gfx/wr/wrench/reftests/mask/nested-mask.yaml
new file mode 100644
index 0000000000..3a836f7bf1
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/nested-mask.yaml
@@ -0,0 +1,21 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "mask.png"
+ rect: [0, 0, 35, 35]
+ repeat: false
+ - type: clip
+ id: 3
+ image-mask:
+ image: "mask.png"
+ rect: [4, 4, 35, 35]
+ repeat: false
+ - type: stacking-context
+ clip-chain: [2, 3]
+ items:
+ - type: rect
+ bounds: [0, 0, 95, 88]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/out-of-bounds.yaml b/gfx/wr/wrench/reftests/mask/out-of-bounds.yaml
new file mode 100644
index 0000000000..df478957df
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/out-of-bounds.yaml
@@ -0,0 +1,16 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ complex:
+ - rect: [0, 0, 10000, 10000]
+ radius:
+ top-left: [30, 30]
+ top-right: [30, 30]
+ bottom-right: [30, 30]
+ bottom-left: [30, 30]
+ - type: rect
+ bounds: [0, 0, 10000, 10000]
+ color: green
+ clip-chain: [2]
diff --git a/gfx/wr/wrench/reftests/mask/reftest.list b/gfx/wr/wrench/reftests/mask/reftest.list
new file mode 100644
index 0000000000..8119f4a830
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/reftest.list
@@ -0,0 +1,17 @@
+fuzzy(1,10) == mask.yaml mask-ref.yaml
+fuzzy(1,10) == mask-tiling.yaml mask-ref.yaml
+fuzzy(1,10) == nested-mask.yaml nested-mask-ref.yaml
+== nested-mask-tiling.yaml nested-mask-ref.yaml
+!= mask.yaml green.yaml
+== aligned-layer-rect.yaml aligned-layer-rect-ref.yaml
+== mask-transformed-to-empty-rect.yaml mask-transformed-to-empty-rect-ref.yaml
+platform(linux,mac) == rounded-corners.yaml rounded-corners.png
+!= mask.yaml out-of-bounds.yaml
+platform(linux,mac) fuzzy(1,17500) color_targets(3) alpha_targets(1) == mask-atomicity.yaml mask-atomicity-ref.yaml
+platform(linux,mac) fuzzy(1,17500) == mask-atomicity-tiling.yaml mask-atomicity-ref.yaml
+platform(linux,mac) == mask-perspective.yaml mask-perspective.png
+== fuzzy(1,11) mask-perspective-tiling.yaml mask-perspective.yaml
+platform(linux,mac) == checkerboard.yaml checkerboard.png
+skip_on(android,device) fuzzy(2,1900) == checkerboard.yaml checkerboard-tiling.yaml # Fails on a Pixel2
+== missing-mask.yaml missing-mask-ref.yaml
+platform(linux) == scaled-filter-raster-root.yaml scaled-filter-raster-root.png
diff --git a/gfx/wr/wrench/reftests/mask/rounded-corners.png b/gfx/wr/wrench/reftests/mask/rounded-corners.png
new file mode 100644
index 0000000000..4f8d1d0fa0
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/rounded-corners.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/mask/rounded-corners.yaml b/gfx/wr/wrench/reftests/mask/rounded-corners.yaml
new file mode 100644
index 0000000000..1cedea53bc
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/rounded-corners.yaml
@@ -0,0 +1,24 @@
+---
+root:
+ items:
+ - type: clip
+ id: 2
+ complex:
+ - rect: [0, 0, 100, 100]
+ radius:
+ top-left: [30, 30]
+ top-right: [30, 30]
+ bottom-right: [30, 30]
+ bottom-left: [30, 30]
+ - type: border
+ clip-chain: [2]
+ bounds: [0, 0, 100, 100]
+ width: [5, 5, 5, 5]
+ border-type: normal
+ style: [solid, solid, solid, solid]
+ color: [blue, blue, blue, blue]
+ radius:
+ top-left: [30, 30]
+ top-right: [30, 30]
+ bottom-right: [0, 0]
+ bottom-left: [0, 0]
diff --git a/gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.png b/gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.png
new file mode 100644
index 0000000000..e9cf49553e
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.png
Binary files differ
diff --git a/gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.yaml b/gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.yaml
new file mode 100644
index 0000000000..77925dacff
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/scaled-filter-raster-root.yaml
@@ -0,0 +1,30 @@
+# Verify that a tiled clip mask is correctly applied to a surface that
+# is both a raster root and has a device-pixel ratio different than the
+# primary surface (due to the scale transform).
+---
+root:
+ items:
+ - type: stacking-context
+ transform-origin: [0, 0]
+ transform: scale(20)
+ items:
+ - type: clip
+ id: 2
+ image-mask:
+ image: "circle.png"
+ rect: [10, 10, 10, 10]
+ repeat: false
+ tile-size: 200
+ -
+ type: "clip-chain"
+ id: 3
+ clips: [2]
+ - type: stacking-context
+ filters: [opacity(0.5)]
+ items:
+ - type: stacking-context
+ clip-chain: 3
+ items:
+ - type: rect
+ bounds: [10, 10, 10, 10]
+ color: blue
diff --git a/gfx/wr/wrench/reftests/mask/tiny-check-mask.png b/gfx/wr/wrench/reftests/mask/tiny-check-mask.png
new file mode 100644
index 0000000000..d6f6e3548d
--- /dev/null
+++ b/gfx/wr/wrench/reftests/mask/tiny-check-mask.png
Binary files differ