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

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

Issue 1415763008: cc: Remove ThreadProxy dependency on LTHI::CurrentBeginFrameArgs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@CompositorTimingHistory2
Patch Set: 80 chars Created 5 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 unified diff | Download patch
« no previous file with comments | « cc/scheduler/scheduler.cc ('k') | cc/test/layer_tree_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/scheduler.h" 5 #include "cc/scheduler/scheduler.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 void Reset() { 56 void Reset() {
57 actions_.clear(); 57 actions_.clear();
58 states_.clear(); 58 states_.clear();
59 animate_causes_redraw_ = false; 59 animate_causes_redraw_ = false;
60 animate_causes_animate_ = false; 60 animate_causes_animate_ = false;
61 will_begin_impl_frame_requests_one_begin_impl_frame_ = false; 61 will_begin_impl_frame_requests_one_begin_impl_frame_ = false;
62 draw_will_happen_ = true; 62 draw_will_happen_ = true;
63 swap_will_happen_if_draw_happens_ = true; 63 swap_will_happen_if_draw_happens_ = true;
64 num_draws_ = 0; 64 num_draws_ = 0;
65 begin_frame_args_sent_to_children_ = BeginFrameArgs(); 65 begin_frame_args_sent_to_children_ = BeginFrameArgs();
66 last_begin_main_frame_args_ = BeginFrameArgs();
66 } 67 }
67 68
68 void set_scheduler(TestScheduler* scheduler) { scheduler_ = scheduler; } 69 void set_scheduler(TestScheduler* scheduler) { scheduler_ = scheduler; }
69 70
70 bool needs_begin_frames() { 71 bool needs_begin_frames() {
71 return scheduler_->frame_source().NeedsBeginFrames(); 72 return scheduler_->frame_source().NeedsBeginFrames();
72 } 73 }
73 int num_draws() const { return num_draws_; } 74 int num_draws() const { return num_draws_; }
74 int num_actions_() const { return static_cast<int>(actions_.size()); } 75 int num_actions_() const { return static_cast<int>(actions_.size()); }
75 const char* Action(int i) const { return actions_[i]; } 76 const char* Action(int i) const { return actions_[i]; }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 automatic_swap_ack_ = automatic_swap_ack; 109 automatic_swap_ack_ = automatic_swap_ack;
109 } 110 }
110 // SchedulerClient implementation. 111 // SchedulerClient implementation.
111 void WillBeginImplFrame(const BeginFrameArgs& args) override { 112 void WillBeginImplFrame(const BeginFrameArgs& args) override {
112 PushAction("WillBeginImplFrame"); 113 PushAction("WillBeginImplFrame");
113 if (will_begin_impl_frame_requests_one_begin_impl_frame_) 114 if (will_begin_impl_frame_requests_one_begin_impl_frame_)
114 scheduler_->SetNeedsOneBeginImplFrame(); 115 scheduler_->SetNeedsOneBeginImplFrame();
115 } 116 }
116 void DidFinishImplFrame() override {} 117 void DidFinishImplFrame() override {}
117 118
118 void ScheduledActionSendBeginMainFrame() override { 119 void ScheduledActionSendBeginMainFrame(const BeginFrameArgs& args) override {
119 PushAction("ScheduledActionSendBeginMainFrame"); 120 PushAction("ScheduledActionSendBeginMainFrame");
121 last_begin_main_frame_args_ = args;
120 } 122 }
123
124 const BeginFrameArgs& last_begin_main_frame_args() {
125 return last_begin_main_frame_args_;
126 }
127
121 void ScheduledActionAnimate() override { 128 void ScheduledActionAnimate() override {
122 PushAction("ScheduledActionAnimate"); 129 PushAction("ScheduledActionAnimate");
123 if (animate_causes_redraw_) 130 if (animate_causes_redraw_)
124 scheduler_->SetNeedsRedraw(); 131 scheduler_->SetNeedsRedraw();
125 if (animate_causes_animate_) 132 if (animate_causes_animate_)
126 scheduler_->SetNeedsAnimate(); 133 scheduler_->SetNeedsAnimate();
127 } 134 }
128 DrawResult ScheduledActionDrawAndSwapIfPossible() override { 135 DrawResult ScheduledActionDrawAndSwapIfPossible() override {
129 PushAction("ScheduledActionDrawAndSwapIfPossible"); 136 PushAction("ScheduledActionDrawAndSwapIfPossible");
130 num_draws_++; 137 num_draws_++;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 } 204 }
198 205
199 bool animate_causes_redraw_; 206 bool animate_causes_redraw_;
200 bool animate_causes_animate_; 207 bool animate_causes_animate_;
201 bool will_begin_impl_frame_requests_one_begin_impl_frame_; 208 bool will_begin_impl_frame_requests_one_begin_impl_frame_;
202 bool draw_will_happen_; 209 bool draw_will_happen_;
203 bool swap_will_happen_if_draw_happens_; 210 bool swap_will_happen_if_draw_happens_;
204 bool automatic_swap_ack_; 211 bool automatic_swap_ack_;
205 int num_draws_; 212 int num_draws_;
206 BeginFrameArgs begin_frame_args_sent_to_children_; 213 BeginFrameArgs begin_frame_args_sent_to_children_;
214 BeginFrameArgs last_begin_main_frame_args_;
207 base::TimeTicks posted_begin_impl_frame_deadline_; 215 base::TimeTicks posted_begin_impl_frame_deadline_;
208 std::vector<const char*> actions_; 216 std::vector<const char*> actions_;
209 std::vector<scoped_refptr<base::trace_event::ConvertableToTraceFormat>> 217 std::vector<scoped_refptr<base::trace_event::ConvertableToTraceFormat>>
210 states_; 218 states_;
211 TestScheduler* scheduler_; 219 TestScheduler* scheduler_;
212 }; 220 };
213 221
214 class FakeExternalBeginFrameSource : public BeginFrameSourceBase { 222 class FakeExternalBeginFrameSource : public BeginFrameSourceBase {
215 public: 223 public:
216 explicit FakeExternalBeginFrameSource(FakeSchedulerClient* client) 224 explicit FakeExternalBeginFrameSource(FakeSchedulerClient* client)
(...skipping 3261 matching lines...) Expand 10 before | Expand all | Expand 10 after
3478 3486
3479 TEST_F(SchedulerTest, ImplLatencyTakesPriority) { 3487 TEST_F(SchedulerTest, ImplLatencyTakesPriority) {
3480 SetUpScheduler(true); 3488 SetUpScheduler(true);
3481 scheduler_->SetImplLatencyTakesPriority(true); 3489 scheduler_->SetImplLatencyTakesPriority(true);
3482 EXPECT_TRUE(scheduler_->ImplLatencyTakesPriority()); 3490 EXPECT_TRUE(scheduler_->ImplLatencyTakesPriority());
3483 3491
3484 scheduler_->SetImplLatencyTakesPriority(false); 3492 scheduler_->SetImplLatencyTakesPriority(false);
3485 EXPECT_FALSE(scheduler_->ImplLatencyTakesPriority()); 3493 EXPECT_FALSE(scheduler_->ImplLatencyTakesPriority());
3486 } 3494 }
3487 3495
3488 TEST_F(SchedulerTest, BeginFrameArgs_OnCriticalPath) { 3496 TEST_F(SchedulerTest, BeginMainFrameArgs_OnCriticalPath) {
3489 scheduler_settings_.use_external_begin_frame_source = true; 3497 scheduler_settings_.use_external_begin_frame_source = true;
3490 SetUpScheduler(true); 3498 SetUpScheduler(true);
3491 3499
3492 scheduler_->SetImplLatencyTakesPriority(false); 3500 scheduler_->SetImplLatencyTakesPriority(false);
3493 scheduler_->SetChildrenNeedBeginFrames(true); 3501 scheduler_->SetNeedsBeginMainFrame();
3494 3502
3503 client_->Reset();
3504 EXPECT_FALSE(client_->last_begin_main_frame_args().IsValid());
3495 EXPECT_SCOPED(AdvanceFrame()); 3505 EXPECT_SCOPED(AdvanceFrame());
3496 EXPECT_TRUE(client_->begin_frame_is_sent_to_children()); 3506 EXPECT_TRUE(client_->last_begin_main_frame_args().IsValid());
3497 EXPECT_TRUE(client_->begin_frame_args_sent_to_children().on_critical_path); 3507 EXPECT_TRUE(client_->last_begin_main_frame_args().on_critical_path);
3498 } 3508 }
3499 3509
3500 TEST_F(SchedulerTest, BeginFrameArgs_NotOnCriticalPath) { 3510 TEST_F(SchedulerTest, BeginMainFrameArgs_NotOnCriticalPath) {
3501 scheduler_settings_.use_external_begin_frame_source = true; 3511 scheduler_settings_.use_external_begin_frame_source = true;
3502 SetUpScheduler(true); 3512 SetUpScheduler(true);
3503 3513
3504 scheduler_->SetImplLatencyTakesPriority(true); 3514 scheduler_->SetImplLatencyTakesPriority(true);
3505 scheduler_->SetChildrenNeedBeginFrames(true); 3515 scheduler_->SetNeedsBeginMainFrame();
3506 3516
3517 client_->Reset();
3518 EXPECT_FALSE(client_->last_begin_main_frame_args().IsValid());
3507 EXPECT_SCOPED(AdvanceFrame()); 3519 EXPECT_SCOPED(AdvanceFrame());
3508 EXPECT_TRUE(client_->begin_frame_is_sent_to_children()); 3520 EXPECT_TRUE(client_->last_begin_main_frame_args().IsValid());
3509 EXPECT_FALSE(client_->begin_frame_args_sent_to_children().on_critical_path); 3521 EXPECT_FALSE(client_->last_begin_main_frame_args().on_critical_path);
3510 } 3522 }
3511 3523
3512 } // namespace 3524 } // namespace
3513 } // namespace cc 3525 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler/scheduler.cc ('k') | cc/test/layer_tree_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698