Bug 1496019 - Cherry-pick webrender commit a07226140e2bbf2038302737b2e0f1b9707f2d6c (WR PR #3421). r=kats, a=RyanVM
authorWR Updater Bot <graphics-team@mozilla.staktrace.com>
Mon, 17 Dec 2018 16:00:51 +0000
changeset 509087 22ff661549d4a69467bcdcb6a9376fb09906a011
parent 509086 61e24e70a0e77079408ec4264a05235885345324
child 509088 ef02c82614389826dd6e9246a0b965afacf68168
push id1905
push userffxbld-merge
push dateMon, 21 Jan 2019 12:33:13 +0000
treeherdermozilla-release@c2fca1944d8c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerskats, RyanVM
bugs1496019
milestone65.0
Bug 1496019 - Cherry-pick webrender commit a07226140e2bbf2038302737b2e0f1b9707f2d6c (WR PR #3421). r=kats, a=RyanVM https://github.com/servo/webrender/pull/3421
gfx/webrender_bindings/revision.txt
gfx/wr/webrender/src/batch.rs
gfx/wr/wrench/reftests/filters/filter-drop-shadow-clip.png
gfx/wr/wrench/reftests/filters/filter-drop-shadow-clip.yaml
gfx/wr/wrench/reftests/filters/reftest.list
--- a/gfx/webrender_bindings/revision.txt
+++ b/gfx/webrender_bindings/revision.txt
@@ -1,1 +1,4 @@
 41c12cabc42228dda6a2d2628c9b24df9aca66b4
+
+Additional fixes cherry-picked from the upstream WebRender repository:
+https://github.com/servo/webrender/pull/3421
--- a/gfx/wr/webrender/src/batch.rs
+++ b/gfx/wr/webrender/src/batch.rs
@@ -1159,22 +1159,20 @@ impl AlphaBatchBuilder {
                                         let z_id_content = z_generator.next();
 
                                         let content_prim_header_index = prim_headers.push(&prim_header, z_id_content, [
                                             ShaderColorMode::Image as i32 | ((AlphaType::PremultipliedAlpha as i32) << 16),
                                             RasterizationSpace::Screen as i32,
                                             get_shader_opacity(1.0),
                                         ]);
 
-                                        let shadow_rect = picture.local_rect.translate(&offset);
-                                        let shadow_clip_rect = picture.local_clip_rect.translate(&offset);
+                                        let shadow_rect = prim_header.local_rect.translate(&offset);
 
                                         let shadow_prim_header = PrimitiveHeader {
                                             local_rect: shadow_rect,
-                                            local_clip_rect: shadow_clip_rect,
                                             specific_prim_address: shadow_prim_address,
                                             ..prim_header
                                         };
 
                                         let shadow_prim_header_index = prim_headers.push(&shadow_prim_header, z_id_shadow, [
                                             ShaderColorMode::Alpha as i32 | ((AlphaType::PremultipliedAlpha as i32) << 16),
                                             RasterizationSpace::Screen as i32,
                                             get_shader_opacity(1.0),
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..538a53636170a4b3951c5c041864069caa0b2d1e
GIT binary patch
literal 10005
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
new file mode 100644
--- /dev/null
+++ b/gfx/wr/wrench/reftests/filters/filter-drop-shadow-clip.yaml
@@ -0,0 +1,22 @@
+---
+root:
+  items:
+    - type: clip
+      id: 2
+      bounds: [100, 100, 2000, 2000]
+      clip-rect: [100, 100, 2000, 2000]
+      items:
+        - type: stacking-context
+          bounds: [10, 10, 0, 0]
+          filters: drop-shadow([10, 10], 20, red)
+          clip-node: 2
+          items:
+          - type: clip
+            bounds: [0, 0, 256, 256]
+            complex:
+              - rect: [0, 0, 256, 256]
+                radius: 16
+            items:
+              - type: rect
+                bounds: 0 0 256 256
+                color: green
--- a/gfx/wr/wrench/reftests/filters/reftest.list
+++ b/gfx/wr/wrench/reftests/filters/reftest.list
@@ -28,15 +28,16 @@ platform(linux,mac) fuzzy(1,133) == filt
 == filter-saturate-green-alpha-1.yaml filter-saturate-green-alpha-1-ref.yaml
 == filter-saturate-blue-alpha-1.yaml filter-saturate-blue-alpha-1-ref.yaml
 == filter-hue-rotate-1.yaml filter-hue-rotate-1-ref.yaml
 == filter-hue-rotate-alpha-1.yaml filter-hue-rotate-alpha-1-ref.yaml
 fuzzy(1,14) == filter-long-chain.yaml filter-long-chain.png
 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
 == filter-segments.yaml filter-segments-ref.yaml
 == iframe-dropshadow.yaml iframe-dropshadow-ref.yaml
 == filter-mix-blend-mode.yaml filter-mix-blend-mode-ref.yaml
 == fuzzy(3,20000) srgb-to-linear.yaml srgb-to-linear-ref.yaml
 != srgb-to-linear-2.yaml srgb-to-linear-ref.yaml
 != filter-blur-huge.yaml blank.yaml
 != filter-drop-shadow-huge.yaml blank.yaml