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

Issue 628841 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jul 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug



Sign in to add a comment

Intentional that next BeginMainFrame can happen before DidCommit?

Project Member Reported by danakj@chromium.org, Jul 16 2016

Issue description

I was looking at the LayerTreeHostProxyTestCommitWaitsForActivationMFBA test and I realized we are allowing main frames while a frame that is waiting for activation before DidCommit is active.

This is really contrary to the point of waiting for activation so I wonder if this is actually on purpose.

First, the method is LayerTreeHost::SetNextCommitWaitsForActivation. It should really be SetNextDidCommitWaitsForActivation.. it wants the commit done notification to be delayed.

If we start a new beginmainframe in the meantime, that means it will come out of order with the last frame's DidCommit.

The reason for waiting for activation is for example if a client has only a double buffered TextureLayer, so it gives one to the compositor and says we need to wait for activation. This guarantees that cc will activatate and return the previous texture to it (we return things before DidCommit), before the main thread becomes unblocked.

How are we doing a main frame then if the main thread is supposed to be blocked until activation? It would cause the above example client to possibly start mutating the texture that is currently on the active tree when it should not be.

I would expect a must-wait-for-activation to keep the main thread blocked (that was the intention) so it should be impossible to do a new main frame while in that state.
 

Comment 1 by enne@chromium.org, Jul 18 2016

The compositor thread should be able to send a begin frame, but the main thread should be blocked by the ProxyImpl::activation_completion_event_ until the activation occurs.  That's the intention, at least.
What enne@ said - we send the begin main frame but that doesn't matter because the main thread is blocked inside commit until activation happens.

Comment 3 by danakj@chromium.org, Jul 18 2016

Status: WontFix (was: Untriaged)
Thanks! I read the comment on the test wrong, it's the *next* commit there that has wait-for-activation, not the first one. Coool.

Sign in to add a comment