RenderBackend thread does not overlap cpu time with the Render thread

RESOLVED FIXED in mozilla58

Status

()

defect
P1
normal
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: jrmuizel, Assigned: sotaro)

Tracking

unspecified
mozilla58
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox57 unaffected, firefox58 unaffected)

Details

(Whiteboard: [wr-mvp])

Attachments

(1 attachment, 2 obsolete attachments)

You can see it in this profile of gmail: https://perfht.ml/2kNsK2u
It looks like this was introduced by 1365196
Bug 1365196 was added to prevent us from over producing frames. Perhaps the right solution is to only allow one extra frame.
Whiteboard: [wr-mvp]
If I changed the maxPendingFrameCount to 2, the scrolling looks better on windows.

[1]http://searchfox.org/mozilla-central/source/gfx/layers/wr/WebRenderBridgeParent.cpp#1144
Actually Bug 1382132 changed the maxPendingFrameCount from 2 to 1. For APZ with WR, it costs time for build_scene because of bug 1408174. I believe we can get benefit from rendering pipeline if we change the maxPendingFrameCount as 2 for scrolling. Sotaro, any thoughts?
Flags: needinfo?(sotaro.ikeda.g)
Assignee: nobody → sotaro.ikeda.g
Flags: needinfo?(sotaro.ikeda.g)
When maxPendingFrameCount was set to 2, there was cases that frame latency became too big. One example was that render thread always had 2 pending rendering frames. It could happen when rendering take very long. Another example was that background thread thread always had 2 pending frames. It could happen when background thread was too busy. To avoid these situation, I set maxPendingFrameCount to 1. But it restricts too much.

We need to improve the performance by minimizing the latency. Just changing maxPendingFrameCount to 2 could not achieve it.
Attachment #8924492 - Flags: review?(jmuizelaar)
Status: NEW → ASSIGNED
Priority: P2 → P1
Comment on attachment 8924492 [details] [diff] [review]
patch - Improving throttling GenerateFrame()

Review of attachment 8924492 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/webrender_bindings/RenderThread.cpp
@@ +265,5 @@
>    return renderer->Resume();
>  }
>  
> +bool
> +RenderThread::TooMuchPendingFrames(wr::WindowId aWindowId)

TooManyPendingFrames()
Attachment #8924492 - Flags: review?(jmuizelaar) → review+
Apply the comment.
Attachment #8924492 - Attachment is obsolete: true
Attachment #8924793 - Flags: review+
Fixed nits.
Attachment #8924793 - Attachment is obsolete: true
Attachment #8924794 - Flags: review+
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/14a5ae97c682
Improving throttling GenerateFrame() r=jrmuizel
https://hg.mozilla.org/mozilla-central/rev/14a5ae97c682
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in before you can comment on or make changes to this bug.