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

Unified Diff: cc/scheduler/scheduler.cc

Issue 23495022: CC: Add a scheduled action for ManageTiles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove unused. Created 7 years, 3 months 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.h ('k') | cc/scheduler/scheduler_state_machine.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/scheduler.cc
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
index ebdc289b18e50082e00ff9cac20698d227e00f0b..d638f6d2bb42c645ddde779643e43c48a4f4ecb9 100644
--- a/cc/scheduler/scheduler.cc
+++ b/cc/scheduler/scheduler.cc
@@ -19,7 +19,8 @@ Scheduler::Scheduler(SchedulerClient* client,
last_set_needs_begin_frame_(false),
has_pending_begin_frame_(false),
state_machine_(scheduler_settings),
- inside_process_scheduled_actions_(false) {
+ inside_process_scheduled_actions_(false),
+ inside_action_(SchedulerStateMachine::ACTION_NONE) {
DCHECK(client_);
DCHECK(!state_machine_.BeginFrameNeededToDrawByImplThread());
}
@@ -64,6 +65,12 @@ void Scheduler::SetNeedsRedraw() {
ProcessScheduledActions();
}
+void Scheduler::SetNeedsManageTiles() {
+ DCHECK(!IsInsideAction(SchedulerStateMachine::ACTION_MANAGE_TILES));
+ state_machine_.SetNeedsManageTiles();
+ ProcessScheduledActions();
+}
+
void Scheduler::SetSwapUsedIncompleteTile(bool used_incomplete_tile) {
state_machine_.SetSwapUsedIncompleteTile(used_incomplete_tile);
ProcessScheduledActions();
@@ -183,8 +190,9 @@ void Scheduler::BeginFrame(const BeginFrameArgs& args) {
void Scheduler::PollForAnticipatedDrawTriggers() {
TRACE_EVENT0("cc", "Scheduler::PollForAnticipatedDrawTriggers");
- state_machine_.PollForAnticipatedDrawTriggers();
+ state_machine_.DidEnterPollForAnticipatedDrawTriggers();
ProcessScheduledActions();
+ state_machine_.DidLeavePollForAnticipatedDrawTriggers();
}
void Scheduler::DrawAndSwapIfPossible() {
@@ -223,6 +231,8 @@ void Scheduler::ProcessScheduledActions() {
"state",
TracedValue::FromValue(state_machine_.AsValue().release()));
state_machine_.UpdateState(action);
+ base::AutoReset<SchedulerStateMachine::Action>
+ mark_inside_action(&inside_action_, action);
switch (action) {
case SchedulerStateMachine::ACTION_NONE:
break;
@@ -257,6 +267,9 @@ void Scheduler::ProcessScheduledActions() {
case SchedulerStateMachine::ACTION_ACQUIRE_LAYER_TEXTURES_FOR_MAIN_THREAD:
client_->ScheduledActionAcquireLayerTexturesForMainThread();
break;
+ case SchedulerStateMachine::ACTION_MANAGE_TILES:
+ client_->ScheduledActionManageTiles();
+ break;
}
} while (action != SchedulerStateMachine::ACTION_NONE);
« no previous file with comments | « cc/scheduler/scheduler.h ('k') | cc/scheduler/scheduler_state_machine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698