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

Side by Side Diff: cc/scheduler/begin_frame_source.cc

Issue 2778223005: Plumb activation time to main (Closed)
Patch Set: add baseline test in layer_tree_host_unittest_proxy; initialize source_frame_number is all ctors Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/scheduler/begin_frame_source.h" 5 #include "cc/scheduler/begin_frame_source.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/atomic_sequence_num.h" 9 #include "base/atomic_sequence_num.h"
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 } 110 }
111 111
112 bool BackToBackBeginFrameSource::IsThrottled() const { 112 bool BackToBackBeginFrameSource::IsThrottled() const {
113 return false; 113 return false;
114 } 114 }
115 115
116 void BackToBackBeginFrameSource::OnTimerTick() { 116 void BackToBackBeginFrameSource::OnTimerTick() {
117 base::TimeTicks frame_time = time_source_->LastTickTime(); 117 base::TimeTicks frame_time = time_source_->LastTickTime();
118 base::TimeDelta default_interval = BeginFrameArgs::DefaultInterval(); 118 base::TimeDelta default_interval = BeginFrameArgs::DefaultInterval();
119 BeginFrameArgs args = BeginFrameArgs::Create( 119 BeginFrameArgs args = BeginFrameArgs::Create(
120 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_, frame_time, 120 BEGINFRAME_FROM_HERE, source_id(), next_sequence_number_,
121 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time,
121 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL); 122 frame_time + default_interval, default_interval, BeginFrameArgs::NORMAL);
122 next_sequence_number_++; 123 next_sequence_number_++;
123 124
124 // This must happen after getting the LastTickTime() from the time source. 125 // This must happen after getting the LastTickTime() from the time source.
125 time_source_->SetActive(false); 126 time_source_->SetActive(false);
126 127
127 std::unordered_set<BeginFrameObserver*> pending_observers; 128 std::unordered_set<BeginFrameObserver*> pending_observers;
128 pending_observers.swap(pending_begin_frame_observers_); 129 pending_observers.swap(pending_begin_frame_observers_);
129 DCHECK(!pending_observers.empty()); 130 DCHECK(!pending_observers.empty());
130 for (BeginFrameObserver* obs : pending_observers) 131 for (BeginFrameObserver* obs : pending_observers)
(...skipping 28 matching lines...) Expand all
159 base::TimeDelta interval) { 160 base::TimeDelta interval) {
160 authoritative_interval_ = interval; 161 authoritative_interval_ = interval;
161 OnUpdateVSyncParameters(last_timebase_, interval); 162 OnUpdateVSyncParameters(last_timebase_, interval);
162 } 163 }
163 164
164 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs( 165 BeginFrameArgs DelayBasedBeginFrameSource::CreateBeginFrameArgs(
165 base::TimeTicks frame_time, 166 base::TimeTicks frame_time,
166 BeginFrameArgs::BeginFrameArgsType type) { 167 BeginFrameArgs::BeginFrameArgsType type) {
167 uint64_t sequence_number = next_sequence_number_++; 168 uint64_t sequence_number = next_sequence_number_++;
168 return BeginFrameArgs::Create( 169 return BeginFrameArgs::Create(
169 BEGINFRAME_FROM_HERE, source_id(), sequence_number, frame_time, 170 BEGINFRAME_FROM_HERE, source_id(), sequence_number,
171 BeginFrameArgs::kDefaultSourceFrameNumber, frame_time,
170 time_source_->NextTickTime(), time_source_->Interval(), type); 172 time_source_->NextTickTime(), time_source_->Interval(), type);
171 } 173 }
172 174
173 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) { 175 void DelayBasedBeginFrameSource::AddObserver(BeginFrameObserver* obs) {
174 DCHECK(obs); 176 DCHECK(obs);
175 DCHECK(observers_.find(obs) == observers_.end()); 177 DCHECK(observers_.find(obs) == observers_.end());
176 178
177 observers_.insert(obs); 179 observers_.insert(obs);
178 obs->OnBeginFrameSourcePausedChanged(false); 180 obs->OnBeginFrameSourcePausedChanged(false);
179 time_source_->SetActive(true); 181 time_source_->SetActive(true);
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 frame_active_ = false; 438 frame_active_ = false;
437 439
438 BeginFrameAck ack(missed_begin_frame_args_.source_id, 440 BeginFrameAck ack(missed_begin_frame_args_.source_id,
439 missed_begin_frame_args_.sequence_number, 441 missed_begin_frame_args_.sequence_number,
440 ack_tracker_.LatestConfirmedSequenceNumber(), 442 ack_tracker_.LatestConfirmedSequenceNumber(),
441 ack_tracker_.AnyObserversHadDamage()); 443 ack_tracker_.AnyObserversHadDamage());
442 client_->OnDidFinishFrame(ack); 444 client_->OnDidFinishFrame(ack);
443 } 445 }
444 446
445 } // namespace cc 447 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698