Closed Bug 2001628 Opened 5 months ago Closed 4 months ago

[Linux] Remove compositor pause/resume and use async rendering

Categories

(Core :: Widget: Gtk, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
149 Branch
Tracking Status
firefox149 --- fixed

People

(Reporter: stransky, Assigned: stransky)

References

(Regressed 6 open bugs)

Details

(Keywords: perf-alert)

Attachments

(1 file, 1 obsolete file)

Flags: needinfo?(stransky)

Almost done bud I don't understand why we need to call remoteRenderer->SendResume(); (unfortunately synced) after mCompositorWidgetDelegate set.

I'd expect the copmpositor is already running as CompositorInitiallyPaused() is set on Android only:
https://searchfox.org/firefox-main/rev/1c9d86edc5d91b67ba8c858a053de40e1b98dc95/widget/nsIWidget.cpp#1495

SendResumeAsync(); may be a workaround if we really need to start compositor (but why?).

Looks like we should set the rendering surface to surface provider at nsWindow::Create() and then create EGLSurface at RenderCompositorEGL::RenderCompositorEGL(). We also need to make sure GLX rendering is not broken.

Attachment #9529212 - Attachment is obsolete: true
Duplicate of this bug: 2002237
Flags: needinfo?(stransky)
Summary: [Linux] Investigate removal of synced compositor updates → [Linux] Remove compositor pause/resume and use async rendering
Flags: needinfo?(stransky)
Assignee: nobody → stransky
Attachment #9533854 - Attachment description: WIP: Bug 2001628 [Linux] Don't restart compositor after nsWindow::Create() → Bug 2001628 [Linux] Make mWindowSurface persistent r?emilio
Status: NEW → ASSIGNED
Flags: needinfo?(stransky)
Pushed by amarc@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/6e1be6241390 https://hg.mozilla.org/integration/autoland/rev/0ee39346fe18 Revert "Bug 2001628 [Linux] Make mWindowSurface persistent r=emilio" for causing bc failures @ browser_bookmark_context_menu_contents.js

Backed out for causing bc failures

Flags: needinfo?(stransky)

I can reproduce the timeout locally but I have no idea what causes it:

 0:13.21 GECKO(201597) [Parent 201597: Main Thread]: D/Widget [7fa76d7d3900]: nsWindow::OnShellConfigureEvent() [960, 556] -> [800 x 500] scale 2.00 (scaled size 1600 x 1000)
 0:13.21 GECKO(201597) [Parent 201597: Main Thread]: D/Widget [7fa76d7d3900]: OnPropertyNotifyEvent(_NET_FRAME_EXTENTS)
 0:13.21 GECKO(201597) [Parent 201597: Main Thread]: D/Widget [7fa76d7d3900]: nsWindow::OnShellConfigureEvent() [960, 556] -> [1 x 1] scale 2.00 (scaled size 2 x 2)

The library toplevel window is rendered 1x1 size after _NET_FRAME_EXTENTS.

Fixed by latest patch update. Let's wait when code freeze is over.

Flags: needinfo?(stransky)
Regressions: 2009892
Regressions: 2009891
Status: ASSIGNED → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Target Milestone: --- → 149 Branch

(In reply to amarc from comment #15)

https://hg.mozilla.org/mozilla-central/rev/4898d067ee28

Perfherder has detected a talos performance change from push 4898d067ee28f052f9d1c57ffde37dc0aad68e33.

No action is required from the author; this comment is provided for informational purposes only.

Improvement Test Platform Options Absolute values [old vs new]
8% twinopen ext+twinopen:twinopen.html (doc) linux1804-64-shippable-qr e10s fission stylo webrender-sw 156.74 ms -> 144.76 ms

Need Help or Information?

If you have any questions, please reach out to fbilt@mozilla.com. Alternatively, you can find help on Slack by joining #perf-help, and on Matrix you can find help by joining #perftest.

Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.

Keywords: perf-alert
Regressions: 2012350
Regressions: 2017949
See Also: → 2020572
Regressions: 2020572
See Also: 2020572
Regressions: 2028163
Regressions: 2026116
Regressions: 2030859
Regressions: 2027480
Regressions: 2033161
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: