Open Bug 1800133 Opened 2 years ago Updated 6 months ago

16.22 - 12.09% displaylist_mutate / displaylist_mutate + 4 more (Linux, OSX, Windows) regression on Sun November 6 2022

Categories

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

defect

Tracking

()

REOPENED
Tracking Status
firefox-esr102 --- unaffected
firefox106 --- unaffected
firefox107 --- unaffected
firefox108 --- wontfix
firefox109 --- wontfix
firefox110 --- wontfix

People

(Reporter: aglavic, Assigned: emilio)

References

(Blocks 1 open bug, Regression)

Details

(4 keywords)

Attachments

(5 files)

Perfherder has detected a talos performance regression from push 2d53a4acaad28c95bc1a19d05b379bf25f850be0. As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

Ratio Test Platform Options Absolute values (old vs new)
16% displaylist_mutate macosx1015-64-shippable-qr e10s fission stylo webrender 1,662.83 -> 1,932.55
16% displaylist_mutate windows10-64-shippable-qr e10s fission stylo webrender-sw 2,254.13 -> 2,619.72
15% displaylist_mutate windows10-64-shippable-qr e10s fission stylo webrender-sw 2,263.13 -> 2,591.70
14% displaylist_mutate macosx1015-64-shippable-qr e10s fission stylo webrender-sw 1,676.69 -> 1,917.99
13% displaylist_mutate linux1804-64-shippable-qr e10s fission stylo webrender 2,329.06 -> 2,627.95
12% displaylist_mutate linux1804-64-shippable-qr e10s fission stylo webrender-sw 2,124.57 -> 2,381.36

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests. Please follow our guide to handling regression bugs and let us know your plans within 3 business days, or the offending patch(es) may be backed out in accordance with our regression policy.

If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.

For more information on performance sheriffing please see our FAQ.

Flags: needinfo?(emilio)

Set release status flags based on info from the regressing bug 1799216

Duplicate of this bug: 1799800
Severity: -- → S3
Priority: -- → P2

No behavior change, but sometimes it's easier to do this for local
testing / profiling.

Assignee: nobody → emilio
Status: NEW → ASSIGNED

Seems most of the regression comes from the mutate_inactive, which basically haves thousands of transformed leafs.

So we're doing some extra work there eagerly, which otherwise we wouldn't need to do, given the stacking context is empty and we're not going to use the reused item... Let me think how to best handle this.

We might get unnecessary cache misses otherwise.

Depends on D161884

This removes a redundant hashmap lookup.

Depends on D161888

This is just clean-up.

Depends on D161889

This avoids unnecessarily starting clip lists.

Depends on D161890

I pushed these patches to try, unfortunately they don't seem to improve the displaylist mutate number.

Yeah, I know, they improve the number locally fwiw (and I can see no regression locally), which is rather annoying :)

I have other ideas but I ran out of time yesterday, still these should be general improvements to the code.

Flags: needinfo?(emilio)
Keywords: leave-open
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7adfd2b5de60
Minor perf improvements to DefineClipChain. r=gfx-reviewers,nical
https://hg.mozilla.org/integration/autoland/rev/68945e78986f
GetScrollLayer always returns a space id. r=gfx-reviewers,nical
https://hg.mozilla.org/integration/autoland/rev/95df1c60245c
Optimize out empty sublists a bit better. r=tnikkel
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/11140ee10035
Make displaylist tests runnable outside of talos. r=gfx-reviewers,perftest-reviewers,tnikkel,nical,sparky
Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a7d99169878d
Difference in appUnitsPerDevPixel only matter when there's a clip chain. r=gfx-reviewers,gw

Set release status flags based on info from the regressing bug 1799216

Regressions: 1802512
No longer regressions: 1802512

Emilio, is this something we'll try to uplift to 108? If not, please update the tracking flags. Thanks!

The leave-open keyword is there and there is no activity for 6 months.
:emilio, maybe it's time to close this bug?
For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)
Flags: needinfo?(emilio)

Emilio, should we close this WONTFIX?

Flags: needinfo?(emilio)

I think this was probably fixed and forgot to remove the leave open

Status: ASSIGNED → RESOLVED
Closed: 6 months ago
Flags: needinfo?(emilio)
Keywords: leave-open
Resolution: --- → FIXED

IIRC the patches in here were meant to fix the regression but they didn't move the needle, so the regression still exists.

I see... I realistically won't have time to address this short term... I don't have many other optimisation ideas in this code other than rejiggerimg webrender or gecko to not have this mismatch in how clips / scroll IDs work. Do you know if something along those lines is on the the roadmap?

Status: RESOLVED → REOPENED
Flags: needinfo?(tnikkel)
Resolution: FIXED → ---

Understandable.

There is a lot of display list work planned yes.

Flags: needinfo?(tnikkel)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: