60Hz compositing without render reason markers
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: florian, Assigned: nical)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
I don't have steps to reproduce, but I saw 2 similar profiles that have "Composite" markers at 60Hz, but no "Render reason" markers.
The first profile comes from my Mac: https://share.firefox.dev/37V1WGD
The second comes from Alexandre's Linux machine: https://share.firefox.dev/36UVqz2
Nical, any idea about how we could get in this situation and/or which profiler markers need to be added to make this easier to understand next time we encounter it?
Updated•3 years ago
|
Assignee | ||
Comment 1•3 years ago
|
||
I don't have a very complete mental model of the frame scheduling stuff. I know that when I added the markers I didn't necessarily cover all possible reasons for producing frames.
That said the absence of RenderReason::VSYNC is interesting. VSYNC isn't a reason for rendering in itself, but I think that the absence of the VSYNC marker indicates that we are not making the frame wait for the next vsync, which reduces the question to a smaller set of the possible code paths.
This one for instance is worth keeping an eye on: https://searchfox.org/mozilla-central/rev/b671b6390e88672543b9b7c82132be655bd98856/gfx/layers/wr/WebRenderBridgeParent.cpp#2300
There are also skipped composites (when we are producing frame requests faster than webrender can render them, we skip the frame request and do it later when webrender has caught up, and that frame isn't waithing for vsync). Although those should show up with their own profiler marker.
I have just cooked a few patches to improve the coverage of the render reasons althoug I don't know whether it will cover all cases.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 2•3 years ago
|
||
Also differentiate between skipped composites (too many pending frames) and discarded composites (paused or no display list).
Updated•3 years ago
|
Assignee | ||
Comment 3•3 years ago
|
||
Also tag frames from FlushGenerateFrames.
Depends on D142232
Assignee | ||
Comment 4•3 years ago
|
||
We schedule additional composites as long as there is a CompositeUntil timestamp. These composites need a special tag and shouldn't carry the tags of whatever led us to check the timestamps. In addition, we should add the ASYNC_IMAGE tag when GetAndResetWillGenerateFrame returns true even if some other reason led us to check it.
Depends on D142233
Comment 6•3 years ago
|
||
bugherder |
Assignee | ||
Comment 7•3 years ago
|
||
No occurences for a while.
Description
•