New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't ignore the clip on the stack for reference frames and clips #3315
Conversation
I think this makes sense. Does this have any impact on the number of clip chains that will end up being assigned to stacking context (pictures). (i.e. is the extra intermediate surface generation at [1] going to be triggered more with this change?). [1] webrender/webrender/src/display_list_flattener.rs Line 1046 in 9ec08a4
|
The |
Looks good - and yes, more surface annotations in reftests is a great idea. |
Added a few checks to the reftests in the new commit. Confirmed locally that they pass with and without the new code. |
📌 Commit 1a74392 has been approved by |
Don't ignore the clip on the stack for reference frames and clips Similar to #3311, this is a prelude to #3251, with the main purpose of getting rid of Gecko's hack in https://searchfox.org/mozilla-central/rev/d850d799a0009f851b5535580e0a8b4bb2c591d7/gfx/layers/wr/ClipManager.cpp#224 It also makes sense for WR in isolation (for the current clip/stack model, at least): in those spots addressed, we used to ignore the clip ID on the stack, only to re-interpret (smuggle!) the scroll ID as a clip. Now we are actually using the clip ID more consistently. See also - #3251 (comment) Gecko try (that disables the hack in addition to having the WR change): https://treeherder.mozilla.org/#/jobs?repo=try&selectedJob=212038686&revision=c10e5d839e024ba451a6622fa611c3525457f3ff (Looks green! 🎉 ) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/3315) <!-- Reviewable:end -->
☀️ Test successful - status-appveyor, status-taskcluster |
Previously, WebRender ignored clip_node_id on the clip/scroll stack when pushing clips or reference frames. This got fixed to be more consistent in: servo/webrender#3315 Now Gecko can use the clip chains generated for display items naturally, instead of smuggling the last clip through the scroll_node_id, which is what was happening in this hacky code branch being removed. Differential Revision: https://phabricator.services.mozilla.com/D12216 --HG-- extra : moz-landing-system : lando
Previously, WebRender ignored clip_node_id on the clip/scroll stack when pushing clips or reference frames. This got fixed to be more consistent in: servo/webrender#3315 Now Gecko can use the clip chains generated for display items naturally, instead of smuggling the last clip through the scroll_node_id, which is what was happening in this hacky code branch being removed. Differential Revision: https://phabricator.services.mozilla.com/D12216
Before servo/webrender#3315 this rendered a red square under the green square on WR.
Before servo/webrender#3315 this rendered a red square under the green square on WR.
Previously, WebRender ignored clip_node_id on the clip/scroll stack when pushing clips or reference frames. This got fixed to be more consistent in: servo/webrender#3315 Now Gecko can use the clip chains generated for display items naturally, instead of smuggling the last clip through the scroll_node_id, which is what was happening in this hacky code branch being removed. Differential Revision: https://phabricator.services.mozilla.com/D12216 UltraBlame original commit: aa0c5bc2a99ee57f82ca44da461ebd9870af4275
Previously, WebRender ignored clip_node_id on the clip/scroll stack when pushing clips or reference frames. This got fixed to be more consistent in: servo/webrender#3315 Now Gecko can use the clip chains generated for display items naturally, instead of smuggling the last clip through the scroll_node_id, which is what was happening in this hacky code branch being removed. Differential Revision: https://phabricator.services.mozilla.com/D12216 UltraBlame original commit: aa0c5bc2a99ee57f82ca44da461ebd9870af4275
Before servo/webrender#3315 this rendered a red square under the green square on WR. UltraBlame original commit: 5df0edf84a229f28caf8de076344d499165a6ed3
Before servo/webrender#3315 this rendered a red square under the green square on WR. UltraBlame original commit: 5df0edf84a229f28caf8de076344d499165a6ed3
Previously, WebRender ignored clip_node_id on the clip/scroll stack when pushing clips or reference frames. This got fixed to be more consistent in: servo/webrender#3315 Now Gecko can use the clip chains generated for display items naturally, instead of smuggling the last clip through the scroll_node_id, which is what was happening in this hacky code branch being removed. Differential Revision: https://phabricator.services.mozilla.com/D12216 UltraBlame original commit: aa0c5bc2a99ee57f82ca44da461ebd9870af4275
Before servo/webrender#3315 this rendered a red square under the green square on WR. UltraBlame original commit: 5df0edf84a229f28caf8de076344d499165a6ed3
Similar to #3311, this is a prelude to #3251, with the main purpose of getting rid of Gecko's hack in https://searchfox.org/mozilla-central/rev/d850d799a0009f851b5535580e0a8b4bb2c591d7/gfx/layers/wr/ClipManager.cpp#224
It also makes sense for WR in isolation (for the current clip/stack model, at least): in those spots addressed, we used to ignore the clip ID on the stack, only to re-interpret (smuggle!) the scroll ID as a clip. Now we are actually using the clip ID more consistently. See also - #3251 (comment)
Gecko try (that disables the hack in addition to having the WR change):
https://treeherder.mozilla.org/#/jobs?repo=try&selectedJob=212038686&revision=c10e5d839e024ba451a6622fa611c3525457f3ff
(Looks green! 🎉 )
This change is