Closed Bug 1357065 Opened 7 years ago Closed 7 years ago

Separate the notions of clips and scroll layers (or non-scrolling clips vs scrolling clips)

Categories

(Core :: Graphics: WebRender, enhancement, P3)

Other Branch
enhancement

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: kats, Assigned: kats)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(3 files)

Right now there is just one WR api, push_scroll_layer, to push a clip (ignoring the fact that you can set a per-display-item clip). Therefore we expose only one API in WebRenderAPI.h, called PushScrollLayer. However according to the CLIPPING.md documentation in webrender this API accepts both scrolling and non-scrolling clips, which are conceptually different, so we should really expose this as two separate APIs. Also note that in upstream WR push_scroll_layer has already been renamed to push_clip_node which is a more appropriate name.
Try push is looking green: https://treeherder.mozilla.org/#/jobs?repo=try&revision=529ac25bb2049b92ac7147b3418c7e1321a03373

Also note that I suspect some of these clips we're pushing from WebRenderContainerLayer are probably unnecessary. I tried removing the ones I thought were unnecessary and got crashes in webrender, for which I filed https://github.com/servo/webrender/issues/1122. Once that is resolved I'll try that again.

I also suspect that we might not be pushing enough clips from WebRenderDisplayItemLayer - right now it checks to see if there is a mask layer and only pushes a clip in that case. We probably also need to push a clip if there is a non-empty cliprect set on the Layer. I'll investigate and file a follow-up if needed.
Comment on attachment 8858806 [details]
Bug 1357065 - Rename the parameters to PushScrollLayer to be more correct.

https://reviewboard.mozilla.org/r/130832/#review133794
Attachment #8858806 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8858807 [details]
Bug 1357065 - Add a PushClip/PopClip API to WebRenderAPI to more easily distinguish between scrolling clips and non-scrolling clips.

https://reviewboard.mozilla.org/r/130834/#review133802
Attachment #8858807 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8858808 [details]
Bug 1357065 - Update WebRenderDisplayItemLayer to use PushClip instead of PushScrollLayer because it's pushing a non-scrolling clip.

https://reviewboard.mozilla.org/r/130836/#review133804
Attachment #8858808 - Flags: review?(jmuizelaar) → review+
Pushed by kgupta@mozilla.com:
https://hg.mozilla.org/projects/graphics/rev/a189001eb45c
Rename the parameters to PushScrollLayer to be more correct. r=jrmuizel
https://hg.mozilla.org/projects/graphics/rev/2eaff244ab0f
Add a PushClip/PopClip API to WebRenderAPI to more easily distinguish between scrolling clips and non-scrolling clips. r=jrmuizel
https://hg.mozilla.org/projects/graphics/rev/3ff6854f3ef8
Update WebRenderDisplayItemLayer to use PushClip instead of PushScrollLayer because it's pushing a non-scrolling clip. r=jrmuizel
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: