Closed Bug 1885376 Opened 1 year ago Closed 1 year ago

6.2% ts_paint_webext (Windows) regression on Thu March 7 2024

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED
126 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox123 --- unaffected
firefox124 --- unaffected
firefox125 --- disabled
firefox126 --- fixed

People

(Reporter: aglavic, Assigned: bradwerth)

References

(Regression)

Details

(4 keywords)

Attachments

(1 obsolete file)

Perfherder has detected a talos performance regression from push db166f0115c4eb3a6a37cc2e1218293acc7f074b. 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)
7% ts_paint windows10-64-shippable-qr e10s fission stylo webrender 430.67 -> 461.17
7% ts_paint_webext windows10-64-shippable-qr e10s fission stylo webrender 433.00 -> 461.67
6% ts_paint_webext windows10-64-shippable-qr e10s fission stylo webrender 433.79 -> 460.67

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 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.

You can run these tests on try with ./mach try perf --alert 41787

For more information on performance sheriffing please see our FAQ.

Flags: needinfo?(bwerth)

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

Assignee: nobody → bwerth
Flags: needinfo?(bwerth)

My theory is that this is happening because ts_paint is measuring the time it takes to complete the first paint submission calls, rather than measuring the time before the first paint completes. In other words, if the first paint is async, ts_paint as currently calculated will be lower. If this is correct analysis, it'll be easy to undo the ts_paint regression by no longer forcing the first flush to be sync (as was done in D202869). But really, we need to fix what ts_paint is measuring, which I will open another Bug to accomplish, presuming this fix works.

This recovers most of the performance degradation of ts_paint, which
measures time to first MozAfterPaint event received. It's not critical
that the first flush be sync, so let's keep things flowing in the way
that ts_paint prefers.

Attachment #9391368 - Attachment description: Bug 1885376: Don't force first schene flush to be sync. → Bug 1885376: Allow first scene flush to be async.

Looks like this is what ts_paint runs

https://searchfox.org/mozilla-central/source/testing/talos/talos/startup_test/tspaint_test.html

It gets the firstPaint value from the startupinfo object via getStartupInfo.

That object should contain two fields

https://searchfox.org/mozilla-central/rev/04f7743d94691fa24212fb43099f9d84c3bfc890/toolkit/components/startup/StartupTimeline.h#18

firstPaint and firstPaint2. These are recorded

https://searchfox.org/mozilla-central/rev/04f7743d94691fa24212fb43099f9d84c3bfc890/view/nsViewManager.cpp#293

and

https://searchfox.org/mozilla-central/rev/04f7743d94691fa24212fb43099f9d84c3bfc890/view/nsView.cpp#1095

respectively. So firstPaint2 measures the time of the end of the first composite. I think that is what you are asking for here.

I created firstPaint2 years ago in bug 1556568 presumably due to a similar issue. After that I was hoping that we would have observed firstPaint2 long enough to validate that it was working as expected and then switch over our relevant perf metrics to it. And bug 1654398 got filed to switch ts_paint to the new metric, but I guess it never got picked it up.

See Also: → 1654398
Pushed by bwerth@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/b0450657a485 Allow first scene flush to be async. r=nical
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 125 Branch
Regressions: 1885765
Regressions: 1885869

Backed out for causing multiple regressions.

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

Resolved by backout.

Status: REOPENED → RESOLVED
Closed: 1 year ago1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 126 Branch
Attachment #9391368 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: