Closed Bug 1491798 Opened 2 years ago Closed 2 years ago

A tab which is moved out of the window and back becomes empty for an unusual long moment

Categories

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

x86_64
Windows 10
defect

Tracking

()

VERIFIED FIXED
mozilla64
Tracking Status
firefox-esr60 --- disabled
firefox62 --- disabled
firefox63 --- disabled
firefox64 --- fixed

People

(Reporter: jan, Assigned: sotaro)

References

(Blocks 1 open bug, )

Details

(Keywords: nightly-community, regression, regressionwindow-wanted)

Attachments

(3 files)

Attached video 2018-09-17 14-18-32.mp4
Win10, GTX 1060

mozregression --launch 2018-09-16 --pref gfx.webrender.all:true -a about:newtab -a https://html.spec.whatwg.org/

A regression date would have to be before 2018-01-15 which has already been bad.

It can be fixed by unfocusing the window (clicking on the desktop background).
I wasn't able to reproduce this bug with gfx.webrender.force-disabled:true.

Sometimes it's also reproducible with https://www.amazon.com/, but it stays blank only for a short moment.
I take a look.
Assignee: nobody → sotaro.ikeda.g
The problem might happens since we removed layers during using webrender.
about:newtab can also be that bad.
Attached video 2018-09-26 21-59-54.mp4
https://www.youtube.com/watch?v=Scxs7L0vhZ4
From my perception this can happen too easily. It isn't slowness. I just need to unfocus the window or interact with website content, e.g. by hovering or clicking, to make it visible again.
Hi Sotaro -- Would it make sense for me to re-assign this to someone else?  You have a lot of bugs on your plate.  Thanks!
Flags: needinfo?(sotaro.ikeda.g)
I have a possible fix patch. It address the problem for me. I am going to progress the bug. Thanks!
Flags: needinfo?(sotaro.ikeda.g)
Without WebRender, ClientLayerManager can use same layer resources during Tab move between windows. But with WebRender, WebRenderLayerManager cannot retain WebRender resources in during Tab move between windows.

When Tab is moved between windows, WebRenderLayerManager frees all WebRender related resources in WebRenderBridgeChild::RecvWrUpdated(). Then child side needs to trigger repaints to trigger WebRenderLayerManager transaction.
Attachment #9012788 - Flags: review?(matt.woodrow)
Attachment #9012788 - Flags: review?(matt.woodrow) → review+
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/94a87c720eee
Schedule repaint if WebRender is updated by tab move r=mattwoodrow
https://hg.mozilla.org/mozilla-central/rev/94a87c720eee
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Verified fixed. Thank you!
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.