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

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

Issue 563523002: cc: Change LayerTreeHost unit tests to use impl painting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update more tests Created 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/synchronization/lock.h" 10 #include "base/synchronization/lock.h"
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 int num_draws_; 267 int num_draws_;
268 }; 268 };
269 269
270 MULTI_THREAD_TEST_F(LayerTreeHostTestSetNeedsRedraw); 270 MULTI_THREAD_TEST_F(LayerTreeHostTestSetNeedsRedraw);
271 271
272 // After setNeedsRedrawRect(invalid_rect) the final damage_rect 272 // After setNeedsRedrawRect(invalid_rect) the final damage_rect
273 // must contain invalid_rect. 273 // must contain invalid_rect.
274 class LayerTreeHostTestSetNeedsRedrawRect : public LayerTreeHostTest { 274 class LayerTreeHostTestSetNeedsRedrawRect : public LayerTreeHostTest {
275 public: 275 public:
276 LayerTreeHostTestSetNeedsRedrawRect() 276 LayerTreeHostTestSetNeedsRedrawRect()
277 : num_draws_(0), 277 : num_draws_(0), bounds_(50, 50), invalid_rect_(10, 10, 20, 20) {}
278 bounds_(50, 50),
279 invalid_rect_(10, 10, 20, 20),
280 root_layer_(ContentLayer::Create(&client_)) {}
281 278
282 virtual void BeginTest() OVERRIDE { 279 virtual void BeginTest() OVERRIDE {
280 if (layer_tree_host()->settings().impl_side_painting)
281 root_layer_ = FakePictureLayer::Create(&client_);
282 else
283 root_layer_ = ContentLayer::Create(&client_);
284
283 root_layer_->SetIsDrawable(true); 285 root_layer_->SetIsDrawable(true);
284 root_layer_->SetBounds(bounds_); 286 root_layer_->SetBounds(bounds_);
285 layer_tree_host()->SetRootLayer(root_layer_); 287 layer_tree_host()->SetRootLayer(root_layer_);
286 layer_tree_host()->SetViewportSize(bounds_); 288 layer_tree_host()->SetViewportSize(bounds_);
287 PostSetNeedsCommitToMainThread(); 289 PostSetNeedsCommitToMainThread();
288 } 290 }
289 291
290 virtual DrawResult PrepareToDrawOnThread( 292 virtual DrawResult PrepareToDrawOnThread(
291 LayerTreeHostImpl* host_impl, 293 LayerTreeHostImpl* host_impl,
292 LayerTreeHostImpl::FrameData* frame_data, 294 LayerTreeHostImpl::FrameData* frame_data,
(...skipping 24 matching lines...) Expand all
317 num_draws_++; 319 num_draws_++;
318 } 320 }
319 321
320 virtual void AfterTest() OVERRIDE { EXPECT_EQ(2, num_draws_); } 322 virtual void AfterTest() OVERRIDE { EXPECT_EQ(2, num_draws_); }
321 323
322 private: 324 private:
323 int num_draws_; 325 int num_draws_;
324 const gfx::Size bounds_; 326 const gfx::Size bounds_;
325 const gfx::Rect invalid_rect_; 327 const gfx::Rect invalid_rect_;
326 FakeContentLayerClient client_; 328 FakeContentLayerClient client_;
327 scoped_refptr<ContentLayer> root_layer_; 329 scoped_refptr<Layer> root_layer_;
328 }; 330 };
329 331
330 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetNeedsRedrawRect); 332 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetNeedsRedrawRect);
331 333
332 class LayerTreeHostTestNoExtraCommitFromInvalidate : public LayerTreeHostTest { 334 class LayerTreeHostTestNoExtraCommitFromInvalidate : public LayerTreeHostTest {
333 public: 335 public:
334 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { 336 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE {
335 settings->layer_transforms_should_scale_layer_contents = true; 337 settings->layer_transforms_should_scale_layer_contents = true;
336 } 338 }
337 339
338 virtual void SetupTree() OVERRIDE { 340 virtual void SetupTree() OVERRIDE {
339 root_layer_ = Layer::Create(); 341 root_layer_ = Layer::Create();
340 root_layer_->SetBounds(gfx::Size(10, 20)); 342 root_layer_->SetBounds(gfx::Size(10, 20));
341 343
342 scaled_layer_ = FakeContentLayer::Create(&client_); 344 scaled_layer_ = FakeContentLayer::Create(&client_);
danakj 2014/09/19 18:12:01 picture layer when impl side?
sohanjg 2014/09/22 09:31:18 Done.
343 scaled_layer_->SetBounds(gfx::Size(1, 1)); 345 scaled_layer_->SetBounds(gfx::Size(1, 1));
344 root_layer_->AddChild(scaled_layer_); 346 root_layer_->AddChild(scaled_layer_);
345 347
346 layer_tree_host()->SetRootLayer(root_layer_); 348 layer_tree_host()->SetRootLayer(root_layer_);
347 LayerTreeHostTest::SetupTree(); 349 LayerTreeHostTest::SetupTree();
348 } 350 }
349 351
350 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } 352 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
351 353
352 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 354 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
353 if (host_impl->active_tree()->source_frame_number() == 1) 355 if (host_impl->active_tree()->source_frame_number() == 1)
354 EndTest(); 356 EndTest();
355 } 357 }
356 358
357 virtual void DidCommit() OVERRIDE { 359 virtual void DidCommit() OVERRIDE {
358 switch (layer_tree_host()->source_frame_number()) { 360 switch (layer_tree_host()->source_frame_number()) {
359 case 1: 361 case 1:
360 // Changing the device scale factor causes a commit. It also changes 362 // Changing the device scale factor causes a commit. It also changes
361 // the content bounds of |scaled_layer_|, which should not generate 363 // the content bounds of |scaled_layer_|, which should not generate
362 // a second commit as a result. 364 // a second commit as a result.
363 layer_tree_host()->SetDeviceScaleFactor(4.f); 365 layer_tree_host()->SetDeviceScaleFactor(4.f);
danakj 2014/09/19 18:12:00 can you change the layer's bounds instead of chang
sohanjg 2014/09/22 09:31:18 Done.
364 break; 366 break;
365 default: 367 default:
366 // No extra commits. 368 // No extra commits.
367 EXPECT_EQ(2, layer_tree_host()->source_frame_number()); 369 EXPECT_EQ(2, layer_tree_host()->source_frame_number());
368 } 370 }
369 } 371 }
370 372
371 virtual void AfterTest() OVERRIDE { 373 virtual void AfterTest() OVERRIDE {
372 EXPECT_EQ(gfx::Size(4, 4).ToString(), 374 EXPECT_EQ(gfx::Size(4, 4).ToString(),
373 scaled_layer_->content_bounds().ToString()); 375 scaled_layer_->content_bounds().ToString());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 scoped_refptr<Layer> root_layer_; 438 scoped_refptr<Layer> root_layer_;
437 scoped_refptr<FakePaintedScrollbarLayer> scrollbar_; 439 scoped_refptr<FakePaintedScrollbarLayer> scrollbar_;
438 }; 440 };
439 441
440 SINGLE_AND_MULTI_THREAD_TEST_F( 442 SINGLE_AND_MULTI_THREAD_TEST_F(
441 LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate); 443 LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate);
442 444
443 class LayerTreeHostTestSetNextCommitForcesRedraw : public LayerTreeHostTest { 445 class LayerTreeHostTestSetNextCommitForcesRedraw : public LayerTreeHostTest {
444 public: 446 public:
445 LayerTreeHostTestSetNextCommitForcesRedraw() 447 LayerTreeHostTestSetNextCommitForcesRedraw()
446 : num_draws_(0), 448 : num_draws_(0), bounds_(50, 50), invalid_rect_(10, 10, 20, 20) {}
447 bounds_(50, 50),
448 invalid_rect_(10, 10, 20, 20),
449 root_layer_(ContentLayer::Create(&client_)) {}
450 449
451 virtual void BeginTest() OVERRIDE { 450 virtual void BeginTest() OVERRIDE {
451 if (layer_tree_host()->settings().impl_side_painting)
452 root_layer_ = FakePictureLayer::Create(&client_);
453 else
454 root_layer_ = ContentLayer::Create(&client_);
455
452 root_layer_->SetIsDrawable(true); 456 root_layer_->SetIsDrawable(true);
453 root_layer_->SetBounds(bounds_); 457 root_layer_->SetBounds(bounds_);
454 layer_tree_host()->SetRootLayer(root_layer_); 458 layer_tree_host()->SetRootLayer(root_layer_);
455 layer_tree_host()->SetViewportSize(bounds_); 459 layer_tree_host()->SetViewportSize(bounds_);
456 PostSetNeedsCommitToMainThread(); 460 PostSetNeedsCommitToMainThread();
457 } 461 }
458 462
459 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { 463 virtual void CommitCompleteOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
460 if (num_draws_ == 3 && host_impl->settings().impl_side_painting) 464 if (num_draws_ == 3 && host_impl->settings().impl_side_painting)
461 host_impl->SetNeedsRedrawRect(invalid_rect_); 465 host_impl->SetNeedsRedrawRect(invalid_rect_);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 num_draws_++; 523 num_draws_++;
520 } 524 }
521 525
522 virtual void AfterTest() OVERRIDE { EXPECT_EQ(5, num_draws_); } 526 virtual void AfterTest() OVERRIDE { EXPECT_EQ(5, num_draws_); }
523 527
524 private: 528 private:
525 int num_draws_; 529 int num_draws_;
526 const gfx::Size bounds_; 530 const gfx::Size bounds_;
527 const gfx::Rect invalid_rect_; 531 const gfx::Rect invalid_rect_;
528 FakeContentLayerClient client_; 532 FakeContentLayerClient client_;
529 scoped_refptr<ContentLayer> root_layer_; 533 scoped_refptr<Layer> root_layer_;
530 }; 534 };
531 535
532 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetNextCommitForcesRedraw); 536 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestSetNextCommitForcesRedraw);
533 537
534 // Tests that if a layer is not drawn because of some reason in the parent then 538 // Tests that if a layer is not drawn because of some reason in the parent then
535 // its damage is preserved until the next time it is drawn. 539 // its damage is preserved until the next time it is drawn.
536 class LayerTreeHostTestUndrawnLayersDamageLater : public LayerTreeHostTest { 540 class LayerTreeHostTestUndrawnLayersDamageLater : public LayerTreeHostTest {
537 public: 541 public:
538 LayerTreeHostTestUndrawnLayersDamageLater() 542 LayerTreeHostTestUndrawnLayersDamageLater() {}
539 : root_layer_(ContentLayer::Create(&client_)) {}
540 543
541 virtual void SetupTree() OVERRIDE { 544 virtual void SetupTree() OVERRIDE {
545 if (layer_tree_host()->settings().impl_side_painting)
546 root_layer_ = FakePictureLayer::Create(&client_);
547 else
548 root_layer_ = ContentLayer::Create(&client_);
549
542 root_layer_->SetIsDrawable(true); 550 root_layer_->SetIsDrawable(true);
543 root_layer_->SetBounds(gfx::Size(50, 50)); 551 root_layer_->SetBounds(gfx::Size(50, 50));
544 layer_tree_host()->SetRootLayer(root_layer_); 552 layer_tree_host()->SetRootLayer(root_layer_);
545 553
546 // The initially transparent layer has a larger child layer, which is 554 // The initially transparent layer has a larger child layer, which is
547 // not initially drawn because of the this (parent) layer. 555 // not initially drawn because of the this (parent) layer.
548 parent_layer_ = FakeContentLayer::Create(&client_); 556 if (layer_tree_host()->settings().impl_side_painting)
557 parent_layer_ = FakePictureLayer::Create(&client_);
558 else
559 parent_layer_ = FakeContentLayer::Create(&client_);
560
549 parent_layer_->SetBounds(gfx::Size(15, 15)); 561 parent_layer_->SetBounds(gfx::Size(15, 15));
550 parent_layer_->SetOpacity(0.0f); 562 parent_layer_->SetOpacity(0.0f);
551 root_layer_->AddChild(parent_layer_); 563 root_layer_->AddChild(parent_layer_);
552 564
553 child_layer_ = FakeContentLayer::Create(&client_); 565 if (layer_tree_host()->settings().impl_side_painting)
566 child_layer_ = FakePictureLayer::Create(&client_);
567 else
568 child_layer_ = FakeContentLayer::Create(&client_);
569
554 child_layer_->SetBounds(gfx::Size(25, 25)); 570 child_layer_->SetBounds(gfx::Size(25, 25));
555 parent_layer_->AddChild(child_layer_); 571 parent_layer_->AddChild(child_layer_);
556 572
557 LayerTreeHostTest::SetupTree(); 573 LayerTreeHostTest::SetupTree();
558 } 574 }
559 575
560 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } 576 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
561 577
562 virtual DrawResult PrepareToDrawOnThread( 578 virtual DrawResult PrepareToDrawOnThread(
563 LayerTreeHostImpl* host_impl, 579 LayerTreeHostImpl* host_impl,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 break; 625 break;
610 default: 626 default:
611 NOTREACHED(); 627 NOTREACHED();
612 } 628 }
613 } 629 }
614 630
615 virtual void AfterTest() OVERRIDE {} 631 virtual void AfterTest() OVERRIDE {}
616 632
617 private: 633 private:
618 FakeContentLayerClient client_; 634 FakeContentLayerClient client_;
619 scoped_refptr<ContentLayer> root_layer_; 635 scoped_refptr<Layer> root_layer_;
620 scoped_refptr<FakeContentLayer> parent_layer_; 636 scoped_refptr<Layer> parent_layer_;
621 scoped_refptr<FakeContentLayer> child_layer_; 637 scoped_refptr<Layer> child_layer_;
622 }; 638 };
623 639
624 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestUndrawnLayersDamageLater); 640 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestUndrawnLayersDamageLater);
625 641
626 // Tests that if a layer is not drawn because of some reason in the parent, 642 // Tests that if a layer is not drawn because of some reason in the parent,
627 // causing its content bounds to not be computed, then when it is later drawn, 643 // causing its content bounds to not be computed, then when it is later drawn,
628 // its content bounds get pushed. 644 // its content bounds get pushed.
629 class LayerTreeHostTestUndrawnLayersPushContentBoundsLater 645 class LayerTreeHostTestUndrawnLayersPushContentBoundsLater
630 : public LayerTreeHostTest { 646 : public LayerTreeHostTest {
631 public: 647 public:
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 1000
985 int paint_contents_count_; 1001 int paint_contents_count_;
986 }; 1002 };
987 1003
988 // Layer opacity change during paint should not prevent compositor resources 1004 // Layer opacity change during paint should not prevent compositor resources
989 // from being updated during commit. 1005 // from being updated during commit.
990 class LayerTreeHostTestOpacityChange : public LayerTreeHostTest { 1006 class LayerTreeHostTestOpacityChange : public LayerTreeHostTest {
991 public: 1007 public:
992 LayerTreeHostTestOpacityChange() 1008 LayerTreeHostTestOpacityChange()
993 : test_opacity_change_delegate_(), 1009 : test_opacity_change_delegate_(),
994 update_check_layer_(ContentLayerWithUpdateTracking::Create( 1010 update_check_layer_(
995 &test_opacity_change_delegate_)) { 1011 FakePictureLayer::Create(&test_opacity_change_delegate_)) {
996 test_opacity_change_delegate_.SetTestLayer(update_check_layer_.get()); 1012 test_opacity_change_delegate_.SetTestLayer(update_check_layer_.get());
997 } 1013 }
998 1014
999 virtual void BeginTest() OVERRIDE { 1015 virtual void BeginTest() OVERRIDE {
1000 layer_tree_host()->SetViewportSize(gfx::Size(10, 10)); 1016 layer_tree_host()->SetViewportSize(gfx::Size(10, 10));
1001 layer_tree_host()->root_layer()->AddChild(update_check_layer_); 1017 layer_tree_host()->root_layer()->AddChild(update_check_layer_);
1002 1018
1003 PostSetNeedsCommitToMainThread(); 1019 PostSetNeedsCommitToMainThread();
1004 } 1020 }
1005 1021
1006 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { 1022 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE {
1007 EndTest(); 1023 EndTest();
1008 } 1024 }
1009 1025
1010 virtual void AfterTest() OVERRIDE { 1026 virtual void AfterTest() OVERRIDE {
1011 // Update() should have been called once. 1027 // Update() should have been called once.
1012 EXPECT_EQ(1, update_check_layer_->PaintContentsCount()); 1028 EXPECT_EQ(1, (int)update_check_layer_->update_count());
1013 } 1029 }
1014 1030
1015 private: 1031 private:
1016 TestOpacityChangeLayerDelegate test_opacity_change_delegate_; 1032 TestOpacityChangeLayerDelegate test_opacity_change_delegate_;
1017 scoped_refptr<ContentLayerWithUpdateTracking> update_check_layer_; 1033 scoped_refptr<FakePictureLayer> update_check_layer_;
1018 }; 1034 };
1019 1035
1020 MULTI_THREAD_TEST_F(LayerTreeHostTestOpacityChange); 1036 TEST_F(LayerTreeHostTestOpacityChange,
1037 RunMultiThread_DirectRenderer_ImplSidePaint) {
1038 RunTest(true, false, true);
1039 }
1040 TEST_F(LayerTreeHostTestOpacityChange,
1041 RunMultiThread_DelegatingRenderer_ImplSidePaint) {
1042 RunTest(true, true, true);
1043 }
1021 1044
1022 class NoScaleContentLayer : public ContentLayer { 1045 class NoScalePictureLayer : public PictureLayer {
1023 public: 1046 public:
1024 static scoped_refptr<NoScaleContentLayer> Create(ContentLayerClient* client) { 1047 static scoped_refptr<NoScalePictureLayer> Create(ContentLayerClient* client) {
1025 return make_scoped_refptr(new NoScaleContentLayer(client)); 1048 return make_scoped_refptr(new NoScalePictureLayer(client));
1026 } 1049 }
1027 1050
1028 virtual void CalculateContentsScale(float ideal_contents_scale, 1051 virtual void CalculateContentsScale(float ideal_contents_scale,
1029 float* contents_scale_x, 1052 float* contents_scale_x,
1030 float* contents_scale_y, 1053 float* contents_scale_y,
1031 gfx::Size* contentBounds) OVERRIDE { 1054 gfx::Size* contentBounds) OVERRIDE {
1032 // Skip over the ContentLayer's method to the base Layer class. 1055 // Skip over the ContentLayer's method to the base Layer class.
1033 Layer::CalculateContentsScale(ideal_contents_scale, 1056 Layer::CalculateContentsScale(ideal_contents_scale,
1034 contents_scale_x, 1057 contents_scale_x,
1035 contents_scale_y, 1058 contents_scale_y,
1036 contentBounds); 1059 contentBounds);
1037 } 1060 }
1038 1061
1039 private: 1062 private:
1040 explicit NoScaleContentLayer(ContentLayerClient* client) 1063 explicit NoScalePictureLayer(ContentLayerClient* client)
1041 : ContentLayer(client) {} 1064 : PictureLayer(client) {}
1042 virtual ~NoScaleContentLayer() {} 1065 virtual ~NoScalePictureLayer() {}
1043 }; 1066 };
1044 1067
1045 class LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers 1068 class LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers
1046 : public LayerTreeHostTest { 1069 : public LayerTreeHostTest {
1047 public: 1070 public:
1048 LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers() 1071 LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers()
1049 : root_layer_(NoScaleContentLayer::Create(&client_)), 1072 : root_layer_(NoScalePictureLayer::Create(&client_)),
1050 child_layer_(ContentLayer::Create(&client_)) {} 1073 child_layer_(FakePictureLayer::Create(&client_)) {}
1051 1074
1052 virtual void BeginTest() OVERRIDE { 1075 virtual void BeginTest() OVERRIDE {
1053 layer_tree_host()->SetViewportSize(gfx::Size(60, 60)); 1076 layer_tree_host()->SetViewportSize(gfx::Size(60, 60));
1054 layer_tree_host()->SetDeviceScaleFactor(1.5); 1077 layer_tree_host()->SetDeviceScaleFactor(1.5);
1055 EXPECT_EQ(gfx::Size(60, 60), layer_tree_host()->device_viewport_size()); 1078 EXPECT_EQ(gfx::Size(60, 60), layer_tree_host()->device_viewport_size());
1056 1079
1057 root_layer_->AddChild(child_layer_); 1080 root_layer_->AddChild(child_layer_);
1058 1081
1059 root_layer_->SetIsDrawable(true); 1082 root_layer_->SetIsDrawable(true);
1060 root_layer_->SetBounds(gfx::Size(30, 30)); 1083 root_layer_->SetBounds(gfx::Size(30, 30));
(...skipping 12 matching lines...) Expand all
1073 EXPECT_EQ(0, impl->active_tree()->source_frame_number()); 1096 EXPECT_EQ(0, impl->active_tree()->source_frame_number());
1074 // Device scale factor should come over to impl. 1097 // Device scale factor should come over to impl.
1075 EXPECT_NEAR(impl->device_scale_factor(), 1.5f, 0.00001f); 1098 EXPECT_NEAR(impl->device_scale_factor(), 1.5f, 0.00001f);
1076 1099
1077 // Both layers are on impl. 1100 // Both layers are on impl.
1078 ASSERT_EQ(1u, impl->active_tree()->root_layer()->children().size()); 1101 ASSERT_EQ(1u, impl->active_tree()->root_layer()->children().size());
1079 1102
1080 // Device viewport is scaled. 1103 // Device viewport is scaled.
1081 EXPECT_EQ(gfx::Size(60, 60), impl->DrawViewportSize()); 1104 EXPECT_EQ(gfx::Size(60, 60), impl->DrawViewportSize());
1082 1105
1083 LayerImpl* root = impl->active_tree()->root_layer(); 1106 FakePictureLayerImpl* root =
1084 LayerImpl* child = impl->active_tree()->root_layer()->children()[0]; 1107 static_cast<FakePictureLayerImpl*>(impl->active_tree()->root_layer());
1108 FakePictureLayerImpl* child = static_cast<FakePictureLayerImpl*>(
1109 impl->active_tree()->root_layer()->children()[0]);
1085 1110
1086 // Positions remain in layout pixels. 1111 // Positions remain in layout pixels.
1087 EXPECT_EQ(gfx::Point(0, 0), root->position()); 1112 EXPECT_EQ(gfx::Point(0, 0), root->position());
1088 EXPECT_EQ(gfx::Point(2, 2), child->position()); 1113 EXPECT_EQ(gfx::Point(2, 2), child->position());
1089 1114
1090 // Compute all the layer transforms for the frame. 1115 // Compute all the layer transforms for the frame.
1091 LayerTreeHostImpl::FrameData frame_data; 1116 LayerTreeHostImpl::FrameData frame_data;
1092 impl->PrepareToDraw(&frame_data); 1117 impl->PrepareToDraw(&frame_data);
1093 impl->DidDrawAllLayers(frame_data); 1118 impl->DidDrawAllLayers(frame_data);
1094 1119
1095 const LayerImplList& render_surface_layer_list = 1120 const LayerImplList& render_surface_layer_list =
1096 *frame_data.render_surface_layer_list; 1121 *frame_data.render_surface_layer_list;
1097 1122
1098 // Both layers should be drawing into the root render surface. 1123 // Both layers should be drawing into the root render surface.
1099 ASSERT_EQ(1u, render_surface_layer_list.size()); 1124 ASSERT_EQ(1u, render_surface_layer_list.size());
1100 ASSERT_EQ(root->render_surface(), 1125 ASSERT_EQ(root->render_surface(),
1101 render_surface_layer_list[0]->render_surface()); 1126 render_surface_layer_list[0]->render_surface());
1102 ASSERT_EQ(2u, root->render_surface()->layer_list().size()); 1127 ASSERT_EQ(2u, root->render_surface()->layer_list().size());
1103 1128
1104 // The root render surface is the size of the viewport. 1129 // The root render surface is the size of the viewport.
1105 EXPECT_RECT_EQ(gfx::Rect(0, 0, 60, 60), 1130 EXPECT_RECT_EQ(gfx::Rect(0, 0, 60, 60),
1106 root->render_surface()->content_rect()); 1131 root->render_surface()->content_rect());
1107 1132
1108 // The content bounds of the child should be scaled. 1133 // The max tiling scale of the child should be scaled.
1109 gfx::Size child_bounds_scaled = 1134 EXPECT_EQ(1.5, child->MaximumTilingContentsScale());
1110 gfx::ToCeiledSize(gfx::ScaleSize(child->bounds(), 1.5));
1111 EXPECT_EQ(child_bounds_scaled, child->content_bounds());
1112 1135
1113 gfx::Transform scale_transform; 1136 gfx::Transform scale_transform;
1114 scale_transform.Scale(impl->device_scale_factor(), 1137
1115 impl->device_scale_factor()); 1138 scale_transform.Scale(child->MaximumTilingContentsScale(),
1139 child->MaximumTilingContentsScale());
1116 1140
1117 // The root layer is scaled by 2x. 1141 // The root layer is scaled by 2x.
1118 gfx::Transform root_screen_space_transform = scale_transform; 1142 gfx::Transform root_screen_space_transform = scale_transform;
1119 gfx::Transform root_draw_transform = scale_transform; 1143 gfx::Transform root_draw_transform = scale_transform;
1120 1144
1121 EXPECT_EQ(root_draw_transform, root->draw_transform()); 1145 EXPECT_EQ(root_draw_transform, root->draw_transform());
1122 EXPECT_EQ(root_screen_space_transform, root->screen_space_transform()); 1146 EXPECT_EQ(root_screen_space_transform, root->screen_space_transform());
1123 1147
1124 // The child is at position 2,2, which is transformed to 3,3 after the scale 1148 // The child is at position 2,2, which is transformed to 3,3 after the scale
1125 gfx::Transform child_screen_space_transform; 1149 gfx::Transform child_transform;
1126 child_screen_space_transform.Translate(3.f, 3.f); 1150 child_transform.Translate(3.f, 3.f);
1127 gfx::Transform child_draw_transform = child_screen_space_transform;
1128 1151
1129 EXPECT_TRANSFORMATION_MATRIX_EQ(child_draw_transform, 1152 child_transform.Scale(child->MaximumTilingContentsScale(),
1130 child->draw_transform()); 1153 child->MaximumTilingContentsScale());
1131 EXPECT_TRANSFORMATION_MATRIX_EQ(child_screen_space_transform, 1154
1155 EXPECT_TRANSFORMATION_MATRIX_EQ(child_transform, child->draw_transform());
1156 EXPECT_TRANSFORMATION_MATRIX_EQ(child_transform,
1132 child->screen_space_transform()); 1157 child->screen_space_transform());
1133 1158
1134 EndTest(); 1159 EndTest();
1135 } 1160 }
1136 1161
1137 virtual void AfterTest() OVERRIDE {} 1162 virtual void AfterTest() OVERRIDE {}
1138 1163
1139 private: 1164 private:
1140 FakeContentLayerClient client_; 1165 FakeContentLayerClient client_;
1141 scoped_refptr<NoScaleContentLayer> root_layer_; 1166 scoped_refptr<NoScalePictureLayer> root_layer_;
1142 scoped_refptr<ContentLayer> child_layer_; 1167 scoped_refptr<FakePictureLayer> child_layer_;
1143 }; 1168 };
1144 1169
1145 MULTI_THREAD_TEST_F(LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers); 1170 TEST_F(LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers,
1171 RunMultiThread_DirectRenderer_ImplSidePaint) {
1172 RunTest(true, false, true);
1173 }
1174 TEST_F(LayerTreeHostTestDeviceScaleFactorScalesViewportAndLayers,
1175 RunMultiThread_DelegatingRenderer_ImplSidePaint) {
1176 RunTest(true, true, true);
1177 }
1178
1179 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere.
1146 1180
danakj 2014/09/19 18:12:01 remove this blank line so the comment is attached
sohanjg 2014/09/22 09:31:18 Done.
1147 // Verify atomicity of commits and reuse of textures. 1181 // Verify atomicity of commits and reuse of textures.
1148 class LayerTreeHostTestDirectRendererAtomicCommit : public LayerTreeHostTest { 1182 class LayerTreeHostTestDirectRendererAtomicCommit : public LayerTreeHostTest {
1149 public: 1183 public:
1150 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { 1184 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE {
1151 settings->texture_id_allocation_chunk_size = 1; 1185 settings->texture_id_allocation_chunk_size = 1;
1152 // Make sure partial texture updates are turned off. 1186 // Make sure partial texture updates are turned off.
1153 settings->max_partial_texture_updates = 0; 1187 settings->max_partial_texture_updates = 0;
1154 // Linear fade animator prevents scrollbars from drawing immediately. 1188 // Linear fade animator prevents scrollbars from drawing immediately.
1155 settings->scrollbar_animator = LayerTreeSettings::NoAnimator; 1189 settings->scrollbar_animator = LayerTreeSettings::NoAnimator;
1156 } 1190 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 protected: 1279 protected:
1246 FakeContentLayerClient client_; 1280 FakeContentLayerClient client_;
1247 scoped_refptr<FakeContentLayer> layer_; 1281 scoped_refptr<FakeContentLayer> layer_;
1248 scoped_refptr<FakePaintedScrollbarLayer> scrollbar_; 1282 scoped_refptr<FakePaintedScrollbarLayer> scrollbar_;
1249 int drew_frame_; 1283 int drew_frame_;
1250 }; 1284 };
1251 1285
1252 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F( 1286 MULTI_THREAD_DIRECT_RENDERER_NOIMPL_TEST_F(
1253 LayerTreeHostTestDirectRendererAtomicCommit); 1287 LayerTreeHostTestDirectRendererAtomicCommit);
1254 1288
1289 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere.
1255 class LayerTreeHostTestDelegatingRendererAtomicCommit 1290 class LayerTreeHostTestDelegatingRendererAtomicCommit
1256 : public LayerTreeHostTestDirectRendererAtomicCommit { 1291 : public LayerTreeHostTestDirectRendererAtomicCommit {
1257 public: 1292 public:
1258 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* impl) OVERRIDE { 1293 virtual void DidActivateTreeOnThread(LayerTreeHostImpl* impl) OVERRIDE {
1259 ASSERT_EQ(0u, layer_tree_host()->settings().max_partial_texture_updates); 1294 ASSERT_EQ(0u, layer_tree_host()->settings().max_partial_texture_updates);
1260 1295
1261 TestWebGraphicsContext3D* context = TestContext(); 1296 TestWebGraphicsContext3D* context = TestContext();
1262 1297
1263 switch (impl->active_tree()->source_frame_number()) { 1298 switch (impl->active_tree()->source_frame_number()) {
1264 case 0: 1299 case 0:
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1312 layer->RemoveAllChildren(); 1347 layer->RemoveAllChildren();
1313 if (parent) 1348 if (parent)
1314 parent->AddChild(layer); 1349 parent->AddChild(layer);
1315 layer->SetTransform(transform); 1350 layer->SetTransform(transform);
1316 layer->SetTransformOrigin(transform_origin); 1351 layer->SetTransformOrigin(transform_origin);
1317 layer->SetPosition(position); 1352 layer->SetPosition(position);
1318 layer->SetBounds(bounds); 1353 layer->SetBounds(bounds);
1319 layer->SetContentsOpaque(opaque); 1354 layer->SetContentsOpaque(opaque);
1320 } 1355 }
1321 1356
1357 // TODO(sohanjg) : Remove it once impl-side painting ships everywhere.
1322 class LayerTreeHostTestAtomicCommitWithPartialUpdate 1358 class LayerTreeHostTestAtomicCommitWithPartialUpdate
1323 : public LayerTreeHostTest { 1359 : public LayerTreeHostTest {
1324 public: 1360 public:
1325 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE { 1361 virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE {
1326 settings->texture_id_allocation_chunk_size = 1; 1362 settings->texture_id_allocation_chunk_size = 1;
1327 // Allow one partial texture update. 1363 // Allow one partial texture update.
1328 settings->max_partial_texture_updates = 1; 1364 settings->max_partial_texture_updates = 1;
1329 // No partial updates when impl side painting is enabled. 1365 // No partial updates when impl side painting is enabled.
1330 settings->impl_side_painting = false; 1366 settings->impl_side_painting = false;
1331 } 1367 }
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
1485 private: 1521 private:
1486 FakeContentLayerClient client_; 1522 FakeContentLayerClient client_;
1487 scoped_refptr<FakeContentLayer> parent_; 1523 scoped_refptr<FakeContentLayer> parent_;
1488 scoped_refptr<FakeContentLayer> child_; 1524 scoped_refptr<FakeContentLayer> child_;
1489 }; 1525 };
1490 1526
1491 // Partial updates are not possible with a delegating renderer. 1527 // Partial updates are not possible with a delegating renderer.
1492 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F( 1528 SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
1493 LayerTreeHostTestAtomicCommitWithPartialUpdate); 1529 LayerTreeHostTestAtomicCommitWithPartialUpdate);
1494 1530
1495 class LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit 1531 class LayerTreeHostTestSurfaceNotAllocatedForLayersOutsideMemoryLimit
sohanjg 2014/09/15 10:38:39 Do we change this for impl-side? i think this deal
danakj 2014/09/15 15:23:43 This deals with surface memory management, which i
sohanjg 2014/09/17 07:27:43 Yes, right. But, to make sure that no surface is
danakj 2014/09/19 18:12:01 It's true, but that's a no-op when implside is on,
1496 : public LayerTreeHostTest { 1532 : public LayerTreeHostTest {
1497 protected: 1533 protected:
1498 virtual void SetupTree() OVERRIDE { 1534 virtual void SetupTree() OVERRIDE {
1499 root_layer_ = FakeContentLayer::Create(&client_); 1535 root_layer_ = FakeContentLayer::Create(&client_);
1500 root_layer_->SetBounds(gfx::Size(100, 100)); 1536 root_layer_->SetBounds(gfx::Size(100, 100));
1501 1537
1502 surface_layer1_ = FakeContentLayer::Create(&client_); 1538 surface_layer1_ = FakeContentLayer::Create(&client_);
1503 surface_layer1_->SetBounds(gfx::Size(100, 100)); 1539 surface_layer1_->SetBounds(gfx::Size(100, 100));
1504 surface_layer1_->SetForceRenderSurface(true); 1540 surface_layer1_->SetForceRenderSurface(true);
1505 surface_layer1_->SetOpacity(0.5f); 1541 surface_layer1_->SetOpacity(0.5f);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 EXPECT_TRUE( 1580 EXPECT_TRUE(
1545 renderer->HasAllocatedResourcesForTesting(surface2_render_pass_id)); 1581 renderer->HasAllocatedResourcesForTesting(surface2_render_pass_id));
1546 1582
1547 // Reduce the memory limit to only fit the root layer and one render 1583 // Reduce the memory limit to only fit the root layer and one render
1548 // surface. This prevents any contents drawing into surfaces 1584 // surface. This prevents any contents drawing into surfaces
1549 // from being allocated. 1585 // from being allocated.
1550 host_impl->SetMemoryPolicy(ManagedMemoryPolicy(100 * 100 * 4 * 2)); 1586 host_impl->SetMemoryPolicy(ManagedMemoryPolicy(100 * 100 * 4 * 2));
1551 break; 1587 break;
1552 case 1: 1588 case 1:
1553 EXPECT_FALSE( 1589 EXPECT_FALSE(
1554 renderer->HasAllocatedResourcesForTesting(surface1_render_pass_id)); 1590 renderer->HasAllocatedResourcesForTesting(surface1_render_pass_id));
sohanjg 2014/09/22 09:31:18 If we test this for impl-side paint, this resource
danakj 2014/09/22 14:48:21 Change the layers to not draw solid color, you can
sohanjg 2014/09/23 11:46:45 Even if we draw non solid color, the passes are st
sohanjg 2014/10/13 09:09:19 Can you please give your feedback on this ?
danakj 2014/10/14 18:10:21 OK I'm pretty confused what is different here in n
1555 EXPECT_FALSE( 1591 EXPECT_FALSE(
1556 renderer->HasAllocatedResourcesForTesting(surface2_render_pass_id)); 1592 renderer->HasAllocatedResourcesForTesting(surface2_render_pass_id));
1557 1593
1558 EndTest(); 1594 EndTest();
1559 break; 1595 break;
1560 } 1596 }
1561 } 1597 }
1562 1598
1563 virtual void DidCommitAndDrawFrame() OVERRIDE { 1599 virtual void DidCommitAndDrawFrame() OVERRIDE {
1564 if (layer_tree_host()->source_frame_number() < 2) 1600 if (layer_tree_host()->source_frame_number() < 2)
1565 root_layer_->SetNeedsDisplay(); 1601 root_layer_->SetNeedsDisplay();
1566 } 1602 }
1567 1603
1568 virtual void AfterTest() OVERRIDE { 1604 virtual void AfterTest() OVERRIDE {
1569 EXPECT_LE(2u, root_layer_->update_count()); 1605 EXPECT_LE(2u, root_layer_->update_count());
sohanjg 2014/09/22 09:31:19 update_count() is only present in Fake layers. If
danakj 2014/09/22 14:48:21 I don't understand the question. FakePictureLayer
sohanjg 2014/09/22 14:54:36 Let me rephrase it, if we make root/surface/replic
danakj 2014/09/22 14:58:45 Oh, then have a FakeContentLayer and a FakePicture
sohanjg 2014/09/23 11:46:45 Yea, if we make FakePictureLayer and FakeContentLa
1570 EXPECT_LE(2u, surface_layer1_->update_count()); 1606 EXPECT_LE(2u, surface_layer1_->update_count());
1571 EXPECT_LE(2u, surface_layer2_->update_count()); 1607 EXPECT_LE(2u, surface_layer2_->update_count());
1572 } 1608 }
1573 1609
1574 FakeContentLayerClient client_; 1610 FakeContentLayerClient client_;
1575 scoped_refptr<FakeContentLayer> root_layer_; 1611 scoped_refptr<FakeContentLayer> root_layer_;
1576 scoped_refptr<FakeContentLayer> surface_layer1_; 1612 scoped_refptr<FakeContentLayer> surface_layer1_;
1577 scoped_refptr<FakeContentLayer> replica_layer1_; 1613 scoped_refptr<FakeContentLayer> replica_layer1_;
1578 scoped_refptr<FakeContentLayer> surface_layer2_; 1614 scoped_refptr<FakeContentLayer> surface_layer2_;
1579 scoped_refptr<FakeContentLayer> replica_layer2_; 1615 scoped_refptr<FakeContentLayer> replica_layer2_;
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1808 1844
1809 class LayerTreeHostTestContinuousInvalidate : public LayerTreeHostTest { 1845 class LayerTreeHostTestContinuousInvalidate : public LayerTreeHostTest {
1810 public: 1846 public:
1811 LayerTreeHostTestContinuousInvalidate() 1847 LayerTreeHostTestContinuousInvalidate()
1812 : num_commit_complete_(0), num_draw_layers_(0) {} 1848 : num_commit_complete_(0), num_draw_layers_(0) {}
1813 1849
1814 virtual void BeginTest() OVERRIDE { 1850 virtual void BeginTest() OVERRIDE {
1815 layer_tree_host()->SetViewportSize(gfx::Size(10, 10)); 1851 layer_tree_host()->SetViewportSize(gfx::Size(10, 10));
1816 layer_tree_host()->root_layer()->SetBounds(gfx::Size(10, 10)); 1852 layer_tree_host()->root_layer()->SetBounds(gfx::Size(10, 10));
1817 1853
1818 content_layer_ = ContentLayer::Create(&client_); 1854 picture_layer_ = FakePictureLayer::Create(&client_);
1819 content_layer_->SetBounds(gfx::Size(10, 10)); 1855 picture_layer_->SetBounds(gfx::Size(10, 10));
1820 content_layer_->SetPosition(gfx::PointF(0.f, 0.f)); 1856 picture_layer_->SetPosition(gfx::PointF(0.f, 0.f));
1821 content_layer_->SetIsDrawable(true); 1857 picture_layer_->SetIsDrawable(true);
1822 layer_tree_host()->root_layer()->AddChild(content_layer_); 1858 layer_tree_host()->root_layer()->AddChild(picture_layer_);
1823 1859
1824 PostSetNeedsCommitToMainThread(); 1860 PostSetNeedsCommitToMainThread();
1825 } 1861 }
1826 1862
1827 virtual void DidCommitAndDrawFrame() OVERRIDE { 1863 virtual void DidCommitAndDrawFrame() OVERRIDE {
1828 if (num_draw_layers_ == 2) 1864 if (num_draw_layers_ == 2)
1829 return; 1865 return;
1830 content_layer_->SetNeedsDisplay(); 1866 picture_layer_->SetNeedsDisplay();
1831 } 1867 }
1832 1868
1833 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { 1869 virtual void CommitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE {
1834 if (num_draw_layers_ == 1) 1870 if (num_draw_layers_ == 1)
1835 num_commit_complete_++; 1871 num_commit_complete_++;
1836 } 1872 }
1837 1873
1838 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 1874 virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
1839 num_draw_layers_++; 1875 num_draw_layers_++;
1840 if (num_draw_layers_ == 2) 1876 if (num_draw_layers_ == 2)
1841 EndTest(); 1877 EndTest();
1842 } 1878 }
1843 1879
1844 virtual void AfterTest() OVERRIDE { 1880 virtual void AfterTest() OVERRIDE {
1845 // Check that we didn't commit twice between first and second draw. 1881 // Check that we didn't commit twice between first and second draw.
1846 EXPECT_EQ(1, num_commit_complete_); 1882 EXPECT_EQ(1, num_commit_complete_);
1847 } 1883 }
1848 1884
1849 private: 1885 private:
1850 FakeContentLayerClient client_; 1886 FakeContentLayerClient client_;
1851 scoped_refptr<Layer> content_layer_; 1887 scoped_refptr<Layer> picture_layer_;
1852 int num_commit_complete_; 1888 int num_commit_complete_;
1853 int num_draw_layers_; 1889 int num_draw_layers_;
1854 }; 1890 };
1855 1891
1856 MULTI_THREAD_NOIMPL_TEST_F(LayerTreeHostTestContinuousInvalidate); 1892 TEST_F(LayerTreeHostTestContinuousInvalidate,
danakj 2014/09/19 18:12:01 you can just use IMPL instead of NOIMPL in this ma
sohanjg 2014/09/22 09:31:18 Done.
1893 RunMultiThread_DirectRenderer_ImplSidePaint) {
1894 RunTest(true, false, true);
1895 }
1896 TEST_F(LayerTreeHostTestContinuousInvalidate,
1897 RunMultiThread_DelegatingRenderer_ImplSidePaint) {
1898 RunTest(true, true, true);
1899 }
1857 1900
1858 class LayerTreeHostTestDeferCommits : public LayerTreeHostTest { 1901 class LayerTreeHostTestDeferCommits : public LayerTreeHostTest {
1859 public: 1902 public:
1860 LayerTreeHostTestDeferCommits() 1903 LayerTreeHostTestDeferCommits()
1861 : num_commits_deferred_(0), num_complete_commits_(0) {} 1904 : num_commits_deferred_(0), num_complete_commits_(0) {}
1862 1905
1863 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } 1906 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
1864 1907
1865 virtual void DidDeferCommit() OVERRIDE { 1908 virtual void DidDeferCommit() OVERRIDE {
1866 num_commits_deferred_++; 1909 num_commits_deferred_++;
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 LayerTreeHost::CreateSingleThreaded(&client, 2079 LayerTreeHost::CreateSingleThreaded(&client,
2037 &client, 2080 &client,
2038 shared_bitmap_manager.get(), 2081 shared_bitmap_manager.get(),
2039 settings, 2082 settings,
2040 base::MessageLoopProxy::current()); 2083 base::MessageLoopProxy::current());
2041 host->Composite(base::TimeTicks::Now()); 2084 host->Composite(base::TimeTicks::Now());
2042 2085
2043 EXPECT_EQ(0u, host->MaxPartialTextureUpdates()); 2086 EXPECT_EQ(0u, host->MaxPartialTextureUpdates());
2044 } 2087 }
2045 2088
2046 class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted 2089 class LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted
sohanjg 2014/09/15 10:38:39 Same, Do we change this for impl-side?
danakj 2014/09/15 15:23:43 This one I agree doesn't make sense with impl-side
danakj 2014/09/19 18:12:01 TODO to remove it.
sohanjg 2014/09/22 09:31:19 Done.
2047 : public LayerTreeHostTest { 2090 : public LayerTreeHostTest {
2048 public: 2091 public:
2049 LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted() 2092 LayerTreeHostTestShutdownWithOnlySomeResourcesEvicted()
2050 : root_layer_(FakeContentLayer::Create(&client_)), 2093 : root_layer_(FakeContentLayer::Create(&client_)),
2051 child_layer1_(FakeContentLayer::Create(&client_)), 2094 child_layer1_(FakeContentLayer::Create(&client_)),
2052 child_layer2_(FakeContentLayer::Create(&client_)), 2095 child_layer2_(FakeContentLayer::Create(&client_)),
2053 num_commits_(0) {} 2096 num_commits_(0) {}
2054 2097
2055 virtual void BeginTest() OVERRIDE { 2098 virtual void BeginTest() OVERRIDE {
2056 layer_tree_host()->SetViewportSize(gfx::Size(100, 100)); 2099 layer_tree_host()->SetViewportSize(gfx::Size(100, 100));
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
2397 2440
2398 virtual bool FillsBoundsCompletely() const OVERRIDE { return false; } 2441 virtual bool FillsBoundsCompletely() const OVERRIDE { return false; }
2399 2442
2400 private: 2443 private:
2401 Layer* layer_; 2444 Layer* layer_;
2402 }; 2445 };
2403 2446
2404 LayerTreeHostTestChangeLayerPropertiesInPaintContents() : num_commits_(0) {} 2447 LayerTreeHostTestChangeLayerPropertiesInPaintContents() : num_commits_(0) {}
2405 2448
2406 virtual void SetupTree() OVERRIDE { 2449 virtual void SetupTree() OVERRIDE {
2407 scoped_refptr<ContentLayer> root_layer = ContentLayer::Create(&client_); 2450 scoped_refptr<ContentLayer> root_layer = ContentLayer::Create(&client_);
danakj 2014/09/19 18:12:01 missed this?
2408 root_layer->SetIsDrawable(true); 2451 root_layer->SetIsDrawable(true);
2409 root_layer->SetBounds(gfx::Size(1, 1)); 2452 root_layer->SetBounds(gfx::Size(1, 1));
2410 2453
2411 layer_tree_host()->SetRootLayer(root_layer); 2454 layer_tree_host()->SetRootLayer(root_layer);
2412 client_.set_layer(root_layer.get()); 2455 client_.set_layer(root_layer.get());
2413 2456
2414 LayerTreeHostTest::SetupTree(); 2457 LayerTreeHostTest::SetupTree();
2415 } 2458 }
2416 2459
2417 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } 2460 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
(...skipping 1933 matching lines...) Expand 10 before | Expand all | Expand 10 after
4351 output_surface->SetMemoryPolicyToSetAtBind( 4394 output_surface->SetMemoryPolicyToSetAtBind(
4352 make_scoped_ptr(new ManagedMemoryPolicy( 4395 make_scoped_ptr(new ManagedMemoryPolicy(
4353 second_context_provider_.get() ? second_output_surface_memory_limit_ 4396 second_context_provider_.get() ? second_output_surface_memory_limit_
4354 : first_output_surface_memory_limit_, 4397 : first_output_surface_memory_limit_,
4355 gpu::MemoryAllocation::CUTOFF_ALLOW_NICE_TO_HAVE, 4398 gpu::MemoryAllocation::CUTOFF_ALLOW_NICE_TO_HAVE,
4356 ManagedMemoryPolicy::kDefaultNumResourcesLimit))); 4399 ManagedMemoryPolicy::kDefaultNumResourcesLimit)));
4357 return output_surface.Pass(); 4400 return output_surface.Pass();
4358 } 4401 }
4359 4402
4360 virtual void SetupTree() OVERRIDE { 4403 virtual void SetupTree() OVERRIDE {
4361 root_ = FakeContentLayer::Create(&client_); 4404 root_ = FakePictureLayer::Create(&client_);
4362 root_->SetBounds(gfx::Size(20, 20)); 4405 root_->SetBounds(gfx::Size(20, 20));
4363 layer_tree_host()->SetRootLayer(root_); 4406 layer_tree_host()->SetRootLayer(root_);
4364 LayerTreeHostTest::SetupTree(); 4407 LayerTreeHostTest::SetupTree();
4365 } 4408 }
4366 4409
4367 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } 4410 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
4368 4411
4369 virtual void DidCommitAndDrawFrame() OVERRIDE { 4412 virtual void DidCommitAndDrawFrame() OVERRIDE {
4370 // Lost context sometimes takes two frames to recreate. The third frame 4413 // Lost context sometimes takes two frames to recreate. The third frame
4371 // is sometimes aborted, so wait until the fourth frame to verify that 4414 // is sometimes aborted, so wait until the fourth frame to verify that
(...skipping 22 matching lines...) Expand all
4394 } 4437 }
4395 } 4438 }
4396 4439
4397 virtual void AfterTest() OVERRIDE {} 4440 virtual void AfterTest() OVERRIDE {}
4398 4441
4399 scoped_refptr<TestContextProvider> first_context_provider_; 4442 scoped_refptr<TestContextProvider> first_context_provider_;
4400 scoped_refptr<TestContextProvider> second_context_provider_; 4443 scoped_refptr<TestContextProvider> second_context_provider_;
4401 size_t first_output_surface_memory_limit_; 4444 size_t first_output_surface_memory_limit_;
4402 size_t second_output_surface_memory_limit_; 4445 size_t second_output_surface_memory_limit_;
4403 FakeContentLayerClient client_; 4446 FakeContentLayerClient client_;
4404 scoped_refptr<FakeContentLayer> root_; 4447 scoped_refptr<FakePictureLayer> root_;
4405 }; 4448 };
4406 4449
4407 // No output to copy for delegated renderers. 4450 // No output to copy for delegated renderers.
danakj 2014/09/19 18:12:01 this comment looks out of date, can you remove it?
4408 SINGLE_AND_MULTI_THREAD_TEST_F( 4451 TEST_F(LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface,
danakj 2014/09/19 18:12:01 just put IMPL in this macro. you're missing some c
sohanjg 2014/09/22 09:31:19 Done.
4409 LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface); 4452 RunMultiThread_DirectRenderer_ImplSidePaint) {
4453 RunTest(true, false, true);
4454 }
4455 TEST_F(LayerTreeHostTestSetMemoryPolicyOnLostOutputSurface,
4456 RunMultiThread_DelegatingRenderer_ImplSidePaint) {
4457 RunTest(true, true, true);
4458 }
4410 4459
4411 struct TestSwapPromiseResult { 4460 struct TestSwapPromiseResult {
4412 TestSwapPromiseResult() 4461 TestSwapPromiseResult()
4413 : did_swap_called(false), 4462 : did_swap_called(false),
4414 did_not_swap_called(false), 4463 did_not_swap_called(false),
4415 dtor_called(false), 4464 dtor_called(false),
4416 reason(SwapPromise::DID_NOT_SWAP_UNKNOWN) {} 4465 reason(SwapPromise::DID_NOT_SWAP_UNKNOWN) {}
4417 4466
4418 bool did_swap_called; 4467 bool did_swap_called;
4419 bool did_not_swap_called; 4468 bool did_not_swap_called;
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
5034 const gfx::Size bounds_; 5083 const gfx::Size bounds_;
5035 FakeContentLayerClient client_; 5084 FakeContentLayerClient client_;
5036 scoped_refptr<ContentLayerWithUpdateTracking> content_layer_; 5085 scoped_refptr<ContentLayerWithUpdateTracking> content_layer_;
5037 scoped_refptr<FakePictureLayer> picture_layer_; 5086 scoped_refptr<FakePictureLayer> picture_layer_;
5038 Layer* child_layer_; 5087 Layer* child_layer_;
5039 }; 5088 };
5040 5089
5041 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting); 5090 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting);
5042 5091
5043 } // namespace cc 5092 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698