New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 689725 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Surface Synchronization: Update dependencies on discard

Project Member Reported by fsam...@chromium.org, Feb 7 2017

Issue description

If a Surface is discarded that holds a pending CompositorFrame, we should consider immediately unblocking CompositorFrame that depend on that deleted Surface. Right now this will be handled on its own: a deadline will hit and the surface will be activated anyway, but we should consider doing the cleanup early and put something on screen immediately. This is likely a very rare case in practice, however.
 
Summary: Surface Synchronization: Update dependencies on discard (was: Surface Synchronization: )
Status: Available (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Feb 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d9cf213310be917ade1a3f21d665fc0511e1e10

commit 2d9cf213310be917ade1a3f21d665fc0511e1e10
Author: fsamuel <fsamuel@chromium.org>
Date: Tue Feb 14 00:09:33 2017

Evicted frames should immediately unblock dependent CompositorFrames

Prior to this CL, if a Surface is evicted, we would not immediately
unblock its dependent Surfaces. This causes parent Frames to block
until the deadline hits. This can cause unnecessary jank during cross-
process navigation and may cause the browser UI to become unresponsive
briefly. This CL immediately unblocks the parent CompositorFrame if the
child Surface is evicted.

Note that this CL is a pre-requisite to allowing SurfaceFactory to
always observe its current Surface, which is necessary so that it is
informed when referenced surfaces change and can tell its client to
update its reference tracking. This allows the garbage collection
system to immediately garbage collect surfaces that are no longer
referenced from a parent Surface once a pending frame has replaced
an existing active frame. That change is coming in a subsequent CL.

BUG= 689725 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2689213003
Cr-Commit-Position: refs/heads/master@{#450165}

[modify] https://crrev.com/2d9cf213310be917ade1a3f21d665fc0511e1e10/cc/surfaces/compositor_frame_sink_support_unittest.cc
[modify] https://crrev.com/2d9cf213310be917ade1a3f21d665fc0511e1e10/cc/surfaces/surface_dependency_tracker.cc

Owner: fsam...@chromium.org
Status: Fixed (was: Available)
Blocking: -601863
Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment