cc: modify the waiting condition of forced commit

Forced commit only should proceed to its BeginMainFrame when there is a
scheduled BeginMainFrame().
So, Forced commit only should wait for COMMIT_STATE_BEGIN_MAIN_FRAME_SENT.

R=brianderson@chromium.org
BUG=350585
TEST=cc_unittests

Review URL: https://codereview.chromium.org/189553007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255894 0039d316-1c4b-4281-b951-d872f2087c98
parent c78a551e
...@@ -294,6 +294,11 @@ void Scheduler::PollForAnticipatedDrawTriggers() { ...@@ -294,6 +294,11 @@ void Scheduler::PollForAnticipatedDrawTriggers() {
state_machine_.DidLeavePollForAnticipatedDrawTriggers(); state_machine_.DidLeavePollForAnticipatedDrawTriggers();
} }
bool Scheduler::IsBeginMainFrameSent() const {
return state_machine_.commit_state() ==
SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT;
}
void Scheduler::DrawAndSwapIfPossible() { void Scheduler::DrawAndSwapIfPossible() {
DrawSwapReadbackResult result = DrawSwapReadbackResult result =
client_->ScheduledActionDrawAndSwapIfPossible(); client_->ScheduledActionDrawAndSwapIfPossible();
......
...@@ -118,6 +118,8 @@ class CC_EXPORT Scheduler { ...@@ -118,6 +118,8 @@ class CC_EXPORT Scheduler {
return inside_action_ == action; return inside_action_ == action;
} }
bool IsBeginMainFrameSent() const;
private: private:
Scheduler(SchedulerClient* client, Scheduler(SchedulerClient* client,
const SchedulerSettings& scheduler_settings, const SchedulerSettings& scheduler_settings,
......
...@@ -207,7 +207,7 @@ void ThreadProxy::ForceCommitForReadbackOnImplThread( ...@@ -207,7 +207,7 @@ void ThreadProxy::ForceCommitForReadbackOnImplThread(
impl().readback_request = request; impl().readback_request = request;
impl().scheduler->SetNeedsForcedCommitForReadback(); impl().scheduler->SetNeedsForcedCommitForReadback();
if (impl().scheduler->CommitPending()) { if (impl().scheduler->IsBeginMainFrameSent()) {
begin_main_frame_sent_completion->Signal(); begin_main_frame_sent_completion->Signal();
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment