Open Bug 1730819 Opened 3 years ago Updated 8 months ago

Navigating through popup menus uses a lot of memory

Categories

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

Firefox 94
defect

Tracking

()

UNCONFIRMED

People

(Reporter: tgnff242, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

(Keywords: nightly-community)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:94.0) Gecko/20100101 Firefox/94.0

Steps to reproduce:

Navigate through my bookmarks folders using the bookmarks toolbar.

Actual results:

Firefox quickly uses hundreds of MBs. This memory is per window, meaning that navigating through bookmarks in multiple windows can use GBs of memory. Some of the memory is released when you click the Minimize Memory button in about:memory, but most of it is only released when you close the window, for example by moving all of its tabs in a new window.

Expected results:

This was introduced when the Software WebRender started being used in the popup menus. The memory accumulates in explicit > gfx > webrender > swgl (it's not more detailed than that, so there's no point in uploading a full memory report). Setting gfx.webrender.software.unaccelerated-widget.allow to false, when it was available (it's still is in the stable version), worked around the issue.

Moving to gfx-triage.

Blocks: gfx-triage
Severity: -- → S3
Priority: -- → P3

Gfx Triage Notes:
This should be solved with https://bugzilla.mozilla.org/show_bug.cgi?id=1654938, ideally. There are no easy solutions.

Blocks: wr-memory
No longer blocks: gfx-triage
Depends on: 1654938

This can be fixed on widget side by compositor release on window close, as we did in Bug 1875369. But it comes with performance penalty if the popup is opened repeatedly as we create/delete compositor every time (Bug 1880781).

Or we can adjust widget code to allocate/release it for SW/WR only.

Flags: needinfo?(stransky)
Flags: needinfo?(stransky)
Blocks: wr-oom
No longer blocks: wr-memory
You need to log in before you can comment on or make changes to this bug.