diff options
author | machenbach@chromium.org <machenbach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-29 07:04:51 +0000 |
---|---|---|
committer | machenbach@chromium.org <machenbach@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-29 07:04:51 +0000 |
commit | b3654cbb02c8495a4f618285980d9eca72d92dc0 (patch) | |
tree | 79a239c95c385b765f330a6307d9bc63dfcebd46 /cc | |
parent | 4c9b6c4bb0ca436da6ab13b6eb177c16efe8240c (diff) | |
download | chromium_src-b3654cbb02c8495a4f618285980d9eca72d92dc0.zip chromium_src-b3654cbb02c8495a4f618285980d9eca72d92dc0.tar.gz chromium_src-b3654cbb02c8495a4f618285980d9eca72d92dc0.tar.bz2 |
Revert of cc: SwapAck throttle Swap without throttling MainFrames (https://codereview.chromium.org/222023010/)
Reason for revert:
[Sheriff] Speculative revert for breaking win7 dbg:
http://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%284%29/builds/26034
Will reland if it didn't help.
Original issue's description:
> cc: SwapAck throttle Swap without throttling MainFrames
>
> This should improve main thread throughput in cases
> where we are deferring the BeginMainFrame, but don't
> really need to because the swap ack will come back
> before the impl thread needs to draw anyway.
>
> BUG=311213
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=266685
NOTREECHECKS=true
NOTRY=true
BUG=311213
TBR=Sami, danakj, brianderson
Review URL: https://codereview.chromium.org/255033004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266757 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r-- | cc/scheduler/scheduler_state_machine.cc | 5 | ||||
-rw-r--r-- | cc/scheduler/scheduler_unittest.cc | 16 |
2 files changed, 12 insertions, 9 deletions
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc index e76721d..0ddaa30 100644 --- a/cc/scheduler/scheduler_state_machine.cc +++ b/cc/scheduler/scheduler_state_machine.cc @@ -502,6 +502,11 @@ bool SchedulerStateMachine::ShouldSendBeginMainFrame() const { if (!HasInitializedOutputSurface()) return false; + // SwapAck throttle the BeginMainFrames + // TODO(brianderson): Remove this restriction to improve throughput. + if (pending_swaps_ >= max_pending_swaps_) + return false; + if (skip_begin_main_frame_to_reduce_latency_) return false; diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc index 9acbd37..921b94a 100644 --- a/cc/scheduler/scheduler_unittest.cc +++ b/cc/scheduler/scheduler_unittest.cc @@ -1266,11 +1266,10 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { client.Reset(); // While swap throttled, BeginRetroFrames should trigger BeginImplFrames - // and BeginMainFrames, but not draw. + // but not a BeginMainFrame or draw. scheduler->SetNeedsCommit(); client.task_runner().RunPendingTasks(); // Run posted BeginRetroFrame. - EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); - EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); + EXPECT_ACTION("WillBeginImplFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_TRUE(client.needs_begin_frame()); client.Reset(); @@ -1285,7 +1284,7 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) { // Take us out of a swap throttled state. scheduler->DidSwapBuffersComplete(); - EXPECT_EQ(0, client.num_actions_()); + EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_TRUE(client.needs_begin_frame()); client.Reset(); @@ -1442,19 +1441,18 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled, EXPECT_FALSE(client.needs_begin_frame()); client.Reset(); - // While swap throttled, BeginFrames should trigger BeginImplFrame and - // BeginMainFrame, but not draw. + // While swap throttled, BeginFrames should trigger BeginImplFrames, + // but not a BeginMainFrame or draw. scheduler->SetNeedsCommit(); client.task_runner().RunPendingTasks(); // Run posted BeginFrame. - EXPECT_ACTION("WillBeginImplFrame", client, 0, 2); - EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 1, 2); + EXPECT_ACTION("WillBeginImplFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_FALSE(client.needs_begin_frame()); client.Reset(); // Take us out of a swap throttled state. scheduler->DidSwapBuffersComplete(); - EXPECT_EQ(0, client.num_actions_()); + EXPECT_ACTION("ScheduledActionSendBeginMainFrame", client, 0, 1); EXPECT_TRUE(scheduler->BeginImplFrameDeadlinePending()); EXPECT_FALSE(client.needs_begin_frame()); client.Reset(); |