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

Side by Side Diff: cc/trees/layer_tree_host_perftest.cc

Issue 628443002: replace OVERRIDE and FINAL with override and final in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase on master Created 6 years, 2 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 26 matching lines...) Expand all
37 LayerTreeHostPerfTest() 37 LayerTreeHostPerfTest()
38 : draw_timer_(kWarmupRuns, 38 : draw_timer_(kWarmupRuns,
39 base::TimeDelta::FromMilliseconds(kTimeLimitMillis), 39 base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
40 kTimeCheckInterval), 40 kTimeCheckInterval),
41 commit_timer_(0, base::TimeDelta(), 1), 41 commit_timer_(0, base::TimeDelta(), 1),
42 full_damage_each_frame_(false), 42 full_damage_each_frame_(false),
43 begin_frame_driven_drawing_(false), 43 begin_frame_driven_drawing_(false),
44 measure_commit_cost_(false) { 44 measure_commit_cost_(false) {
45 } 45 }
46 46
47 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { 47 virtual void InitializeSettings(LayerTreeSettings* settings) override {
48 settings->throttle_frame_production = false; 48 settings->throttle_frame_production = false;
49 } 49 }
50 50
51 virtual void BeginTest() OVERRIDE { 51 virtual void BeginTest() override {
52 BuildTree(); 52 BuildTree();
53 PostSetNeedsCommitToMainThread(); 53 PostSetNeedsCommitToMainThread();
54 } 54 }
55 55
56 virtual void BeginMainFrame(const BeginFrameArgs& args) OVERRIDE { 56 virtual void BeginMainFrame(const BeginFrameArgs& args) override {
57 if (begin_frame_driven_drawing_ && !TestEnded()) { 57 if (begin_frame_driven_drawing_ && !TestEnded()) {
58 layer_tree_host()->SetNeedsAnimate(); 58 layer_tree_host()->SetNeedsAnimate();
59 layer_tree_host()->SetNextCommitForcesRedraw(); 59 layer_tree_host()->SetNextCommitForcesRedraw();
60 } 60 }
61 } 61 }
62 62
63 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 63 virtual void BeginCommitOnThread(LayerTreeHostImpl* host_impl) override {
64 if (measure_commit_cost_) 64 if (measure_commit_cost_)
65 commit_timer_.Start(); 65 commit_timer_.Start();
66 } 66 }
67 67
68 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 68 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) override {
69 if (measure_commit_cost_ && draw_timer_.IsWarmedUp()) { 69 if (measure_commit_cost_ && draw_timer_.IsWarmedUp()) {
70 commit_timer_.NextLap(); 70 commit_timer_.NextLap();
71 } 71 }
72 } 72 }
73 73
74 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 74 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
75 if (TestEnded() || CleanUpStarted()) 75 if (TestEnded() || CleanUpStarted())
76 return; 76 return;
77 draw_timer_.NextLap(); 77 draw_timer_.NextLap();
78 if (draw_timer_.HasTimeLimitExpired()) { 78 if (draw_timer_.HasTimeLimitExpired()) {
79 CleanUpAndEndTest(impl); 79 CleanUpAndEndTest(impl);
80 return; 80 return;
81 } 81 }
82 if (!begin_frame_driven_drawing_) 82 if (!begin_frame_driven_drawing_)
83 impl->SetNeedsRedraw(); 83 impl->SetNeedsRedraw();
84 if (full_damage_each_frame_) 84 if (full_damage_each_frame_)
85 impl->SetFullRootLayerDamage(); 85 impl->SetFullRootLayerDamage();
86 } 86 }
87 87
88 virtual void CleanUpAndEndTest(LayerTreeHostImpl* host_impl) { EndTest(); } 88 virtual void CleanUpAndEndTest(LayerTreeHostImpl* host_impl) { EndTest(); }
89 89
90 virtual bool CleanUpStarted() { return false; } 90 virtual bool CleanUpStarted() { return false; }
91 91
92 virtual void BuildTree() {} 92 virtual void BuildTree() {}
93 93
94 virtual void AfterTest() OVERRIDE { 94 virtual void AfterTest() override {
95 CHECK(!test_name_.empty()) << "Must SetTestName() before AfterTest()."; 95 CHECK(!test_name_.empty()) << "Must SetTestName() before AfterTest().";
96 perf_test::PrintResult("layer_tree_host_frame_time", "", test_name_, 96 perf_test::PrintResult("layer_tree_host_frame_time", "", test_name_,
97 1000 * draw_timer_.MsPerLap(), "us", true); 97 1000 * draw_timer_.MsPerLap(), "us", true);
98 if (measure_commit_cost_) { 98 if (measure_commit_cost_) {
99 perf_test::PrintResult("layer_tree_host_commit_time", "", test_name_, 99 perf_test::PrintResult("layer_tree_host_commit_time", "", test_name_,
100 1000 * commit_timer_.MsPerLap(), "us", true); 100 1000 * commit_timer_.MsPerLap(), "us", true);
101 } 101 }
102 } 102 }
103 103
104 protected: 104 protected:
(...skipping 19 matching lines...) Expand all
124 test_name_ = name; 124 test_name_ = name;
125 } 125 }
126 126
127 void ReadTestFile(const std::string& name) { 127 void ReadTestFile(const std::string& name) {
128 base::FilePath test_data_dir; 128 base::FilePath test_data_dir;
129 ASSERT_TRUE(PathService::Get(CCPaths::DIR_TEST_DATA, &test_data_dir)); 129 ASSERT_TRUE(PathService::Get(CCPaths::DIR_TEST_DATA, &test_data_dir));
130 base::FilePath json_file = test_data_dir.AppendASCII(name + ".json"); 130 base::FilePath json_file = test_data_dir.AppendASCII(name + ".json");
131 ASSERT_TRUE(base::ReadFileToString(json_file, &json_)); 131 ASSERT_TRUE(base::ReadFileToString(json_file, &json_));
132 } 132 }
133 133
134 virtual void BuildTree() OVERRIDE { 134 virtual void BuildTree() override {
135 gfx::Size viewport = gfx::Size(720, 1038); 135 gfx::Size viewport = gfx::Size(720, 1038);
136 layer_tree_host()->SetViewportSize(viewport); 136 layer_tree_host()->SetViewportSize(viewport);
137 scoped_refptr<Layer> root = ParseTreeFromJson(json_, 137 scoped_refptr<Layer> root = ParseTreeFromJson(json_,
138 &fake_content_layer_client_); 138 &fake_content_layer_client_);
139 ASSERT_TRUE(root.get()); 139 ASSERT_TRUE(root.get());
140 layer_tree_host()->SetRootLayer(root); 140 layer_tree_host()->SetRootLayer(root);
141 } 141 }
142 142
143 private: 143 private:
144 std::string json_; 144 std::string json_;
(...skipping 26 matching lines...) Expand all
171 full_damage_each_frame_ = true; 171 full_damage_each_frame_ = true;
172 SetTestName("10_10_threaded_impl_side_full_damage_each_frame"); 172 SetTestName("10_10_threaded_impl_side_full_damage_each_frame");
173 ReadTestFile("10_10_layer_tree"); 173 ReadTestFile("10_10_layer_tree");
174 RunTestWithImplSidePainting(); 174 RunTestWithImplSidePainting();
175 } 175 }
176 176
177 // Invalidates a leaf layer in the tree on the main thread after every commit. 177 // Invalidates a leaf layer in the tree on the main thread after every commit.
178 class LayerTreeHostPerfTestLeafInvalidates 178 class LayerTreeHostPerfTestLeafInvalidates
179 : public LayerTreeHostPerfTestJsonReader { 179 : public LayerTreeHostPerfTestJsonReader {
180 public: 180 public:
181 virtual void BuildTree() OVERRIDE { 181 virtual void BuildTree() override {
182 LayerTreeHostPerfTestJsonReader::BuildTree(); 182 LayerTreeHostPerfTestJsonReader::BuildTree();
183 183
184 // Find a leaf layer. 184 // Find a leaf layer.
185 for (layer_to_invalidate_ = layer_tree_host()->root_layer(); 185 for (layer_to_invalidate_ = layer_tree_host()->root_layer();
186 layer_to_invalidate_->children().size(); 186 layer_to_invalidate_->children().size();
187 layer_to_invalidate_ = layer_to_invalidate_->children()[0].get()) { 187 layer_to_invalidate_ = layer_to_invalidate_->children()[0].get()) {
188 } 188 }
189 } 189 }
190 190
191 virtual void DidCommitAndDrawFrame() OVERRIDE { 191 virtual void DidCommitAndDrawFrame() override {
192 if (TestEnded()) 192 if (TestEnded())
193 return; 193 return;
194 194
195 layer_to_invalidate_->SetOpacity( 195 layer_to_invalidate_->SetOpacity(
196 layer_to_invalidate_->opacity() != 1.f ? 1.f : 0.5f); 196 layer_to_invalidate_->opacity() != 1.f ? 1.f : 0.5f);
197 } 197 }
198 198
199 protected: 199 protected:
200 Layer* layer_to_invalidate_; 200 Layer* layer_to_invalidate_;
201 }; 201 };
(...skipping 12 matching lines...) Expand all
214 RunTestWithImplSidePainting(); 214 RunTestWithImplSidePainting();
215 } 215 }
216 216
217 // Simulates main-thread scrolling on each frame. 217 // Simulates main-thread scrolling on each frame.
218 class ScrollingLayerTreePerfTest : public LayerTreeHostPerfTestJsonReader { 218 class ScrollingLayerTreePerfTest : public LayerTreeHostPerfTestJsonReader {
219 public: 219 public:
220 ScrollingLayerTreePerfTest() 220 ScrollingLayerTreePerfTest()
221 : LayerTreeHostPerfTestJsonReader() { 221 : LayerTreeHostPerfTestJsonReader() {
222 } 222 }
223 223
224 virtual void BuildTree() OVERRIDE { 224 virtual void BuildTree() override {
225 LayerTreeHostPerfTestJsonReader::BuildTree(); 225 LayerTreeHostPerfTestJsonReader::BuildTree();
226 scrollable_ = layer_tree_host()->root_layer()->children()[1]; 226 scrollable_ = layer_tree_host()->root_layer()->children()[1];
227 ASSERT_TRUE(scrollable_.get()); 227 ASSERT_TRUE(scrollable_.get());
228 } 228 }
229 229
230 virtual void Layout() OVERRIDE { 230 virtual void Layout() override {
231 if (TestEnded()) 231 if (TestEnded())
232 return; 232 return;
233 static const gfx::Vector2d delta = gfx::Vector2d(0, 10); 233 static const gfx::Vector2d delta = gfx::Vector2d(0, 10);
234 scrollable_->SetScrollOffset( 234 scrollable_->SetScrollOffset(
235 gfx::ScrollOffsetWithDelta(scrollable_->scroll_offset(), delta)); 235 gfx::ScrollOffsetWithDelta(scrollable_->scroll_offset(), delta));
236 } 236 }
237 237
238 private: 238 private:
239 scoped_refptr<Layer> scrollable_; 239 scoped_refptr<Layer> scrollable_;
240 }; 240 };
(...skipping 14 matching lines...) Expand all
255 255
256 // Simulates main-thread scrolling on each frame. 256 // Simulates main-thread scrolling on each frame.
257 class BrowserCompositorInvalidateLayerTreePerfTest 257 class BrowserCompositorInvalidateLayerTreePerfTest
258 : public LayerTreeHostPerfTestJsonReader { 258 : public LayerTreeHostPerfTestJsonReader {
259 public: 259 public:
260 BrowserCompositorInvalidateLayerTreePerfTest() 260 BrowserCompositorInvalidateLayerTreePerfTest()
261 : LayerTreeHostPerfTestJsonReader(), 261 : LayerTreeHostPerfTestJsonReader(),
262 next_sync_point_(1), 262 next_sync_point_(1),
263 clean_up_started_(false) {} 263 clean_up_started_(false) {}
264 264
265 virtual void BuildTree() OVERRIDE { 265 virtual void BuildTree() override {
266 LayerTreeHostPerfTestJsonReader::BuildTree(); 266 LayerTreeHostPerfTestJsonReader::BuildTree();
267 tab_contents_ = 267 tab_contents_ =
268 static_cast<TextureLayer*>( 268 static_cast<TextureLayer*>(
269 layer_tree_host()->root_layer()->children()[0]-> 269 layer_tree_host()->root_layer()->children()[0]->
270 children()[0]-> 270 children()[0]->
271 children()[0]-> 271 children()[0]->
272 children()[0].get()); 272 children()[0].get());
273 ASSERT_TRUE(tab_contents_.get()); 273 ASSERT_TRUE(tab_contents_.get());
274 } 274 }
275 275
276 virtual void WillCommit() OVERRIDE { 276 virtual void WillCommit() override {
277 if (CleanUpStarted()) 277 if (CleanUpStarted())
278 return; 278 return;
279 gpu::Mailbox gpu_mailbox; 279 gpu::Mailbox gpu_mailbox;
280 std::ostringstream name_stream; 280 std::ostringstream name_stream;
281 name_stream << "name" << next_sync_point_; 281 name_stream << "name" << next_sync_point_;
282 gpu_mailbox.SetName( 282 gpu_mailbox.SetName(
283 reinterpret_cast<const int8*>(name_stream.str().c_str())); 283 reinterpret_cast<const int8*>(name_stream.str().c_str()));
284 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 284 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
285 base::Bind(&EmptyReleaseCallback)); 285 base::Bind(&EmptyReleaseCallback));
286 TextureMailbox mailbox(gpu_mailbox, GL_TEXTURE_2D, next_sync_point_); 286 TextureMailbox mailbox(gpu_mailbox, GL_TEXTURE_2D, next_sync_point_);
287 next_sync_point_++; 287 next_sync_point_++;
288 288
289 tab_contents_->SetTextureMailbox(mailbox, callback.Pass()); 289 tab_contents_->SetTextureMailbox(mailbox, callback.Pass());
290 } 290 }
291 291
292 virtual void DidCommit() OVERRIDE { 292 virtual void DidCommit() override {
293 if (CleanUpStarted()) 293 if (CleanUpStarted())
294 return; 294 return;
295 layer_tree_host()->SetNeedsCommit(); 295 layer_tree_host()->SetNeedsCommit();
296 } 296 }
297 297
298 virtual void CleanUpAndEndTest(LayerTreeHostImpl* host_impl) OVERRIDE { 298 virtual void CleanUpAndEndTest(LayerTreeHostImpl* host_impl) override {
299 clean_up_started_ = true; 299 clean_up_started_ = true;
300 MainThreadTaskRunner()->PostTask( 300 MainThreadTaskRunner()->PostTask(
301 FROM_HERE, 301 FROM_HERE,
302 base::Bind(&BrowserCompositorInvalidateLayerTreePerfTest:: 302 base::Bind(&BrowserCompositorInvalidateLayerTreePerfTest::
303 CleanUpAndEndTestOnMainThread, 303 CleanUpAndEndTestOnMainThread,
304 base::Unretained(this))); 304 base::Unretained(this)));
305 } 305 }
306 306
307 void CleanUpAndEndTestOnMainThread() { 307 void CleanUpAndEndTestOnMainThread() {
308 tab_contents_->SetTextureMailbox(TextureMailbox(), 308 tab_contents_->SetTextureMailbox(TextureMailbox(),
309 scoped_ptr<SingleReleaseCallback>()); 309 scoped_ptr<SingleReleaseCallback>());
310 EndTest(); 310 EndTest();
311 } 311 }
312 312
313 virtual bool CleanUpStarted() OVERRIDE { return clean_up_started_; } 313 virtual bool CleanUpStarted() override { return clean_up_started_; }
314 314
315 private: 315 private:
316 scoped_refptr<TextureLayer> tab_contents_; 316 scoped_refptr<TextureLayer> tab_contents_;
317 unsigned next_sync_point_; 317 unsigned next_sync_point_;
318 bool clean_up_started_; 318 bool clean_up_started_;
319 }; 319 };
320 320
321 TEST_F(BrowserCompositorInvalidateLayerTreePerfTest, DenseBrowserUI) { 321 TEST_F(BrowserCompositorInvalidateLayerTreePerfTest, DenseBrowserUI) {
322 measure_commit_cost_ = true; 322 measure_commit_cost_ = true;
323 SetTestName("dense_layer_tree"); 323 SetTestName("dense_layer_tree");
324 ReadTestFile("dense_layer_tree"); 324 ReadTestFile("dense_layer_tree");
325 RunTestWithImplSidePainting(); 325 RunTestWithImplSidePainting();
326 } 326 }
327 327
328 // Simulates a page with several large, transformed and animated layers. 328 // Simulates a page with several large, transformed and animated layers.
329 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreadedImplSide) { 329 TEST_F(LayerTreeHostPerfTestJsonReader, HeavyPageThreadedImplSide) {
330 begin_frame_driven_drawing_ = true; 330 begin_frame_driven_drawing_ = true;
331 measure_commit_cost_ = true; 331 measure_commit_cost_ = true;
332 SetTestName("heavy_page"); 332 SetTestName("heavy_page");
333 ReadTestFile("heavy_layer_tree"); 333 ReadTestFile("heavy_layer_tree");
334 RunTestWithImplSidePainting(); 334 RunTestWithImplSidePainting();
335 } 335 }
336 336
337 } // namespace 337 } // namespace
338 } // namespace cc 338 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl_unittest.cc ('k') | cc/trees/layer_tree_host_pixeltest_filters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698