Closed Bug 1463851 Opened 3 years ago Closed 3 years ago

Infinite tab spinner with WebRender

Categories

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

62 Branch
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox60 --- wontfix
firefox61 --- wontfix
firefox62 --- fix-optional

People

(Reporter: Tobias.Marty, Assigned: sotaro)

References

Details

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
Build ID: 20180523100147

Steps to reproduce:

Open a new tab and try to load a web site. 


Actual results:

An infinite tab spinner appears. Sometimes it loads after over ten seconds, sometimes never, maybe according to the speed of the computer. This only happens in this magnitude when WebRender is enabled. 

I tried to capture a profile, however I'm not sure if it recorded anything useful: 
https://perfht.ml/2s30nP8

This happens only sporadically (but at least once a day), so there's no STR yet that can reproduce reliably with.
Batch updating status flags based on WR schedule - please adjust if needed.
Has anyone on the graphics team seen this themselves?
Priority: -- → P1
Is the spinner you're talking about the one that appears in the content area because there's no content ready yet? Or the one in the tab bar that indicates the page is "still loading"?
Flags: needinfo?(Tobias.Marty)
It is the former.
Flags: needinfo?(Tobias.Marty)
I do not have a STR to reproduce the bug, but I saw the symptom several times. I take a look.
Assignee: nobody → sotaro.ikeda.g
LayerTreeEpoch seems to be related to the symptom. When WebRenderBridgeParent does not notify LayerTreeEpoch to TabParent, infinite tab spinner is shown.

From WebRenderBridgeParent, the sequence is like the following.

WebRenderBridgeParent::RecvSetDisplayList()
->CrossProcessCompositorBridgeParent::ObserveLayerUpdate()
->CompositorBridgeParent::SendObserveLayerUpdate()
->CompositorBridgeChild::RecvObserveLayerUpdate()
->TabParent::LayerTreeUpdate()
Update of LayerTreeEpoch is stared by TabParent::SetRenderLayersInternal().

The sequence is like the following.

TabParent::SetRenderLayersInternal()
->TabParent::SendRenderLayers()
->TabChild::RecvRenderLayers()
->WebRenderLayerManager::SetLayerObserverEpoch()
->WebRenderBridgeChild::SendSetLayerObserverEpoch()
->WebRenderBridgeParent::RecvSetLayerObserverEpoch()
Depends on: 1470090
Have you seen this in any recent nightlies (jun 22 or newer)?
Flags: needinfo?(Tobias.Marty)
I haven't been using WebRender that much lately, but didn't notice it again since jun 22. Will report if that changes.
Flags: needinfo?(Tobias.Marty)
(In reply to TMart from comment #9)
> I haven't been using WebRender that much lately, but didn't notice it again
> since jun 22. Will report if that changes.

Thanks! I also did not see the infinite tab spinner since june 22. I am going to close the bug. Please re-open the bug if you saw it again!
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.