Panel subview animation is not smooth (only a single frame painted) when Web Render is enabled
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox88 | --- | unaffected |
firefox89 | --- | unaffected |
firefox90 | --- | disabled |
firefox91 | --- | verified |
People
(Reporter: sbadau, Assigned: sotaro)
References
(Blocks 1 open bug)
Details
(Whiteboard: [fxperf:p3])
Attachments
(5 files)
Affected platforms:
Windows 10
Affected versions:
Nightly 90.0a1
Steps to reproduce:
- Launch Firefox.
- Access this link and initiate downloading 5 files (only completely download 2 of them).
- Open the downloads panel and click on the ">" to open the Downloads Details panel.
- Return to the Downloads Panel by clicking the "<"button.
Expected Results:
The transition from one download panel to the next one should be smooth.
Actual Results:
The transition from the Downloads Panel to the Downloads Details Panel is not done very smoothly. Please see the screencast for more details.
Notes:
Graphics card: Intel(R) HD Graphics 530.
The issue is reproducible only on the latest Nightly since the Downloads Details panel is not available on the other Firefox versions.
The issue is reproducible regardless if Proton is on or off.
Comment 1•3 years ago
|
||
Are other subviews smoother on your system? for example there should be one in the identity panel, or the Library button.
Just to understand if this is a specific problem of this panel or a more general problem with this transition.
Reporter | ||
Comment 2•3 years ago
|
||
(In reply to Marco Bonardo [:mak] from comment #1)
Are other subviews smoother on your system? for example there should be one in the identity panel, or the Library button.
Just to understand if this is a specific problem of this panel or a more general problem with this transition.
After placing the Library button on the Tabs bar, I'm seeing a similar behavior also when clicking the Bookmarks subview.
Comment 3•3 years ago
|
||
Ok, so this is a more global problem with panelmultiview animation being janky.
Comment 4•3 years ago
|
||
Can you provide a performance profile of the animation on your machine from the Firefox profiler? ( https://profiler.firefox.com/ )
Does turning webrender on/off make a difference?
Reporter | ||
Comment 5•3 years ago
|
||
(In reply to :Gijs (he/him) from comment #4)
Can you provide a performance profile of the animation on your machine from the Firefox profiler? ( https://profiler.firefox.com/ )
Does turning webrender on/off make a difference?
Yes, the transition between the downloads panel subview is a lot smoother when web render is turned off (used the preference gfx.webrender.force-disabled=true)
Here is a Firefox profiled with web render ON: https://share.firefox.dev/3eiD6S4
Here is a Firefox profile with web render OFF: https://share.firefox.dev/3b3msnd
Comment 6•3 years ago
|
||
(In reply to Simona Badau from comment #5)
(In reply to :Gijs (he/him) from comment #4)
Can you provide a performance profile of the animation on your machine from the Firefox profiler? ( https://profiler.firefox.com/ )
Does turning webrender on/off make a difference?
Yes, the transition between the downloads panel subview is a lot smoother when web render is turned off (used the preference gfx.webrender.force-disabled=true)
Here is a Firefox profiled with web render ON: https://share.firefox.dev/3eiD6S4
Here is a Firefox profile with web render OFF: https://share.firefox.dev/3b3msnd
Thanks. I gotta be honest, I'm not able to deduce much from these profiles that would explain additional jankiness / dropped frames. Florian, what about you - or can you recommend someone from the graphics team who could take a look?
Comment 7•3 years ago
|
||
(In reply to :Gijs (he/him) from comment #6)
(In reply to Simona Badau from comment #5)
(In reply to :Gijs (he/him) from comment #4)
Can you provide a performance profile of the animation on your machine from the Firefox profiler? ( https://profiler.firefox.com/ )
Does turning webrender on/off make a difference?
Yes, the transition between the downloads panel subview is a lot smoother when web render is turned off (used the preference gfx.webrender.force-disabled=true)
Here is a Firefox profiled with web render ON: https://share.firefox.dev/3eiD6S4
Here is a Firefox profile with web render OFF: https://share.firefox.dev/3b3msndThanks. I gotta be honest, I'm not able to deduce much from these profiles that would explain additional jankiness / dropped frames. Florian, what about you - or can you recommend someone from the graphics team who could take a look?
When looking at the renderer thread of the GPU Process on the profiler with webrender enabled (https://share.firefox.dev/3vLeBCD), I see we have Composite markers at 60Hz, but I see no "NumDrawCalls" markers during the animation, and there's a single "CompositorScreenshot" marker during all this time.
Markus, could you please have a look at the profile, and see if there's someone who should be needinfo'ed? Thanks!
Comment 8•3 years ago
|
||
Forgot to add the needinfo flag, see comment 7.
Comment 9•3 years ago
|
||
It looks like the off-main-thread transform animation isn't running when WR is used - the composites are triggered but they don't detect a difference and then don't render anything.
Comment 10•3 years ago
|
||
This is a partial prerender case and it seems once after we detected a jank on the transfrom animation, we fails to notify the jank animation to the main thread here. It looks like in the popup panel case, the LayersId is mRootLayerTreeID
but we don't have mLayerManager
. I wonder how we can get the corresponding PCompositorBridgeParent for the popup case?
Anyways, it's an issue in partial prerender stuff and it's been disabled both on beta/release channels.
Comment 11•3 years ago
|
||
CCing sotaro, he probably knows CompositorBridge and relevant structures.
Assignee | ||
Comment 12•3 years ago
|
||
Part of the problem seems similar to Bug 1701451. It is going to be addressed by Bug 1709998.
Updated•3 years ago
|
Comment 13•3 years ago
|
||
Can you check if this has improved on today's nightly, now that bug 1709998 is fixed?
Reporter | ||
Comment 14•3 years ago
|
||
(In reply to :Gijs (he/him) from comment #13)
Can you check if this has improved on today's nightly, now that bug 1709998 is fixed?
I can see an improvement in the Bookmarks and History panels but not in the Downloads panels. Please see - https://imgur.com/pCnwnsg
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 15•3 years ago
|
||
Profile of Downloads panels.
https://share.firefox.dev/3orP13l
Comment 16•3 years ago
|
||
I've locally haven a patch to fix this, but I am supposing there are more reasonable/better ways to handle this case. (I'd want someone who is familiar with the relationship between CompositorBridge{Parent,Child} to take a look at this issue)
Assignee | ||
Comment 17•3 years ago
|
||
The patch addressed the problem for me.
but I am supposing there are more reasonable/better ways to handle this case.
:hiro, do you have any ideas about better ways to handle this case?
Comment 18•3 years ago
|
||
As you can see the patch, the patch introduces another if (const LayerTreeState* state = GetIndirectShadowTree(layersId))
block in the function, I suppose we can unify both if blocks in the function somehow, but I have no idea. Anyways, the part we need to fix is the NotifyJankedAnimations function.
Assignee | ||
Comment 19•3 years ago
|
||
I looked into the patch. It could be simpler.
Assignee | ||
Comment 20•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 21•3 years ago
|
||
Updated•3 years ago
|
Assignee | ||
Comment 22•3 years ago
|
||
:hiro, can you take this bug for creating a test for this bug? Thanks.
Comment 23•3 years ago
|
||
I managed to write a browser mochitest for this issue, will post it.
Comment 24•3 years ago
|
||
Comment 25•3 years ago
|
||
Comment 26•3 years ago
|
||
Comment 27•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/c84629c7d160
https://hg.mozilla.org/mozilla-central/rev/61c572d87d16
Updated•3 years ago
|
Reporter | ||
Comment 29•3 years ago
|
||
Verified as fixed using the latest Nightly 92.0a1 and Firefox 91 beta 8 on Windows 10 x64.
Description
•