Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1063)

Unified Diff: cc/scheduler/scheduler_unittest.cc

Issue 696413003: cc: Introduce forward_begin_frames_to_children and use_external_begin_frame_source (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@sep
Patch Set: rebase on master Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/scheduler/scheduler_settings.cc ('k') | cc/test/layer_tree_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/scheduler_unittest.cc
diff --git a/cc/scheduler/scheduler_unittest.cc b/cc/scheduler/scheduler_unittest.cc
index 61de1b87165c3855eba2366e1daf0de63fb78822..91900a277ef7658046c0b9d16e7226263ff5c6cf 100644
--- a/cc/scheduler/scheduler_unittest.cc
+++ b/cc/scheduler/scheduler_unittest.cc
@@ -1,6 +1,7 @@
// Copyright 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+
#include "cc/scheduler/scheduler.h"
#include <string>
@@ -114,7 +115,7 @@ class FakeSchedulerClient : public SchedulerClient {
TestScheduler* CreateScheduler(const SchedulerSettings& settings) {
scoped_ptr<FakeExternalBeginFrameSource> fake_external_begin_frame_source;
- if (settings.begin_frame_scheduling_enabled &&
+ if (settings.use_external_begin_frame_source &&
settings.throttle_frame_production) {
fake_external_begin_frame_source.reset(
new FakeExternalBeginFrameSource(this));
@@ -150,7 +151,7 @@ class FakeSchedulerClient : public SchedulerClient {
}
bool ExternalBeginFrame() {
- return scheduler_->settings().begin_frame_scheduling_enabled &&
+ return scheduler_->settings().use_external_begin_frame_source &&
scheduler_->settings().throttle_frame_production;
}
@@ -352,8 +353,9 @@ void InitializeOutputSurfaceAndFirstCommit(Scheduler* scheduler,
TEST(SchedulerTest, InitializeOutputSurfaceDoesNotBeginImplFrame) {
FakeSchedulerClient client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -367,6 +369,7 @@ TEST(SchedulerTest, InitializeOutputSurfaceDoesNotBeginImplFrame) {
TEST(SchedulerTest, RequestCommit) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -432,6 +435,7 @@ TEST(SchedulerTest, RequestCommit) {
TEST(SchedulerTest, RequestCommitAfterBeginMainFrameSent) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -530,8 +534,9 @@ class SchedulerClientThatsetNeedsDrawInsideDraw : public FakeSchedulerClient {
// 2. the scheduler drawing twice inside a single tick
TEST(SchedulerTest, RequestRedrawInsideDraw) {
SchedulerClientThatsetNeedsDrawInsideDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -567,8 +572,9 @@ TEST(SchedulerTest, RequestRedrawInsideDraw) {
// Test that requesting redraw inside a failed draw doesn't lose the request.
TEST(SchedulerTest, RequestRedrawInsideFailedDraw) {
SchedulerClientThatsetNeedsDrawInsideDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -645,8 +651,9 @@ class SchedulerClientThatSetNeedsCommitInsideDraw : public FakeSchedulerClient {
// happen inside a ScheduledActionDrawAndSwap
TEST(SchedulerTest, RequestCommitInsideDraw) {
SchedulerClientThatSetNeedsCommitInsideDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -690,8 +697,9 @@ TEST(SchedulerTest, RequestCommitInsideDraw) {
// Tests that when a draw fails then the pending commit should not be dropped.
TEST(SchedulerTest, RequestCommitInsideFailedDraw) {
SchedulerClientThatsetNeedsDrawInsideDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -737,8 +745,9 @@ TEST(SchedulerTest, RequestCommitInsideFailedDraw) {
TEST(SchedulerTest, NoSwapWhenDrawFails) {
SchedulerClientThatSetNeedsCommitInsideDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -779,8 +788,9 @@ class SchedulerClientNeedsManageTilesInDraw : public FakeSchedulerClient {
// Test manage tiles is independant of draws.
TEST(SchedulerTest, ManageTiles) {
SchedulerClientNeedsManageTilesInDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -885,8 +895,9 @@ TEST(SchedulerTest, ManageTiles) {
// initiates it, then the state machine should not ManageTiles on that frame.
TEST(SchedulerTest, ManageTilesOncePerFrame) {
FakeSchedulerClient client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -1005,6 +1016,7 @@ TEST(SchedulerTest, ShouldUpdateVisibleTiles) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
scheduler_settings.impl_side_painting = true;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1064,8 +1076,9 @@ TEST(SchedulerTest, ShouldUpdateVisibleTiles) {
TEST(SchedulerTest, TriggerBeginFrameDeadlineEarly) {
SchedulerClientNeedsManageTilesInDraw client;
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -1115,8 +1128,9 @@ void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms,
base::TimeDelta::FromMilliseconds(
begin_main_frame_to_commit_estimate_in_ms),
base::TimeDelta::FromMilliseconds(commit_to_activate_estimate_in_ms));
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
scheduler->SetCanDraw(true);
@@ -1182,8 +1196,9 @@ TEST(SchedulerTest, PollForCommitCompletion) {
base::TimeDelta::FromMilliseconds(32),
base::TimeDelta::FromMilliseconds(32));
client.set_log_anticipated_draw_time_change(true);
- SchedulerSettings default_scheduler_settings;
- TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings);
+ SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
+ TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanDraw(true);
scheduler->SetCanStart();
@@ -1254,6 +1269,7 @@ TEST(SchedulerTest, PollForCommitCompletion) {
TEST(SchedulerTest, BeginRetroFrame) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1327,6 +1343,7 @@ TEST(SchedulerTest, BeginRetroFrame) {
TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1414,12 +1431,12 @@ TEST(SchedulerTest, BeginRetroFrame_SwapThrottled) {
client.Reset();
}
-void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled,
+void BeginFramesNotFromClient(bool use_external_begin_frame_source,
bool throttle_frame_production) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
- scheduler_settings.begin_frame_scheduling_enabled =
- begin_frame_scheduling_enabled;
+ scheduler_settings.use_external_begin_frame_source =
+ use_external_begin_frame_source;
scheduler_settings.throttle_frame_production = throttle_frame_production;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
@@ -1484,32 +1501,33 @@ void BeginFramesNotFromClient(bool begin_frame_scheduling_enabled,
}
TEST(SchedulerTest, SyntheticBeginFrames) {
- bool begin_frame_scheduling_enabled = false;
+ bool use_external_begin_frame_source = false;
bool throttle_frame_production = true;
- BeginFramesNotFromClient(begin_frame_scheduling_enabled,
+ BeginFramesNotFromClient(use_external_begin_frame_source,
throttle_frame_production);
}
TEST(SchedulerTest, VSyncThrottlingDisabled) {
- bool begin_frame_scheduling_enabled = true;
+ bool use_external_begin_frame_source = true;
bool throttle_frame_production = false;
- BeginFramesNotFromClient(begin_frame_scheduling_enabled,
+ BeginFramesNotFromClient(use_external_begin_frame_source,
throttle_frame_production);
}
TEST(SchedulerTest, SyntheticBeginFrames_And_VSyncThrottlingDisabled) {
- bool begin_frame_scheduling_enabled = false;
+ bool use_external_begin_frame_source = false;
bool throttle_frame_production = false;
- BeginFramesNotFromClient(begin_frame_scheduling_enabled,
+ BeginFramesNotFromClient(use_external_begin_frame_source,
throttle_frame_production);
}
-void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled,
- bool throttle_frame_production) {
+void BeginFramesNotFromClient_SwapThrottled(
+ bool use_external_begin_frame_source,
+ bool throttle_frame_production) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
- scheduler_settings.begin_frame_scheduling_enabled =
- begin_frame_scheduling_enabled;
+ scheduler_settings.use_external_begin_frame_source =
+ use_external_begin_frame_source;
scheduler_settings.throttle_frame_production = throttle_frame_production;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
@@ -1573,30 +1591,31 @@ void BeginFramesNotFromClient_SwapThrottled(bool begin_frame_scheduling_enabled,
}
TEST(SchedulerTest, SyntheticBeginFrames_SwapThrottled) {
- bool begin_frame_scheduling_enabled = false;
+ bool use_external_begin_frame_source = false;
bool throttle_frame_production = true;
- BeginFramesNotFromClient_SwapThrottled(begin_frame_scheduling_enabled,
+ BeginFramesNotFromClient_SwapThrottled(use_external_begin_frame_source,
throttle_frame_production);
}
TEST(SchedulerTest, VSyncThrottlingDisabled_SwapThrottled) {
- bool begin_frame_scheduling_enabled = true;
+ bool use_external_begin_frame_source = true;
bool throttle_frame_production = false;
- BeginFramesNotFromClient_SwapThrottled(begin_frame_scheduling_enabled,
+ BeginFramesNotFromClient_SwapThrottled(use_external_begin_frame_source,
throttle_frame_production);
}
TEST(SchedulerTest,
SyntheticBeginFrames_And_VSyncThrottlingDisabled_SwapThrottled) {
- bool begin_frame_scheduling_enabled = false;
+ bool use_external_begin_frame_source = false;
bool throttle_frame_production = false;
- BeginFramesNotFromClient_SwapThrottled(begin_frame_scheduling_enabled,
+ BeginFramesNotFromClient_SwapThrottled(use_external_begin_frame_source,
throttle_frame_production);
}
TEST(SchedulerTest, DidLoseOutputSurfaceAfterOutputSurfaceIsInitialized) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1614,6 +1633,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterOutputSurfaceIsInitialized) {
TEST(SchedulerTest, DidLoseOutputSurfaceAfterBeginFrameStarted) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1652,6 +1672,7 @@ void DidLoseOutputSurfaceAfterBeginFrameStartedWithHighLatency(
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
scheduler_settings.impl_side_painting = impl_side_painting;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1719,6 +1740,7 @@ void DidLoseOutputSurfaceAfterReadyToCommit(bool impl_side_painting) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
scheduler_settings.impl_side_painting = impl_side_painting;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1769,6 +1791,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterReadyToCommitWithImplPainting) {
TEST(SchedulerTest, DidLoseOutputSurfaceAfterSetNeedsManageTiles) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1799,6 +1822,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterSetNeedsManageTiles) {
TEST(SchedulerTest, DidLoseOutputSurfaceAfterBeginRetroFramePosted) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1857,6 +1881,7 @@ TEST(SchedulerTest, DidLoseOutputSurfaceAfterBeginRetroFramePosted) {
TEST(SchedulerTest, DidLoseOutputSurfaceDuringBeginRetroFrameRunning) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1930,7 +1955,6 @@ TEST(SchedulerTest,
StopBeginFrameAfterDidLoseOutputSurfaceWithSyntheticBeginFrameSource) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
- scheduler_settings.begin_frame_scheduling_enabled = false;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -1972,6 +1996,7 @@ TEST(SchedulerTest, ScheduledActionActivateAfterBecomingInvisible) {
FakeSchedulerClient client;
SchedulerSettings scheduler_settings;
scheduler_settings.impl_side_painting = true;
+ scheduler_settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(scheduler_settings);
scheduler->SetCanStart();
scheduler->SetVisible(true);
@@ -2072,6 +2097,7 @@ TEST(SchedulerTest,
SimulateWindowsLowResolutionTimerOnBattery_PrioritizeImplLatencyOff) {
FakeSchedulerClient client;
SchedulerSettings settings;
+ settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(settings);
scheduler->SetCanStart();
@@ -2117,6 +2143,7 @@ TEST(SchedulerTest,
FakeSchedulerClient client;
SchedulerSettings settings;
settings.disable_hi_res_timer_tasks_on_battery = true;
+ settings.use_external_begin_frame_source = true;
TestScheduler* scheduler = client.CreateScheduler(settings);
scheduler->SetCanStart();
« no previous file with comments | « cc/scheduler/scheduler_settings.cc ('k') | cc/test/layer_tree_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698