Surface Synchronization: Consider interaction with visibility |
||||||
Issue descriptionWith surface synchronization, the parent's CompositorFrame will block on the child. If the child is hidden, it will not generate CompositorFrames. Thus, the parent will always wait 4 BeginFrames and activate on deadline. This effectively drops the system's frame rate to 15fps all the time. Obviously this is undesirable. In Mus+Ash today, this is mitigated by not embedding surface IDs for a hidden child in the parent. The problem now is what to do when the window is shown again? We need to trigger a new CompositorFrame... One way is changing visibility to true allocates a new LocalSurfaceId and plumbs it down to the child which triggers a commit flow to generate a CompositorFrame. Another way is to push knowledge of visiblity down into cc::Surface, and cc::SurfaceDependencyTracker. In that world, the "display compositor host" tells the "display compositor" that a given FrameSinkId is no longer visible. This removes surface Ids from that particular FrameSinkId from blocking activation of any other surface Ids. The first solution is perhaps easier to implement while the latter is more generic as it does not need to be implemented twice (for UI and OOPIF). I'd like to implement the second solution. WDYT?
,
Apr 3 2017
Can you clarify exactly what you mean by visible / not visible here? For example, is it some higher layers concept of visibility? Is it surfaces that are occluded? etc.
,
Apr 3 2017
+1 for the second solution This would also means that visibility changes could be handled entirely in Mus without a round-trip to the client, which seems like a good thing.
,
Apr 3 2017
Set Available/Feature on this type of tracking issue so we don't have to go through them in our triage.
,
Apr 17 2017
I'm marking as FIXED here. This was a problem with the way referenced_surfaces referred to ALL SurfaceLayers even hidden windows. This was fixed here: https://codereview.chromium.org/2803913004/ and improved here: https://codereview.chromium.org/2811813004/
,
Jun 13 2017
,
Feb 26 2018
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by fsam...@chromium.org
, Apr 1 2017