Closed Bug 1413763 Opened 7 years ago Closed 2 years ago

Hidden arrow panels keep trying to composite at 60fps

Categories

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

defect

Tracking

()

RESOLVED DUPLICATE of bug 1742797
Performance Impact low

People

(Reporter: mstange, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: perf, perf:resource-use, power, Whiteboard: [gfx-noted])

Attachments

(1 file)

Steps to reproduce:
 1. Be on Windows, or apply the attached patch on Mac so that arrow panels use a transform animation.
 2. Open a tab and go to about:blank.
 3. Click the hamburger button in the toolbar so that the panel opens.
 4. Click into the content area of the tab so that the browser closes.
 5. Start your profiler, wait for a few seconds, and grab a profile.

Actual results:
There are compositor markers at 60fps even though the browser should have been completely idle.

Expected results:
No attempted compositing and 0% CPU usage.


If you're running a build that has --enable-dump-painting, you can flip the pref layers.dump-host-layers to true and see the browser printing LayerManagerComposite trees at 60fps.

I found this bug while investigating bug 1400259.
Example profile: https://perfht.ml/2z7YW4s
Oh unfortunately this can't reproduce on Linux?  How do we hide the panel?  If we do hide by setting visiblity:hidden, the transform animation keep running.  I've tried to fix it in bug 1237454.
Flags: needinfo?(mdeboer)
Priority: -- → P3
Whiteboard: [gfx-noted]
So the 'panel' we're talking about is the 'popup' binding, but the element in use is called '<panel type="arrow"/>'. This confuses me all the friggin' time, so I thought I'd mention it ;-)

Regardless, the way we hide popups is by calling `panel.hidePopup()`, which is implemented in layout/xul/PopupBoxObject.cpp and friends. This, I believe, ends up calling `nsView::SetVisibility(nsViewVisibility_kHide)`.
How that gets processed, I don't know exactly. But I hope this gives you enough hints to see how deep this rabbit hole goes?
Flags: needinfo?(mdeboer)
Keywords: perf, power
Whiteboard: [gfx-noted] → [gfx-noted][fxperf]
Seems like it's worth looking into soon, especially considering the update dialog which is an arrow panel that pops up on its own and doesn't go away unless it's explicitly dismissed.
Whiteboard: [gfx-noted][fxperf] → [gfx-noted][fxperf:p2]
Doesn't really feel like an fxperf bug; maybe something for quantum flow? I wonder if wasting CPU on this can slow down page load.
Whiteboard: [gfx-noted][fxperf:p2] → [gfx-noted][qf]
Whiteboard: [gfx-noted][qf] → [gfx-noted][qf:p3:resource]

This was re-filed as bug 1742797. Let's move the conversation there.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → DUPLICATE
Severity: normal → --
Performance Impact: --- → P3
Whiteboard: [gfx-noted][qf:p3:resource] → [gfx-noted]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: