Closed Bug 1493088 Opened 3 years ago Closed 3 years ago

WebRender Scene receives out of order epoch for async video pipeline

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox64 --- fixed

People

(Reporter: sotaro, Assigned: sotaro)

References

Details

Attachments

(2 files, 1 obsolete file)

WebRenderBridgeParent incrementally updates epoch and send to WR. But WebRender Scene some time received epoch that has lower values than the past.

I wonder if the symptom is related to Bug 1477819.
It could badly affect to CompositorBridgeParent::NotifyPipelineRendered()
I checked if epoch is handled incrementally in WebRender since I saw error of waiting for MozAfterPaint even default m-c code with WebRender. The error happened intermittently.

https://treeherder.mozilla.org/#/jobs?repo=try&selectedJob=200567503&revision=8984c30c0df17a09ea09562ef7e64d9713caedee
Attachment #9010861 - Attachment is obsolete: true
I used attachment 9010862 [details] [diff] [review] to check comment 0. And confirmed that epoch could revert sometimes to old values.
See Also: → 1477819
:nical, can you comment to this bug?
Flags: needinfo?(nical.bugzilla)
> I wonder if the symptom is related to Bug 1477819.

Sounds right. Because we have low priority transactions for content, we now get two sequences of monotonically increasing epochs: one for high priority pipelines (UI/video) and one for everything else.
A given WebRenderBridgeParent should still have its epochs increasing monotonically, though. My understanding of CompositorBridgeParent::NotifyPipelineRendered is that because we only dispatch the epoch notifications for the WRBP with the given pipeline id the relaxed ordering should not cause issues.

Does that sound right to you Sotaro?
Flags: needinfo?(nical.bugzilla) → needinfo?(sotaro.ikeda.g)
It seems that WebRender needs to handle ordered transaction for each pipeline. But we do not always use high priority for video. It causes unordered transaction at WebRender side.
Flags: needinfo?(sotaro.ikeda.g)
Assignee: nobody → sotaro.ikeda.g
Summary: WebRender Scene receives out of order epoch → WebRender Scene receives out of order epoch for async video pipeline
Attachment #9011697 - Flags: review?(nical.bugzilla)
Attachment #9011697 - Flags: review?(nical.bugzilla) → review+
Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/1dde355c049c
Use non low priority transaction for async pipline with ImageBridge r=nical
https://hg.mozilla.org/mozilla-central/rev/1dde355c049c
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in before you can comment on or make changes to this bug.