Closed Bug 1463313 Opened 7 years ago Closed 7 years ago

Canvas updates are delayed by a frame if the canvas is the only thing that changes

Categories

(Core :: Graphics: WebRender, defect, P1)

defect

Tracking

()

RESOLVED FIXED
Tracking Status
firefox60 --- wontfix
firefox61 --- wontfix
firefox62 --- fix-optional

People

(Reporter: mstange, Assigned: kats)

References

Details

Attachments

(2 files)

In this testcase, as you move your mouse over the grey rectangle, the green square should always be under the mouse cursor. However, with WebRender enabled, it frequently lags behind. I noticed this when interacting with the flame graph in perf.html. This problem does not seem to occur if other page content changes at the same time, as demonstrated by the second testcase.
async-scene-build seems to be related. When I set "gfx.webrender.async-scene-build;0". I did not saw the delay.
A guess as to what's happening here is that we get a RecvUpdateResources and send a transaction with the updates at [1], but that gets processed on the scene builder thread. There's nothing that triggers a composite after that. There is some code at [2] that does it, but that only gets invoked in the case where there was a new scene built, which doesn't happen if it's just a resource update. [1] https://searchfox.org/mozilla-central/rev/2aa42f2cab4a110edf21dd7281ac23a1ea8901f9/gfx/layers/wr/WebRenderBridgeParent.cpp#467 [2] https://searchfox.org/mozilla-central/rev/2aa42f2cab4a110edf21dd7281ac23a1ea8901f9/gfx/webrender_bindings/src/bindings.rs#729
Assignee: nobody → bugmail
Batch updating status flags based on WR schedule - please adjust if needed.
No longer depends on: 1463416
Priority: -- → P1
This should be fixed in the next nightly.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: