Closed Bug 1359206 Opened 6 years ago Closed 6 years ago

Fix CompositionTime and CompositeUntil handling of WebRenderImageHost


(Core :: Graphics: WebRender, enhancement)

Not set



Tracking Status
firefox55 --- fixed


(Reporter: sotaro, Assigned: sotaro)




(1 file, 1 obsolete file)

      No description provided.
Blocks: 1345054
Assignee: nobody → sotaro.ikeda.g
Attachment #8861158 - Flags: review?(nical.bugzilla)
Attachment #8861158 - Flags: review?(nical.bugzilla)
d attachment 8861158 [details] [diff] [review] uses WebRenderBridgeParent to hold composite until time. It is not good, since WebRenderBridgeParent could be non root WebRenderBridgeParent.
Attachment #8861440 - Flags: review?(nical.bugzilla)
Sorry missed that one, I'll look into it tomorrow. It would be great If you wrote a quick summary in the bug (even if the fix is seemingly simple), so that we can quickly understand what the change is about next time we need to dig into the hg logs.
attachment 8861440 [details] [diff] [review] changes WebRenderImageHost as to work more likely to ImageHost about handling of CompositionTime and CompositeUntil.

But architecture is different between WebRenderImageHost and ImageHost. In ImageHost case, HostLayerManager(LayerManagerComposite) manages CompositionTime and CompositeUntil. In WebRenderImageHost case, we need a similar role object. But WebRenderBridgeParent seems not fit to it, since there are non root WebRenderBridgeParents. Then I chose WebRenderCompositableHolder as to hold CompositionTime and CompositeUntil, since it is already shared by all WebRenderBridgeParents.

The followings are main change of WebRenderImageHost.
- WebRenderImageHost::UseTextureHost() is changed as to call CompositeUntil()
- WebRenderImageHost::GetCompositionTime() is changed to get composition time
    by calling mWrCompositableHolder->GetCompositionTime()
- Added WebRenderImageHost::GetAsTextureHostForComposite(). It is used for composition.
  If we just want to select TextureHost, WebRenderImageHost::GetAsTextureHost() is enough.
  But it does not update mLastFrameID and mLastProducerID.
  The GetAsTextureHostForComposite() is used as similar to ImageHost::Composite()
Summary: Fix composite time handling of WebRenderImageHost → Fix CompositionTime and CompositeUntil handling of WebRenderImageHost
Attachment #8861440 - Flags: review?(nical.bugzilla) → review+
Pushed by
Fix CompositionTime and CompositeUntil handling of WebRenderImageHost r=nical
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.