Closed Bug 1544948 Opened 5 years ago Closed 5 years ago

Try to skip display list merging for sub lists that can't have changed

Categories

(Core :: Web Painting, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox68 --- fixed

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

We currently iterate the entire display list with RDL, once during PreProcessDisplayList, and once during merging.

Although the building part is much quicker now, for sites with large display lists, these two passes can still be expensive.

We should be able to detect when a subtree of the display list can't have changed, and skip the merging phase entirely.

Blocks: RDLPerf

This is a new version of displaylist_mutate, that builds a much deeper frame tree and display list.

https://mattwoodrow.github.io/dl-test/dl-test.html?count=20000&layer=flattened&siblings=5

On this test, my current Nightly does 29ms display list builds, with all the time being spent in PreProcessDisplayList and merging.

The attached patch reduces that to around 5ms, with merging basically gone from the profile.

Type: defect → enhancement
See Also: → 1545324
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/900ceaf4d39c
Skip merging display lists that we're sure can't have changed. r=miko
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Regressions: 1547986
Regressions: 1547802

Big perf improvements noticed! \0/

== Change summary for alert #20692 (as of Mon, 29 Apr 2019 16:34:33 GMT) ==

Improvements:

15% displaylist_mutate windows7-32-shippable opt e10s stylo 1,975.27 -> 1,680.86
15% displaylist_mutate windows10-64-shippable opt e10s stylo 1,847.60 -> 1,573.54
10% displaylist_mutate linux64-shippable opt e10s stylo 1,667.28 -> 1,493.95
6% displaylist_mutate windows10-64-shippable-qr opt e10s stylo 3,686.10 -> 3,465.36
5% displaylist_mutate linux64-shippable-qr opt e10s stylo 3,887.45 -> 3,704.16

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=20692

Regressions: 1555819
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: