Surface Synchronization: Implement Fallback behavior
Introduced in https://codereview.chromium.org/2676373004/, a
CompositorFrame can refer to surface Ids that don't yet have
corresponding CompositorFrames. CompositorFrames with unresolved
dependencies are considered "pending" until they are activated. A
CompositorFrame can be activated if all its dependencies are resolved:
they all submit CompositorFrames which are themselves active or have
been activated.
A CompositorFrame may also be activated if a deadline hits. In that
case, the display compositor will attempt to process a CompositorFrame
with unresolved dependencies. This CL defines fallback behavior in the
event there are unresolved dependencies during surface aggregation
(producing a display frame). A SurfaceLayer has a primary and fallback
SurfaceInfo. That translates, ultimately, into a primary and fallback
SurfaceDrawQuad which is shipped over IPC.
SurfaceAggregator attempts to resolve the primary, and if it fails, it
uses the fallback. If the primary resolves, then SurfaceAggregator
ignores the fallback.
BUG=672962
[email protected], [email protected], [email protected], [email protected]
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2690853007
Cr-Commit-Position: refs/heads/master@{#450794}
34 files changed