Content process stalls in SyncObjectD3D11Client::Synchronize during startup
Categories
(Core :: Graphics: Layers, defect, P3)
Tracking
()
Performance Impact | low |
People
(Reporter: aswan, Assigned: mconley)
References
Details
(Keywords: perf:responsiveness, perf:startup)
This is a profile of browser startup on the 2018 reference device with the PaintThread captured: https://perfht.ml/2Y1br1j
It shows that the privileged content process (the content process where about:home is loaded) stalls for several seconds waiting for "Flushing async paints". The stacks in the PaintThread at that time call into libraries that aren't symbolicated but a chunk of time appears to be stalled in SyncObjectD3D11Client::Synchronize()
Reporter | ||
Comment 1•5 years ago
|
||
:jya, picked you semi-randomly as somebody who has touched this code recently. Is this pause something you expect to see? Whatever is happening during this time, it is blocking the main thread in the privileged content process which has a substantial impact on how quickly we can draw about:home at startup.
Comment 2•5 years ago
|
||
Bug 1568652 appears to be the same issue, with an assert caused by hitting the timeout.
Crash signature: https://crash-stats.mozilla.org/signature/?signature=mozilla%3A%3Agfx%3A%3ACriticalLogger%3A%3ACrashAction
Updated•5 years ago
|
Assignee | ||
Updated•5 years ago
|
Comment 3•5 years ago
|
||
(In reply to Andrew Swan [:aswan] from comment #1)
:jya, picked you semi-randomly as somebody who has touched this code recently. Is this pause something you expect to see? Whatever is happening during this time, it is blocking the main thread in the privileged content process which has a substantial impact on how quickly we can draw about:home at startup.
TBH I have no clue.
Bas is the author of that code, maybe he can help.
Assignee | ||
Comment 4•5 years ago
|
||
I spoke to jrmuizel about this late last week. His interpretation of the profile was that we're blocked waiting for the GPU to finish being blocked doing something. It's unfortunately unclear what the GPU is blocked doing.
He suggested using a tool like Concurrency Visualizer to try to get a sense of what the GPU is waiting for.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 6•5 years ago
|
||
This is a non webrender thing, with WebRender, most of the stuff has been moved to the GPU process, so marking this as p3.
Assignee | ||
Comment 7•5 years ago
|
||
I'd like to at least get this investigated enough so that we can know what's happening here. I'm going to try to use UIforETW / WPA to try to sort this out.
Updated•4 years ago
|
Updated•2 years ago
|
Updated•2 years ago
|
Updated•1 month ago
|
Description
•