Skip to content
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

Merged
merged 2 commits into from Nov 16, 2018

Conversation

kvark
Copy link
Member

@kvark kvark commented Nov 15, 2018

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 Reviewable

@kvark kvark requested a review from gw3583 November 15, 2018 23:13
@gw3583
Copy link
Contributor

gw3583 commented Nov 15, 2018

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]

let should_isolate = clipping_node.is_some();

@kvark
Copy link
Member Author

kvark commented Nov 16, 2018

The clipping_node argument in push_stacking_context is unchanged, so there should be no extra intermediate surfaces. Speaking of which, perhaps we should annotate more reftests with the expected number of passes/surfaces in order to prevent this type of regressions.

@gw3583
Copy link
Contributor

gw3583 commented Nov 16, 2018

Looks good - and yes, more surface annotations in reftests is a great idea.

@kvark
Copy link
Member Author

kvark commented Nov 16, 2018

Added a few checks to the reftests in the new commit. Confirmed locally that they pass with and without the new code.
Thanks for the review!
@bors-servo r=gw3583

@bors-servo
Copy link
Contributor

📌 Commit 1a74392 has been approved by gw3583

@bors-servo
Copy link
Contributor

⌛ Testing commit 1a74392 with merge 5609676...

bors-servo pushed a commit that referenced this pull request Nov 16, 2018
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 -->
@bors-servo
Copy link
Contributor

☀️ Test successful - status-appveyor, status-taskcluster
Approved by: gw3583
Pushing 5609676 to master...

@bors-servo bors-servo merged commit 1a74392 into servo:master Nov 16, 2018
@kvark kvark deleted the clip-respect branch November 16, 2018 05:07
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Nov 18, 2018
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
xeonchen pushed a commit to xeonchen/gecko that referenced this pull request Nov 18, 2018
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
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this pull request Nov 20, 2018
Before servo/webrender#3315 this rendered a red square
under the green square on WR.
jankeromnes pushed a commit to jankeromnes/gecko that referenced this pull request Nov 21, 2018
Before servo/webrender#3315 this rendered a red square
under the green square on WR.
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request Oct 3, 2019
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
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request Oct 3, 2019
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
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this pull request Oct 3, 2019
Before servo/webrender#3315 this rendered a red square
under the green square on WR.

UltraBlame original commit: 5df0edf84a229f28caf8de076344d499165a6ed3
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this pull request Oct 3, 2019
Before servo/webrender#3315 this rendered a red square
under the green square on WR.

UltraBlame original commit: 5df0edf84a229f28caf8de076344d499165a6ed3
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request Oct 3, 2019
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
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this pull request Oct 3, 2019
Before servo/webrender#3315 this rendered a red square
under the green square on WR.

UltraBlame original commit: 5df0edf84a229f28caf8de076344d499165a6ed3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants