Closed Bug 1761744 Opened 3 years ago Closed 3 years ago

60Hz compositing without render reason markers

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED

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?

Flags: needinfo?(nical.bugzilla)
Severity: -- → S4

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.

Flags: needinfo?(nical.bugzilla)
Keywords: leave-open

Also differentiate between skipped composites (too many pending frames) and discarded composites (paused or no display list).

Assignee: nobody → nical.bugzilla
Status: NEW → ASSIGNED

Also tag frames from FlushGenerateFrames.

Depends on D142232

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

Pushed by nsilva@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/78cf3f44e522 Tag frames coming from skipped composites. r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/1473c177b3f8 Tag frames caused by the start of observe vsync. r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/b52be864f414 Better tag frames coming from the async image pipeline manager. r=gfx-reviewers,aosmond

No occurences for a while.

Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Keywords: leave-open
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: