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

Unified Diff: cc/scheduler/frame_rate_controller.cc

Issue 17391006: cc: Add BeginFrameArgs (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase Created 7 years, 6 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/frame_rate_controller.h ('k') | cc/scheduler/frame_rate_controller_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/frame_rate_controller.cc
diff --git a/cc/scheduler/frame_rate_controller.cc b/cc/scheduler/frame_rate_controller.cc
index 1977294f8f3de613d928192863e76b04c1042a0c..811892d31714fb1dc665005abef00b50410ea524 100644
--- a/cc/scheduler/frame_rate_controller.cc
+++ b/cc/scheduler/frame_rate_controller.cc
@@ -38,6 +38,7 @@ FrameRateController::FrameRateController(scoped_refptr<TimeSource> timer)
: client_(NULL),
num_frames_pending_(0),
max_swaps_pending_(0),
+ interval_(BeginFrameArgs::DefaultInterval()),
time_source_(timer),
active_(false),
is_time_source_throttling_(true),
@@ -53,6 +54,7 @@ FrameRateController::FrameRateController(
: client_(NULL),
num_frames_pending_(0),
max_swaps_pending_(0),
+ interval_(BeginFrameArgs::DefaultInterval()),
active_(false),
is_time_source_throttling_(false),
weak_factory_(this),
@@ -86,10 +88,15 @@ void FrameRateController::SetMaxSwapsPending(int max_swaps_pending) {
void FrameRateController::SetTimebaseAndInterval(base::TimeTicks timebase,
base::TimeDelta interval) {
+ interval_ = interval;
if (is_time_source_throttling_)
time_source_->SetTimebaseAndInterval(timebase, interval);
}
+void FrameRateController::SetDeadlineAdjustment(base::TimeDelta delta) {
+ deadline_adjustment_ = delta;
+}
+
void FrameRateController::OnTimerTick() {
TRACE_EVENT0("cc", "FrameRateController::OnTimerTick");
DCHECK(active_);
@@ -100,7 +107,12 @@ void FrameRateController::OnTimerTick() {
TRACE_COUNTER_ID1("cc", "ThrottledCompositor", task_runner_, throttled);
if (client_) {
- client_->FrameRateControllerTick(throttled);
+ // TODO(brianderson): Use an adaptive parent compositor deadline.
+ base::TimeTicks frame_time = LastTickTime();
+ base::TimeTicks deadline = NextTickTime() + deadline_adjustment_;
+ client_->FrameRateControllerTick(
+ throttled,
+ BeginFrameArgs::Create(frame_time, deadline, interval_));
}
if (!is_time_source_throttling_ && !throttled)
« no previous file with comments | « cc/scheduler/frame_rate_controller.h ('k') | cc/scheduler/frame_rate_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698