Closed Bug 1648703 Opened 4 years ago Closed 4 years ago

0.23 - 4.7% displaylist_mutate (linux64-shippable-qr, windows10-64-shippable-qr) regression on push eb37b6753d82daee2d81d19caccac333d6acf8b9 (Wed June 24 2020)

Categories

(Core :: Graphics: WebRender, defect)

79 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla80
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- unaffected
firefox77 --- unaffected
firefox78 --- unaffected
firefox79 --- wontfix
firefox80 --- fixed

People

(Reporter: alexandrui, Assigned: nical)

References

(Blocks 2 open bugs, Regression)

Details

(4 keywords)

Attachments

(1 file)

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

Regressions:

5% displaylist_mutate linux64-shippable-qr opt e10s stylo 3,025.98 -> 3,168.20
5% displaylist_mutate windows10-64-shippable-qr opt e10s stylo 2,708.97 -> 2,832.23
0.23% displaylist_mutate windows10-64-shippable-qr opt e10s stylo 2,722.49 -> 2,728.87

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) will be backed out in accordance with our regression policy.

For more information on performance sheriffing please see our FAQ.

Flags: needinfo?(nical.bugzilla)

Nicolas, the pushlog contains 2 bugs: Bug 1647742 and Bug 1647299. I tried to make a local backout and push to try but I got errors on both backout attempts, so giving the 2 bugs have the same author, I presume you are most appropriate person to identify the fastest way which ones caused the regression.

The regression comes from a bit of extra vector reallocation in Bug 1647299 exacerbated by the shape of the scene in displaylist_mutate (a succession of 10000 simple solid color squares is not a very common pattern in real web pages). The regressing patch is actually a first step towards being able to reduce vector reallocation during scene building, but it will take a while to get there.

I'll look into whether some low hanging fruits can paper over the regression on this benchmark in the mean time, although I am fine with taking the hit if there isn't an easy short term win.

Flags: needinfo?(nical.bugzilla)
No longer regressed by: 1647742
Has Regression Range: --- → yes
Severity: -- → S3
Priority: -- → P1
Component: Performance → Graphics: WebRender
Priority: P1 → --
Product: Testing → Core
Version: unspecified → 79 Branch

This greatly reduces the number of vector reallocations happening while building primitive lists. On the difficult cases like youtube front page the reduction is a bit more than 50%, and more in other pages I tested. More importantly it dramatically reduces the amount of the most expensive of these reallocations which are when the vector is starting to get large.

Assignee: nobody → nical.bugzilla
Status: NEW → ASSIGNED
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8deaca01428d
Use a custom vector growth pattern in PrimitiveList. r=gw
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: mozilla79 → mozilla80
Blocks: 1648091
Blocks: wr-perf

Is this something we should consider for Beta uplift?

Flags: needinfo?(nical.bugzilla)

It's simple enough to be safe for uplift but I don't think it is important enough, so I'd just let it ride the trains by priniciple. I expect that for the vast majority of workloads users wouldn't notice the effect of the regression nor the fix.

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

Attachment

General

Created:
Updated:
Size: