Closed Bug 1423370 Opened 7 years ago Closed 7 years ago

WebRender is hurt sending scroll data on MotionMark bouncing circles

Categories

(Core :: Graphics: WebRender, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla61
Tracking Status
firefox61 --- fixed

People

(Reporter: jrmuizel, Assigned: kats)

References

Details

(Whiteboard: [wr-mvp] [triage])

Attachments

(1 file)

24% of display list building time is in IPC::ParamTraits<mozilla::layers::WebRenderScrollData>::Write. The likely root cause of this is that each bouncing circle has a scroll frame.
Whiteboard: [wr-mvp] [triage]
It doesn't look like each bouncing circle has a scrollframe. I think what's happening is that there's an nsDisplayTransform item for each circle, and so we create a new WebRenderLayerScrollData for each one and it just adds up. The reason we need a new scrolldata for each transform is for the compositor hit-testing to work properly. But we can probably do a better job of squashing these things together, and I think with the new WR-based hit-testing we might not need to send this over the compositor at all.
I made a patch that eliminates the spurious WebRenderLayerScrollData instances for when gfx.webrender.hit-test is enabled. I don't want to land it yet though, I feel like I need to spend some more time figuring out if there's any other architectural improvements we can make, and if there's some way to make it more robust against accidentally regressing things.
Blocks: 1437097
I think we planed on landing this.
Flags: needinfo?(bugmail)
Yeah, sorry - I looked at this again and was not convinced it was correct. I thought we were only using the transform on the APZ side with non-WR hit-testing, but then I looked again and we were using it in other places for scrollbar-related things, so I think it might affect correctness. We should still be able to optimize this use case, but we need to make sure we don't throw away all the transforms (in particular transforms that are on scrollframes). Leaving the needinfo on me for now.
Here's a try push with a version of the patch I'm more confident should be good: https://treeherder.mozilla.org/#/jobs?repo=try&revision=84566196378a0783b09a989e246f4a02f16b979f
Assignee: nobody → bugmail
Flags: needinfo?(bugmail)
Looks like there's an R6 failure, I'll have to look into it.
Comment on attachment 8935460 [details] Bug 1423370 - Create fewer WebRenderLayerScrollData items for transformed items. https://reviewboard.mozilla.org/r/206358/#review237204
Attachment #8935460 - Flags: review?(jmuizelaar) → review+
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cf1fdb432d46 Create fewer WebRenderLayerScrollData items for transformed items. r=jrmuizel
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
Depends on: 1449478
Depends on: 1449419
Depends on: 1450871
Depends on: 1451168
Depends on: 1462961
Depends on: 1490393
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: