DescriptionRemove uses of external begin frame sources
With this change, all output surfaces in the renderer provide begin
frame sources directly rather than via an additional parameter to
the LayerTreeHost.
The functional difference between these two paths is that the external
begin frame source exists for the lifetime of the compositor, whereas
the output surface begin frame source is only provided between
BindToClient / DetachFromClient. The cc::Scheduler is already robust
to these changes and the browser compositor already uses this logic.
The output surface path is more useful in the browser where the output
surface may change which begin frame source it is providing. However,
this patch just modifies the renderer to use the same path as the
browser so there's only one way of doing things.
In this patch, any time a CompositorOutputSurface or
SynchronousCompositorOutputSurface would be used, RenderThreadImpl
passes it the CompositorExternalBeginFrameSource that would have been
used as the external begin frame source parameter.
The other cases of output surface creation do not need an external begin
frame source. Layout tests composite synchronously without a
cc::Scheduler and so do not need one. ui::OutputSurface for mus
renderers internally creates its own default begin frame source (for now).
Blimp doesn't create an output surface so no longer needs special
case code for an external begin frame source that it also doesn't use.
The external begin frame source setting and plumbing is not cleaned up
in this patch and will be done in a followup.
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
Committed: https://crrev.com/077ba4863c28cbcb1049c24148aeae09f1dfa646
Cr-Commit-Position: refs/heads/master@{#418040}
Patch Set 1 #Patch Set 2 : Fix test crashes #
Total comments: 2
Patch Set 3 : Rebase #Patch Set 4 : Remove Blimp conditional #Messages
Total messages: 26 (19 generated)
|