diff options
Diffstat (limited to 'third_party/webrender/wrench')
257 files changed, 447 insertions, 1846 deletions
diff --git a/third_party/webrender/wrench/Cargo.toml b/third_party/webrender/wrench/Cargo.toml index f51e4202ff2..5595ced68e2 100644 --- a/third_party/webrender/wrench/Cargo.toml +++ b/third_party/webrender/wrench/Cargo.toml @@ -7,25 +7,30 @@ license = "MPL-2.0" edition = "2018" [dependencies] -base64 = "0.12" +base64 = "0.10" +bincode = "1.0" +byteorder = "1.0" env_logger = { version = "0.5", optional = true } -gleam = "0.15" +euclid = "0.22" +gleam = "0.12" glutin = "0.21" +app_units = "0.7" clap = { version = "2", features = ["yaml"] } log = "0.4" yaml-rust = "0.4" serde_json = "1.0" +ron = "0.5" time = "0.1" chrono = "0.2" crossbeam = "0.2" osmesa-sys = { version = "0.1.2", optional = true } -osmesa-src = { version = "0.2", git = "https://github.com/servo/osmesa-src", optional = true } -webrender = { path = "../webrender", features = ["capture", "replay", "png", "profiler", "no_static_freetype", "leak_checks"] } +osmesa-src = { git = "https://github.com/servo/osmesa-src", optional = true } +webrender = {path = "../webrender", features=["capture","replay","debugger","png","profiler","no_static_freetype", "leak_checks"]} +webrender_api = {path = "../webrender_api", features=["serialize","deserialize"]} winit = "0.19" -serde = { version = "1.0", features = ["derive"] } +serde = {version = "1.0", features = ["derive"] } semver = "0.9.0" swgl = { path = "../swgl", optional = true } -tracy-rs = "0.1.2" [dependencies.image] version = "0.23" @@ -43,7 +48,7 @@ software = [ "swgl" ] [target.'cfg(target_os = "windows")'.dependencies] dwrote = "0.11" -mozangle = { version = "0.3.2", features = ["egl"] } +mozangle = {version = "0.3.1", features = ["egl"]} [target.'cfg(all(unix, not(target_os = "android")))'.dependencies] font-loader = "0.11" @@ -52,8 +57,7 @@ font-loader = "0.11" [package.metadata.android] package_name = "org.mozilla.wrench" label = "Wrench" -# keep it in sync with android-sdk-version in android-sdk.configure -android_version = 30 +android_version = 29 target_sdk_version = 18 min_sdk_version = 18 fullscreen = true diff --git a/third_party/webrender/wrench/README.md b/third_party/webrender/wrench/README.md index 6a60c6bb56c..1119a27112e 100644 --- a/third_party/webrender/wrench/README.md +++ b/third_party/webrender/wrench/README.md @@ -2,20 +2,29 @@ `wrench` is a tool for debugging webrender outside of a browser engine. -## Build - -Build `wrench` with `cargo build --release` within the `wrench` directory. - ## headless `wrench` has an optional headless mode for use in continuous integration. To run in headless mode, instead of using `cargo run -- args`, use `./headless.py args`. -## `show` +## `replay` and `show` + +Binary recordings can be generated by webrender and replayed with `wrench replay`. Enable binary recording in `RendererOptions`. + +```rust +RendererOptions { + ... + recorder: Some(Box::new(BinaryRecorder::new("wr-frame.bin"))), + ... +} +``` + +If you are working on gecko integration you can enable recording in `webrender_bindings/src/bindings.rs` by setting + +```rust +static ENABLE_RECORDING: bool = true; +``` -If you are working on gecko integration you can capture a frame via the following steps. -* Visit about:support and check that the "Compositing" value in the "Graphics" table says "WebRender". Enable `gfx.webrender.all` in about:config if necessary to enable WebRender. -* Hit ctrl-shift-3 to capture the frame. The data will be put in `~/wr-capture`. -* View the capture with `wrench show ~/wr-capture`. +`wrench replay --save yaml` will convert the recording into frames described in yaml. Frames can then be replayed with `wrench show`. ## `reftest` diff --git a/third_party/webrender/wrench/android.txt b/third_party/webrender/wrench/android.txt index 35f5863c91d..7ff0ac0eb1d 100644 --- a/third_party/webrender/wrench/android.txt +++ b/third_party/webrender/wrench/android.txt @@ -10,10 +10,9 @@ Follow the steps at https://github.com/rust-windowing/android-rs-glue#setting-up - Install both the i686-linux-android and armv7-linux-androideabi rust targets, as the APK will include native libraries with both architectures. - - Don't install currently published version of cargo-apk as it doesn't work with the - version of winit and glutin we are using. - Instead, install the git master version of our fork like so: - cargo install --git https://github.com/jamienicol/android-rs-glue cargo-apk + - Don't install currently published version of cargo-apk (it doesn't support newer NDKs). + Instead, install the git master version like so: + cargo install --git https://github.com/rust-windowing/android-rs-glue cargo-apk - Consider adding ~/.mozbuild/android-sdk-linux/platform-tools to your path, for the adb commands below. diff --git a/third_party/webrender/wrench/benchmarks/large-blur-radius.yaml b/third_party/webrender/wrench/benchmarks/large-blur-radius.yaml index 55cfec76439..927e4237656 100644 --- a/third_party/webrender/wrench/benchmarks/large-blur-radius.yaml +++ b/third_party/webrender/wrench/benchmarks/large-blur-radius.yaml @@ -3,7 +3,7 @@ root: items: - type: stacking-context bounds: 100 100 1024 1024 - filters: blur(100, 100) + filters: blur(100) items: - type: rect bounds: 0 0 1024 1024 diff --git a/third_party/webrender/wrench/invalidation/basic.yaml b/third_party/webrender/wrench/invalidation/basic.yaml deleted file mode 100644 index c7d1b6f4502..00000000000 --- a/third_party/webrender/wrench/invalidation/basic.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -root: - items: - - type: rect - color: red - bounds: 100 100 500 100 diff --git a/third_party/webrender/wrench/invalidation/composite_nop_1.yaml b/third_party/webrender/wrench/invalidation/composite_nop_1.yaml deleted file mode 100644 index ce6cc46977f..00000000000 --- a/third_party/webrender/wrench/invalidation/composite_nop_1.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -root: - items: - - type: rect - color: red - bounds: 100 100 100 100 diff --git a/third_party/webrender/wrench/invalidation/composite_nop_2.yaml b/third_party/webrender/wrench/invalidation/composite_nop_2.yaml deleted file mode 100644 index a99663ed549..00000000000 --- a/third_party/webrender/wrench/invalidation/composite_nop_2.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -root: - items: - - type: rect - color: red - bounds: 100 120 100 100 diff --git a/third_party/webrender/wrench/reftests/aa/reftest.list b/third_party/webrender/wrench/reftests/aa/reftest.list index a7490085d0d..af7f1da1b36 100644 --- a/third_party/webrender/wrench/reftests/aa/reftest.list +++ b/third_party/webrender/wrench/reftests/aa/reftest.list @@ -1,3 +1,3 @@ -skip_on(android) fuzzy(1,1) fuzzy-if(platform(swgl),4,27) == rounded-rects.yaml rounded-rects-ref.png # Too wide for Android +skip_on(android) == rounded-rects.yaml rounded-rects-ref.png # Too wide for Android == aa-dist-bug.yaml aa-dist-bug-ref.yaml == fractional-radii.yaml fractional-radii-ref.yaml diff --git a/third_party/webrender/wrench/reftests/aa/rounded-rects-ref.png b/third_party/webrender/wrench/reftests/aa/rounded-rects-ref.png Binary files differindex 73fb98446b7..441f2ac93d9 100644 --- a/third_party/webrender/wrench/reftests/aa/rounded-rects-ref.png +++ b/third_party/webrender/wrench/reftests/aa/rounded-rects-ref.png diff --git a/third_party/webrender/wrench/reftests/backface/backface-flatten.yaml b/third_party/webrender/wrench/reftests/backface/backface-flatten.yaml deleted file mode 100644 index e754d45bc94..00000000000 --- a/third_party/webrender/wrench/reftests/backface/backface-flatten.yaml +++ /dev/null @@ -1,31 +0,0 @@ -# In this test, there is a flattened ref frame between an element -# and the picture it's rendered into. The element should be considered -# invisible as it's back face oriented at this flattening step. -# If WR only checks the "final" transform, it will consider it visible. - ---- -root: - transform: rotate-x(1) - items: - - type: stacking-context - transform-style: preserve-3d - #transform: rotate-x(1) - items: - - type: stacking-context - bounds: 0 0 200 200 - transform: rotate-y(30) - transform-style: flat - items: - - type: stacking-context - bounds: 0 0 200 200 - transform: rotate-y(-100) - transform-style: preserve-3d - items: - - type: stacking-context - #transform: rotate-x(1) - transform-style: flat - items: - - type: rect - bounds: 0 0 200 200 - color: green - backface-visible: false diff --git a/third_party/webrender/wrench/reftests/backface/backface-vis-3d.yaml b/third_party/webrender/wrench/reftests/backface/backface-vis-3d.yaml deleted file mode 100644 index c58026a5cc0..00000000000 --- a/third_party/webrender/wrench/reftests/backface/backface-vis-3d.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Verifies that a 3d context selects the correct reference (containing block) spatial node. -root: - items: - - type: stacking-context - bounds: 100 0 100 100 - transform: scale-x(-1) - items: - - type: stacking-context - bounds: 0 0 100 100 - transform: rotate-y(180) - transform-style: preserve-3d - items: - - type: rect - bounds: 0 0 100 100 - color: red - backface-visible: false diff --git a/third_party/webrender/wrench/reftests/backface/reftest.list b/third_party/webrender/wrench/reftests/backface/reftest.list index 70ab29b4a45..ec21edb22f9 100644 --- a/third_party/webrender/wrench/reftests/backface/reftest.list +++ b/third_party/webrender/wrench/reftests/backface/reftest.list @@ -5,5 +5,3 @@ == backface-picture.yaml backface-picture-ref.yaml == backface-double-flip.yaml blank.yaml == backface-both-sides.yaml backface-both-sides-ref.yaml -== backface-vis-3d.yaml blank.yaml -== backface-flatten.yaml blank.yaml diff --git a/third_party/webrender/wrench/reftests/blend/mix-blend-complex-transform.png b/third_party/webrender/wrench/reftests/blend/mix-blend-complex-transform.png Binary files differdeleted file mode 100644 index c88dccb864f..00000000000 --- a/third_party/webrender/wrench/reftests/blend/mix-blend-complex-transform.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/blend/mix-blend-complex-transform.yaml b/third_party/webrender/wrench/reftests/blend/mix-blend-complex-transform.yaml deleted file mode 100644 index 33a1ab691c0..00000000000 --- a/third_party/webrender/wrench/reftests/blend/mix-blend-complex-transform.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -root: - items: - - type: stacking-context - transform: [ - 1, 0, 0, 0, - 0.3443276, 1, 0, 0, - 0, 0, 1, 0, - -1822.09131, 0, 0, 1 - ] - bounds: 12 12 0 0 - items: - - type: clip - bounds: 0 0 1884 1290 - id: 2 - - type: stacking-context - transform: [ - 1, 0, 0, 0, - -0.3443276, 1, 0, 0, - 0, 0, 1, 0, - 444.18262, 0, 0, 1 - ] - items: - - type: stacking-context - clip-node: 2 - transform: [ - 1, 0, 0, 0, - 0.3443276, 1, 0, 0, - 0, 0, 1, 0, - -444.18262, 0, 0, 1 - ] - items: - - type: stacking-context - items: - - type: stacking-context - blend-container: true - items: - - type: stacking-context - mix-blend-mode: multiply - items: - - type: stacking-context - bounds: 1436 0 0 0 - transform: [ - 1, 0, 0, 0, - -0.3443276, 1, 0, 0, - 0, 0, 1, 0, - 444.18262, 0, 0, 1 - ] - items: - - type: rect - color: red - bounds: 0 0 113.025 1290 diff --git a/third_party/webrender/wrench/reftests/blend/mix-blend-invalid-backdrop-ref.yaml b/third_party/webrender/wrench/reftests/blend/mix-blend-invalid-backdrop-ref.yaml deleted file mode 100644 index 1e204cb3385..00000000000 --- a/third_party/webrender/wrench/reftests/blend/mix-blend-invalid-backdrop-ref.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -root: - items: - - type: rect - bounds: [0, 0, 100, 100] - color: red diff --git a/third_party/webrender/wrench/reftests/blend/mix-blend-invalid-backdrop.yaml b/third_party/webrender/wrench/reftests/blend/mix-blend-invalid-backdrop.yaml deleted file mode 100644 index e5f56e74c1b..00000000000 --- a/third_party/webrender/wrench/reftests/blend/mix-blend-invalid-backdrop.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# Test that if the parent surface is clipped such that there -# is no backdrop rect available, no crash occurs and output -# is as expected (a no-op mix-blend) ---- -root: - items: - # Ensure a filter is placed here to force this mix-blend to isolate from - # the tile cache backdrop - otherwise the surface won't get clipped, which - # is what we're trying to test. - - type: stacking-context - filters: [identity] - items: - - type: clip - id: 2 - bounds: [0, 0, 100, 100] - - type: stacking-context - blend-container: true - clip-node: 2 - items: - - type: rect - bounds: [0, 0, 100, 100] - color: red - - type: stacking-context - bounds: [100, 0, 100, 100] - mix-blend-mode: multiply - items: - - type: rect - bounds: [0, 0, 100, 100] - color: green diff --git a/third_party/webrender/wrench/reftests/blend/reftest.list b/third_party/webrender/wrench/reftests/blend/reftest.list index f1621b20903..e533e36ce06 100644 --- a/third_party/webrender/wrench/reftests/blend/reftest.list +++ b/third_party/webrender/wrench/reftests/blend/reftest.list @@ -1,10 +1,10 @@ == multiply.yaml multiply-ref.yaml fuzzy(1,32) == multiply-2.yaml multiply-2-ref.yaml -fuzzy(1,32) == color_targets(3) alpha_targets(0) multiply-3.yaml multiply-2-ref.yaml +fuzzy(1,32) == color_targets(4) alpha_targets(0) multiply-3.yaml multiply-2-ref.yaml == difference.yaml difference-ref.yaml fuzzy(1,30000) == difference-transparent.yaml difference-transparent-ref.yaml -fuzzy-if(platform(swgl),1,10000) == darken.yaml darken-ref.yaml -fuzzy-if(platform(swgl),1,10000) == lighten.yaml lighten-ref.yaml +== darken.yaml darken-ref.yaml +== lighten.yaml lighten-ref.yaml fuzzy(1,32) == repeated-difference.yaml repeated-difference-ref.yaml @@ -21,6 +21,4 @@ fuzzy(3,397) == isolated-2.yaml isolated-2-ref.yaml fuzzy(1,2502) == transparent-composite-1.yaml transparent-composite-1-ref.yaml fuzzy(1,2502) == transparent-composite-2.yaml transparent-composite-2-ref.yaml -fuzzy(2,420) == multi-mix-blend-mode.yaml multi-mix-blend-mode-ref.yaml -== mix-blend-invalid-backdrop.yaml mix-blend-invalid-backdrop-ref.yaml -platform(linux) == mix-blend-complex-transform.yaml mix-blend-complex-transform.png +fuzzy(2,324) == multi-mix-blend-mode.yaml multi-mix-blend-mode-ref.yaml diff --git a/third_party/webrender/wrench/reftests/border/border-clamp-corner-radius.png b/third_party/webrender/wrench/reftests/border/border-clamp-corner-radius.png Binary files differindex cf20fb59902..bdeda438645 100644 --- a/third_party/webrender/wrench/reftests/border/border-clamp-corner-radius.png +++ b/third_party/webrender/wrench/reftests/border/border-clamp-corner-radius.png diff --git a/third_party/webrender/wrench/reftests/border/border-dashed-dotted-caching.png b/third_party/webrender/wrench/reftests/border/border-dashed-dotted-caching.png Binary files differindex 14a79cd475a..652efde994c 100644 --- a/third_party/webrender/wrench/reftests/border/border-dashed-dotted-caching.png +++ b/third_party/webrender/wrench/reftests/border/border-dashed-dotted-caching.png diff --git a/third_party/webrender/wrench/reftests/border/border-gradient-nine-patch.png b/third_party/webrender/wrench/reftests/border/border-gradient-nine-patch.png Binary files differindex c984cf90151..7ab8c3df601 100644 --- a/third_party/webrender/wrench/reftests/border/border-gradient-nine-patch.png +++ b/third_party/webrender/wrench/reftests/border/border-gradient-nine-patch.png diff --git a/third_party/webrender/wrench/reftests/border/border-image-empty-slice-ref.png b/third_party/webrender/wrench/reftests/border/border-image-empty-slice-ref.png Binary files differindex 8ba6808ac90..103fdb57f65 100644 --- a/third_party/webrender/wrench/reftests/border/border-image-empty-slice-ref.png +++ b/third_party/webrender/wrench/reftests/border/border-image-empty-slice-ref.png diff --git a/third_party/webrender/wrench/reftests/border/border-image-fill-2-ref.png b/third_party/webrender/wrench/reftests/border/border-image-fill-2-ref.png Binary files differdeleted file mode 100644 index 5bb7dc8fb2a..00000000000 --- a/third_party/webrender/wrench/reftests/border/border-image-fill-2-ref.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/border/border-image-fill-2.yaml b/third_party/webrender/wrench/reftests/border/border-image-fill-2.yaml deleted file mode 100644 index 653c4f34e45..00000000000 --- a/third_party/webrender/wrench/reftests/border/border-image-fill-2.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -root: - items: - - type: stacking-context - bounds: [0, 0, 500, 500] - items: - - type: border - bounds: [ 20, 20, 200, 200 ] - width: [20, 40] - border-type: image - image-source: "border-image-src-2.png" - image-width: 100 - image-height: 50 - slice: [ 20, 40 ] - outset: 0 - repeat-vertical: repeat - repeat-horizontal: repeat - fill: true - - type: border - bounds: [ 240, 20, 200, 200 ] - width: [20, 40] - slice: [ 20, 40 ] - border-type: image - image-source: "border-image-src-2.png" - image-width: 100 - image-height: 50 - slice: [ 20, 40 ] - outset: 0 - repeat-vertical: stretch - repeat-horizontal: repeat - fill: true - - type: border - bounds: [ 20, 240, 200, 200 ] - width: [20, 40] - border-type: image - image-source: "border-image-src-2.png" - image-width: 100 - image-height: 50 - slice: [ 20, 40 ] - outset: 0 - repeat-vertical: repeat - repeat-horizontal: stretch - fill: true - - type: border - bounds: [ 240, 240, 200, 200 ] - width: [20, 40] - border-type: image - image-source: "border-image-src-2.png" - image-width: 100 - image-height: 50 - slice: [ 20, 40 ] - outset: 0 - repeat-vertical: stretch - repeat-horizontal: stretch - fill: true diff --git a/third_party/webrender/wrench/reftests/border/border-image-fill-ref.png b/third_party/webrender/wrench/reftests/border/border-image-fill-ref.png Binary files differindex 9d618bc76e6..41627d94557 100644 --- a/third_party/webrender/wrench/reftests/border/border-image-fill-ref.png +++ b/third_party/webrender/wrench/reftests/border/border-image-fill-ref.png diff --git a/third_party/webrender/wrench/reftests/border/border-image-ref.png b/third_party/webrender/wrench/reftests/border/border-image-ref.png Binary files differindex 73e4eb52560..0ae931a7777 100644 --- a/third_party/webrender/wrench/reftests/border/border-image-ref.png +++ b/third_party/webrender/wrench/reftests/border/border-image-ref.png diff --git a/third_party/webrender/wrench/reftests/border/border-image-round-ref.png b/third_party/webrender/wrench/reftests/border/border-image-round-ref.png Binary files differindex 62a18fbba90..46a128f39e5 100644 --- a/third_party/webrender/wrench/reftests/border/border-image-round-ref.png +++ b/third_party/webrender/wrench/reftests/border/border-image-round-ref.png diff --git a/third_party/webrender/wrench/reftests/border/border-image-src-2.png b/third_party/webrender/wrench/reftests/border/border-image-src-2.png Binary files differdeleted file mode 100644 index 5ebebaf21f2..00000000000 --- a/third_party/webrender/wrench/reftests/border/border-image-src-2.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/border/border-no-bogus-line-ref.png b/third_party/webrender/wrench/reftests/border/border-no-bogus-line-ref.png Binary files differindex 1310e99f792..fefa2bcbced 100644 --- a/third_party/webrender/wrench/reftests/border/border-no-bogus-line-ref.png +++ b/third_party/webrender/wrench/reftests/border/border-no-bogus-line-ref.png diff --git a/third_party/webrender/wrench/reftests/border/border-radial-gradient-nine-patch.png b/third_party/webrender/wrench/reftests/border/border-radial-gradient-nine-patch.png Binary files differindex 9fa19d215bc..fd1ed84b8db 100644 --- a/third_party/webrender/wrench/reftests/border/border-radial-gradient-nine-patch.png +++ b/third_party/webrender/wrench/reftests/border/border-radial-gradient-nine-patch.png diff --git a/third_party/webrender/wrench/reftests/border/border-radii.png b/third_party/webrender/wrench/reftests/border/border-radii.png Binary files differindex 7a4bc340eba..87d5b674fd9 100644 --- a/third_party/webrender/wrench/reftests/border/border-radii.png +++ b/third_party/webrender/wrench/reftests/border/border-radii.png diff --git a/third_party/webrender/wrench/reftests/border/border-suite-2.png b/third_party/webrender/wrench/reftests/border/border-suite-2.png Binary files differindex cb43146c820..519e43fc52e 100644 --- a/third_party/webrender/wrench/reftests/border/border-suite-2.png +++ b/third_party/webrender/wrench/reftests/border/border-suite-2.png diff --git a/third_party/webrender/wrench/reftests/border/border-suite-3.png b/third_party/webrender/wrench/reftests/border/border-suite-3.png Binary files differindex b2b7d7347cc..dcd6f5d7602 100644 --- a/third_party/webrender/wrench/reftests/border/border-suite-3.png +++ b/third_party/webrender/wrench/reftests/border/border-suite-3.png diff --git a/third_party/webrender/wrench/reftests/border/border-suite.png b/third_party/webrender/wrench/reftests/border/border-suite.png Binary files differindex 8e8870afdf7..8ab844c5856 100644 --- a/third_party/webrender/wrench/reftests/border/border-suite.png +++ b/third_party/webrender/wrench/reftests/border/border-suite.png diff --git a/third_party/webrender/wrench/reftests/border/degenerate-curve.png b/third_party/webrender/wrench/reftests/border/degenerate-curve.png Binary files differindex 9a4eb6736f0..9c3805e33e5 100644 --- a/third_party/webrender/wrench/reftests/border/degenerate-curve.png +++ b/third_party/webrender/wrench/reftests/border/degenerate-curve.png diff --git a/third_party/webrender/wrench/reftests/border/dotted-corner-small-radius.png b/third_party/webrender/wrench/reftests/border/dotted-corner-small-radius.png Binary files differindex 99405da1a33..303e1719471 100644 --- a/third_party/webrender/wrench/reftests/border/dotted-corner-small-radius.png +++ b/third_party/webrender/wrench/reftests/border/dotted-corner-small-radius.png diff --git a/third_party/webrender/wrench/reftests/border/overlapping.png b/third_party/webrender/wrench/reftests/border/overlapping.png Binary files differindex bf12c8d81ab..38dcdc79e22 100644 --- a/third_party/webrender/wrench/reftests/border/overlapping.png +++ b/third_party/webrender/wrench/reftests/border/overlapping.png diff --git a/third_party/webrender/wrench/reftests/border/reftest.list b/third_party/webrender/wrench/reftests/border/reftest.list index a5551e82705..3b64eb89bec 100644 --- a/third_party/webrender/wrench/reftests/border/reftest.list +++ b/third_party/webrender/wrench/reftests/border/reftest.list @@ -1,35 +1,34 @@ platform(linux,mac) == border-clamp-corner-radius.yaml border-clamp-corner-radius.png fuzzy(1,840) == border-gradient-simple.yaml border-gradient-simple-ref.yaml platform(linux,mac) == border-gradient-nine-patch.yaml border-gradient-nine-patch.png -fuzzy-if(platform(swgl),1,4) == border-radial-gradient-simple.yaml border-radial-gradient-simple-ref.yaml +== border-radial-gradient-simple.yaml border-radial-gradient-simple-ref.yaml platform(linux,mac) == border-radial-gradient-nine-patch.yaml border-radial-gradient-nine-patch.png -== fuzzy(1,10) border-radii.yaml border-radii.png +== border-radii.yaml border-radii.png == border-none.yaml border-none-ref.yaml -fuzzy(128,69) fuzzy-if(platform(swgl),2,118) == border-overlapping-corner.yaml border-overlapping-corner-ref.yaml +fuzzy(128,69) == border-overlapping-corner.yaml border-overlapping-corner-ref.yaml == border-overlapping-edge.yaml border-overlapping-edge-ref.yaml == border-invisible.yaml border-invisible-ref.yaml -platform(linux,mac) fuzzy(3,80) == border-suite.yaml border-suite.png -platform(linux,mac) fuzzy(8,105) == border-suite-2.yaml border-suite-2.png -platform(linux,mac) fuzzy(1,10) == border-suite-3.yaml border-suite-3.png +platform(linux,mac) == border-suite.yaml border-suite.png +platform(linux,mac) fuzzy(8,80) == border-suite-2.yaml border-suite-2.png +platform(linux,mac) == border-suite-3.yaml border-suite-3.png skip_on(android,device) == border-double-simple.yaml border-double-simple-ref.yaml # Fails on Pixel2 == border-double-simple-2.yaml border-double-simple-2-ref.yaml skip_on(android,device) fuzzy(64,24) == border-groove-simple.yaml border-groove-simple-ref.yaml # Fails on Pixel2 skip_on(android,device) fuzzy(64,24) == border-ridge-simple.yaml border-ridge-simple-ref.yaml # Fails on Pixel2 -platform(linux,mac) fuzzy(1,26) == degenerate-curve.yaml degenerate-curve.png +platform(linux,mac) fuzzy(1,3) == degenerate-curve.yaml degenerate-curve.png platform(linux,mac) == border-image.yaml border-image-ref.png platform(linux,mac) == border-image-empty-slice.yaml border-image-empty-slice-ref.png platform(linux,mac) == border-image-round.yaml border-image-round-ref.png == border-image-crash.yaml border-image-crash-ref.yaml fuzzy(1,5000) == border-image-fill.yaml border-image-fill-ref.png -fuzzy(2,25360) == border-image-fill-2.yaml border-image-fill-2-ref.png -fuzzy-if(platform(swgl),1,8) == border-no-bogus-line.yaml border-no-bogus-line-ref.png -platform(linux,mac) fuzzy(1,130) == dotted-corner-small-radius.yaml dotted-corner-small-radius.png -fuzzy-if(platform(swgl),1,20) == overlapping.yaml overlapping.png +== border-no-bogus-line.yaml border-no-bogus-line-ref.png +platform(linux,mac) == dotted-corner-small-radius.yaml dotted-corner-small-radius.png +== overlapping.yaml overlapping.png == zero-width.yaml blank.yaml platform(linux,mac) == small-dotted-border.yaml small-dotted-border.png -fuzzy(1,30) == discontinued-dash.yaml discontinued-dash.png +== discontinued-dash.yaml discontinued-dash.png platform(linux,mac) == border-dashed-dotted-caching.yaml border-dashed-dotted-caching.png != small-inset-outset.yaml small-inset-outset-notref.yaml -fuzzy(1,90) == no-aa.yaml green-square.yaml +fuzzy(1,16) == no-aa.yaml green-square.yaml skip_on(android,device) == border-double-1px.yaml border-double-1px-ref.yaml # Fails on Pixel2 == max-scale.yaml max-scale-ref.yaml diff --git a/third_party/webrender/wrench/reftests/border/small-dotted-border.png b/third_party/webrender/wrench/reftests/border/small-dotted-border.png Binary files differindex b867b04c2b9..adfb6eff508 100644 --- a/third_party/webrender/wrench/reftests/border/small-dotted-border.png +++ b/third_party/webrender/wrench/reftests/border/small-dotted-border.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-border-radii.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-border-radii.png Binary files differindex 0741826160a..6143955683e 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-border-radii.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-border-radii.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-cache.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-cache.png Binary files differindex 96d2c7fed3b..e70e13c6918 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-cache.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-cache.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-huge-radius.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-huge-radius.png Binary files differindex f2be685139f..a28981ba0f9 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-huge-radius.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-huge-radius.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png Binary files differindex 9111ca44131..edea0e497f4 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-2.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png Binary files differindex 2b954422808..a723604095d 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-large-blur-radius-3.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-spread.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-spread.png Binary files differindex 7c1910aba45..6fbd03aafff 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-spread.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-spread.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png Binary files differindex 5d631c182bd..662079e9f4f 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-x.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png Binary files differindex d76f58e170f..8ba78979873 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-stretch-mode-y.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-blur.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-blur.png Binary files differindex 67b46a609ee..b1433cb9dbb 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-blur.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-blur.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png Binary files differindex 66e6dd9c386..a8c3b1d0cab 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png +++ b/third_party/webrender/wrench/reftests/boxshadow/box-shadow-suite-no-blur.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png b/third_party/webrender/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png Binary files differindex 314b17f9639..a05bf7314eb 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png +++ b/third_party/webrender/wrench/reftests/boxshadow/boxshadow-spread-only-ref.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-alpha.png b/third_party/webrender/wrench/reftests/boxshadow/inset-alpha.png Binary files differindex bc4c0a1f372..4da7a868577 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-alpha.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-alpha.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-border-radius.png b/third_party/webrender/wrench/reftests/boxshadow/inset-border-radius.png Binary files differindex 1572de5b777..b8e3d5034a6 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-border-radius.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-border-radius.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-downscale.png b/third_party/webrender/wrench/reftests/boxshadow/inset-downscale.png Binary files differindex aef79686003..40534805e1d 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-downscale.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-downscale.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-large-offset-ref.png b/third_party/webrender/wrench/reftests/boxshadow/inset-large-offset-ref.png Binary files differindex e1d189eaa08..92263830912 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-large-offset-ref.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-large-offset-ref.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-mask-region.png b/third_party/webrender/wrench/reftests/boxshadow/inset-mask-region.png Binary files differindex b696cbfd419..5145148cd33 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-mask-region.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-mask-region.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-neg-offset.png b/third_party/webrender/wrench/reftests/boxshadow/inset-neg-offset.png Binary files differindex b6b232a1d00..462d46f8503 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-neg-offset.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-neg-offset.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png b/third_party/webrender/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png Binary files differindex 9c6a8d4bcfb..dfc23875e3a 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-no-blur-radius-ref.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-offset.png b/third_party/webrender/wrench/reftests/boxshadow/inset-offset.png Binary files differindex d5f41456fee..fed26f950ea 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-offset.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-offset.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/inset-subpx.png b/third_party/webrender/wrench/reftests/boxshadow/inset-subpx.png Binary files differindex 89ca1e44b11..b15cf63d80c 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/inset-subpx.png +++ b/third_party/webrender/wrench/reftests/boxshadow/inset-subpx.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/no-stretch.png b/third_party/webrender/wrench/reftests/boxshadow/no-stretch.png Binary files differindex e916a7d3829..c89ec417e6a 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/no-stretch.png +++ b/third_party/webrender/wrench/reftests/boxshadow/no-stretch.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/overlap1.png b/third_party/webrender/wrench/reftests/boxshadow/overlap1.png Binary files differindex a47c3ad6963..0ab363f03fb 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/overlap1.png +++ b/third_party/webrender/wrench/reftests/boxshadow/overlap1.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/overlap2.png b/third_party/webrender/wrench/reftests/boxshadow/overlap2.png Binary files differindex 6b7b1760118..33401618904 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/overlap2.png +++ b/third_party/webrender/wrench/reftests/boxshadow/overlap2.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/reftest.list b/third_party/webrender/wrench/reftests/boxshadow/reftest.list index 4f44cfab3d6..92ff47e495e 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/reftest.list +++ b/third_party/webrender/wrench/reftests/boxshadow/reftest.list @@ -1,21 +1,21 @@ != inset-simple.yaml inset-simple-ref.yaml != inset-spread.yaml inset-spread-ref.yaml -fuzzy-if(platform(swgl),3,2) == inset-no-blur-radius.yaml inset-no-blur-radius-ref.png +== inset-no-blur-radius.yaml inset-no-blur-radius-ref.png == inset-spread-large.yaml inset-spread-large-ref.yaml platform(linux,mac) == inset-alpha.yaml inset-alpha.png platform(linux,mac) == boxshadow-spread-only.yaml boxshadow-spread-only-ref.png == box-shadow-clip.yaml box-shadow-clip-ref.yaml -fuzzy(1,402) fuzzy-if(platform(swgl),2,1208) == inset-large-offset.yaml inset-large-offset-ref.png +fuzzy(1,396) == inset-large-offset.yaml inset-large-offset-ref.png platform(linux,mac) == inset-border-radius.yaml inset-border-radius.png platform(linux,mac) == inset-offset.yaml inset-offset.png platform(linux,mac) == inset-neg-offset.yaml inset-neg-offset.png == box-shadow-empty.yaml blank.yaml platform(linux,mac) == box-shadow-suite-no-blur.yaml box-shadow-suite-no-blur.png platform(linux,mac) == box-shadow-suite-blur.yaml box-shadow-suite-blur.png -fuzzy(1,8) == box-shadow-large-blur-radius.yaml box-shadow-large-blur-radius-ref.yaml +== box-shadow-large-blur-radius.yaml box-shadow-large-blur-radius-ref.yaml fuzzy(1,6388) == rounding.yaml rounding-ref.yaml platform(linux,mac) == box-shadow-border-radii.yaml box-shadow-border-radii.png -skip_on(android) fuzzy-if(platform(swgl),9,34) == box-shadow-spread.yaml box-shadow-spread.png # Too wide for Android +skip_on(android) == box-shadow-spread.yaml box-shadow-spread.png # Too wide for Android == box-shadow-spread-radii.yaml box-shadow-spread-radii-ref.yaml == invalid.yaml invalid-ref.yaml == inset-empty.yaml blank.yaml @@ -23,7 +23,7 @@ platform(linux,mac) == inset-subpx.yaml inset-subpx.png platform(linux,mac) fuzzy(1,4) == inset-downscale.yaml inset-downscale.png platform(linux,mac) fuzzy(1,979) == box-shadow-cache.yaml box-shadow-cache.png platform(linux,mac) fuzzy(1,685) == overlap1.yaml overlap1.png -fuzzy(2,757) fuzzy-if(platform(swgl),2,2414) == overlap2.yaml overlap2.png +fuzzy(2,691) == overlap2.yaml overlap2.png platform(linux,mac) fuzzy(1,48) == no-stretch.yaml no-stretch.png platform(linux,mac) fuzzy(1,9) == box-shadow-stretch-mode-x.yaml box-shadow-stretch-mode-x.png platform(linux,mac) fuzzy(1,41) == box-shadow-stretch-mode-y.yaml box-shadow-stretch-mode-y.png @@ -33,5 +33,5 @@ platform(linux,mac) fuzzy(1,14) == inset-mask-region.yaml inset-mask-region.png fuzzy(1,5) platform(linux,mac) == box-shadow-huge-radius.yaml box-shadow-huge-radius.png platform(linux,mac) == box-shadow-large-blur-radius-2.yaml box-shadow-large-blur-radius-2.png -platform(linux,mac) fuzzy(1,8) == box-shadow-large-blur-radius-3.yaml box-shadow-large-blur-radius-3.png +platform(linux,mac) == box-shadow-large-blur-radius-3.yaml box-shadow-large-blur-radius-3.png platform(linux,mac) fuzzy(1,79) == scale.yaml scale.png diff --git a/third_party/webrender/wrench/reftests/boxshadow/scale.png b/third_party/webrender/wrench/reftests/boxshadow/scale.png Binary files differindex 2f635e91804..49aa8e8e053 100644 --- a/third_party/webrender/wrench/reftests/boxshadow/scale.png +++ b/third_party/webrender/wrench/reftests/boxshadow/scale.png diff --git a/third_party/webrender/wrench/reftests/clip/blend-container-ref.yaml b/third_party/webrender/wrench/reftests/clip/blend-container-ref.yaml deleted file mode 100644 index 2d3464959dd..00000000000 --- a/third_party/webrender/wrench/reftests/clip/blend-container-ref.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -root: - items: - - type: rect - bounds: [ 50, 50, 100, 100 ] - color: blue diff --git a/third_party/webrender/wrench/reftests/clip/blend-container.yaml b/third_party/webrender/wrench/reftests/clip/blend-container.yaml deleted file mode 100644 index 2a18d3a5e3d..00000000000 --- a/third_party/webrender/wrench/reftests/clip/blend-container.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# Verify that clip-chains are correctly applied to root level blend containers (which get -# optimized to be tile caches). ---- -root: - items: - - type: clip - id: 2 - bounds: [ 50, 50, 100, 100 ] - - type: stacking-context - blend-container: true - clip-node: 2 - items: - - type: rect - bounds: [ 0, 0, 200, 200 ] - color: blue diff --git a/third_party/webrender/wrench/reftests/clip/border-with-rounded-clip.png b/third_party/webrender/wrench/reftests/clip/border-with-rounded-clip.png Binary files differindex 120b21b6cc3..f3400057149 100644 --- a/third_party/webrender/wrench/reftests/clip/border-with-rounded-clip.png +++ b/third_party/webrender/wrench/reftests/clip/border-with-rounded-clip.png diff --git a/third_party/webrender/wrench/reftests/clip/clip-45-degree-rotation-ref.png b/third_party/webrender/wrench/reftests/clip/clip-45-degree-rotation-ref.png Binary files differindex 7b27e84239d..620eb49e435 100644 --- a/third_party/webrender/wrench/reftests/clip/clip-45-degree-rotation-ref.png +++ b/third_party/webrender/wrench/reftests/clip/clip-45-degree-rotation-ref.png diff --git a/third_party/webrender/wrench/reftests/clip/clip-ellipse.png b/third_party/webrender/wrench/reftests/clip/clip-ellipse.png Binary files differindex 49570d0359b..49624825573 100644 --- a/third_party/webrender/wrench/reftests/clip/clip-ellipse.png +++ b/third_party/webrender/wrench/reftests/clip/clip-ellipse.png diff --git a/third_party/webrender/wrench/reftests/clip/clip-filter-raster-root-ref.yaml b/third_party/webrender/wrench/reftests/clip/clip-filter-raster-root-ref.yaml deleted file mode 100644 index 7fde17f1845..00000000000 --- a/third_party/webrender/wrench/reftests/clip/clip-filter-raster-root-ref.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -root: - items: - - - type: "reference-frame" - transform: [perspective(10), rotate(45)] - transform-origin: 500 100 - items: - - - type: "stacking-context" - filters: [identity] - items: - - - bounds: [100, 100, 200, 200] - type: rect - color: red diff --git a/third_party/webrender/wrench/reftests/clip/clip-filter-raster-root.yaml b/third_party/webrender/wrench/reftests/clip/clip-filter-raster-root.yaml deleted file mode 100644 index 95ffc7dbd05..00000000000 --- a/third_party/webrender/wrench/reftests/clip/clip-filter-raster-root.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# Test that a local-space clip when applied to a surface (due to the filter) that is also -# a raster root (due to the perspective) is correctly applied. ---- -root: - items: - - - type: "reference-frame" - transform: [perspective(10), rotate(45)] - transform-origin: 500 100 - items: - - - bounds: [100, 100, 200, 200] - type: clip - id: 2 - - - clip-node: 2 - type: "stacking-context" - filters: [identity] - items: - - - bounds: [0, 0, 400, 400] - type: rect - color: red diff --git a/third_party/webrender/wrench/reftests/clip/clip-mode.png b/third_party/webrender/wrench/reftests/clip/clip-mode.png Binary files differindex e40a9db215c..69f2b8b4ae8 100644 --- a/third_party/webrender/wrench/reftests/clip/clip-mode.png +++ b/third_party/webrender/wrench/reftests/clip/clip-mode.png diff --git a/third_party/webrender/wrench/reftests/clip/clip-rectangle-redundant-sc-ref.yaml b/third_party/webrender/wrench/reftests/clip/clip-rectangle-redundant-sc-ref.yaml deleted file mode 100644 index 5946aeedae6..00000000000 --- a/third_party/webrender/wrench/reftests/clip/clip-rectangle-redundant-sc-ref.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -root: - items: - - - bounds: [0, 0, 100, 100] - type: rect - color: blue diff --git a/third_party/webrender/wrench/reftests/clip/clip-rectangle-redundant-sc.yaml b/third_party/webrender/wrench/reftests/clip/clip-rectangle-redundant-sc.yaml deleted file mode 100644 index ac88edb489d..00000000000 --- a/third_party/webrender/wrench/reftests/clip/clip-rectangle-redundant-sc.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Test that rect clips on redundant stacking contexts are applied to child prims ---- -root: - items: - - - bounds: [0, 0, 100, 100] - type: clip - id: 2 - - - clip-node: 2 - type: "stacking-context" - items: - - - bounds: [0, 0, 200, 200] - type: rect - color: blue diff --git a/third_party/webrender/wrench/reftests/clip/reftest.list b/third_party/webrender/wrench/reftests/clip/reftest.list index 155678562ff..8518911a9f4 100644 --- a/third_party/webrender/wrench/reftests/clip/reftest.list +++ b/third_party/webrender/wrench/reftests/clip/reftest.list @@ -1,10 +1,10 @@ platform(linux,mac) == border-with-rounded-clip.yaml border-with-rounded-clip.png -fuzzy-if(platform(swgl),1,4) == clip-mode.yaml clip-mode.png -fuzzy-if(platform(swgl),1,80) == clip-ellipse.yaml clip-ellipse.png +== clip-mode.yaml clip-mode.png +== clip-ellipse.yaml clip-ellipse.png platform(linux,mac) == clip-45-degree-rotation.yaml clip-45-degree-rotation-ref.png == clip-3d-transform.yaml clip-3d-transform-ref.yaml fuzzy(1,4) == clip-corner-overlap.yaml clip-corner-overlap-ref.yaml -fuzzy(9,60) == custom-clip-chains.yaml custom-clip-chains-ref.yaml +fuzzy(8,60) == custom-clip-chains.yaml custom-clip-chains-ref.yaml == custom-clip-chain-node-ancestors.yaml custom-clip-chain-node-ancestors-ref.yaml == fixed-position-clipping.yaml fixed-position-clipping-ref.yaml platform(linux,mac) == segmentation-with-other-coordinate-system-clip.yaml segmentation-with-other-coordinate-system-clip.png @@ -16,6 +16,3 @@ color_targets(1) alpha_targets(0) == clip-out-rotation.yaml blank.yaml # Unexpec == clipped-occlusion.yaml clipped-occlusion-ref.yaml == clip-empty-inner-rect.yaml clip-empty-inner-rect-ref.yaml == iframe-nested-in-stacking-context.yaml iframe-nested-in-stacking-context-ref.yaml -== clip-rectangle-redundant-sc.yaml clip-rectangle-redundant-sc-ref.yaml -fuzzy(128,707) == clip-filter-raster-root.yaml clip-filter-raster-root-ref.yaml -== blend-container.yaml blend-container-ref.yaml diff --git a/third_party/webrender/wrench/reftests/compositor-surface/basic-ref.yaml b/third_party/webrender/wrench/reftests/compositor-surface/basic-ref.yaml deleted file mode 100644 index 1a567dd9e68..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/basic-ref.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -root: - items: - - type: rect - bounds: [50, 50, 462, 462] - color: green - - type: rect - bounds: [125, 125, 312, 312] - color: [128, 128, 128, 0.5] - - image: transparent-checkerboard(2,16,16) - bounds: [150, 150, 262, 262] - - type: rect - bounds: [200, 200, 162, 162] - color: [0, 0, 255, 0.5] - - text: "Subpixel AA Text" - origin: 80 100 - size: 20 - color: black diff --git a/third_party/webrender/wrench/reftests/compositor-surface/basic.yaml b/third_party/webrender/wrench/reftests/compositor-surface/basic.yaml deleted file mode 100644 index 0ea9b8a394a..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/basic.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# Test that basic functionality of non-opaque compositor surfaces -# is blending correctly, and that subpixel AA is used outside the -# compositor surface region. ---- -root: - items: - - type: rect - bounds: [50, 50, 462, 462] - color: green - - type: rect - bounds: [125, 125, 312, 312] - color: [128, 128, 128, 0.5] - - image: transparent-checkerboard(2,16,16) - bounds: [150, 150, 262, 262] - prefer-compositor-surface: true - - type: rect - bounds: [200, 200, 162, 162] - color: [0, 0, 255, 0.5] - - text: "Subpixel AA Text" - origin: 80 100 - size: 20 - color: black diff --git a/third_party/webrender/wrench/reftests/compositor-surface/blank.yaml b/third_party/webrender/wrench/reftests/compositor-surface/blank.yaml deleted file mode 100644 index c4eb3ab6730..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/blank.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -root: diff --git a/third_party/webrender/wrench/reftests/compositor-surface/mix-blend-ref.yaml b/third_party/webrender/wrench/reftests/compositor-surface/mix-blend-ref.yaml deleted file mode 100644 index c8ce2fb444a..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/mix-blend-ref.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -root: - items: - - type: stacking-context - blend-container: true - items: - - type: rect - bounds: [50, 50, 362, 362] - color: green - - image: transparent-checkerboard(2,16,16) - bounds: [100, 100, 262, 262] - - type: stacking-context - mix-blend-mode: multiply - items: - - type: rect - bounds: [150, 150, 162, 162] - color: red diff --git a/third_party/webrender/wrench/reftests/compositor-surface/mix-blend.yaml b/third_party/webrender/wrench/reftests/compositor-surface/mix-blend.yaml deleted file mode 100644 index fb8afe312d1..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/mix-blend.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# Verify that we don't promote compositor surfaces within a root level blend container, -# as that can prevent correct blending with the compositor surface. ---- -root: - items: - - type: stacking-context - blend-container: true - items: - - type: rect - bounds: [50, 50, 362, 362] - color: green - - image: transparent-checkerboard(2,16,16) - bounds: [100, 100, 262, 262] - prefer-compositor-surface: true - - type: stacking-context - mix-blend-mode: multiply - items: - - type: rect - bounds: [150, 150, 162, 162] - color: red diff --git a/third_party/webrender/wrench/reftests/compositor-surface/picture-passthrough.yaml b/third_party/webrender/wrench/reftests/compositor-surface/picture-passthrough.yaml deleted file mode 100644 index cfe73293d29..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/picture-passthrough.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# Ensure that compositor surfaces which exist in child pictures with -# None for composite mode don't get promoted to a compositor surface, -# as we don't currently account for these in `compositor_surface_count`. ---- -root: - items: - - type: stacking-context - backdrop-root: true - items: - - type: backdrop-filter - bounds: 0 0 256 256 - filters: invert(1) - - image: checkerboard(2,16,16) - bounds: [150, 150, 262, 262] - prefer-compositor-surface: true diff --git a/third_party/webrender/wrench/reftests/compositor-surface/reftest.list b/third_party/webrender/wrench/reftests/compositor-surface/reftest.list deleted file mode 100644 index a593c1003a5..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/reftest.list +++ /dev/null @@ -1,4 +0,0 @@ -skip_on(android) fuzzy(2,500) == basic.yaml basic-ref.yaml -== too-many-surfaces.yaml too-many-surfaces-ref.yaml -!= picture-passthrough.yaml blank.yaml -fuzzy(2,1000) == mix-blend.yaml mix-blend-ref.yaml diff --git a/third_party/webrender/wrench/reftests/compositor-surface/too-many-surfaces-ref.yaml b/third_party/webrender/wrench/reftests/compositor-surface/too-many-surfaces-ref.yaml deleted file mode 100644 index 00f9f7da6b7..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/too-many-surfaces-ref.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -root: - items: - - type: rect - bounds: [50, 50, 400, 88] - color: green - - image: transparent-checkerboard(2,8,8) - bounds: [60, 60, 68, 68] - - type: rect - bounds: [55, 70, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [138, 60, 68, 68] - - type: rect - bounds: [55, 80, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [216, 60, 68, 68] - - type: rect - bounds: [55, 90, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [294, 60, 68, 68] - - type: rect - bounds: [55, 100, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [372, 60, 68, 68] - - type: rect - bounds: [55, 110, 390, 5] - color: [255, 0, 0, 0.9] diff --git a/third_party/webrender/wrench/reftests/compositor-surface/too-many-surfaces.yaml b/third_party/webrender/wrench/reftests/compositor-surface/too-many-surfaces.yaml deleted file mode 100644 index e5744ddedc7..00000000000 --- a/third_party/webrender/wrench/reftests/compositor-surface/too-many-surfaces.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# Test that when there are too many compositor surfaces present that -# the additional compositor surfaces are correctly drawn as regular -# primitives into picture cache content tiles. ---- -root: - items: - - type: rect - bounds: [50, 50, 400, 88] - color: green - - image: transparent-checkerboard(2,8,8) - bounds: [60, 60, 68, 68] - prefer-compositor-surface: true - - type: rect - bounds: [55, 70, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [138, 60, 68, 68] - prefer-compositor-surface: true - - type: rect - bounds: [55, 80, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [216, 60, 68, 68] - prefer-compositor-surface: true - - type: rect - bounds: [55, 90, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [294, 60, 68, 68] - prefer-compositor-surface: true - - type: rect - bounds: [55, 100, 390, 5] - color: [255, 0, 0, 0.9] - - image: transparent-checkerboard(2,8,8) - bounds: [372, 60, 68, 68] - prefer-compositor-surface: true - - type: rect - bounds: [55, 110, 390, 5] - color: [255, 0, 0, 0.9] diff --git a/third_party/webrender/wrench/reftests/filters/backdrop-filter-basic.yaml b/third_party/webrender/wrench/reftests/filters/backdrop-filter-basic.yaml index 837d4039780..e71decc659a 100644 --- a/third_party/webrender/wrench/reftests/filters/backdrop-filter-basic.yaml +++ b/third_party/webrender/wrench/reftests/filters/backdrop-filter-basic.yaml @@ -3,7 +3,6 @@ root: items: - type: stacking-context - backdrop-root: true bounds: 0 0 0 0 items: - type: rect diff --git a/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.png b/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.png Binary files differindex 34166161664..83e181e970b 100644 --- a/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.png +++ b/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.png diff --git a/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.yaml b/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.yaml index ca834e5ff71..43d29ddf1d6 100644 --- a/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.yaml +++ b/third_party/webrender/wrench/reftests/filters/backdrop-filter-perspective.yaml @@ -4,7 +4,6 @@ root: items: - type: stacking-context bounds: 0 0 0 0 - backdrop-root: true perspective: 500 items: - type: rect diff --git a/third_party/webrender/wrench/reftests/filters/blend-clipped-raster-root.png b/third_party/webrender/wrench/reftests/filters/blend-clipped-raster-root.png Binary files differdeleted file mode 100644 index 9d334c40f59..00000000000 --- a/third_party/webrender/wrench/reftests/filters/blend-clipped-raster-root.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/filters/blend-clipped-raster-root.yaml b/third_party/webrender/wrench/reftests/filters/blend-clipped-raster-root.yaml deleted file mode 100644 index fdb62af4832..00000000000 --- a/third_party/webrender/wrench/reftests/filters/blend-clipped-raster-root.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -root: - items: - - - bounds: [0, 100, 1000, 1000] - type: clip - id: 3 - - - bounds: [200, 200, 0, 0] - clip-node: 3 - type: "stacking-context" - transform: rotate(10) - items: - - - type: "stacking-context" - filters: - - opacity(0.5) - items: - - - bounds: [0, 0, 1000, 500] - type: rect - color: green diff --git a/third_party/webrender/wrench/reftests/filters/blend-clipped.png b/third_party/webrender/wrench/reftests/filters/blend-clipped.png Binary files differindex e8240cca611..04b63a8909f 100644 --- a/third_party/webrender/wrench/reftests/filters/blend-clipped.png +++ b/third_party/webrender/wrench/reftests/filters/blend-clipped.png diff --git a/third_party/webrender/wrench/reftests/filters/drop-shadow-inverse-scale.yaml b/third_party/webrender/wrench/reftests/filters/drop-shadow-inverse-scale.yaml deleted file mode 100644 index 229bdaa4b61..00000000000 --- a/third_party/webrender/wrench/reftests/filters/drop-shadow-inverse-scale.yaml +++ /dev/null @@ -1,14 +0,0 @@ -# Ensure that zero sized drop shadows handle reflection scale transforms without crashing ---- -root: - items: - - - type: "stacking-context" - bounds: [100, 100, 100, 100] - filters: drop-shadow([0, 1], 1, red) - transform: scale(-1, 1) - items: - - - type: rect - color: green - bounds: [0, 0, 1, 0] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-clamping-ref.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur-clamping-ref.yaml index a06489467a7..cdc6c56a47b 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-clamping-ref.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-clamping-ref.yaml @@ -4,14 +4,14 @@ root: items: - type: stacking-context bounds: [100, 100, 300, 300] - filters: blur(100, 100) + filters: blur(100) items: - type: rect bounds: [0, 0, 100, 100] color: 0 255 0 1.0 - type: stacking-context bounds: [400, 100, 300, 300] - filters: blur(50, 50) + filters: blur(50) items: - type: rect bounds: [0, 0, 100, 100] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-clamping.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur-clamping.yaml index 0d81a616ee9..614aa8ee02a 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-clamping.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-clamping.yaml @@ -9,7 +9,7 @@ root: - type: stacking-context bounds: [0, 0, 300, 300] # Blur will be 20 * 10(scale) = 200 and it should then be clamped to 100 - filters: blur(20, 20) + filters: blur(20) items: - type: rect bounds: [0, 0, 10, 10] @@ -23,7 +23,7 @@ root: # Blur should be 500 * 0.1(scale) = 50. This tests to make sure clamping # does not occur before applying scale factors, otherwise 500 would be # clamped to 100. - filters: blur(500, 500) + filters: blur(500) items: - type: rect bounds: [0, 0, 1000, 1000] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-huge.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur-huge.yaml index 13a4c72fd8f..2f76dd289ed 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-huge.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-huge.yaml @@ -4,7 +4,7 @@ root: items: - type: stacking-context bounds: [10, 10, 260, 260] - filters: blur(1000000, 1000000) + filters: blur(1000000) items: - image: checkerboard(2, 16, 16) bounds: [10, 10, 260, 260] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-ref.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-ref.yaml index 6a5f314df07..82e5b026824 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-ref.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-ref.yaml @@ -4,7 +4,7 @@ root: items: - type: stacking-context bounds: [0, 0, 500, 500] - filters: blur(10, 10) + filters: blur(10) items: - type: rect bounds: [50, 50, 250, 250] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.png b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.png Binary files differindex 48f8913752d..6bb0834bc36 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.png +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.yaml index 18a897131d4..b244741cda3 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled-xonly.yaml @@ -9,7 +9,7 @@ root: items: - type: stacking-context bounds: [0, 0, 100, 100] - filters: blur(2, 2) + filters: blur(2) items: - type: rect bounds: [10, 10, 50, 50] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled.yaml index 0e8c9cbff97..b99b6c7f83e 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur-scaled.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur-scaled.yaml @@ -8,7 +8,7 @@ root: items: - type: stacking-context bounds: [0, 0, 100, 100] - filters: blur(2, 2) + filters: blur(2) items: - type: rect bounds: [10, 10, 50, 50] diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur.png b/third_party/webrender/wrench/reftests/filters/filter-blur.png Binary files differindex 996e79215e3..067f8e4af72 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur.png +++ b/third_party/webrender/wrench/reftests/filters/filter-blur.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-blur.yaml b/third_party/webrender/wrench/reftests/filters/filter-blur.yaml index ee915d7bb1a..42762f56d7b 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-blur.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-blur.yaml @@ -3,7 +3,7 @@ root: items: - type: stacking-context bounds: [100, 100, 300, 300] - filters: blur(10, 10) + filters: blur(10) items: - image: "firefox.png" bounds: 20 20 256 256 diff --git a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-2.png b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-2.png Binary files differindex d14182e2312..f58e15c5fcc 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-2.png +++ b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-2.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-3.png b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-3.png Binary files differindex d1bbd48c8bb..4583f5f730c 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-3.png +++ b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip-3.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip.png b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip.png Binary files differindex d33eed0faaf..36db8671428 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip.png +++ b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-clip.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-on-viewport-edge.png b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-on-viewport-edge.png Binary files differindex 24de0898ea8..f529db8b01d 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-on-viewport-edge.png +++ b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow-on-viewport-edge.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow.png b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow.png Binary files differindex dd81aa63efa..f5c9253dcc1 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-drop-shadow.png +++ b/third_party/webrender/wrench/reftests/filters/filter-drop-shadow.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.png b/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.png Binary files differindex 24db853d44d..3b0a501ded5 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.png +++ b/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.yaml b/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.yaml index 6ce5f4cb223..87ecb096277 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-large-blur-radius.yaml @@ -3,7 +3,7 @@ root: items: - type: stacking-context bounds: 100 100 512 512 - filters: blur(100, 100) + filters: blur(100) items: - type: rect bounds: 0 0 512 512 diff --git a/third_party/webrender/wrench/reftests/filters/filter-long-chain.png b/third_party/webrender/wrench/reftests/filters/filter-long-chain.png Binary files differindex 6e58dd6300d..4de04ead672 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-long-chain.png +++ b/third_party/webrender/wrench/reftests/filters/filter-long-chain.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-long-chain.yaml b/third_party/webrender/wrench/reftests/filters/filter-long-chain.yaml index a0f9d698bd7..0fe7bb614ec 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-long-chain.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-long-chain.yaml @@ -11,7 +11,7 @@ root: opacity(0.8), saturate(10), sepia(0.4), - "blur(3,3)", + blur(3), "drop-shadow([73, 73], 3, [0, 255, 0, 1])"] items: - type: rect diff --git a/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.png b/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.png Binary files differindex e755e2bb6cb..bbace6aa22c 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.png +++ b/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.png diff --git a/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.yaml b/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.yaml index d5b550d0ab0..7ebf95545de 100644 --- a/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.yaml +++ b/third_party/webrender/wrench/reftests/filters/filter-small-blur-radius.yaml @@ -3,7 +3,7 @@ root: items: - type: stacking-context bounds: 100 100 512 512 - filters: blur(2, 2) + filters: blur(2) items: - type: rect bounds: 0 0 512 512 diff --git a/third_party/webrender/wrench/reftests/filters/reftest.list b/third_party/webrender/wrench/reftests/filters/reftest.list index e322dc10a4d..27da91df11c 100644 --- a/third_party/webrender/wrench/reftests/filters/reftest.list +++ b/third_party/webrender/wrench/reftests/filters/reftest.list @@ -2,20 +2,20 @@ platform(linux,mac) == draw_calls(7) color_targets(7) alpha_targets(0) filter-blur.yaml filter-blur.png == isolated.yaml isolated-ref.yaml == invisible.yaml invisible-ref.yaml -fuzzy-if(platform(swgl),1,10000) == opacity.yaml opacity-ref.yaml +== opacity.yaml opacity-ref.yaml fuzzy-range(<=1,*10000) == opacity-combined.yaml opacity-combined-ref.yaml -fuzzy-if(platform(swgl),1,10000) == opacity-overlap.yaml opacity-overlap-ref.yaml +== opacity-overlap.yaml opacity-overlap-ref.yaml == filter-brightness.yaml filter-brightness-ref.yaml == filter-brightness-2.yaml filter-brightness-2-ref.yaml == filter-brightness-3.yaml filter-brightness-3-ref.yaml -fuzzy-if(platform(swgl),1,10000) == filter-brightness-4.yaml filter-brightness-4-ref.yaml +== filter-brightness-4.yaml filter-brightness-4-ref.yaml == filter-component-transfer.yaml filter-component-transfer-ref.yaml skip_on(android,device) == filter-color-matrix.yaml filter-color-matrix-ref.yaml # fails on Pixel2 == filter-contrast-gray-alpha-1.yaml filter-contrast-gray-alpha-1-ref.yaml == filter-invert.yaml filter-invert-ref.yaml == filter-invert-2.yaml filter-invert-2-ref.yaml platform(linux,mac) fuzzy(1,133) == filter-large-blur-radius.yaml filter-large-blur-radius.png -skip_on(android,device) fuzzy(1,12) fuzzy-if(platform(swgl),2,12276) == draw_calls(7) color_targets(6) alpha_targets(0) filter-small-blur-radius.yaml filter-small-blur-radius.png # fails on Pixel2 +skip_on(android,device) fuzzy(1,12) == draw_calls(6) color_targets(6) alpha_targets(0) filter-small-blur-radius.yaml filter-small-blur-radius.png # fails on Pixel2 == filter-saturate-red-1.yaml filter-saturate-red-1-ref.yaml == filter-saturate-red-2.yaml filter-saturate-red-2-ref.yaml == filter-saturate-red-3.yaml filter-saturate-red-3-ref.yaml @@ -30,13 +30,13 @@ skip_on(android,device) fuzzy(1,12) fuzzy-if(platform(swgl),2,12276) == draw_cal == filter-saturate-blue-alpha-1.yaml filter-saturate-blue-alpha-1-ref.yaml fuzzy(1,14) == filter-hue-rotate-1.yaml filter-hue-rotate-1-ref.yaml skip_on(android,device) == filter-hue-rotate-alpha-1.yaml filter-hue-rotate-alpha-1-ref.yaml # Fails on Pixel2 -skip_on(android,device) fuzzy(2,9072) fuzzy-if(platform(swgl),9,109897) == filter-long-chain.yaml filter-long-chain.png # fails on Pixel2 +skip_on(android,device) fuzzy(2,9072) == filter-long-chain.yaml filter-long-chain.png # fails on Pixel2 platform(linux,mac) == filter-drop-shadow.yaml filter-drop-shadow.png platform(linux,mac) == filter-drop-shadow-on-viewport-edge.yaml filter-drop-shadow-on-viewport-edge.png platform(linux,mac) == blend-clipped.yaml blend-clipped.png platform(linux,mac) == filter-drop-shadow-clip.yaml filter-drop-shadow-clip.png fuzzy(2,10) platform(linux,mac) == filter-drop-shadow-clip-2.yaml filter-drop-shadow-clip-2.png -fuzzy(1,26) platform(linux) == filter-drop-shadow-clip-3.yaml filter-drop-shadow-clip-3.png +platform(linux) == filter-drop-shadow-clip-3.yaml filter-drop-shadow-clip-3.png fuzzy(5,100000) == filter-drop-shadow-scaled.yaml filter-drop-shadow-scaled-ref.yaml == filter-segments.yaml filter-segments-ref.yaml == iframe-dropshadow.yaml iframe-dropshadow-ref.yaml @@ -49,7 +49,7 @@ skip_on(android,device) == filter-mix-blend-mode.yaml filter-mix-blend-mode-ref. fuzzy(3,79400) == filter-drop-shadow-blur-clamping.yaml filter-drop-shadow-blur-clamping-ref.yaml == filter-blur-scaled.yaml filter-blur-scaled-ref.yaml == filter-blur-clamping.yaml filter-blur-clamping-ref.yaml -skip_on(android,device) fuzzy(1,104) fuzzy-if(platform(swgl),4,18484) == filter-blur-scaled-xonly.yaml filter-blur-scaled-xonly.png # fails on Pixel2 +skip_on(android,device) fuzzy(1,104) == filter-blur-scaled-xonly.yaml filter-blur-scaled-xonly.png # fails on Pixel2 == svg-filter-component-transfer.yaml filter-component-transfer-ref.yaml == svg-filter-flood.yaml svg-filter-flood-ref.yaml skip_on(android,device) == svg-filter-blend.yaml svg-filter-blend-ref.yaml @@ -57,14 +57,12 @@ skip_on(android,device) == svg-filter-color-matrix.yaml filter-color-matrix-ref. platform(linux,mac) == draw_calls(8) color_targets(8) alpha_targets(0) svg-filter-blur.yaml filter-blur.png # Extra draw call is due to render task graph workaround platform(linux,mac) == svg-filter-drop-shadow.yaml svg-filter-drop-shadow.png == fuzzy(1,10000) svg-srgb-to-linear.yaml srgb-to-linear-ref.yaml -platform(linux,mac) == fuzzy(5,35250) svg-filter-drop-shadow-rotate.yaml svg-filter-drop-shadow-rotate-ref.yaml +platform(linux,mac) == fuzzy(4,28250) svg-filter-drop-shadow-rotate.yaml svg-filter-drop-shadow-rotate-ref.yaml platform(linux,mac) fuzzy(3,3184) == svg-filter-blur-transforms.yaml svg-filter-blur-transforms.png platform(linux,mac) == svg-filter-drop-shadow-on-viewport-edge.yaml svg-filter-drop-shadow-on-viewport-edge.png -fuzzy(1,1) platform(linux,mac) == svg-filter-drop-shadow-perspective.yaml svg-filter-drop-shadow-perspective.png +platform(linux,mac) == svg-filter-drop-shadow-perspective.yaml svg-filter-drop-shadow-perspective.png == backdrop-filter-basic.yaml backdrop-filter-basic-ref.yaml platform(linux,mac) == backdrop-filter-perspective.yaml backdrop-filter-perspective.png platform(linux,max) == svg-filter-offset.yaml svg-filter-offset-ref.yaml skip_on(android,device) == fuzzy(1,100) svg-filter-composite.yaml svg-filter-composite-ref.yaml skip_on(android,device) == filter-mix-blend-scaling.yaml filter-mix-blend-scaling-ref.yaml -platform(linux) == blend-clipped-raster-root.yaml blend-clipped-raster-root.png -== drop-shadow-inverse-scale.yaml blank.yaml diff --git a/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.png b/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.png Binary files differindex 890c815bef3..7bd8b5c4b67 100644 --- a/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.png +++ b/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.png diff --git a/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.yaml b/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.yaml index d78f3ae806e..4962ecbe130 100644 --- a/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.yaml +++ b/third_party/webrender/wrench/reftests/filters/svg-filter-blur-transforms.yaml @@ -6,8 +6,7 @@ root: transform: scale-x(0.1) rotate-z(-45) filter-primitives: - type: blur - width: 10 - height: 10 + radius: 10 in: previous color-space: srgb items: diff --git a/third_party/webrender/wrench/reftests/filters/svg-filter-blur.yaml b/third_party/webrender/wrench/reftests/filters/svg-filter-blur.yaml index 5554688500c..61381d540f6 100644 --- a/third_party/webrender/wrench/reftests/filters/svg-filter-blur.yaml +++ b/third_party/webrender/wrench/reftests/filters/svg-filter-blur.yaml @@ -5,8 +5,7 @@ root: bounds: [100, 100, 300, 300] filter-primitives: - type: blur - width: 10 - height: 10 + radius: 10 in: previous color-space: srgb items: diff --git a/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-on-viewport-edge.png b/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-on-viewport-edge.png Binary files differindex dcc09c53cbb..200efc99657 100644 --- a/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-on-viewport-edge.png +++ b/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-on-viewport-edge.png diff --git a/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-perspective.png b/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-perspective.png Binary files differindex 035c5d46e01..7ae7393f87a 100644 --- a/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-perspective.png +++ b/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow-perspective.png diff --git a/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow.png b/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow.png Binary files differindex eee62c79d27..e6c2c0e49e4 100644 --- a/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow.png +++ b/third_party/webrender/wrench/reftests/filters/svg-filter-drop-shadow.png diff --git a/third_party/webrender/wrench/reftests/gradient/conic-center.png b/third_party/webrender/wrench/reftests/gradient/conic-center.png Binary files differindex 9843a2efb5e..aeb0c293981 100644 --- a/third_party/webrender/wrench/reftests/gradient/conic-center.png +++ b/third_party/webrender/wrench/reftests/gradient/conic-center.png diff --git a/third_party/webrender/wrench/reftests/gradient/conic-color-wheel.png b/third_party/webrender/wrench/reftests/gradient/conic-color-wheel.png Binary files differindex 3fff3c32d41..368007c74f6 100644 --- a/third_party/webrender/wrench/reftests/gradient/conic-color-wheel.png +++ b/third_party/webrender/wrench/reftests/gradient/conic-color-wheel.png diff --git a/third_party/webrender/wrench/reftests/gradient/conic-large-ref.yaml b/third_party/webrender/wrench/reftests/gradient/conic-large-ref.yaml deleted file mode 100644 index 9441175cf1b..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/conic-large-ref.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -root: - items: - - type: rect - bounds: 50 50 2000 300 - color: blue - - - type: conic-gradient - bounds: 50 50 2000 300 - center: 150 150 - angle: 0.0 - stops: [0.0, red, - 0.125, blue, - 0.375, blue, - 0.5, yellow, - 1.0, red]
\ No newline at end of file diff --git a/third_party/webrender/wrench/reftests/gradient/conic-large.yaml b/third_party/webrender/wrench/reftests/gradient/conic-large.yaml deleted file mode 100644 index 78bf305f54c..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/conic-large.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -root: - items: - - type: conic-gradient - bounds: 50 50 2000 300 - center: 150 150 - angle: 0.0 - stops: [0.0, red, - 0.125, blue, - 0.375, blue, - 0.5, yellow, - 1.0, red]
\ No newline at end of file diff --git a/third_party/webrender/wrench/reftests/gradient/conic-nan.yaml b/third_party/webrender/wrench/reftests/gradient/conic-nan.yaml deleted file mode 100644 index 6cc6234611f..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/conic-nan.yaml +++ /dev/null @@ -1,41 +0,0 @@ ---- -root: - items: - - type: conic-gradient - bounds: 50 50 200 NaN - center: 100 100 - angle: 0.0 - stops: [0.0, red, 0.25, green, 0.5, blue, 0.75, black] - - type: conic-gradient - bounds: 50 50 200 200 - center: NaN 100 - angle: 0.0 - stops: [0.0, red, 0.25, green, 0.5, blue, 0.75, black] - - type: conic-gradient - bounds: 50 50 200 200 - center: 100 100 - angle: NaN - stops: [0.0, red, 0.25, green, 0.5, blue, 0.75, black] - - type: conic-gradient - bounds: 50 50 200 200 - center: 100 100 - angle: 0.0 - stops: [0.0, red, NaN, green, 0.5, blue, 0.75, black] - - type: conic-gradient - bounds: 50 50 200 200 - tile-size: NaN 200 - center: 100 100 - angle: 0.0 - stops: [0.0, red, 0.25, green, 0.5, blue, 0.75, black] - - type: conic-gradient - bounds: 50 50 200 200 - clip-rect: NaN 0 100 100 - center: 100 100 - angle: 0.0 - stops: [0.0, red, 0.25, green, 0.5, blue, 0.75, black] - - type: conic-gradient - bounds: NaN NaN NaN NaN - clip-rect: NaN NaN NaN NaN - center: NaN NaN - angle: NaN - stops: [NaN, red, NaN, green, NaN, blue, NaN, black] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-aligned-border-radius.png b/third_party/webrender/wrench/reftests/gradient/linear-aligned-border-radius.png Binary files differindex 450e0ac56ac..2cdeeb679a8 100644 --- a/third_party/webrender/wrench/reftests/gradient/linear-aligned-border-radius.png +++ b/third_party/webrender/wrench/reftests/gradient/linear-aligned-border-radius.png diff --git a/third_party/webrender/wrench/reftests/gradient/linear-bug-1703141.yaml b/third_party/webrender/wrench/reftests/gradient/linear-bug-1703141.yaml deleted file mode 100644 index 9db333277e6..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-bug-1703141.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: -8396 465 9136 3 - tile-size: 10498.667 3 - start: 9448.5 1.5 - end: 10498.333 1.5 - repeat: true - stops: [0.0, [0,0,0,0], 0.5, [0,0,0,0], - 0.5, red, 0.75, red, - 0.75, [0,0,0,0], 1.0, [0,0,0,0]] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-far-endpoints.yaml b/third_party/webrender/wrench/reftests/gradient/linear-far-endpoints.yaml deleted file mode 100644 index 45bb52debcf..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-far-endpoints.yaml +++ /dev/null @@ -1,10 +0,0 @@ -# Axis-aligned linear gradient with very far endpoints. It goes through the gradient -# decomposition path which should not choke on overflow or casting failure. ---- -root: - items: - - type: gradient - bounds: 50 50 500 500 - start: -19958788096 0 - end: 19958788096 0 - stops: [0.0, red, 1.0, blue] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-hard-stop-ref.png b/third_party/webrender/wrench/reftests/gradient/linear-hard-stop-ref.png Binary files differindex 4feb5e49937..a863648a3fd 100644 --- a/third_party/webrender/wrench/reftests/gradient/linear-hard-stop-ref.png +++ b/third_party/webrender/wrench/reftests/gradient/linear-hard-stop-ref.png diff --git a/third_party/webrender/wrench/reftests/gradient/linear-large-ref.yaml b/third_party/webrender/wrench/reftests/gradient/linear-large-ref.yaml deleted file mode 100644 index 472f04fd17b..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-large-ref.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -root: - items: - - type: rect - bounds: 50 50 2000 300 - color: blue - - - type: gradient - bounds: 50 50 400 300 - start: 0 0 - end: 100 20 - stops: [0.0, red, 1.0, blue] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-large.yaml b/third_party/webrender/wrench/reftests/gradient/linear-large.yaml deleted file mode 100644 index cf9c50edd19..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-large.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: 50 50 2000 300 - start: 0 0 - end: 100 20 - stops: [0.0, red, 1.0, blue] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-nan.yaml b/third_party/webrender/wrench/reftests/gradient/linear-nan.yaml deleted file mode 100644 index 687a06d372b..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-nan.yaml +++ /dev/null @@ -1,213 +0,0 @@ ---- -root: - items: - # Small-ish gradients - - type: gradient - bounds: 50 50 NaN 200 - start: 0 100 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 200 200 - start: 0 100 - end: NaN 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 200 200 - start: 0 NaN - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 200 200 - start: 0 100 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - NaN, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 200 200 - start: 0 100 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, NaN, black] - - type: gradient - bounds: 50 50 200 200 - clip-rect: 50 50 150 NaN - start: 0 100 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 200 200 - tile-size: NaN 200 - start: 0 100 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - # Large-ish gradients - - type: gradient - bounds: 50 50 NaN 500 - start: 0 100 - end: 500 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 500 500 - start: 0 100 - end: NaN 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 500 500 - start: 0 NaN - end: 500 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 500 500 - start: 0 100 - end: 500 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - NaN, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 500 500 - start: 0 100 - end: 500 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, NaN, black] - - type: gradient - bounds: 50 50 500 500 - clip-rect: 50 50 150 NaN - start: 0 100 - end: 500 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 500 500 - tile-size: NaN 500 - start: 0 100 - end: 500 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - # Very large gradients - - type: gradient - bounds: 50 50 10000 10000 - start: 0 100 - end: NaN 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 10000 10000 - start: 0 NaN - end: 10000 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.5, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 10000 10000 - start: 0 100 - end: 10000 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - NaN, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 10000 10000 - start: 0 100 - end: 10000 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, NaN, black] - - type: gradient - bounds: 50 50 10000 10000 - clip-rect: 50 50 150 NaN - start: 0 100 - end: 10000 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 10000 10000 - tile-size: NaN 10000 - start: 0 100 - end: 10000 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - # Not axis-aligned - - type: gradient - bounds: 50 50 200 200 - tile-size: NaN 200 - start: 0 0 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: NaN 50 200 200 - tile-size: 100 100 - start: 0 0 - end: 200 100 - stops: [0.0, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, 0.75, blue, - 0.75, black, 1.0, black] - - type: gradient - bounds: 50 50 200 200 - start: 0.0 0 - end: 200 100 - stops: [NaN, red, 0.25, red, - 0.25, green, 0.5, green, - 0.0, blue, NaN, blue, - 0.75, black, 1.0, black] - - # Post-apocalyptic gradient - - type: gradient - bounds: NaN NaN NaN NaN - tile-size: NaN NaN - start: NaN NaN - end: NaN NaN - stops: [NaN, red, NaN, red, - NaN, green, NaN, green, - NaN, blue, NaN, blue, - NaN, black, NaN, black] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-ref.png b/third_party/webrender/wrench/reftests/gradient/linear-ref.png Binary files differindex b157ee4befb..999c831000d 100644 --- a/third_party/webrender/wrench/reftests/gradient/linear-ref.png +++ b/third_party/webrender/wrench/reftests/gradient/linear-ref.png diff --git a/third_party/webrender/wrench/reftests/gradient/linear-repeat-clip-ref.yaml b/third_party/webrender/wrench/reftests/gradient/linear-repeat-clip-ref.yaml deleted file mode 100644 index d8fd0b3b326..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-repeat-clip-ref.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: 0 0 500 500 - start: 0 -20 - end: 0 520 - stops: [0.0, green, 0.5, blue, 1.0, red] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-repeat-clip.yaml b/third_party/webrender/wrench/reftests/gradient/linear-repeat-clip.yaml deleted file mode 100644 index 9c84edd7140..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-repeat-clip.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# This test has a gradient primitive that is much larger than its local clip -# and some tiling that can be optimized away. The combination of clipping -# and stretching optimizations used to cause produce the wrong clip. ---- -root: - items: - - type: gradient - bounds: -500 0 2000 500 - tile-size: 100 500 - clip-rect: 0 0 500 500 - start: 0 -20 - end: 0 520 - stops: [0.0, green, 0.5, blue, 1.0, red] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-reverse-2-ref.yaml b/third_party/webrender/wrench/reftests/gradient/linear-reverse-2-ref.yaml deleted file mode 100644 index b85d3035030..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-reverse-2-ref.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: 50 50 200 200 - start: 50 100 - end: 150 100 - stops: [0.0, green, 0.5, blue, - 0.5, blue, 1.0, red] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-reverse-2.yaml b/third_party/webrender/wrench/reftests/gradient/linear-reverse-2.yaml deleted file mode 100644 index c74c6b88f91..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-reverse-2.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: 50 50 200 200 - start: 150 100 - end: 50 100 - stops: [0.0, red, 0.5, blue, - 0.5, blue, 1.0, green] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-reverse-3-ref.yaml b/third_party/webrender/wrench/reftests/gradient/linear-reverse-3-ref.yaml deleted file mode 100644 index 088977f50fa..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-reverse-3-ref.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: 50 50 100 100 - start: 0 0 - end: 110 0 - stops: [0.0, white, 1.0, black] - - type: gradient - bounds: 150 50 100 100 - start: 0 0 - end: 110 0 - stops: [0.0, black, 1.0, white] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-reverse-3.yaml b/third_party/webrender/wrench/reftests/gradient/linear-reverse-3.yaml deleted file mode 100644 index 87b675c8ad4..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/linear-reverse-3.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -root: - items: - - type: gradient - bounds: 50 50 100 100 - start: 0 0 - end: 110 0 - stops: [0.0, white, 1.0, black] - - type: gradient - bounds: 150 50 100 100 - start: 110 0 - end: 0 0 - stops: [0.0, white, 1.0, black] diff --git a/third_party/webrender/wrench/reftests/gradient/linear-stops-ref.png b/third_party/webrender/wrench/reftests/gradient/linear-stops-ref.png Binary files differindex 844b2440023..ed80ec9988b 100644 --- a/third_party/webrender/wrench/reftests/gradient/linear-stops-ref.png +++ b/third_party/webrender/wrench/reftests/gradient/linear-stops-ref.png diff --git a/third_party/webrender/wrench/reftests/gradient/premultiplied-aligned.png b/third_party/webrender/wrench/reftests/gradient/premultiplied-aligned.png Binary files differindex 35fad64b1a3..6fc18cd8c0e 100644 --- a/third_party/webrender/wrench/reftests/gradient/premultiplied-aligned.png +++ b/third_party/webrender/wrench/reftests/gradient/premultiplied-aligned.png diff --git a/third_party/webrender/wrench/reftests/gradient/premultiplied-angle.png b/third_party/webrender/wrench/reftests/gradient/premultiplied-angle.png Binary files differindex a37120ad7e7..e533843d7d5 100644 --- a/third_party/webrender/wrench/reftests/gradient/premultiplied-angle.png +++ b/third_party/webrender/wrench/reftests/gradient/premultiplied-angle.png diff --git a/third_party/webrender/wrench/reftests/gradient/radial-circle-ref.png b/third_party/webrender/wrench/reftests/gradient/radial-circle-ref.png Binary files differindex 3f9a748a7ed..7b339707a72 100644 --- a/third_party/webrender/wrench/reftests/gradient/radial-circle-ref.png +++ b/third_party/webrender/wrench/reftests/gradient/radial-circle-ref.png diff --git a/third_party/webrender/wrench/reftests/gradient/radial-ellipse-ref.png b/third_party/webrender/wrench/reftests/gradient/radial-ellipse-ref.png Binary files differindex b4786cd3877..fd60ec35b7e 100644 --- a/third_party/webrender/wrench/reftests/gradient/radial-ellipse-ref.png +++ b/third_party/webrender/wrench/reftests/gradient/radial-ellipse-ref.png diff --git a/third_party/webrender/wrench/reftests/gradient/radial-large-ref.png b/third_party/webrender/wrench/reftests/gradient/radial-large-ref.png Binary files differdeleted file mode 100644 index 444b876094e..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-large-ref.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/gradient/radial-large.yaml b/third_party/webrender/wrench/reftests/gradient/radial-large.yaml deleted file mode 100644 index c03adec6c1d..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-large.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -root: - items: - - type: radial-gradient - bounds: 50 50 2000 300 - center: 1000 150 - radius: 900 200 - stops: [0, red, 1, blue] diff --git a/third_party/webrender/wrench/reftests/gradient/radial-nan.yaml b/third_party/webrender/wrench/reftests/gradient/radial-nan.yaml deleted file mode 100644 index f8127a8c7a5..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-nan.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- -root: - items: - - type: radial-gradient - bounds: 50 50 NaN 300 - center: 150 150 - radius: 200 200 - stops: [0, red, 1, blue] - - type: radial-gradient - bounds: 50 50 300 300 - center: 150 NaN - radius: 200 200 - stops: [0, red, 1, blue] - - type: radial-gradient - bounds: 50 50 300 300 - center: 150 150 - radius: NaN 200 - stops: [0, red, 1, blue] - - type: radial-gradient - bounds: 50 50 300 300 - center: 150 150 - radius: 200 200 - stops: [0, red, NaN, blue] - - type: radial-gradient - bounds: 50 50 300 300 - tile-size: 50 NaN - center: 150 150 - radius: 200 200 - stops: [0, red, 1, blue] - - type: radial-gradient - bounds: 50 50 300 300 - clip-rect: 50 10 NaN 300 - center: 150 150 - radius: 200 200 - stops: [0, red, 1, blue] diff --git a/third_party/webrender/wrench/reftests/gradient/radial-optimized-2-ref.yaml b/third_party/webrender/wrench/reftests/gradient/radial-optimized-2-ref.yaml deleted file mode 100644 index 4b900d93fad..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-optimized-2-ref.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -root: - items: - - type: radial-gradient - bounds: 50 50 500 500 - center: 150 150 - radius: 80 160 - stops: [0, red, 1, [0,0,0,0]] diff --git a/third_party/webrender/wrench/reftests/gradient/radial-optimized-2.yaml b/third_party/webrender/wrench/reftests/gradient/radial-optimized-2.yaml deleted file mode 100644 index 3fac9042e21..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-optimized-2.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -root: - items: - - type: radial-gradient - bounds: 50 50 500 500 - center: 150 150 - radius: 20 40 - stops: [0, red, 4, [0,0,0,0]] diff --git a/third_party/webrender/wrench/reftests/gradient/radial-optimized-ref.yaml b/third_party/webrender/wrench/reftests/gradient/radial-optimized-ref.yaml deleted file mode 100644 index 380384ffe66..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-optimized-ref.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# Hand-roll decomposition that webrender would do for radial-optimized.yaml ---- -root: - items: - - type: radial-gradient - bounds: 160 160 20 30 - center: 10 15 - radius: 10 15 - stops: [0, [255.0,0,0,0.7], 1, [0,0,255.0,0.7]] - - type: rect - bounds: 10 20 150 140 - color: [0,0,255.0,0.7] - - type: rect - bounds: 160 20 20 140 - color: [0,0,255.0,0.7] - - type: rect - bounds: 180 20 130 140 - color: [0,0,255.0,0.7] - - type: rect - bounds: 10 160 150 30 - color: [0,0,255.0,0.7] - - type: rect - bounds: 180 160 130 30 - color: [0,0,255.0,0.7] - - type: rect - bounds: 10 190 150 160 - color: [0,0,255.0,0.7] - - type: rect - bounds: 160 190 20 160 - color: [0,0,255.0,0.7] - - type: rect - bounds: 180 190 130 160 - color: [0,0,255.0,0.7] diff --git a/third_party/webrender/wrench/reftests/gradient/radial-optimized.yaml b/third_party/webrender/wrench/reftests/gradient/radial-optimized.yaml deleted file mode 100644 index cfc668bc66b..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-optimized.yaml +++ /dev/null @@ -1,12 +0,0 @@ -# A small radial gradient in a large primitive. -# Most of the primitive is the constant color of the last gradient stop, -# and webrender will try to optimize these parts by drawing them with -# solid color primitives. ---- -root: - items: - - type: radial-gradient - bounds: 10 20 300 330 - center: 160 155 - radius: 10 15 - stops: [0, [255.0,0,0,0.7], 1, [0,0,255.0,0.7]] diff --git a/third_party/webrender/wrench/reftests/gradient/radial-tiling-optimized-ref.yaml b/third_party/webrender/wrench/reftests/gradient/radial-tiling-optimized-ref.yaml deleted file mode 100644 index b5b4957f9be..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-tiling-optimized-ref.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -root: - items: - - type: radial-gradient - bounds: 50 40 20 20 - center: 10 10 - radius: 10 10 - stops: [0, red, 1, blue, 1, [0,0,0,0]] - - type: radial-gradient - bounds: 450 40 20 20 - center: 10 10 - radius: 10 10 - stops: [0, red, 1, blue, 1, [0,0,0,0]] - - type: radial-gradient - bounds: 450 340 20 20 - center: 10 10 - radius: 10 10 - stops: [0, red, 1, blue, 1, [0,0,0,0]] - - type: radial-gradient - bounds: 50 340 20 20 - center: 10 10 - radius: 10 10 - stops: [0, red, 1, blue, 1, [0,0,0,0]] - diff --git a/third_party/webrender/wrench/reftests/gradient/radial-tiling-optimized.yaml b/third_party/webrender/wrench/reftests/gradient/radial-tiling-optimized.yaml deleted file mode 100644 index a92fd244797..00000000000 --- a/third_party/webrender/wrench/reftests/gradient/radial-tiling-optimized.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# A small repeated radial gradient in a large primitive. -# There is a lot of fully transparent space that webrender -# will optimize out. ---- -root: - items: - - type: radial-gradient - bounds: 10 10 800 600 - center: 50 40 - radius: 10 10 - stops: [0, red, 1, blue, 1, [0,0,0,0]] - tile-size: 300 200 - tile-spacing: 100 100 diff --git a/third_party/webrender/wrench/reftests/gradient/reftest.list b/third_party/webrender/wrench/reftests/gradient/reftest.list index 9f8dc0cc086..847c06ea8ee 100644 --- a/third_party/webrender/wrench/reftests/gradient/reftest.list +++ b/third_party/webrender/wrench/reftests/gradient/reftest.list @@ -1,5 +1,5 @@ platform(linux,mac) == premultiplied-aligned.yaml premultiplied-aligned.png -fuzzy(1,500) platform(linux,mac) == premultiplied-angle.yaml premultiplied-angle.png +platform(linux,mac) == premultiplied-angle.yaml premultiplied-angle.png platform(linux,mac) == premultiplied-radial.yaml premultiplied-radial.png platform(linux,mac) == premultiplied-conic.yaml premultiplied-conic.png @@ -10,8 +10,6 @@ platform(linux,mac) == premultiplied-conic-2.yaml premultiplied-conic-2.png == linear.yaml linear-ref.png == linear-reverse.yaml linear-ref.png -fuzzy(255,1200) == linear-reverse-2.yaml linear-reverse-2-ref.yaml -== linear-reverse-3.yaml linear-reverse-3-ref.yaml platform(linux,mac) fuzzy(1,35000) == linear-stops.yaml linear-stops-ref.png == linear-clamp-1a.yaml linear-clamp-1-ref.yaml @@ -24,7 +22,7 @@ fuzzy-range(<=1,*4800) == linear-hard-stop.yaml linear-hard-stop-ref.png fuzzy(1,20000) == linear.yaml linear-ref.yaml fuzzy(1,20000) == linear-reverse.yaml linear-ref.yaml -fuzzy(1,40000) == linear-aligned-clip.yaml linear-aligned-clip-ref.yaml +fuzzy(1,15200) == linear-aligned-clip.yaml linear-aligned-clip-ref.yaml platform(linux,mac) fuzzy(1,80000) == radial-circle.yaml radial-circle-ref.png platform(linux,mac) fuzzy(1,80000) == radial-ellipse.yaml radial-ellipse-ref.png @@ -52,8 +50,8 @@ platform(linux,mac) fuzzy(1,80000) == radial-ellipse.yaml radial-ellipse-ref.png # this might be able to be improved fuzzy(255,1200) == repeat-linear.yaml repeat-linear-ref.yaml fuzzy(255,1200) == repeat-linear-reverse.yaml repeat-linear-ref.yaml -fuzzy(255,2666) == repeat-radial.yaml repeat-radial-ref.yaml -fuzzy(255,2666) == repeat-radial-negative.yaml repeat-radial-ref.yaml +fuzzy(255,2664) == repeat-radial.yaml repeat-radial-ref.yaml +fuzzy(255,2664) == repeat-radial-negative.yaml repeat-radial-ref.yaml fuzzy(255,1652) == repeat-conic.yaml repeat-conic-ref.yaml fuzzy(255,1652) == repeat-conic-negative.yaml repeat-conic-ref.yaml @@ -64,19 +62,18 @@ fuzzy(1,62154) == tiling-linear-3.yaml tiling-linear-3-ref.yaml fuzzy(1,17) == tiling-radial-1.yaml tiling-radial-1-ref.yaml fuzzy(1,1) == tiling-radial-2.yaml tiling-radial-2-ref.yaml -fuzzy(1,3) fuzzy-if(platform(swgl),1,1318) == tiling-radial-3.yaml tiling-radial-3-ref.yaml +fuzzy(1,3) == tiling-radial-3.yaml tiling-radial-3-ref.yaml fuzzy(1,17) == tiling-radial-4.yaml tiling-radial-4-ref.yaml fuzzy(1,17) == tiling-conic-1.yaml tiling-conic-1-ref.yaml fuzzy(1,1) == tiling-conic-2.yaml tiling-conic-2-ref.yaml -fuzzy(1,7) == tiling-conic-3.yaml tiling-conic-3-ref.yaml +fuzzy(1,3) == tiling-conic-3.yaml tiling-conic-3-ref.yaml == radial-zero-size-1.yaml radial-zero-size-ref.yaml == radial-zero-size-2.yaml radial-zero-size-ref.yaml == radial-zero-size-3.yaml radial-zero-size-ref.yaml == linear-adjust-tile-size.yaml linear-adjust-tile-size-ref.yaml -== linear-repeat-clip.yaml linear-repeat-clip-ref.yaml platform(linux,mac) == linear-aligned-border-radius.yaml linear-aligned-border-radius.png # interpolation fuzz from sampling texture-baked gradient ramps @@ -84,22 +81,21 @@ platform(linux,mac) fuzzy-range(<=1,*1404) == repeat-border-radius.yaml repeat-b == conic.yaml conic-ref.yaml fuzzy(1,57) == conic-simple.yaml conic-simple.png -fuzzy(255,302) == conic-angle.yaml conic-angle.png +fuzzy(255,166) == conic-angle.yaml conic-angle.png == conic-center.yaml conic-center.png fuzzy(1,2) == conic-angle-wraparound.yaml conic-angle.yaml fuzzy(1,1) == conic-angle-wraparound-negative.yaml conic-angle.yaml -fuzzy(1,333) == conic-color-wheel.yaml conic-color-wheel.png +fuzzy(1,115) == conic-color-wheel.yaml conic-color-wheel.png # gradient caching tests # replaces a computed gradient by a sampled texture, so a lot of off-by-one # variation from interpolation, which is fine: fuzzy-range(<=1,*195000) == gradient_cache_5stops.yaml gradient_cache_5stops_ref.yaml -fuzzy-range(<=1,*171840) == gradient_cache_5stops_vertical.yaml gradient_cache_5stops_vertical_ref.yaml +fuzzy-range(<=1,*169000) == gradient_cache_5stops_vertical.yaml gradient_cache_5stops_vertical_ref.yaml == gradient_cache_hardstop.yaml gradient_cache_hardstop_ref.yaml -fuzzy-range(<=1,1) == gradient_cache_hardstop_clip.yaml gradient_cache_hardstop_clip_ref.yaml +== gradient_cache_hardstop_clip.yaml gradient_cache_hardstop_clip_ref.yaml == gradient_cache_clamp.yaml gradient_cache_clamp_ref.yaml == gradient_cache_repeat.yaml gradient_cache_repeat_ref.yaml -== linear-bug-1703141.yaml linear-bug-1703141.yaml # Recognize opaque tiles with gradient backgrounds == conic-backdrop-with-spacing.yaml conic-backdrop-with-spacing-ref.yaml @@ -108,19 +104,3 @@ fuzzy-range(<=1,1) == gradient_cache_hardstop_clip.yaml gradient_cache_hardstop_ == linear-backdrop.yaml linear-backdrop-ref.yaml == radial-backdrop-with-spacing.yaml radial-backdrop-with-spacing-ref.yaml == radial-backdrop.yaml radial-backdrop-ref.yaml - -# Exercise the radial gradient optimization code path -== radial-optimized.yaml radial-optimized-ref.yaml -== radial-optimized-2.yaml radial-optimized-2-ref.yaml -== radial-tiling-optimized.yaml radial-tiling-optimized-ref.yaml - -# Exercise the cached gradient scaling code path -fuzzy(2,23000) == linear-large.yaml linear-large-ref.yaml -== conic-large.yaml conic-large-ref.yaml -fuzzy(1,7000) == radial-large.yaml radial-large-ref.png - -# crash tests -== linear-far-endpoints.yaml linear-far-endpoints.yaml -== linear-nan.yaml linear-nan.yaml -== radial-nan.yaml radial-nan.yaml -== conic-nan.yaml conic-nan.yaml diff --git a/third_party/webrender/wrench/reftests/gradient/repeat-border-radius.png b/third_party/webrender/wrench/reftests/gradient/repeat-border-radius.png Binary files differindex cc0fa947ae7..7896fa7e2ae 100644 --- a/third_party/webrender/wrench/reftests/gradient/repeat-border-radius.png +++ b/third_party/webrender/wrench/reftests/gradient/repeat-border-radius.png diff --git a/third_party/webrender/wrench/reftests/image/downscale.png b/third_party/webrender/wrench/reftests/image/downscale.png Binary files differindex 460a29df196..877d0e48743 100644 --- a/third_party/webrender/wrench/reftests/image/downscale.png +++ b/third_party/webrender/wrench/reftests/image/downscale.png diff --git a/third_party/webrender/wrench/reftests/image/occlusion.png b/third_party/webrender/wrench/reftests/image/occlusion.png Binary files differindex 56332f2ef54..c62a58cdec8 100644 --- a/third_party/webrender/wrench/reftests/image/occlusion.png +++ b/third_party/webrender/wrench/reftests/image/occlusion.png diff --git a/third_party/webrender/wrench/reftests/image/reftest.list b/third_party/webrender/wrench/reftests/image/reftest.list index c1581d2e89f..5c3db88404c 100644 --- a/third_party/webrender/wrench/reftests/image/reftest.list +++ b/third_party/webrender/wrench/reftests/image/reftest.list @@ -4,12 +4,11 @@ == 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 +skip_on(android,device) == segments.yaml segments.png platform(linux,mac) == yuv.yaml yuv.png -platform(linux,mac) fuzzy(1,6000) 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) == 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-range(<=1,*450) == rgb_composite.yaml rgb_composite_ref.yaml diff --git a/third_party/webrender/wrench/reftests/image/segments.png b/third_party/webrender/wrench/reftests/image/segments.png Binary files differindex 45e4b544d41..168e9348ea0 100644 --- a/third_party/webrender/wrench/reftests/image/segments.png +++ b/third_party/webrender/wrench/reftests/image/segments.png diff --git a/third_party/webrender/wrench/reftests/image/yuv-clip.yaml b/third_party/webrender/wrench/reftests/image/yuv-clip.yaml deleted file mode 100644 index 6ceb7b69407..00000000000 --- a/third_party/webrender/wrench/reftests/image/yuv-clip.yaml +++ /dev/null @@ -1,24 +0,0 @@ -root: - items: - - type: clip - bounds: [0, 0, 1314, 650] - complex: - - rect: [0, 0, 1314, 650] - 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] diff --git a/third_party/webrender/wrench/reftests/image/yuv.png b/third_party/webrender/wrench/reftests/image/yuv.png Binary files differindex 66519bea8f1..56320e4a6ba 100644 --- a/third_party/webrender/wrench/reftests/image/yuv.png +++ b/third_party/webrender/wrench/reftests/image/yuv.png diff --git a/third_party/webrender/wrench/reftests/invalidation/one-rounded-rect-green.yaml b/third_party/webrender/wrench/reftests/invalidation/one-rounded-rect-green.yaml new file mode 100644 index 00000000000..2366913cbdc --- /dev/null +++ b/third_party/webrender/wrench/reftests/invalidation/one-rounded-rect-green.yaml @@ -0,0 +1,17 @@ +--- +root: + items: + - + bounds: 0 0 1000 1000 + type: stacking-context + cache: true + items: + - type: clip + bounds: [50, 50, 200, 200] + complex: + - rect: [50, 50, 200, 200] + radius: 8 + items: + - type: rect + bounds: 50 50 200 200 + color: green diff --git a/third_party/webrender/wrench/reftests/invalidation/one-rounded-rect.yaml b/third_party/webrender/wrench/reftests/invalidation/one-rounded-rect.yaml new file mode 100644 index 00000000000..988233e9ed2 --- /dev/null +++ b/third_party/webrender/wrench/reftests/invalidation/one-rounded-rect.yaml @@ -0,0 +1,17 @@ +--- +root: + items: + - + bounds: 0 0 1000 1000 + type: stacking-context + cache: true + items: + - type: clip + bounds: [50, 50, 200, 200] + complex: + - rect: [50, 50, 200, 200] + radius: 8 + items: + - type: rect + bounds: 50 50 200 200 + color: red diff --git a/third_party/webrender/wrench/reftests/invalidation/reftest.list b/third_party/webrender/wrench/reftests/invalidation/reftest.list new file mode 100644 index 00000000000..5925e61da96 --- /dev/null +++ b/third_party/webrender/wrench/reftests/invalidation/reftest.list @@ -0,0 +1 @@ +#dirty([(50,50):256x256]) one-rounded-rect.yaml dirty([(50,50):256x256]) one-rounded-rect-green.yaml dirty([(50,50):256x256]) one-rounded-rect.yaml == one-rounded-rect.yaml diff --git a/third_party/webrender/wrench/reftests/invalidation/rounded-rects.yaml b/third_party/webrender/wrench/reftests/invalidation/rounded-rects.yaml new file mode 100644 index 00000000000..8c9b0db2317 --- /dev/null +++ b/third_party/webrender/wrench/reftests/invalidation/rounded-rects.yaml @@ -0,0 +1,42 @@ +--- +root: + items: + - + bounds: 0 0 1000 1000 + type: stacking-context + cache: true + items: + - type: clip + bounds: [50, 50, 200, 200] + complex: + - rect: [50, 50, 200, 200] + radius: 8 + items: + - type: rect + bounds: 50 50 200 200 + color: red + + - type: clip + bounds: [270, 50, 200, 200] + complex: + - rect: [270, 50, 200, 200] + radius: [16, 32, 48, 64] + items: + - type: rect + bounds: 270 50 200 200 + color: green + + - type: clip + bounds: [490, 50, 500, 500] + complex: + - rect: [490, 50, 500, 500] + radius: { + top-left: [32, 16], + top-right: [40, 24], + bottom-left: [48, 64], + bottom-right: [52, 80], + } + items: + - type: rect + bounds: 490 50 500 500 + color: blue diff --git a/third_party/webrender/wrench/reftests/invalidation/two-rounded-rects.yaml b/third_party/webrender/wrench/reftests/invalidation/two-rounded-rects.yaml new file mode 100644 index 00000000000..315d6434cdc --- /dev/null +++ b/third_party/webrender/wrench/reftests/invalidation/two-rounded-rects.yaml @@ -0,0 +1,27 @@ +--- +root: + items: + - + bounds: 0 0 1000 1000 + type: stacking-context + cache: true + items: + - type: clip + bounds: [50, 50, 200, 200] + complex: + - rect: [50, 50, 200, 200] + radius: 8 + items: + - type: rect + bounds: 50 50 200 200 + color: red + + - type: clip + bounds: [270, 50, 200, 200] + complex: + - rect: [270, 50, 200, 200] + radius: [16, 32, 48, 64] + items: + - type: rect + bounds: 270 50 200 200 + color: green diff --git a/third_party/webrender/wrench/reftests/mask/checkerboard.png b/third_party/webrender/wrench/reftests/mask/checkerboard.png Binary files differindex f2c45c31940..e8a05df95be 100644 --- a/third_party/webrender/wrench/reftests/mask/checkerboard.png +++ b/third_party/webrender/wrench/reftests/mask/checkerboard.png diff --git a/third_party/webrender/wrench/reftests/mask/circle.png b/third_party/webrender/wrench/reftests/mask/circle.png Binary files differdeleted file mode 100644 index ea5789e44f6..00000000000 --- a/third_party/webrender/wrench/reftests/mask/circle.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/mask/mask-perspective.png b/third_party/webrender/wrench/reftests/mask/mask-perspective.png Binary files differindex 425872c2900..02c0cc93ba3 100644 --- a/third_party/webrender/wrench/reftests/mask/mask-perspective.png +++ b/third_party/webrender/wrench/reftests/mask/mask-perspective.png diff --git a/third_party/webrender/wrench/reftests/mask/reftest.list b/third_party/webrender/wrench/reftests/mask/reftest.list index 8119f4a830d..7a18b4a0108 100644 --- a/third_party/webrender/wrench/reftests/mask/reftest.list +++ b/third_party/webrender/wrench/reftests/mask/reftest.list @@ -1,6 +1,6 @@ -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 +== mask.yaml mask-ref.yaml +== mask-tiling.yaml mask-ref.yaml +== 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 @@ -12,6 +12,5 @@ platform(linux,mac) fuzzy(1,17500) == mask-atomicity-tiling.yaml mask-atomicity- 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 +skip_on(android,device) == 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/third_party/webrender/wrench/reftests/mask/rounded-corners.png b/third_party/webrender/wrench/reftests/mask/rounded-corners.png Binary files differindex 4f8d1d0fa02..19adfe02ec8 100644 --- a/third_party/webrender/wrench/reftests/mask/rounded-corners.png +++ b/third_party/webrender/wrench/reftests/mask/rounded-corners.png diff --git a/third_party/webrender/wrench/reftests/mask/scaled-filter-raster-root.png b/third_party/webrender/wrench/reftests/mask/scaled-filter-raster-root.png Binary files differdeleted file mode 100644 index e9cf49553ed..00000000000 --- a/third_party/webrender/wrench/reftests/mask/scaled-filter-raster-root.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/mask/scaled-filter-raster-root.yaml b/third_party/webrender/wrench/reftests/mask/scaled-filter-raster-root.yaml deleted file mode 100644 index b4e9d8574b2..00000000000 --- a/third_party/webrender/wrench/reftests/mask/scaled-filter-raster-root.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# 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 - bounds: [10, 10, 10, 10] - id: 2 - image-mask: - image: "circle.png" - rect: [10, 10, 10, 10] - repeat: false - tile-size: 200 - - type: stacking-context - filters: [opacity(0.5)] - items: - - type: stacking-context - clip-node: 2 - items: - - type: rect - bounds: [10, 10, 10, 10] - color: blue diff --git a/third_party/webrender/wrench/reftests/performance/no-clip-mask.png b/third_party/webrender/wrench/reftests/performance/no-clip-mask.png Binary files differindex 0b1bfca7558..1fc4ef0483a 100644 --- a/third_party/webrender/wrench/reftests/performance/no-clip-mask.png +++ b/third_party/webrender/wrench/reftests/performance/no-clip-mask.png diff --git a/third_party/webrender/wrench/reftests/reftest.list b/third_party/webrender/wrench/reftests/reftest.list index 8d39fcc5a7c..a3194332021 100644 --- a/third_party/webrender/wrench/reftests/reftest.list +++ b/third_party/webrender/wrench/reftests/reftest.list @@ -4,10 +4,10 @@ include blend/reftest.list include border/reftest.list include boxshadow/reftest.list include clip/reftest.list -include compositor-surface/reftest.list include filters/reftest.list include gradient/reftest.list include image/reftest.list +include invalidation/reftest.list include mask/reftest.list include performance/reftest.list include scrolling/reftest.list diff --git a/third_party/webrender/wrench/reftests/scrolling/ancestor-scroll-frames.yaml b/third_party/webrender/wrench/reftests/scrolling/ancestor-scroll-frames.yaml deleted file mode 100644 index 9d5c1d006e0..00000000000 --- a/third_party/webrender/wrench/reftests/scrolling/ancestor-scroll-frames.yaml +++ /dev/null @@ -1,37 +0,0 @@ -# Test that we don't select a nested scroll frame as a scroll root and include -# primitives that are positioned by ancestors of that scroll root, when creating -# a tile cache for a blend container. This test will cause a panic in -# `get_relative_transform_with_face` otherwise. ---- -root: - items: - - type: stacking-context - blend-container: true - items: - - type: scroll-frame - bounds: [0, 0, 200, 200] - content-size: [200, 400] - items: - - type: stacking-context - bounds: [0, 0, 200, 200] - transform: rotate(45) - items: - - type: rect - bounds: [0, 0, 200, 200] - color: red - - type: scroll-frame - bounds: [200, 0, 400, 200] - content-size: [400, 200] - items: - - type: scroll-frame - bounds: [200, 0, 400, 200] - content-size: [400, 400] - items: - - type: rect - bounds: [200, 0, 100, 200] - color: green - backface-visible: true - - type: rect - bounds: [300, 0, 100, 200] - color: blue - backface-visible: false diff --git a/third_party/webrender/wrench/reftests/scrolling/blank.yaml b/third_party/webrender/wrench/reftests/scrolling/blank.yaml deleted file mode 100644 index c4eb3ab6730..00000000000 --- a/third_party/webrender/wrench/reftests/scrolling/blank.yaml +++ /dev/null @@ -1,2 +0,0 @@ ---- -root: diff --git a/third_party/webrender/wrench/reftests/scrolling/reftest.list b/third_party/webrender/wrench/reftests/scrolling/reftest.list index a62984266e7..7f7241330fa 100644 --- a/third_party/webrender/wrench/reftests/scrolling/reftest.list +++ b/third_party/webrender/wrench/reftests/scrolling/reftest.list @@ -17,5 +17,3 @@ == nested-stickys.yaml nested-stickys-ref.yaml == viewport-offset.yaml viewport-offset-ref.yaml == ext-scroll-offset-1.yaml ext-scroll-offset-1-ref.yaml -== scroll-frame-order.yaml scroll-frame-order-ref.yaml -!= ancestor-scroll-frames.yaml blank.yaml diff --git a/third_party/webrender/wrench/reftests/scrolling/scale-offsets.yaml b/third_party/webrender/wrench/reftests/scrolling/scale-offsets.yaml index fe4cf741319..5bfc2c22c9f 100644 --- a/third_party/webrender/wrench/reftests/scrolling/scale-offsets.yaml +++ b/third_party/webrender/wrench/reftests/scrolling/scale-offsets.yaml @@ -13,3 +13,4 @@ root: - type: rect color: green bounds: [100, 100, 260, 260] + hit-testing-tag: [0, 0] diff --git a/third_party/webrender/wrench/reftests/scrolling/scroll-frame-order-ref.yaml b/third_party/webrender/wrench/reftests/scrolling/scroll-frame-order-ref.yaml deleted file mode 100644 index 5429d052db2..00000000000 --- a/third_party/webrender/wrench/reftests/scrolling/scroll-frame-order-ref.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# Tests that scroll frames can be defined and used in any order. - ---- -root: - items: - - type: scroll-frame - bounds: [0, 0, 50, 50] - content-size: [50, 50] - clip-rect: [0, 0, 50, 50] - id: 123 - - type: scroll-frame - bounds: [50, 0, 50, 50] - content-size: [50, 50] - clip-rect: [50, 0, 50, 50] - scroll-offset: [0, -25] - id: 456 - - type: scroll-frame - bounds: [100, 0, 50, 50] - content-size: [50, 50] - clip-rect: [100, 0, 50, 50] - scroll-offset: [0, -15] - id: 789 - - type: rect - bounds: [0, 0, 50, 50] - color: red - clip-and-scroll: 123 - - type: rect - bounds: [50, 0, 50, 50] - color: green - clip-and-scroll: 456 - - type: rect - bounds: [100, 0, 50, 50] - color: blue - clip-and-scroll: 789 diff --git a/third_party/webrender/wrench/reftests/scrolling/scroll-frame-order.yaml b/third_party/webrender/wrench/reftests/scrolling/scroll-frame-order.yaml deleted file mode 100644 index 1801dbb08ad..00000000000 --- a/third_party/webrender/wrench/reftests/scrolling/scroll-frame-order.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# Tests that scroll frames can be defined and used in any order. - ---- -root: - items: - - type: scroll-frame - bounds: [0, 0, 50, 50] - content-size: [50, 50] - clip-rect: [0, 0, 50, 50] - id: 123 - - type: rect - bounds: [0, 0, 50, 50] - color: red - clip-and-scroll: 123 - - type: scroll-frame - bounds: [50, 0, 50, 50] - content-size: [50, 50] - clip-rect: [50, 0, 50, 50] - scroll-offset: [0, -25] - id: 456 - - type: rect - bounds: [50, 0, 50, 50] - color: green - clip-and-scroll: 456 - - type: scroll-frame - bounds: [100, 0, 50, 50] - content-size: [50, 50] - clip-rect: [100, 0, 50, 50] - scroll-offset: [0, -15] - id: 789 - - type: rect - bounds: [100, 0, 50, 50] - color: blue - clip-and-scroll: 789 - diff --git a/third_party/webrender/wrench/reftests/snap/preserve-3d.png b/third_party/webrender/wrench/reftests/snap/preserve-3d.png Binary files differindex e02c30654ca..d3efa984ee0 100644 --- a/third_party/webrender/wrench/reftests/snap/preserve-3d.png +++ b/third_party/webrender/wrench/reftests/snap/preserve-3d.png diff --git a/third_party/webrender/wrench/reftests/snap/reftest.list b/third_party/webrender/wrench/reftests/snap/reftest.list index 1f35426a57f..84fe6c4979d 100644 --- a/third_party/webrender/wrench/reftests/snap/reftest.list +++ b/third_party/webrender/wrench/reftests/snap/reftest.list @@ -1,4 +1,3 @@ platform(linux,mac) == snap.yaml snap.png == transform.yaml transform.png platform(linux,mac) == preserve-3d.yaml preserve-3d.png -fuzzy(128,200) == subpixel-raster-root.yaml subpixel-raster-root-ref.yaml diff --git a/third_party/webrender/wrench/reftests/snap/snap.png b/third_party/webrender/wrench/reftests/snap/snap.png Binary files differindex 38f7cf33e5f..1f736082d84 100644 --- a/third_party/webrender/wrench/reftests/snap/snap.png +++ b/third_party/webrender/wrench/reftests/snap/snap.png diff --git a/third_party/webrender/wrench/reftests/snap/subpixel-raster-root-ref.yaml b/third_party/webrender/wrench/reftests/snap/subpixel-raster-root-ref.yaml deleted file mode 100644 index 8afe5677883..00000000000 --- a/third_party/webrender/wrench/reftests/snap/subpixel-raster-root-ref.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -root: - items: - - - bounds: [0, 111, 200, 1] - type: rect - color: green diff --git a/third_party/webrender/wrench/reftests/snap/subpixel-raster-root.yaml b/third_party/webrender/wrench/reftests/snap/subpixel-raster-root.yaml deleted file mode 100644 index 494ec42334f..00000000000 --- a/third_party/webrender/wrench/reftests/snap/subpixel-raster-root.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# Verify that we don't incorrectly snap surface rects with fractional pixel offsets ---- -root: - items: - - - type: "stacking-context" - transform: translate(0, 100.5, 0) - transform-style: preserve-3d - items: - - - bounds: [0, 10.5, 200, 1] - type: rect - color: green diff --git a/third_party/webrender/wrench/reftests/snap/transform.png b/third_party/webrender/wrench/reftests/snap/transform.png Binary files differindex 73c8feacdfa..4e2709effe9 100644 --- a/third_party/webrender/wrench/reftests/snap/transform.png +++ b/third_party/webrender/wrench/reftests/snap/transform.png diff --git a/third_party/webrender/wrench/reftests/split/reftest.list b/third_party/webrender/wrench/reftests/split/reftest.list index cd9b33c02b3..65692ccd1d9 100644 --- a/third_party/webrender/wrench/reftests/split/reftest.list +++ b/third_party/webrender/wrench/reftests/split/reftest.list @@ -1,4 +1,4 @@ -fuzzy-if(platform(swgl),1,180000) == simple.yaml simple-ref.yaml +== simple.yaml simple-ref.yaml == order-1.yaml order-1-ref.yaml == order-2.yaml order-2-ref.yaml == nested.yaml nested-ref.yaml @@ -10,7 +10,7 @@ fuzzy(35,200) == nested-coord-systems.yaml nested-coord-systems-ref.yaml == intermediate-2.yaml intermediate-1-ref.yaml == split-intersect1.yaml split-intersect1-ref.yaml == ordering.yaml ordering-ref.yaml -fuzzy(1,20) fuzzy-if(platform(swgl),128,39) == near-plane.yaml near-plane.png +fuzzy(1,20) == near-plane.yaml near-plane.png # Note: on windows the image is rendered at a slightly different spot. # similarly, a lot of tests in "transform" are non-windows. TODO: investigate platform(linux,mac) fuzzy(1,20) == same-plane.yaml same-plane.png diff --git a/third_party/webrender/wrench/reftests/split/same-plane.png b/third_party/webrender/wrench/reftests/split/same-plane.png Binary files differindex 3d5baf998fa..414dc5cd84f 100644 --- a/third_party/webrender/wrench/reftests/split/same-plane.png +++ b/third_party/webrender/wrench/reftests/split/same-plane.png diff --git a/third_party/webrender/wrench/reftests/text/alpha-transform.png b/third_party/webrender/wrench/reftests/text/alpha-transform.png Binary files differindex e22066b8c6d..b5af70dbf88 100644 --- a/third_party/webrender/wrench/reftests/text/alpha-transform.png +++ b/third_party/webrender/wrench/reftests/text/alpha-transform.png diff --git a/third_party/webrender/wrench/reftests/text/blurred-shadow-local-clip-rect-ref.png b/third_party/webrender/wrench/reftests/text/blurred-shadow-local-clip-rect-ref.png Binary files differindex 944d0b78477..895d42eaf5c 100644 --- a/third_party/webrender/wrench/reftests/text/blurred-shadow-local-clip-rect-ref.png +++ b/third_party/webrender/wrench/reftests/text/blurred-shadow-local-clip-rect-ref.png diff --git a/third_party/webrender/wrench/reftests/text/border-radius-alpha.png b/third_party/webrender/wrench/reftests/text/border-radius-alpha.png Binary files differindex e20302a562d..cd792b0f673 100644 --- a/third_party/webrender/wrench/reftests/text/border-radius-alpha.png +++ b/third_party/webrender/wrench/reftests/text/border-radius-alpha.png diff --git a/third_party/webrender/wrench/reftests/text/border-radius-subpx.png b/third_party/webrender/wrench/reftests/text/border-radius-subpx.png Binary files differindex 4361f563db4..267b2030a75 100644 --- a/third_party/webrender/wrench/reftests/text/border-radius-subpx.png +++ b/third_party/webrender/wrench/reftests/text/border-radius-subpx.png diff --git a/third_party/webrender/wrench/reftests/text/clipped-transform.png b/third_party/webrender/wrench/reftests/text/clipped-transform.png Binary files differindex 24459d2d3c3..2afb04b8bbd 100644 --- a/third_party/webrender/wrench/reftests/text/clipped-transform.png +++ b/third_party/webrender/wrench/reftests/text/clipped-transform.png diff --git a/third_party/webrender/wrench/reftests/text/colors-alpha.png b/third_party/webrender/wrench/reftests/text/colors-alpha.png Binary files differindex 3e8d985025d..e82f79ddce2 100644 --- a/third_party/webrender/wrench/reftests/text/colors-alpha.png +++ b/third_party/webrender/wrench/reftests/text/colors-alpha.png diff --git a/third_party/webrender/wrench/reftests/text/colors-subpx.png b/third_party/webrender/wrench/reftests/text/colors-subpx.png Binary files differindex 50d5c36be38..8f943b2f80c 100644 --- a/third_party/webrender/wrench/reftests/text/colors-subpx.png +++ b/third_party/webrender/wrench/reftests/text/colors-subpx.png diff --git a/third_party/webrender/wrench/reftests/text/decorations-suite.png b/third_party/webrender/wrench/reftests/text/decorations-suite.png Binary files differindex b9a33033492..dc69e0f6d9b 100644 --- a/third_party/webrender/wrench/reftests/text/decorations-suite.png +++ b/third_party/webrender/wrench/reftests/text/decorations-suite.png diff --git a/third_party/webrender/wrench/reftests/text/isolated-text.png b/third_party/webrender/wrench/reftests/text/isolated-text.png Binary files differindex a0c8ed36506..7b310e78dcb 100644 --- a/third_party/webrender/wrench/reftests/text/isolated-text.png +++ b/third_party/webrender/wrench/reftests/text/isolated-text.png diff --git a/third_party/webrender/wrench/reftests/text/perspective-clip.png b/third_party/webrender/wrench/reftests/text/perspective-clip.png Binary files differindex 7d19eff293c..3a836ecb2a8 100644 --- a/third_party/webrender/wrench/reftests/text/perspective-clip.png +++ b/third_party/webrender/wrench/reftests/text/perspective-clip.png diff --git a/third_party/webrender/wrench/reftests/text/raster-space.png b/third_party/webrender/wrench/reftests/text/raster-space.png Binary files differindex e6a1b38865e..66fcf7377a3 100644 --- a/third_party/webrender/wrench/reftests/text/raster-space.png +++ b/third_party/webrender/wrench/reftests/text/raster-space.png diff --git a/third_party/webrender/wrench/reftests/text/raster-space.yaml b/third_party/webrender/wrench/reftests/text/raster-space.yaml index a4efba37fd9..e6534784123 100644 --- a/third_party/webrender/wrench/reftests/text/raster-space.yaml +++ b/third_party/webrender/wrench/reftests/text/raster-space.yaml @@ -4,7 +4,6 @@ root: transform: scale(5.0) rotate(-45) transform-origin: 300 300 raster-space: local(1.0) - filters: [opacity(0.5)] items: - text: "Local" origin: 20 50 diff --git a/third_party/webrender/wrench/reftests/text/reftest.list b/third_party/webrender/wrench/reftests/text/reftest.list index 3fef2f41db0..d7a51ef42d6 100644 --- a/third_party/webrender/wrench/reftests/text/reftest.list +++ b/third_party/webrender/wrench/reftests/text/reftest.list @@ -14,13 +14,13 @@ fuzzy(1,1) == shadow-huge.yaml shadow-huge-ref.yaml != shadow-clipped-text.yaml blank.yaml != non-opaque.yaml non-opaque-notref.yaml == decorations.yaml decorations-ref.yaml -skip_on(android,device) fuzzy(1,3635) fuzzy-if(platform(swgl),3,13395) == decorations-suite.yaml decorations-suite.png # Fails on Pixel2 +skip_on(android,device) fuzzy(1,3001) == decorations-suite.yaml decorations-suite.png # Fails on Pixel2 == 1658.yaml 1658-ref.yaml -fuzzy(2,405) fuzzy-if(platform(swgl),2,1508) == split-batch.yaml split-batch-ref.yaml +fuzzy(1,6) == split-batch.yaml split-batch-ref.yaml # Next 3 tests affected by bug 1548099 on Android skip_on(android) == shadow-red.yaml shadow-red-ref.yaml -skip_on(android) fuzzy(1,999) fuzzy-if(platform(swgl),2,1324) == shadow-grey.yaml shadow-grey-ref.yaml -skip_on(android) fuzzy(1,828) fuzzy-if(platform(swgl),2,1538) == shadow-grey-transparent.yaml shadow-grey-ref.yaml +skip_on(android) fuzzy(1,735) == shadow-grey.yaml shadow-grey-ref.yaml +skip_on(android) fuzzy(1,663) == shadow-grey-transparent.yaml shadow-grey-ref.yaml == subtle-shadow.yaml subtle-shadow-ref.yaml fuzzy(1,64) == shadow-atomic.yaml shadow-atomic-ref.yaml fuzzy(1,64) == shadow-clip-rect.yaml shadow-atomic-ref.yaml @@ -35,36 +35,36 @@ skip_on(android) != synthetic-italics-custom.yaml synthetic-italics.yaml options(disable-aa) == ahem.yaml ahem-ref.yaml platform(linux) == isolated-text.yaml isolated-text.png platform(mac) skip_on(mac,>=10.14) fuzzy(3,67) == white-opacity.yaml white-opacity.png -fuzzy(1,113) platform(linux) options(disable-subpixel) == colors.yaml colors-alpha.png +fuzzy(1,4) platform(linux) options(disable-subpixel) == colors.yaml colors-alpha.png # Run without dual-source blending path, batches are broken when text colors change. -fuzzy(1,1256) platform(linux) options(disable-dual-source-blending) draw_calls(6) == colors.yaml colors-subpx.png +fuzzy(1,6) platform(linux) options(disable-dual-source-blending) draw_calls(6) == colors.yaml colors-subpx.png # Run with both dual-source blending, ensuring batching is improved. -fuzzy(1,774) platform(linux) draw_calls(3) == colors.yaml colors-subpx.png +fuzzy(1,6) platform(linux) draw_calls(3) == colors.yaml colors-subpx.png platform(linux) options(disable-subpixel) == border-radius.yaml border-radius-alpha.png platform(linux) == border-radius.yaml border-radius-subpx.png options(disable-aa) == transparent-no-aa.yaml transparent-no-aa-ref.yaml != diacritics.yaml diacritics-ref.yaml fuzzy(1,1) platform(linux) options(disable-subpixel) == text-masking.yaml text-masking-alpha.png fuzzy(1,44) platform(linux) == text-masking.yaml text-masking-subpx.png -fuzzy(1,30) platform(linux) options(disable-subpixel) == alpha-transform.yaml alpha-transform.png -fuzzy(1,20) platform(linux) == subpixel-rotate.yaml subpixel-rotate.png -fuzzy(1,72) platform(linux) == subpixel-scale.yaml subpixel-scale.png -fuzzy(1,26) platform(linux) == subpixel-skew.yaml subpixel-skew.png +platform(linux) options(disable-subpixel) == alpha-transform.yaml alpha-transform.png +platform(linux) == subpixel-rotate.yaml subpixel-rotate.png +platform(linux) == subpixel-scale.yaml subpixel-scale.png +platform(linux) == subpixel-skew.yaml subpixel-skew.png fuzzy(1,381) platform(linux) == subpixel-translate.yaml subpixel-translate-ref.yaml != shadow-rotate.yaml blank.yaml platform(linux) == embedded-bitmaps.yaml embedded-bitmaps.png -fuzzy(1,13) platform(linux) == clipped-transform.yaml clipped-transform.png +platform(linux) == clipped-transform.yaml clipped-transform.png platform(mac) fuzzy(195,30) == color-bitmap-shadow.yaml color-bitmap-shadow-ref.yaml platform(linux) == writing-modes.yaml writing-modes-ref.yaml -fuzzy(1,5) platform(linux) == blurred-shadow-local-clip-rect.yaml blurred-shadow-local-clip-rect-ref.png +platform(linux) == blurred-shadow-local-clip-rect.yaml blurred-shadow-local-clip-rect-ref.png fuzzy(1,1) platform(linux) == two-shadows.yaml two-shadows.png == shadow-clip.yaml shadow-clip-ref.yaml == shadow-fast-clip.yaml shadow-fast-clip-ref.yaml skip_on(android,device) == shadow-partial-glyph.yaml shadow-partial-glyph-ref.yaml # Fails on Pixel2 -fuzzy(2,212) platform(linux) == shadow-transforms.yaml shadow-transforms.png -fuzzy(2,370) platform(linux) == raster-space.yaml raster-space.png +fuzzy(1,107) platform(linux) == shadow-transforms.yaml shadow-transforms.png +fuzzy(1,113) platform(linux) == raster-space.yaml raster-space.png skip_on(android) skip_on(mac,>=10.14) != allow-subpixel.yaml allow-subpixel-ref.yaml # Android: we don't enable sub-px aa on this platform. -skip_on(android,device) fuzzy-if(platform(swgl),1,1085) == bg-color.yaml bg-color-ref.yaml # Fails on Pixel2 +skip_on(android,device) == bg-color.yaml bg-color-ref.yaml # Fails on Pixel2 != large-glyphs.yaml blank.yaml != large-line-decoration.yaml blank.yaml skip_on(android,device) == snap-text-offset.yaml snap-text-offset-ref.yaml @@ -72,13 +72,13 @@ fuzzy(5,4435) == shadow-border.yaml shadow-solid-ref.yaml fuzzy(5,4435) == shadow-image.yaml shadow-solid-ref.yaml options(disable-aa) == snap-clip.yaml snap-clip-ref.yaml platform(linux) == perspective-clip.yaml perspective-clip.png -fuzzy(1,150) options(disable-subpixel) == raster-space-snap.yaml raster-space-snap-ref.yaml +fuzzy(1,39) options(disable-subpixel) == raster-space-snap.yaml raster-space-snap-ref.yaml # == intermediate-transform.yaml intermediate-transform-ref.yaml # fails because of AA inavailable with an intermediate surface -fuzzy(1,15) platform(linux) force_subpixel_aa_where_possible(true) == text-fixed-slice.yaml text-fixed-slice-slow.png -fuzzy(1,15) platform(linux) force_subpixel_aa_where_possible(false) == text-fixed-slice.yaml text-fixed-slice-fast.png +platform(linux) force_subpixel_aa_where_possible(true) == text-fixed-slice.yaml text-fixed-slice-slow.png +platform(linux) force_subpixel_aa_where_possible(false) == text-fixed-slice.yaml text-fixed-slice-fast.png # a 8544x8544 raster root vs. 2136x2136 # most pixels are off by a small amount, but a few pixels on the edge vary by a lot, pushing up the fuzzy max-diff; # the main goal of the test is that everything is in the same place, at the same scale, clipped the same way, # despite 4x on-the-fly scale change. -skip_on(android) fuzzy-range(<=3,*21700,<=20,*3500,<=119,*590) fuzzy-if(platform(swgl),108,24907) == raster_root_C_8192.yaml raster_root_C_ref.yaml +skip_on(android) fuzzy-range(<=3,*20569,<=20,*2525,<=115,*543) == raster_root_C_8192.yaml raster_root_C_ref.yaml diff --git a/third_party/webrender/wrench/reftests/text/shadow-transforms.png b/third_party/webrender/wrench/reftests/text/shadow-transforms.png Binary files differindex 05af37e1e71..71d97bff4c8 100644 --- a/third_party/webrender/wrench/reftests/text/shadow-transforms.png +++ b/third_party/webrender/wrench/reftests/text/shadow-transforms.png diff --git a/third_party/webrender/wrench/reftests/text/subpixel-rotate.png b/third_party/webrender/wrench/reftests/text/subpixel-rotate.png Binary files differindex 1eaf89db1ff..2bff307a8ed 100644 --- a/third_party/webrender/wrench/reftests/text/subpixel-rotate.png +++ b/third_party/webrender/wrench/reftests/text/subpixel-rotate.png diff --git a/third_party/webrender/wrench/reftests/text/subpixel-scale.png b/third_party/webrender/wrench/reftests/text/subpixel-scale.png Binary files differindex 5999d2d5dd9..f3c245c25ac 100644 --- a/third_party/webrender/wrench/reftests/text/subpixel-scale.png +++ b/third_party/webrender/wrench/reftests/text/subpixel-scale.png diff --git a/third_party/webrender/wrench/reftests/text/subpixel-skew.png b/third_party/webrender/wrench/reftests/text/subpixel-skew.png Binary files differindex 9dcfde00884..3e713f16711 100644 --- a/third_party/webrender/wrench/reftests/text/subpixel-skew.png +++ b/third_party/webrender/wrench/reftests/text/subpixel-skew.png diff --git a/third_party/webrender/wrench/reftests/text/text-fixed-slice-fast.png b/third_party/webrender/wrench/reftests/text/text-fixed-slice-fast.png Binary files differindex e6d6147219d..7f3ee0ec9d3 100644 --- a/third_party/webrender/wrench/reftests/text/text-fixed-slice-fast.png +++ b/third_party/webrender/wrench/reftests/text/text-fixed-slice-fast.png diff --git a/third_party/webrender/wrench/reftests/text/text-fixed-slice-slow.png b/third_party/webrender/wrench/reftests/text/text-fixed-slice-slow.png Binary files differindex 4ccfff39b20..4eaa7fc3ad5 100644 --- a/third_party/webrender/wrench/reftests/text/text-fixed-slice-slow.png +++ b/third_party/webrender/wrench/reftests/text/text-fixed-slice-slow.png diff --git a/third_party/webrender/wrench/reftests/text/text-fixed-slice.yaml b/third_party/webrender/wrench/reftests/text/text-fixed-slice.yaml index ec0b72e59be..902b7c83a75 100644 --- a/third_party/webrender/wrench/reftests/text/text-fixed-slice.yaml +++ b/third_party/webrender/wrench/reftests/text/text-fixed-slice.yaml @@ -10,12 +10,9 @@ root: - type: rect bounds: [0, 0, 500, 200] color: white - - type: clip + - type: rect bounds: [0, 0, 500, 200] - items: - - type: rect - bounds: [0, 0, 500, 200] - color: white + color: white - text: "The sun has frightened off the night!" origin: 20 40 size: 20 diff --git a/third_party/webrender/wrench/reftests/text/text-masking-alpha.png b/third_party/webrender/wrench/reftests/text/text-masking-alpha.png Binary files differindex 2b816eb288b..1f02f8bac5d 100644 --- a/third_party/webrender/wrench/reftests/text/text-masking-alpha.png +++ b/third_party/webrender/wrench/reftests/text/text-masking-alpha.png diff --git a/third_party/webrender/wrench/reftests/text/text-masking-subpx.png b/third_party/webrender/wrench/reftests/text/text-masking-subpx.png Binary files differindex 791a4c6347f..08db66a5376 100644 --- a/third_party/webrender/wrench/reftests/text/text-masking-subpx.png +++ b/third_party/webrender/wrench/reftests/text/text-masking-subpx.png diff --git a/third_party/webrender/wrench/reftests/text/two-shadows.png b/third_party/webrender/wrench/reftests/text/two-shadows.png Binary files differindex 3907f1be74a..1dae24cb84d 100644 --- a/third_party/webrender/wrench/reftests/text/two-shadows.png +++ b/third_party/webrender/wrench/reftests/text/two-shadows.png diff --git a/third_party/webrender/wrench/reftests/tiles/mix-blend-clip-ref.yaml b/third_party/webrender/wrench/reftests/tiles/mix-blend-clip-ref.yaml deleted file mode 100644 index e31ead5b870..00000000000 --- a/third_party/webrender/wrench/reftests/tiles/mix-blend-clip-ref.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -root: - items: - - type: stacking-context - blend-container: true - items: - - type: rect - bounds: [0, 0, 128, 128] - color: magenta - - type: stacking-context - mix-blend-mode: lighten - items: - - image: checkerboard(0, 16, 16, 8, 8) - bounds: [0, 0, 128, 128] diff --git a/third_party/webrender/wrench/reftests/tiles/mix-blend-clip.yaml b/third_party/webrender/wrench/reftests/tiles/mix-blend-clip.yaml deleted file mode 100644 index be41c9b508e..00000000000 --- a/third_party/webrender/wrench/reftests/tiles/mix-blend-clip.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# Test that a backdrop which has both a shared clip (on the tile cache) and is also scrolled -# correctly calculates the available backdrop rect for a mix-blend on a child. ---- -root: - items: - - - bounds: [0, 0, 128, 128] - type: clip - id: 2 - - type: stacking-context - blend-container: true - items: - - type: scroll-frame - bounds: 0 0 128 512 - scroll-offset: [0, 128] - id: 3 - items: - - type: rect - bounds: [0, 0, 128, 512] - color: magenta - clip-and-scroll: [3, 2] - - type: stacking-context - mix-blend-mode: lighten - clip-node: 2 - items: - - image: checkerboard(0, 16, 16, 8, 16) - bounds: [0, 0, 128, 256] diff --git a/third_party/webrender/wrench/reftests/tiles/reftest.list b/third_party/webrender/wrench/reftests/tiles/reftest.list index 35bb7875b6c..7c04207b183 100644 --- a/third_party/webrender/wrench/reftests/tiles/reftest.list +++ b/third_party/webrender/wrench/reftests/tiles/reftest.list @@ -1,6 +1,4 @@ ** rect.yaml -fuzzy(1,2000) ** simple-gradient.yaml +** simple-gradient.yaml # TODO: Fix rasterizer inaccuracies so this is the same regardless of tile size! !* prim-suite.yaml -== mix-blend-clip.yaml mix-blend-clip-ref.yaml -platform(linux) == tile-cache-raster-root.yaml tile-cache-raster-root.png diff --git a/third_party/webrender/wrench/reftests/tiles/tile-cache-raster-root.png b/third_party/webrender/wrench/reftests/tiles/tile-cache-raster-root.png Binary files differdeleted file mode 100644 index 120f63a7f07..00000000000 --- a/third_party/webrender/wrench/reftests/tiles/tile-cache-raster-root.png +++ /dev/null diff --git a/third_party/webrender/wrench/reftests/tiles/tile-cache-raster-root.yaml b/third_party/webrender/wrench/reftests/tiles/tile-cache-raster-root.yaml deleted file mode 100644 index 8ff36583c3f..00000000000 --- a/third_party/webrender/wrench/reftests/tiles/tile-cache-raster-root.yaml +++ /dev/null @@ -1,40 +0,0 @@ -# Based on a reduced case from blend-clipped.yaml, ensure that if tile caches don't create -# raster roots (which messes with the special case handling and positioning of them). ---- -root: - items: - - - type: "stacking-context" - items: - - - bounds: [0, 111, 1887, 1971] - type: iframe - id: [1, 3] - id: [1, 1] -pipelines: - - - id: [1, 3] - items: - - - type: "scroll-frame" - id: 2 - bounds: [0, 0, 1887, 1971] - - - "clip-and-scroll": 2 - type: "stacking-context" - items: - - - bounds: [0, -186, 1887, 239] - "clip-and-scroll": 2 - type: clip - id: 4 - - - bounds: [-660.45, -186, 0, 0] - "clip-and-scroll": 4 - type: "stacking-context" - transform: [1, 0, 0, 0, -0.57735026, 1, 0, 0, 0, 0, 1, 0, 68.849, 0, 0, 1] - items: - - - bounds: [0, 0, 1887, 239] - type: rect - color: blue diff --git a/third_party/webrender/wrench/reftests/transforms/border-scale-2.png b/third_party/webrender/wrench/reftests/transforms/border-scale-2.png Binary files differindex b848abfbff9..09e81e0b2ae 100644 --- a/third_party/webrender/wrench/reftests/transforms/border-scale-2.png +++ b/third_party/webrender/wrench/reftests/transforms/border-scale-2.png diff --git a/third_party/webrender/wrench/reftests/transforms/border-scale-3.png b/third_party/webrender/wrench/reftests/transforms/border-scale-3.png Binary files differindex f51553e04f8..de110f5334d 100644 --- a/third_party/webrender/wrench/reftests/transforms/border-scale-3.png +++ b/third_party/webrender/wrench/reftests/transforms/border-scale-3.png diff --git a/third_party/webrender/wrench/reftests/transforms/border-scale-4.png b/third_party/webrender/wrench/reftests/transforms/border-scale-4.png Binary files differindex 6e1d664f9ae..a590cb153a0 100644 --- a/third_party/webrender/wrench/reftests/transforms/border-scale-4.png +++ b/third_party/webrender/wrench/reftests/transforms/border-scale-4.png diff --git a/third_party/webrender/wrench/reftests/transforms/border-scale.png b/third_party/webrender/wrench/reftests/transforms/border-scale.png Binary files differindex 65772686639..cd88307a678 100644 --- a/third_party/webrender/wrench/reftests/transforms/border-scale.png +++ b/third_party/webrender/wrench/reftests/transforms/border-scale.png diff --git a/third_party/webrender/wrench/reftests/transforms/border-zoom.png b/third_party/webrender/wrench/reftests/transforms/border-zoom.png Binary files differindex 0bd7cc21ab3..cb634ef97c4 100644 --- a/third_party/webrender/wrench/reftests/transforms/border-zoom.png +++ b/third_party/webrender/wrench/reftests/transforms/border-zoom.png diff --git a/third_party/webrender/wrench/reftests/transforms/coord-system.png b/third_party/webrender/wrench/reftests/transforms/coord-system.png Binary files differindex af5213f906b..d28a562186a 100644 --- a/third_party/webrender/wrench/reftests/transforms/coord-system.png +++ b/third_party/webrender/wrench/reftests/transforms/coord-system.png diff --git a/third_party/webrender/wrench/reftests/transforms/flatten-all-flat-ref.yaml b/third_party/webrender/wrench/reftests/transforms/flatten-all-flat-ref.yaml deleted file mode 100644 index fd60bccb4bd..00000000000 --- a/third_party/webrender/wrench/reftests/transforms/flatten-all-flat-ref.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -root: - items: - - type: reference-frame - transform-style: flat - items: - - type: reference-frame - perspective: 1000 - transform-style: flat - items: - - type: reference-frame - transform: rotate-z(-45) rotate-x(-75) - bounds: 50 0 100 100 - transform-style: flat - items: - - type: rect - bounds: 0 0 100 100 - color: green diff --git a/third_party/webrender/wrench/reftests/transforms/flatten-all-flat.yaml b/third_party/webrender/wrench/reftests/transforms/flatten-all-flat.yaml deleted file mode 100644 index d471b052cc1..00000000000 --- a/third_party/webrender/wrench/reftests/transforms/flatten-all-flat.yaml +++ /dev/null @@ -1,20 +0,0 @@ -# This test has a series of flat transforms that affect Z. ---- -root: - items: - - type: reference-frame - transform: rotate-y(0.0001) # this transform used to affect the Z coordinates during flattening - transform-style: flat - items: - - type: reference-frame - perspective: 1000 - transform-style: flat - items: - - type: reference-frame - transform: rotate-z(-45) rotate-x(-75) - bounds: 50 0 100 100 - transform-style: flat - items: - - type: rect - bounds: 0 0 100 100 - color: green diff --git a/third_party/webrender/wrench/reftests/transforms/image-rotated-clip.png b/third_party/webrender/wrench/reftests/transforms/image-rotated-clip.png Binary files differindex 96439dbc6e4..fda2872a3eb 100644 --- a/third_party/webrender/wrench/reftests/transforms/image-rotated-clip.png +++ b/third_party/webrender/wrench/reftests/transforms/image-rotated-clip.png diff --git a/third_party/webrender/wrench/reftests/transforms/local-clip.png b/third_party/webrender/wrench/reftests/transforms/local-clip.png Binary files differindex 3f22d01dbe8..92e25ec5e59 100644 --- a/third_party/webrender/wrench/reftests/transforms/local-clip.png +++ b/third_party/webrender/wrench/reftests/transforms/local-clip.png diff --git a/third_party/webrender/wrench/reftests/transforms/near-plane-clip.png b/third_party/webrender/wrench/reftests/transforms/near-plane-clip.png Binary files differindex e051c725b68..babe22d7482 100644 --- a/third_party/webrender/wrench/reftests/transforms/near-plane-clip.png +++ b/third_party/webrender/wrench/reftests/transforms/near-plane-clip.png diff --git a/third_party/webrender/wrench/reftests/transforms/nested-preserve-3d.png b/third_party/webrender/wrench/reftests/transforms/nested-preserve-3d.png Binary files differindex 686a22cf0a1..3b74c198999 100644 --- a/third_party/webrender/wrench/reftests/transforms/nested-preserve-3d.png +++ b/third_party/webrender/wrench/reftests/transforms/nested-preserve-3d.png diff --git a/third_party/webrender/wrench/reftests/transforms/nested-rotate-x-flat.png b/third_party/webrender/wrench/reftests/transforms/nested-rotate-x-flat.png Binary files differindex ca33ca1336c..2134a8ff77d 100644 --- a/third_party/webrender/wrench/reftests/transforms/nested-rotate-x-flat.png +++ b/third_party/webrender/wrench/reftests/transforms/nested-rotate-x-flat.png diff --git a/third_party/webrender/wrench/reftests/transforms/nested-rotate-x.png b/third_party/webrender/wrench/reftests/transforms/nested-rotate-x.png Binary files differindex 73ad1cec412..4a6cc2352da 100644 --- a/third_party/webrender/wrench/reftests/transforms/nested-rotate-x.png +++ b/third_party/webrender/wrench/reftests/transforms/nested-rotate-x.png diff --git a/third_party/webrender/wrench/reftests/transforms/non-inversible-world-rect.yaml b/third_party/webrender/wrench/reftests/transforms/non-inversible-world-rect.yaml deleted file mode 100644 index f94404f58ed..00000000000 --- a/third_party/webrender/wrench/reftests/transforms/non-inversible-world-rect.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# Tests that `get_raster_rects` raster -> world transform is inversible in general, -# but one of the vertices of the world rectangles can't map back to the raster. ---- -root: - items: - - type: stacking-context - bounds: 0 0 400 400 - perspective: 800 - perspective-origin: 50% 200 - items: - - type: stacking-context - bounds: 0 0 400 400 - transform-style: preserve-3d - transform: rotate-z(40) translate(400, 200, 0) - margin: 100 - items: - - type: stacking-context - bounds: 0 0 1000 1000 - transform: rotate-y(-75) translate(0, 0, -500) - items: - - type: rect - bounds: [0, 0, 200, 200] - color: red diff --git a/third_party/webrender/wrench/reftests/transforms/perspective-border-radius.png b/third_party/webrender/wrench/reftests/transforms/perspective-border-radius.png Binary files differindex 12db11efc72..6868bef4308 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective-border-radius.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective-border-radius.png diff --git a/third_party/webrender/wrench/reftests/transforms/perspective-clip-1.png b/third_party/webrender/wrench/reftests/transforms/perspective-clip-1.png Binary files differindex 2cc992c168d..2708424772d 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective-clip-1.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective-clip-1.png diff --git a/third_party/webrender/wrench/reftests/transforms/perspective-clip.png b/third_party/webrender/wrench/reftests/transforms/perspective-clip.png Binary files differindex bd31aba99b9..97be10064a1 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective-clip.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective-clip.png diff --git a/third_party/webrender/wrench/reftests/transforms/perspective-mask.png b/third_party/webrender/wrench/reftests/transforms/perspective-mask.png Binary files differindex a51e6ce2e10..41ef1283dbb 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective-mask.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective-mask.png diff --git a/third_party/webrender/wrench/reftests/transforms/perspective-origin.png b/third_party/webrender/wrench/reftests/transforms/perspective-origin.png Binary files differindex 48c528a6d0a..bda2d9dac21 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective-origin.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective-origin.png diff --git a/third_party/webrender/wrench/reftests/transforms/perspective-shadow.png b/third_party/webrender/wrench/reftests/transforms/perspective-shadow.png Binary files differindex 07befbd35ba..2a0d50806c0 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective-shadow.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective-shadow.png diff --git a/third_party/webrender/wrench/reftests/transforms/perspective.png b/third_party/webrender/wrench/reftests/transforms/perspective.png Binary files differindex 93f38d9a1c9..f4ce971d578 100644 --- a/third_party/webrender/wrench/reftests/transforms/perspective.png +++ b/third_party/webrender/wrench/reftests/transforms/perspective.png diff --git a/third_party/webrender/wrench/reftests/transforms/prim-suite.png b/third_party/webrender/wrench/reftests/transforms/prim-suite.png Binary files differindex 6d0c695e94c..cec3ecc3214 100644 --- a/third_party/webrender/wrench/reftests/transforms/prim-suite.png +++ b/third_party/webrender/wrench/reftests/transforms/prim-suite.png diff --git a/third_party/webrender/wrench/reftests/transforms/raster-root-huge-scale.yaml b/third_party/webrender/wrench/reftests/transforms/raster-root-huge-scale.yaml index fd63c63031c..269c71cccaf 100644 --- a/third_party/webrender/wrench/reftests/transforms/raster-root-huge-scale.yaml +++ b/third_party/webrender/wrench/reftests/transforms/raster-root-huge-scale.yaml @@ -15,8 +15,8 @@ root: transform-style: preserve-3d items: - type: clip - bounds: [0, 0, 60000, 60000] - clip-rect: [0, 0, 60000, 60000] + bounds: [10, 10, 60000, 60000] + clip-rect: [10, 10, 60000, 60000] id: 2 complex: - rect: [0, 0, 100, 100] @@ -28,9 +28,3 @@ root: items: - rect: 0 0 100 100 color: red - - type: box-shadow - bounds: 0 0 100 100 - color: blue - offset: 10 20 - blur-radius: 10 - border-radius: [ 20, 20, 20, 20 ] diff --git a/third_party/webrender/wrench/reftests/transforms/reftest.list b/third_party/webrender/wrench/reftests/transforms/reftest.list index 537ae1e03b8..5931b7d6e52 100644 --- a/third_party/webrender/wrench/reftests/transforms/reftest.list +++ b/third_party/webrender/wrench/reftests/transforms/reftest.list @@ -4,22 +4,22 @@ platform(linux,mac) == rotated-clip-large.yaml rotated-clip-large.png platform(linux,mac) == image-rotated-clip.yaml image-rotated-clip.png # Something leaks the state: the test passes if only run `reftest reftests/transform` # but fails when all the tests are run -platform(linux,mac) fuzzy(1,6) == rotated-image.yaml rotated-image.png +platform(linux,mac) fuzzy(1,4) == rotated-image.yaml rotated-image.png == singular.yaml singular-ref.yaml platform(linux) fuzzy(1,630) == perspective.yaml perspective.png -platform(linux,mac) fuzzy(3,8100) == prim-suite.yaml prim-suite.png -fuzzy-if(platform(swgl),1,2) == segments-bug.yaml segments-bug-ref.yaml +platform(linux,mac) fuzzy(1,156) == prim-suite.yaml prim-suite.png +== segments-bug.yaml segments-bug-ref.yaml platform(linux,mac) == content-offset.yaml content-offset.png platform(linux,mac) == coord-system.yaml coord-system.png -platform(linux,mac) fuzzy(1,15) zoom(4) == border-zoom.yaml border-zoom.png +platform(linux,mac) fuzzy(1,5) zoom(4) == border-zoom.yaml border-zoom.png platform(linux) fuzzy(1,520) == perspective-origin.yaml perspective-origin.png platform(linux,mac) color_targets(3) alpha_targets(0) fuzzy(1,180) == screen-space-blit.yaml screen-space-blit.png -platform(linux,mac) fuzzy(1,346) color_targets(2) alpha_targets(0) == screen-space-blit-trivial.yaml screen-space-blit-trivial.png +platform(linux,mac) fuzzy(1,331) color_targets(2) alpha_targets(0) == screen-space-blit-trivial.yaml screen-space-blit-trivial.png platform(linux) fuzzy(11,4592) == screen-space-blur.yaml screen-space-blur.png -platform(linux,mac) fuzzy(1,25) == nested-rotate-x.yaml nested-rotate-x.png +platform(linux,mac) == nested-rotate-x.yaml nested-rotate-x.png platform(linux,mac) != nested-rotate-x.yaml nested-rotate-x-flat.yaml -platform(linux,mac) fuzzy(1,25) == nested-rotate-x-flat.yaml nested-rotate-x-flat.png -platform(linux,mac) fuzzy(1,25) == nested-preserve-3d.yaml nested-preserve-3d.png +platform(linux,mac) == nested-rotate-x-flat.yaml nested-rotate-x-flat.png +platform(linux,mac) == nested-preserve-3d.yaml nested-preserve-3d.png platform(linux,mac) fuzzy(1,283) == near-plane-clip.yaml near-plane-clip.png platform(linux,mac) == perspective-mask.yaml perspective-mask.png == rotate-clip.yaml rotate-clip-ref.yaml @@ -30,7 +30,7 @@ platform(linux,mac) fuzzy(1,2) == perspective-shadow.yaml perspective-shadow.png # The ref YAML here produces significantly worse quality fuzzy(200,4200) == perspective-box-shadow.yaml perspective-box-shadow-ref.yaml == complex-preserve-3d.yaml blank.yaml -platform(linux,mac) fuzzy(38,348) == perspective-border-radius.yaml perspective-border-radius.png +platform(linux,mac) fuzzy(9,348) == perspective-border-radius.yaml perspective-border-radius.png fuzzy(1,38) == snapped-preserve-3d.yaml snapped-preserve-3d-ref.yaml platform(linux,mac) fuzzy(1,122) == border-scale.yaml border-scale.png platform(linux,mac) fuzzy(1,16) == border-scale-2.yaml border-scale-2.png @@ -40,7 +40,6 @@ platform(linux,mac) fuzzy(1,74) == border-scale-4.yaml border-scale-4.png != large-raster-root.yaml blank.yaml == flatten-preserve-3d-root.yaml flatten-preserve-3d-root-ref.yaml == flatten-twice.yaml flatten-twice-ref.yaml -fuzzy(1,10) == flatten-all-flat.yaml flatten-all-flat-ref.yaml == strange-w.yaml strange-w-ref.yaml == big-axis-aligned-scale.yaml big-axis-aligned-scale-ref.yaml # Compare ~8K raster root (>MAX_SURFACE_SIZE) with ~2K raster root. fuzzy due to lerping on edges. @@ -53,4 +52,3 @@ skip_on(android) == raster-root-scaling.yaml raster-root-scaling-ref.yaml skip_on(android) == raster-root-scaling-2.yaml raster-root-scaling-2-ref.yaml # Make sure we don't panic != raster-root-huge-scale.yaml blank.yaml -!= non-inversible-world-rect.yaml blank.yaml diff --git a/third_party/webrender/wrench/reftests/transforms/rotated-clip-large.png b/third_party/webrender/wrench/reftests/transforms/rotated-clip-large.png Binary files differindex e3c8ce7ab4a..c4e48403709 100644 --- a/third_party/webrender/wrench/reftests/transforms/rotated-clip-large.png +++ b/third_party/webrender/wrench/reftests/transforms/rotated-clip-large.png diff --git a/third_party/webrender/wrench/reftests/transforms/rotated-clip.png b/third_party/webrender/wrench/reftests/transforms/rotated-clip.png Binary files differindex fe6e2aedb00..33d2771d3a9 100644 --- a/third_party/webrender/wrench/reftests/transforms/rotated-clip.png +++ b/third_party/webrender/wrench/reftests/transforms/rotated-clip.png diff --git a/third_party/webrender/wrench/reftests/transforms/rotated-image.png b/third_party/webrender/wrench/reftests/transforms/rotated-image.png Binary files differindex 012ffe60452..2bb0d45e48d 100644 --- a/third_party/webrender/wrench/reftests/transforms/rotated-image.png +++ b/third_party/webrender/wrench/reftests/transforms/rotated-image.png diff --git a/third_party/webrender/wrench/reftests/transforms/screen-space-blit-trivial.png b/third_party/webrender/wrench/reftests/transforms/screen-space-blit-trivial.png Binary files differindex 66c4e214d4a..0c7ed88dd60 100644 --- a/third_party/webrender/wrench/reftests/transforms/screen-space-blit-trivial.png +++ b/third_party/webrender/wrench/reftests/transforms/screen-space-blit-trivial.png diff --git a/third_party/webrender/wrench/reftests/transforms/screen-space-blit.png b/third_party/webrender/wrench/reftests/transforms/screen-space-blit.png Binary files differindex 360db5a6041..6479438fe15 100644 --- a/third_party/webrender/wrench/reftests/transforms/screen-space-blit.png +++ b/third_party/webrender/wrench/reftests/transforms/screen-space-blit.png diff --git a/third_party/webrender/wrench/reftests/transforms/screen-space-blur.png b/third_party/webrender/wrench/reftests/transforms/screen-space-blur.png Binary files differindex 4c718db42e8..e4e3df37318 100644 --- a/third_party/webrender/wrench/reftests/transforms/screen-space-blur.png +++ b/third_party/webrender/wrench/reftests/transforms/screen-space-blur.png diff --git a/third_party/webrender/wrench/reftests/transforms/screen-space-blur.yaml b/third_party/webrender/wrench/reftests/transforms/screen-space-blur.yaml index 6d93260c83a..e9c5f5d32dc 100644 --- a/third_party/webrender/wrench/reftests/transforms/screen-space-blur.yaml +++ b/third_party/webrender/wrench/reftests/transforms/screen-space-blur.yaml @@ -7,14 +7,14 @@ root: - type: "stacking-context" transform-origin: 235 235 transform: rotate-x(-15) - filters: blur(3, 3) + filters: blur(3) items: - image: checkerboard(2, 16, 16) bounds: [100, 100, 260, 260] - type: "stacking-context" transform-origin: 635 235 transform: rotate-z(-45) - filters: blur(3, 3) + filters: blur(3) items: - image: checkerboard(2, 16, 16) bounds: [500, 100, 260, 260] diff --git a/third_party/webrender/wrench/script/headless.py b/third_party/webrender/wrench/script/headless.py index 109fca1cb2e..0b98b138626 100755 --- a/third_party/webrender/wrench/script/headless.py +++ b/third_party/webrender/wrench/script/headless.py @@ -96,16 +96,18 @@ def optimized_build(): def set_osmesa_env(bin_path): """Set proper LD_LIBRARY_PATH and DRIVE for software rendering on Linux and OSX""" - base = find_dep_path_newest('osmesa-src', bin_path) - osmesa_path = path.join(base, "out", "mesa", "src", "gallium", "targets", "osmesa") - os.environ["GALLIUM_DRIVER"] = "llvmpipe" if is_linux(): + osmesa_path = path.join(find_dep_path_newest('osmesa-src', bin_path), "out", "lib", "gallium") print(osmesa_path) os.environ["LD_LIBRARY_PATH"] = osmesa_path + os.environ["GALLIUM_DRIVER"] = "softpipe" elif is_macos(): - osmesa_path = path.join(base, "out", "mesa", "src", "gallium", "targets", "osmesa") - glapi_path = path.join(base, "out", "mesa", "src", "mapi", "shared-glapi") + osmesa_path = path.join(find_dep_path_newest('osmesa-src', bin_path), + "out", "src", "gallium", "targets", "osmesa", ".libs") + glapi_path = path.join(find_dep_path_newest('osmesa-src', bin_path), + "out", "src", "mapi", "shared-glapi", ".libs") os.environ["DYLD_LIBRARY_PATH"] = osmesa_path + ":" + glapi_path + os.environ["GALLIUM_DRIVER"] = "softpipe" extra_flags = os.getenv('CARGOFLAGS', None) @@ -147,6 +149,6 @@ set_osmesa_env(target_folder) # cause 1.0 / 255.0 pixel differences in a subsequent test. For now, we # run tests with no-scissor mode, which ensures a complete target clear # between test runs. But we should investigate this further... -cmd = dbg_cmd + [target_folder + 'wrench', '--no-scissor', '--headless'] + sys.argv[1:] +cmd = dbg_cmd + [target_folder + 'wrench', '--no-scissor', '-h'] + sys.argv[1:] print('Running: `' + ' '.join(cmd) + '`') -subprocess.check_call(cmd, stderr=subprocess.STDOUT) +subprocess.check_call(cmd) diff --git a/third_party/webrender/wrench/src/args.yaml b/third_party/webrender/wrench/src/args.yaml index 46538b2536c..d8a263fcca5 100644 --- a/third_party/webrender/wrench/src/args.yaml +++ b/third_party/webrender/wrench/src/args.yaml @@ -28,14 +28,22 @@ args: short: r long: rebuild help: Rebuild display list from scratch every frame + - save: + long: save + help: 'Save frames, one of: yaml, json, ron, or binary' + takes_value: true - no_subpixel_aa: short: a long: no-subpixel-aa help: Disable subpixel aa + - no_picture_caching: + long: no-picture-caching + help: Disable picture caching - slow_subpixel: long: slow-subpixel help: Disable dual source blending - headless: + short: h long: headless help: Enable headless rendering - angle: @@ -54,6 +62,11 @@ args: long: size help: Window size, specified as widthxheight (e.g. 1024x768), in pixels takes_value: true + - time: + short: t + long: time + help: Time limit (in seconds) + takes_value: true - vsync: long: vsync help: Enable vsync for OpenGL window @@ -80,10 +93,6 @@ args: - no_block: long: no-block help: Don't block on UI events - run event loop as fast as possible. - - profiler_ui: - long: profiler-ui - takes_value: true - help: A string describing what to show on in the profiler HUD (See https://github.com/servo/webrender/wiki/Debugging-WebRender#anchor_6). subcommands: - png: @@ -106,6 +115,11 @@ subcommands: about: show frame(s) described by YAML, binary recording, or capture aliases: ['load', 'replay'] args: + - queue: + short: q + long: queue + help: How many frames to submit to WR ahead of time (default 1) (YAML only) + takes_value: true - include: long: include help: Include the given element type. Can be specified multiple times. (rect/image/text/glyphs/border) (YAML only) @@ -118,6 +132,15 @@ subcommands: short: w long: watch help: Watch the given file, reloading whenever it changes (YAML only) + - api: + long: api + help: Reissue Api messages for each frame (binary recording only) + - skip-uploads: + long: skip-uploads + help: Skip re-uploads while reissuing Api messages (BROKEN) + - play: + long: play + help: Play entire recording through, then quit (useful with --save) (binary recording only) - keyframes: short: k long: keyframes @@ -137,6 +160,13 @@ subcommands: help: The input YAML, binary recording, or capture directory required: true index: 1 + - replay: + about: replay binary recording + args: + - INPUT: + help: The input binary file or directory + required: true + index: 1 - reftest: about: run reftests args: @@ -179,8 +209,6 @@ subcommands: long: sample_count takes_value: true help: number of samples to capture - - test_invalidation: - about: run invalidation tests - compare_perf: about: compare two benchmark files args: @@ -192,5 +220,3 @@ subcommands: help: second benchmark file to compare required: true index: 2 - - test_init: - about: Test for successful initialization then exit immediately diff --git a/third_party/webrender/wrench/src/egl.rs b/third_party/webrender/wrench/src/egl.rs index 4b91d8cd86d..4508646b452 100644 --- a/third_party/webrender/wrench/src/egl.rs +++ b/third_party/webrender/wrench/src/egl.rs @@ -467,7 +467,7 @@ unsafe fn choose_fbconfig(display: ffi::egl::types::EGLDisplay, value } ) - } + }; let desc = PixelFormat { hardware_accelerated: attrib!(display, config_id, ffi::egl::CONFIG_CAVEAT) diff --git a/third_party/webrender/wrench/src/main.rs b/third_party/webrender/wrench/src/main.rs index 843512f5953..9a7dd3bcfea 100644 --- a/third_party/webrender/wrench/src/main.rs +++ b/third_party/webrender/wrench/src/main.rs @@ -8,8 +8,6 @@ extern crate clap; extern crate log; #[macro_use] extern crate serde; -#[macro_use] -extern crate tracy_rs; mod angle; mod blob; @@ -20,7 +18,6 @@ mod png; mod premultiply; mod rawtest; mod reftest; -mod test_invalidation; mod wrench; mod yaml_frame_reader; mod yaml_helper; @@ -47,7 +44,6 @@ use std::slice; use std::sync::mpsc::{channel, Sender, Receiver}; use webrender::DebugFlags; use webrender::api::*; -use webrender::render_api::*; use webrender::api::units::*; use winit::dpi::{LogicalPosition, LogicalSize}; use winit::VirtualKeyCode; @@ -158,8 +154,7 @@ impl WindowWrapper { let gl = self.native_gl(); let tex = gl.gen_textures(1)[0]; gl.bind_texture(gl::TEXTURE_2D, tex); - let (data_ptr, w, h, stride) = swgl.get_color_buffer(0, true); - assert!(stride == w * 4); + let (data_ptr, w, h) = swgl.get_color_buffer(0, true); let buffer = unsafe { slice::from_raw_parts(data_ptr as *const u8, w as usize * h as usize * 4) }; gl.tex_image_2d(gl::TEXTURE_2D, 0, gl::RGBA8 as gl::GLint, w, h, 0, gl::BGRA, gl::UNSIGNED_BYTE, Some(buffer)); let fb = gl.gen_framebuffers(1)[0]; @@ -289,7 +284,7 @@ impl WindowWrapper { #[cfg(feature = "software")] fn update_software(&self, dim: DeviceIntSize) { if let Some(swgl) = self.software_gl() { - swgl.init_default_framebuffer(0, 0, dim.width, dim.height, 0, std::ptr::null_mut()); + swgl.init_default_framebuffer(dim.width, dim.height); } } @@ -305,15 +300,15 @@ impl WindowWrapper { } #[cfg(feature = "software")] -fn make_software_context() -> swgl::Context { +fn make_software_context() -> Option<swgl::Context> { let ctx = swgl::Context::create(); ctx.make_current(); - ctx + Some(ctx) } #[cfg(not(feature = "software"))] -fn make_software_context() -> swgl::Context { - panic!("software feature not enabled") +fn make_software_context() -> Option<swgl::Context> { + None } fn make_window( @@ -326,7 +321,7 @@ fn make_window( software: bool, ) -> WindowWrapper { let sw_ctx = if software { - Some(make_software_context()) + make_software_context() } else { None }; @@ -436,9 +431,7 @@ fn make_window( #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum NotifierEvent { - WakeUp { - composite_needed: bool, - }, + WakeUp, ShutDown, } @@ -454,14 +447,8 @@ impl RenderNotifier for Notifier { }) } - fn wake_up( - &self, - composite_needed: bool, - ) { - let msg = NotifierEvent::WakeUp { - composite_needed, - }; - self.tx.send(msg).unwrap(); + fn wake_up(&self) { + self.tx.send(NotifierEvent::WakeUp).unwrap(); } fn shut_down(&self) { @@ -471,11 +458,11 @@ impl RenderNotifier for Notifier { fn new_frame_ready(&self, _: DocumentId, _scrolled: bool, - composite_needed: bool, + _composite_needed: bool, _render_time: Option<u64>) { // TODO(gw): Refactor wrench so that it can take advantage of cases // where no composite is required when appropriate. - self.wake_up(composite_needed); + self.wake_up(); } } @@ -646,7 +633,7 @@ fn main() { let dp_ratio = dp_ratio.unwrap_or(window.hidpi_factor()); let dim = window.get_inner_size(); - let needs_frame_notifier = ["perf", "reftest", "png", "rawtest", "test_invalidation"] + let needs_frame_notifier = ["perf", "reftest", "png", "rawtest"] .iter() .any(|s| args.subcommand_matches(s).is_some()); let (notifier, rx) = if needs_frame_notifier { @@ -665,6 +652,7 @@ fn main() { dim, args.is_present("rebuild"), args.is_present("no_subpixel_aa"), + args.is_present("no_picture_caching"), args.is_present("verbose"), args.is_present("no_scissor"), args.is_present("no_batch"), @@ -675,11 +663,6 @@ fn main() { dump_shader_source, notifier, ); - - if let Some(ui_str) = args.value_of("profiler_ui") { - wrench.renderer.set_profiler_ui(&ui_str); - } - window.update(&mut wrench); if let Some(window_title) = wrench.take_title() { @@ -706,7 +689,7 @@ fn main() { Some("gpu-cache") => png::ReadSurface::GpuCache, _ => panic!("Unknown surface argument value") }; - let output_path = subargs.value_of("OUTPUT").map(PathBuf::from); + let output_path = subargs.value_of("OUTPUT").map(|s| PathBuf::from(s)); let reader = YamlFrameReader::new_from_args(subargs); png::png(&mut wrench, surface, &mut window, reader, rx.unwrap(), output_path); } else if let Some(subargs) = args.subcommand_matches("reftest") { @@ -749,32 +732,16 @@ fn main() { } harness.run(base_manifest, &filename, as_csv); return; - } else if let Some(_) = args.subcommand_matches("test_invalidation") { - let harness = test_invalidation::TestHarness::new( - &mut wrench, - &mut window, - rx.unwrap(), - ); - - harness.run(); } else if let Some(subargs) = args.subcommand_matches("compare_perf") { let first_filename = subargs.value_of("first_filename").unwrap(); let second_filename = subargs.value_of("second_filename").unwrap(); perf::compare(first_filename, second_filename); return; - } else if let Some(_) = args.subcommand_matches("test_init") { - // Wrench::new() unwraps the Renderer initialization, so if - // we reach this point then we have initialized successfully. - println!("Initialization successful"); } else { panic!("Should never have gotten here! {:?}", args); }; wrench.renderer.deinit(); - - // On android force-exit the process otherwise it stays running forever. - #[cfg(target_os = "android")] - process::exit(0); } fn render<'a>( @@ -832,7 +799,7 @@ fn render<'a>( // Default the profile overlay on for android. if cfg!(target_os = "android") { - debug_flags.toggle(DebugFlags::PROFILER_DBG); + debug_flags.toggle(DebugFlags::PROFILER_DBG | DebugFlags::COMPACT_PROFILER); wrench.api.send_debug_cmd(DebugCommand::SetFlags(debug_flags)); } @@ -874,6 +841,11 @@ fn render<'a>( VirtualKeyCode::Escape => { return winit::ControlFlow::Break; } + VirtualKeyCode::A => { + debug_flags.toggle(DebugFlags::DISABLE_PICTURE_CACHING); + wrench.api.send_debug_cmd(DebugCommand::SetFlags(debug_flags)); + do_render = true; + } VirtualKeyCode::B => { debug_flags.toggle(DebugFlags::INVALIDATION_DBG); wrench.api.send_debug_cmd(DebugCommand::SetFlags(debug_flags)); @@ -894,6 +866,11 @@ fn render<'a>( wrench.api.send_debug_cmd(DebugCommand::SetFlags(debug_flags)); do_render = true; } + VirtualKeyCode::S => { + debug_flags.toggle(DebugFlags::COMPACT_PROFILER); + wrench.api.send_debug_cmd(DebugCommand::SetFlags(debug_flags)); + do_render = true; + } VirtualKeyCode::D => { debug_flags.toggle(DebugFlags::PICTURE_CACHING_DBG); wrench.api.send_debug_cmd(DebugCommand::SetFlags(debug_flags)); @@ -948,6 +925,21 @@ fn render<'a>( let path = PathBuf::from("../captures/wrench"); wrench.api.save_capture(path, CaptureBits::all()); } + VirtualKeyCode::Up | VirtualKeyCode::Down => { + let mut txn = Transaction::new(); + + let offset = match vk { + winit::VirtualKeyCode::Up => LayoutVector2D::new(0.0, 10.0), + winit::VirtualKeyCode::Down => LayoutVector2D::new(0.0, -10.0), + _ => unreachable!("Should not see non directional keys here.") + }; + + txn.scroll(ScrollLocation::Delta(offset), cursor_position); + txn.generate_frame(); + wrench.api.send_transaction(wrench.document_id, txn); + + do_frame = true; + } VirtualKeyCode::Add => { let current_zoom = wrench.get_page_zoom(); let new_zoom_factor = ZoomFactor::new(current_zoom.get() + 0.1); @@ -965,7 +957,7 @@ fn render<'a>( wrench.document_id, None, cursor_position, - HitTestFlags::empty(), + HitTestFlags::FIND_ALL ); println!("Hit test results:"); diff --git a/third_party/webrender/wrench/src/perf.rs b/third_party/webrender/wrench/src/perf.rs index a67298ce29a..bd41ba6016f 100644 --- a/third_party/webrender/wrench/src/perf.rs +++ b/third_party/webrender/wrench/src/perf.rs @@ -14,7 +14,7 @@ use std::sync::mpsc::Receiver; use crate::wrench::{Wrench, WrenchThing}; use crate::yaml_frame_reader::YamlFrameReader; use webrender::DebugFlags; -use webrender::render_api::DebugCommand; +use webrender::api::DebugCommand; const COLOR_DEFAULT: &str = "\x1b[0m"; const COLOR_RED: &str = "\x1b[31m"; diff --git a/third_party/webrender/wrench/src/rawtest.rs b/third_party/webrender/wrench/src/rawtest.rs index b86b5836176..f0315155b17 100644 --- a/third_party/webrender/wrench/src/rawtest.rs +++ b/third_party/webrender/wrench/src/rawtest.rs @@ -7,7 +7,6 @@ use std::sync::Arc; use std::sync::atomic::{AtomicIsize, Ordering}; use std::sync::mpsc::Receiver; use webrender::api::*; -use webrender::render_api::*; use webrender::api::units::*; use crate::{WindowWrapper, NotifierEvent}; use crate::blob; @@ -107,7 +106,7 @@ impl<'a> RawtestHarness<'a> { ); epoch.0 += 1; - txn.generate_frame(0); + txn.generate_frame(); self.wrench.api.send_transaction(self.wrench.document_id, txn); } @@ -118,6 +117,7 @@ impl<'a> RawtestHarness<'a> { clip_id: space_and_clip.clip_id, spatial_id: space_and_clip.spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, } } @@ -132,6 +132,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, } } @@ -154,7 +155,7 @@ impl<'a> RawtestHarness<'a> { None, ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 0.0, 64.0, 64.0)); builder.push_image( @@ -181,7 +182,7 @@ impl<'a> RawtestHarness<'a> { &DirtyRect::All, ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 0.0, 1024.0, 1024.0)); builder.push_image( @@ -206,7 +207,7 @@ impl<'a> RawtestHarness<'a> { &DirtyRect::All, ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 0.0, 1024.0, 1024.0)); builder.push_image( @@ -242,7 +243,7 @@ impl<'a> RawtestHarness<'a> { Some(128), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(448.899994, 74.0, 151.000031, 56.)); @@ -306,7 +307,7 @@ impl<'a> RawtestHarness<'a> { called_inner.fetch_add(1, Ordering::SeqCst); }); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let root_space_and_clip = SpaceAndClipInfo::root_scroll(self.wrench.root_pipeline_id); let clip_id = builder.define_clip_rect( @@ -319,6 +320,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id: root_space_and_clip.spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, }; // setup some malicious image size parameters @@ -389,7 +391,7 @@ impl<'a> RawtestHarness<'a> { Some(100), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let image_size = size2(400.0, 400.0); @@ -404,6 +406,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id: root_space_and_clip.spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, }; builder.push_repeating_image( @@ -485,7 +488,7 @@ impl<'a> RawtestHarness<'a> { Some(128), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let root_space_and_clip = SpaceAndClipInfo::root_scroll(self.wrench.root_pipeline_id); let clip_id = builder.define_clip_rect( @@ -498,6 +501,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id: root_space_and_clip.spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, }; builder.push_repeating_image( @@ -529,7 +533,7 @@ impl<'a> RawtestHarness<'a> { size: size2(400, 400), }); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let root_space_and_clip = SpaceAndClipInfo::root_scroll(self.wrench.root_pipeline_id); let clip_id = builder.define_clip_rect( @@ -542,6 +546,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id: root_space_and_clip.spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, }; builder.push_repeating_image( @@ -575,7 +580,7 @@ impl<'a> RawtestHarness<'a> { Some(128), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let root_space_and_clip = SpaceAndClipInfo::root_scroll(self.wrench.root_pipeline_id); let clip_id = builder.define_clip_rect( @@ -588,6 +593,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id: root_space_and_clip.spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, }; builder.push_repeating_image( @@ -640,7 +646,7 @@ impl<'a> RawtestHarness<'a> { None, ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0., 0.0, 1510., 1510.)); @@ -666,7 +672,7 @@ impl<'a> RawtestHarness<'a> { let mut epoch = Epoch(1); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(-10000., 0.0, 1510., 1510.)); @@ -698,7 +704,7 @@ impl<'a> RawtestHarness<'a> { &rect(10, 10, 100, 100).into(), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0., 0.0, 1510., 1510.)); @@ -765,7 +771,7 @@ impl<'a> RawtestHarness<'a> { }); // draw the blob the first time - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 60.0, 200.0, 200.0)); builder.push_image( @@ -788,7 +794,7 @@ impl<'a> RawtestHarness<'a> { // draw the blob image a second time at a different location // make a new display list that refers to the first image - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(1.0, 60.0, 200.0, 200.0)); builder.push_image( &info, @@ -872,7 +878,7 @@ impl<'a> RawtestHarness<'a> { }); // create two blob images and draw them - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 60.0, 200.0, 200.0)); let info2 = self.make_common_properties(rect(200.0, 60.0, 200.0, 200.0)); let push_images = |builder: &mut DisplayListBuilder| { @@ -918,7 +924,7 @@ impl<'a> RawtestHarness<'a> { &rect(100, 100, 100, 100).into(), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); push_images(&mut builder); self.submit_dl(&mut epoch, layout_size, builder, txn); let _pixels_second = self.render_and_get_pixels(window_rect); @@ -933,7 +939,7 @@ impl<'a> RawtestHarness<'a> { &rect(200, 200, 100, 100).into(), ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); push_images(&mut builder); self.submit_dl(&mut epoch, layout_size, builder, txn); let _pixels_third = self.render_and_get_pixels(window_rect); @@ -972,7 +978,7 @@ impl<'a> RawtestHarness<'a> { }; // draw the blobs the first time - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 60.0, 200.0, 200.0)); builder.push_image( @@ -1000,7 +1006,7 @@ impl<'a> RawtestHarness<'a> { ); // make a new display list that refers to the first image - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 60.0, 200.0, 200.0)); builder.push_image( &info, @@ -1025,7 +1031,7 @@ impl<'a> RawtestHarness<'a> { ); // make a new display list that refers to the first image - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(0.0, 60.0, 200.0, 200.0)); builder.push_image( &info, @@ -1056,7 +1062,7 @@ impl<'a> RawtestHarness<'a> { let layout_size = LayoutSize::new(400., 400.); let mut do_test = |should_try_and_fail| { - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let spatial_id = SpatialId::root_scroll_node(self.wrench.root_pipeline_id); let clip_id = builder.define_clip_rect( @@ -1104,6 +1110,7 @@ impl<'a> RawtestHarness<'a> { clip_id, spatial_id, flags: PrimitiveFlags::default(), + hit_info: None, }; builder.push_line( &info, @@ -1159,7 +1166,7 @@ impl<'a> RawtestHarness<'a> { let layout_size = LayoutSize::new(400., 400.); let mut do_test = |shadow_is_red| { - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let shadow_color = if shadow_is_red { ColorF::new(1.0, 0.0, 0.0, 1.0) } else { @@ -1218,7 +1225,7 @@ impl<'a> RawtestHarness<'a> { None, ); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(rect(300.0, 70.0, 150.0, 50.0)); builder.push_image( @@ -1239,7 +1246,7 @@ impl<'a> RawtestHarness<'a> { builder.finalize(), false, ); - txn.generate_frame(0); + txn.generate_frame(); self.wrench.api.send_transaction(self.wrench.document_id, txn); @@ -1250,7 +1257,7 @@ impl<'a> RawtestHarness<'a> { // 3. set a different scene - builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let mut txn = Transaction::new(); txn.set_display_list( @@ -1274,7 +1281,7 @@ impl<'a> RawtestHarness<'a> { // 6. rebuild the scene and compare again let mut txn = Transaction::new(); txn.set_root_pipeline(captured.root_pipeline_id.unwrap()); - txn.generate_frame(0); + txn.generate_frame(); self.wrench.api.send_transaction(captured.document_id, txn); let pixels2 = self.render_and_get_pixels(window_rect); self.compare_pixels(pixels0, pixels2, window_rect.size); @@ -1285,9 +1292,9 @@ impl<'a> RawtestHarness<'a> { let layout_size = LayoutSize::new(120.0, 0.0); let window_size = DeviceIntSize::new(layout_size.width as i32, layout_size.height as i32); - let doc_id = self.wrench.api.add_document(window_size); + let doc_id = self.wrench.api.add_document(window_size, 1); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let info = self.make_common_properties(LayoutRect::new(LayoutPoint::zero(), LayoutSize::new(100.0, 100.0))); builder.push_rect( @@ -1305,12 +1312,12 @@ impl<'a> RawtestHarness<'a> { builder.finalize(), false, ); - txn.generate_frame(0); + txn.generate_frame(); self.wrench.api.send_transaction(doc_id, txn); // Ensure we get a notification from rendering the above, even though // there are zero visible pixels - assert!(self.rx.recv().unwrap() == NotifierEvent::WakeUp { composite_needed: true }); + assert!(self.rx.recv().unwrap() == NotifierEvent::WakeUp); } @@ -1318,24 +1325,20 @@ impl<'a> RawtestHarness<'a> { println!("\thit testing test..."); let layout_size = LayoutSize::new(400., 400.); - let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let mut builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); // Add a rectangle that covers the entire scene. - let info = self.make_common_properties(LayoutRect::new(LayoutPoint::zero(), layout_size)); - builder.push_hit_test( - &info, - (0, 1), - ); + let mut info = self.make_common_properties(LayoutRect::new(LayoutPoint::zero(), layout_size)); + info.hit_info = Some((0, 1)); + builder.push_rect(&info, info.clip_rect, ColorF::new(1.0, 1.0, 1.0, 1.0)); // Add a simple 100x100 rectangle at 100,0. - let info = self.make_common_properties(LayoutRect::new( + let mut info = self.make_common_properties(LayoutRect::new( LayoutPoint::new(100., 0.), LayoutSize::new(100., 100.) )); - builder.push_hit_test( - &info, - (0, 2), - ); + info.hit_info = Some((0, 2)); + builder.push_rect(&info, info.clip_rect, ColorF::new(1.0, 1.0, 1.0, 1.0)); let space_and_clip = SpaceAndClipInfo::root_scroll(self.wrench.root_pipeline_id); @@ -1353,14 +1356,16 @@ impl<'a> RawtestHarness<'a> { &space_and_clip, make_rounded_complex_clip(&rect, 20.), ); - builder.push_hit_test( + builder.push_rect( &CommonItemProperties { + hit_info: Some((0, 4)), clip_rect: rect, clip_id: temp_clip_id, spatial_id: space_and_clip.spatial_id, flags: PrimitiveFlags::default(), }, - (0, 4), + rect, + ColorF::new(1.0, 1.0, 1.0, 1.0), ); // Add a rectangle that is clipped by a ClipChain containing a rounded rect. @@ -1370,14 +1375,16 @@ impl<'a> RawtestHarness<'a> { make_rounded_complex_clip(&rect, 20.), ); let clip_chain_id = builder.define_clip_chain(None, vec![clip_id]); - builder.push_hit_test( + builder.push_rect( &CommonItemProperties { + hit_info: Some((0, 5)), clip_rect: rect, clip_id: ClipId::ClipChain(clip_chain_id), spatial_id: space_and_clip.spatial_id, flags: PrimitiveFlags::default(), }, - (0, 5), + rect, + ColorF::new(1.0, 1.0, 1.0, 1.0), ); let mut epoch = Epoch(0); @@ -1393,7 +1400,7 @@ impl<'a> RawtestHarness<'a> { self.wrench.document_id, None, point, - HitTetFlags::empty(), + HitTestFlags::FIND_ALL, ) }; @@ -1444,7 +1451,7 @@ impl<'a> RawtestHarness<'a> { self.wrench.api.send_message(ApiMsg::DebugCommand(DebugCommand::ClearCaches(ClearCache::all()))); let layout_size = LayoutSize::new(400., 400.); - let builder = DisplayListBuilder::new(self.wrench.root_pipeline_id); + let builder = DisplayListBuilder::new(self.wrench.root_pipeline_id, layout_size); let txn = Transaction::new(); let mut epoch = Epoch(0); diff --git a/third_party/webrender/wrench/src/reftest.rs b/third_party/webrender/wrench/src/reftest.rs index 77c20341b79..e05f194105a 100644 --- a/third_party/webrender/wrench/src/reftest.rs +++ b/third_party/webrender/wrench/src/reftest.rs @@ -19,7 +19,6 @@ use std::process::Command; use std::sync::mpsc::Receiver; use webrender::RenderResults; use webrender::api::*; -use webrender::render_api::*; use webrender::api::units::*; use crate::wrench::{Wrench, WrenchThing}; use crate::yaml_frame_reader::YamlFrameReader; @@ -77,6 +76,9 @@ enum ExtraCheck { DrawCalls(usize), AlphaTargets(usize), ColorTargets(usize), + /// Checks the dirty region when rendering the test at |index| in the + /// sequence, and compares its serialization to |region|. + DirtyRegion { index: usize, region: String }, } impl ExtraCheck { @@ -88,6 +90,9 @@ impl ExtraCheck { x == results.last().unwrap().stats.alpha_target_count, ExtraCheck::ColorTargets(x) => x == results.last().unwrap().stats.color_target_count, + ExtraCheck::DirtyRegion { index, ref region } => { + *region == format!("{}", results[index].recorded_dirty_regions[0]) + } } } } @@ -367,6 +372,7 @@ impl ReftestManifest { let mut disable_dual_source_blending = false; let mut zoom_factor = 1.0; let mut allow_mipmaps = false; + let mut dirty_region_index = 0; let mut force_subpixel_aa_where_possible = None; let mut parse_command = |token: &str| -> bool { @@ -429,6 +435,15 @@ impl ReftestManifest { let (_, args, _) = parse_function(function); extra_checks.push(ExtraCheck::ColorTargets(args[0].parse().unwrap())); } + function if function.starts_with("dirty(") => { + let (_, args, _) = parse_function(function); + let region: String = args[0].parse().unwrap(); + extra_checks.push(ExtraCheck::DirtyRegion { + index: dirty_region_index, + region, + }); + dirty_region_index += 1; + } options if options.starts_with("options(") => { let (_, args, _) = parse_function(options); if args.iter().any(|arg| arg == &OPTION_DISABLE_SUBPX) { @@ -497,7 +512,7 @@ impl ReftestManifest { let op = match op { Some(op) => op, None => { - assert!(paths.is_empty(), "paths = {:?}", paths); + assert!(paths.is_empty(), format!("paths = {:?}", paths)); continue; } }; @@ -509,14 +524,6 @@ impl ReftestManifest { let reference = paths.pop().unwrap(); let test = paths; - if environment.platform == "android" { - // Add some fuzz on mobile as we do for non-wrench reftests. - // First remove the ranges with difference <= 2, otherwise they might cause the - // test to fail before the new range is picked up. - fuzziness.retain(|fuzzy| fuzzy.max_difference > 2); - fuzziness.push(RefTestFuzzy { max_difference: 2, num_differences: std::usize::MAX }); - } - // to avoid changing the meaning of existing tests, the case of // only a single (or no) 'fuzzy' keyword means we use the max // of that fuzzy and options.allow_.. (we don't want that to @@ -739,9 +746,7 @@ impl<'a> ReftestHarness<'a> { } fn run_reftest(&mut self, t: &Reftest) -> bool { - let test_name = t.to_string(); - println!("REFTEST {}", test_name); - profile_scope!("wrench reftest", text: &test_name); + println!("REFTEST {}", t); self.wrench .api @@ -838,14 +843,7 @@ impl<'a> ReftestHarness<'a> { } let reference = match reference_image { - Some(image) => { - let save_all_png = false; // flip to true to update all the tests! - if save_all_png { - let img = images.last().unwrap(); - save_flipped(&t.reference, img.data.clone(), img.size); - } - image - } + Some(image) => image, None => { let output = self.render_yaml( &t.reference, @@ -970,7 +968,7 @@ impl<'a> ReftestHarness<'a> { assert!( size.width <= window_size.width && size.height <= window_size.height, - "size={:?} ws={:?}", size, window_size + format!("size={:?} ws={:?}", size, window_size) ); // taking the bottom left sub-rectangle diff --git a/third_party/webrender/wrench/src/test_invalidation.rs b/third_party/webrender/wrench/src/test_invalidation.rs deleted file mode 100644 index badcfae8cf1..00000000000 --- a/third_party/webrender/wrench/src/test_invalidation.rs +++ /dev/null @@ -1,129 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -use crate::NotifierEvent; -use crate::WindowWrapper; -use std::path::PathBuf; -use std::sync::mpsc::Receiver; -use crate::wrench::{Wrench, WrenchThing}; -use crate::yaml_frame_reader::YamlFrameReader; -use webrender::{PictureCacheDebugInfo, TileDebugInfo}; -use webrender::api::units::*; - -pub struct TestHarness<'a> { - wrench: &'a mut Wrench, - window: &'a mut WindowWrapper, - rx: Receiver<NotifierEvent>, -} - -struct RenderResult { - pc_debug: PictureCacheDebugInfo, - composite_needed: bool, -} - -// Convenience method to build a picture rect -fn pr(x: f32, y: f32, w: f32, h: f32) -> PictureRect { - PictureRect::new( - PicturePoint::new(x, y), - PictureSize::new(w, h), - ) -} - -impl<'a> TestHarness<'a> { - pub fn new( - wrench: &'a mut Wrench, - window: &'a mut WindowWrapper, - rx: Receiver<NotifierEvent> - ) -> Self { - TestHarness { - wrench, - window, - rx, - } - } - - /// Main entry point for invalidation tests - pub fn run( - mut self, - ) { - // List all invalidation tests here - self.test_basic(); - self.test_composite_nop(); - } - - /// Simple validation / proof of concept of invalidation testing - fn test_basic( - &mut self, - ) { - // Render basic.yaml, ensure that the valid/dirty rects are as expected - let results = self.render_yaml("basic"); - let tile_info = results.pc_debug.slice(0).tile(0, 0).as_dirty(); - assert_eq!( - tile_info.local_valid_rect, - pr(100.0, 100.0, 500.0, 100.0), - ); - assert_eq!( - tile_info.local_dirty_rect, - pr(100.0, 100.0, 500.0, 100.0), - ); - - // Render it again and ensure the tile was considered valid (no rasterization was done) - let results = self.render_yaml("basic"); - assert_eq!(*results.pc_debug.slice(0).tile(0, 0), TileDebugInfo::Valid); - } - - /// Ensure WR detects composites are needed for position changes within a single tile. - fn test_composite_nop( - &mut self, - ) { - // Render composite_nop_1.yaml, ensure that the valid/dirty rects are as expected - let results = self.render_yaml("composite_nop_1"); - let tile_info = results.pc_debug.slice(0).tile(0, 0).as_dirty(); - assert_eq!( - tile_info.local_valid_rect, - pr(100.0, 100.0, 100.0, 100.0), - ); - assert_eq!( - tile_info.local_dirty_rect, - pr(100.0, 100.0, 100.0, 100.0), - ); - - // Render composite_nop_2.yaml, ensure that the valid/dirty rects are as expected - let results = self.render_yaml("composite_nop_2"); - let tile_info = results.pc_debug.slice(0).tile(0, 0).as_dirty(); - assert_eq!( - tile_info.local_valid_rect, - pr(100.0, 120.0, 100.0, 100.0), - ); - assert_eq!( - tile_info.local_dirty_rect, - pr(100.0, 120.0, 100.0, 100.0), - ); - - // Main part of this test - ensure WR detects a composite is required in this case - assert!(results.composite_needed); - } - - /// Render a YAML file, and return the picture cache debug info - fn render_yaml( - &mut self, - filename: &str, - ) -> RenderResult { - let path = format!("invalidation/{}.yaml", filename); - let mut reader = YamlFrameReader::new(&PathBuf::from(path)); - - reader.do_frame(self.wrench); - let composite_needed = match self.rx.recv().unwrap() { - NotifierEvent::WakeUp { composite_needed } => composite_needed, - NotifierEvent::ShutDown => unreachable!(), - }; - let results = self.wrench.render(); - self.window.swap_buffers(); - - RenderResult { - pc_debug: results.picture_cache_debug, - composite_needed, - } - } -} diff --git a/third_party/webrender/wrench/src/wrench.rs b/third_party/webrender/wrench/src/wrench.rs index 9ae57c4af07..bce7ef6e476 100644 --- a/third_party/webrender/wrench/src/wrench.rs +++ b/third_party/webrender/wrench/src/wrench.rs @@ -17,7 +17,6 @@ use std::sync::mpsc::Receiver; use time; use webrender; use webrender::api::*; -use webrender::render_api::*; use webrender::api::units::*; use webrender::{DebugFlags, RenderResults, ShaderPrecacheFlags}; use crate::{WindowWrapper, NotifierEvent}; @@ -96,7 +95,7 @@ impl RenderNotifier for Notifier { Box::new(Notifier(self.0.clone())) } - fn wake_up(&self, _composite_needed: bool) { + fn wake_up(&self) { self.update(false); } @@ -230,6 +229,7 @@ impl Wrench { size: DeviceIntSize, do_rebuild: bool, no_subpixel_aa: bool, + no_picture_caching: bool, verbose: bool, no_scissor: bool, no_batch: bool, @@ -263,14 +263,12 @@ impl Wrench { precache_flags, blob_image_handler: Some(Box::new(blob::CheckerboardRenderer::new(callbacks.clone()))), chase_primitive, + enable_picture_caching: !no_picture_caching, testing: true, - max_internal_texture_size: Some(8196), // Needed for rawtest::test_resize_image. + max_texture_size: Some(8196), // Needed for rawtest::test_resize_image. allow_dual_source_blending: !disable_dual_source_blending, - allow_advanced_blend_equation: window.is_software(), + allow_advanced_blend_equation: true, dump_shader_source, - // SWGL doesn't support the GL_ALWAYS depth comparison function used by - // `clear_caches_with_quads`, but scissored clears work well. - clear_caches_with_quads: !window.is_software(), ..Default::default() }; @@ -291,10 +289,11 @@ impl Wrench { notifier, opts, None, + size, ).unwrap(); let api = sender.create_api(); - let document_id = api.add_document(size); + let document_id = api.add_document(size, 0); let graphics_api = renderer.get_graphics_api_info(); let zoom_factor = ZoomFactor::new(zoom_factor); @@ -586,7 +585,7 @@ impl Wrench { pub fn send_lists( &mut self, frame_number: u32, - display_lists: Vec<(PipelineId, BuiltDisplayList)>, + display_lists: Vec<(PipelineId, LayoutSize, BuiltDisplayList)>, scroll_offsets: &HashMap<ExternalScrollId, LayoutPoint>, ) { let root_background_color = Some(ColorF::new(1.0, 1.0, 1.0, 1.0)); @@ -606,7 +605,7 @@ impl Wrench { txn.scroll_node_with_id(*offset, *id, ScrollClamping::NoClamping); } - txn.generate_frame(0); + txn.generate_frame(); self.api.send_transaction(self.document_id, txn); } @@ -620,14 +619,14 @@ impl Wrench { self.renderer.update(); let _ = self.renderer.flush_pipeline_info(); self.renderer - .render(self.window_size, 0) + .render(self.window_size) .expect("errors encountered during render!") } pub fn refresh(&mut self) { self.begin_frame(); let mut txn = Transaction::new(); - txn.generate_frame(0); + txn.generate_frame(); self.api.send_transaction(self.document_id, txn); } diff --git a/third_party/webrender/wrench/src/yaml_frame_reader.rs b/third_party/webrender/wrench/src/yaml_frame_reader.rs index 492f155b667..e3bf04ed42e 100644 --- a/third_party/webrender/wrench/src/yaml_frame_reader.rs +++ b/third_party/webrender/wrench/src/yaml_frame_reader.rs @@ -15,9 +15,7 @@ use std::io::Read; use std::path::{Path, PathBuf}; use std::usize; use webrender::api::*; -use webrender::render_api::*; use webrender::api::units::*; -use webrender::api::FillRule; use crate::wrench::{FontDescriptor, Wrench, WrenchThing}; use crate::yaml_helper::{StringEnum, YamlHelper, make_perspective}; use yaml_rust::{Yaml, YamlLoader}; @@ -106,7 +104,7 @@ impl LocalExternalImageHandler { pub fn add_image(&mut self, device: &webrender::Device, desc: ImageDescriptor, - target: ImageBufferKind, + target: TextureTarget, image_data: ImageData, ) -> ImageData { let (image_id, channel_idx) = match image_data { @@ -236,13 +234,8 @@ fn generate_checkerboard_image( } } - let flags = match kind { - CheckerboardKind::BlackGrey => ImageDescriptorFlags::IS_OPAQUE, - CheckerboardKind::BlackTransparent => ImageDescriptorFlags::empty(), - }; - ( - ImageDescriptor::new(width as i32, height as i32, ImageFormat::BGRA8, flags), + ImageDescriptor::new(width as i32, height as i32, ImageFormat::BGRA8, ImageDescriptorFlags::IS_OPAQUE), ImageData::new(pixels), ) } @@ -329,7 +322,7 @@ pub struct YamlFrameReader { aux_dir: PathBuf, frame_count: u32, - display_lists: Vec<(PipelineId, BuiltDisplayList)>, + display_lists: Vec<(PipelineId, LayoutSize, BuiltDisplayList)>, include_only: Vec<String>, @@ -339,7 +332,6 @@ pub struct YamlFrameReader { /// A HashMap of offsets which specify what scroll offsets particular /// scroll layers should be initialized with. scroll_offsets: HashMap<ExternalScrollId, LayoutPoint>, - next_external_scroll_id: u64, image_map: HashMap<(PathBuf, Option<i64>), (ImageKey, LayoutSize)>, @@ -390,7 +382,6 @@ impl YamlFrameReader { built_frame: usize::MAX, keyframes: None, external_image_handler: Some(Box::new(LocalExternalImageHandler::new())), - next_external_scroll_id: 1000, // arbitrary to easily see in logs which are implicit } } @@ -485,12 +476,14 @@ impl YamlFrameReader { self.spatial_id_stack.clear(); self.spatial_id_stack.push(SpatialId::root_scroll_node(pipeline_id)); - let mut builder = DisplayListBuilder::new(pipeline_id); + let content_size = self.get_root_size_from_yaml(wrench, yaml); + let mut builder = DisplayListBuilder::new(pipeline_id, content_size); let mut info = CommonItemProperties { clip_rect: LayoutRect::zero(), clip_id: ClipId::invalid(), spatial_id: SpatialId::new(0, PipelineId::dummy()), flags: PrimitiveFlags::default(), + hit_info: None, }; self.add_stacking_context_from_yaml(&mut builder, wrench, yaml, true, &mut info); self.display_lists.push(builder.finalize()); @@ -762,12 +755,13 @@ impl YamlFrameReader { // ensure it gets created as such let external_target = match item["external-target"].as_str() { Some(ref s) => match &s[..] { - "2d" => ImageBufferKind::Texture2D, - "rect" => ImageBufferKind::TextureRect, + "2d" => TextureTarget::Default, + "array" => TextureTarget::Array, + "rect" => TextureTarget::Rect, _ => panic!("Unsupported external texture target."), } None => { - ImageBufferKind::Texture2D + TextureTarget::Default } }; @@ -1004,12 +998,7 @@ impl YamlFrameReader { &info.clip_rect ); - if let Some(tag) = self.to_hit_testing_tag(&item["hit-testing-tag"]) { - dl.push_hit_test( - &info, - tag, - ); - } + dl.push_hit_test(&info); } fn handle_line( @@ -1754,6 +1743,7 @@ impl YamlFrameReader { clip_rect, clip_id: space_and_clip.clip_id, spatial_id: space_and_clip.spatial_id, + hit_info: self.to_hit_testing_tag(&item["hit-testing-tag"]), flags, }; @@ -1812,12 +1802,11 @@ impl YamlFrameReader { let numeric_id = yaml["id"].as_i64().map(|id| id as u64); - let external_id = ExternalScrollId(self.next_external_scroll_id, dl.pipeline_id); - self.next_external_scroll_id += 1; - - if let Some(size) = yaml["scroll-offset"].as_point() { - self.scroll_offsets.insert(external_id, LayoutPoint::new(size.x, size.y)); - } + let external_id = yaml["scroll-offset"].as_point().map(|size| { + let id = ExternalScrollId((self.scroll_offsets.len() + 1) as u64, dl.pipeline_id); + self.scroll_offsets.insert(id, LayoutPoint::new(size.x, size.y)); + id + }); let space_and_clip = dl.define_scroll_frame( &self.top_space_and_clip(), @@ -1983,8 +1972,6 @@ impl YamlFrameReader { space_and_clip.clip_id = dl.define_clip_image_mask( &space_and_clip, image_mask, - &vec![], - FillRule::Nonzero, ); } @@ -2007,6 +1994,13 @@ impl YamlFrameReader { } } + fn get_root_size_from_yaml(&mut self, wrench: &mut Wrench, yaml: &Yaml) -> LayoutSize { + yaml["bounds"] + .as_rect() + .map(|rect| rect.size) + .unwrap_or(wrench.window_size_f32()) + } + fn push_reference_frame( &mut self, dl: &mut DisplayListBuilder, @@ -2041,10 +2035,7 @@ impl YamlFrameReader { let reference_frame_kind = if !yaml["perspective"].is_badvalue() { ReferenceFrameKind::Perspective { scrolling_relative_to: None } } else { - ReferenceFrameKind::Transform { - is_2d_scale_translation: false, - should_snap: false, - } + ReferenceFrameKind::Transform }; let transform = yaml["transform"] @@ -2201,8 +2192,7 @@ impl WrenchThing for YamlFrameReader { // If YAML isn't read yet, or watching source file, reload from disk. if self.yaml_string.is_empty() || self.watch_source { - let mut file = File::open(&self.yaml_path) - .unwrap_or_else(|_| panic!("YAML '{:?}' doesn't exist", self.yaml_path)); + let mut file = File::open(&self.yaml_path).unwrap(); self.yaml_string.clear(); file.read_to_string(&mut self.yaml_string).unwrap(); should_build_yaml = true; diff --git a/third_party/webrender/wrench/src/yaml_helper.rs b/third_party/webrender/wrench/src/yaml_helper.rs index f9974efdc75..d82f863e9cc 100644 --- a/third_party/webrender/wrench/src/yaml_helper.rs +++ b/third_party/webrender/wrench/src/yaml_helper.rs @@ -52,8 +52,6 @@ fn string_to_color(color: &str) -> Option<ColorF> { "white" => Some(ColorF::new(1.0, 1.0, 1.0, 1.0)), "black" => Some(ColorF::new(0.0, 0.0, 0.0, 1.0)), "yellow" => Some(ColorF::new(1.0, 1.0, 0.0, 1.0)), - "cyan" => Some(ColorF::new(0.0, 1.0, 1.0, 1.0)), - "magenta" => Some(ColorF::new(1.0, 0.0, 1.0, 1.0)), "transparent" => Some(ColorF::new(1.0, 1.0, 1.0, 0.0)), s => { let items: Vec<f32> = s.split_whitespace() @@ -563,8 +561,8 @@ impl YamlHelper for Yaml { ("component-transfer", _, _) => { Some(FilterOp::ComponentTransfer) } - ("blur", ref args, _) if args.len() == 2 => { - Some(FilterOp::Blur(args[0].parse().unwrap(), args[1].parse().unwrap())) + ("blur", ref args, _) if args.len() == 1 => { + Some(FilterOp::Blur(args[0].parse().unwrap())) } ("brightness", ref args, _) if args.len() == 1 => { Some(FilterOp::Brightness(args[0].parse().unwrap())) @@ -719,8 +717,7 @@ impl YamlHelper for Yaml { "blur" => { FilterPrimitiveKind::Blur(BlurPrimitive { input: self["in"].as_filter_input().unwrap(), - width: self["width"].as_f32().unwrap(), - height: self["height"].as_f32().unwrap(), + radius: self["radius"].as_f32().unwrap(), }) } "opacity" => { |