Descriptioncc: Introduce embedded_surfaces in metadata for surface Ids in draw quads
cc::Surface and SurfaceDependencyTracker used CompositorFrameMetadata's
referenced_surfaces to determine dependencies of a CompositorFrame. This
causes issues when referenced_surfaces contains surface IDs of hidden
windows. Hidden windows do not generate CompositorFrames and so the
parent CompositorFrame would block for four BeginFrames waiting for a
child CompositorFrame that would never arrive.
This effectively reduced the frame rate from 60fps to 15fps. This
CL addresses this issue by introducing an embedded_surfaces set in
CompositorFrameMetadata that only refers to surface IDs for which
SurfaceDrawQuads were generated and thus will be visually present
in the frame.
In a subsequent CL, referenced_surfaces will be renamed to
retained_surfaces and will only contain the set of surface IDs to
which the parent wishes to retain the corresponding surfaces but does
not embed them in SurfaceDrawQuads.
Once generalized frame eviction is complete, we can drop the
retained_surfaces field all together.
BUG=672962
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2803913004
Cr-Commit-Position: refs/heads/master@{#462935}
Committed: https://chromium.googlesource.com/chromium/src/+/a4f81d1fe5d4a83f62f5c99b72c73dc5d62be81d
Patch Set 1 #Patch Set 2 : Added unit test #Patch Set 3 : Add missing file #Patch Set 4 : Rebased #Patch Set 5 : Fix CompositorFrameSinkSupportTest + add new unit test #Patch Set 6 : Added comment + removed unnecessary code #Patch Set 7 : Fix unit test #
Total comments: 6
Patch Set 8 : Addressed Dana's comments #
Messages
Total messages: 37 (30 generated)
|