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

Side by Side Diff: cc/tiles/tile_manager_unittest.cc

Issue 1336733002: Re-land: cc: Implement shared worker contexts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix typo in last patch Created 5 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/run_loop.h" 5 #include "base/run_loop.h"
6 #include "base/thread_task_runner_handle.h" 6 #include "base/thread_task_runner_handle.h"
7 #include "cc/playback/display_list_raster_source.h" 7 #include "cc/playback/display_list_raster_source.h"
8 #include "cc/playback/display_list_recording_source.h" 8 #include "cc/playback/display_list_recording_source.h"
9 #include "cc/resources/resource_pool.h" 9 #include "cc/resources/resource_pool.h"
10 #include "cc/test/begin_frame_args_test.h" 10 #include "cc/test/begin_frame_args_test.h"
(...skipping 28 matching lines...) Expand all
39 }; 39 };
40 40
41 class TileManagerTilePriorityQueueTest : public testing::Test { 41 class TileManagerTilePriorityQueueTest : public testing::Test {
42 public: 42 public:
43 TileManagerTilePriorityQueueTest() 43 TileManagerTilePriorityQueueTest()
44 : memory_limit_policy_(ALLOW_ANYTHING), 44 : memory_limit_policy_(ALLOW_ANYTHING),
45 max_tiles_(10000), 45 max_tiles_(10000),
46 ready_to_activate_(false), 46 ready_to_activate_(false),
47 id_(7), 47 id_(7),
48 proxy_(base::ThreadTaskRunnerHandle::Get()), 48 proxy_(base::ThreadTaskRunnerHandle::Get()),
49 output_surface_(FakeOutputSurface::Create3d()),
49 host_impl_(LowResTilingsSettings(), 50 host_impl_(LowResTilingsSettings(),
50 &proxy_, 51 &proxy_,
51 &shared_bitmap_manager_, 52 &shared_bitmap_manager_,
52 &task_graph_runner_) {} 53 &task_graph_runner_) {}
53 54
54 void SetTreePriority(TreePriority tree_priority) { 55 void SetTreePriority(TreePriority tree_priority) {
55 GlobalStateThatImpactsTilePriority state; 56 GlobalStateThatImpactsTilePriority state;
56 gfx::Size tile_size(256, 256); 57 gfx::Size tile_size(256, 256);
57 58
58 state.soft_memory_limit_in_bytes = 100 * 1000 * 1000; 59 state.soft_memory_limit_in_bytes = 100 * 1000 * 1000;
59 state.num_resources_limit = max_tiles_; 60 state.num_resources_limit = max_tiles_;
60 state.hard_memory_limit_in_bytes = state.soft_memory_limit_in_bytes * 2; 61 state.hard_memory_limit_in_bytes = state.soft_memory_limit_in_bytes * 2;
61 state.memory_limit_policy = memory_limit_policy_; 62 state.memory_limit_policy = memory_limit_policy_;
62 state.tree_priority = tree_priority; 63 state.tree_priority = tree_priority;
63 64
64 global_state_ = state; 65 global_state_ = state;
65 host_impl_.resource_pool()->SetResourceUsageLimits( 66 host_impl_.resource_pool()->SetResourceUsageLimits(
66 state.soft_memory_limit_in_bytes, 67 state.soft_memory_limit_in_bytes,
67 state.num_resources_limit); 68 state.num_resources_limit);
68 host_impl_.tile_manager()->SetGlobalStateForTesting(state); 69 host_impl_.tile_manager()->SetGlobalStateForTesting(state);
69 } 70 }
70 71
71 void SetUp() override { 72 void SetUp() override {
72 InitializeRenderer(); 73 InitializeRenderer();
73 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); 74 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES);
74 } 75 }
75 76
76 virtual void InitializeRenderer() { 77 virtual void InitializeRenderer() {
77 host_impl_.InitializeRenderer(FakeOutputSurface::Create3d()); 78 host_impl_.InitializeRenderer(output_surface_.get());
78 } 79 }
79 80
80 void SetupDefaultTrees(const gfx::Size& layer_bounds) { 81 void SetupDefaultTrees(const gfx::Size& layer_bounds) {
81 gfx::Size tile_size(100, 100); 82 gfx::Size tile_size(100, 100);
82 83
83 scoped_refptr<FakePicturePileImpl> pending_pile = 84 scoped_refptr<FakePicturePileImpl> pending_pile =
84 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 85 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
85 scoped_refptr<FakePicturePileImpl> active_pile = 86 scoped_refptr<FakePicturePileImpl> active_pile =
86 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); 87 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
87 88
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 protected: 150 protected:
150 GlobalStateThatImpactsTilePriority global_state_; 151 GlobalStateThatImpactsTilePriority global_state_;
151 152
152 TestSharedBitmapManager shared_bitmap_manager_; 153 TestSharedBitmapManager shared_bitmap_manager_;
153 TestTaskGraphRunner task_graph_runner_; 154 TestTaskGraphRunner task_graph_runner_;
154 TileMemoryLimitPolicy memory_limit_policy_; 155 TileMemoryLimitPolicy memory_limit_policy_;
155 int max_tiles_; 156 int max_tiles_;
156 bool ready_to_activate_; 157 bool ready_to_activate_;
157 int id_; 158 int id_;
158 FakeImplProxy proxy_; 159 FakeImplProxy proxy_;
160 scoped_ptr<OutputSurface> output_surface_;
159 FakeLayerTreeHostImpl host_impl_; 161 FakeLayerTreeHostImpl host_impl_;
160 FakePictureLayerImpl* pending_layer_; 162 FakePictureLayerImpl* pending_layer_;
161 FakePictureLayerImpl* active_layer_; 163 FakePictureLayerImpl* active_layer_;
162 }; 164 };
163 165
164 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { 166 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) {
165 const gfx::Size layer_bounds(1000, 1000); 167 const gfx::Size layer_bounds(1000, 1000);
166 host_impl_.SetViewportSize(layer_bounds); 168 host_impl_.SetViewportSize(layer_bounds);
167 SetupDefaultTrees(layer_bounds); 169 SetupDefaultTrees(layer_bounds);
168 170
(...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after
1416 intersecting_rect); // Eventually rect. 1418 intersecting_rect); // Eventually rect.
1417 scoped_ptr<TilingSetRasterQueueAll> queue( 1419 scoped_ptr<TilingSetRasterQueueAll> queue(
1418 new TilingSetRasterQueueAll(tiling_set.get(), false)); 1420 new TilingSetRasterQueueAll(tiling_set.get(), false));
1419 EXPECT_FALSE(queue->IsEmpty()); 1421 EXPECT_FALSE(queue->IsEmpty());
1420 } 1422 }
1421 } 1423 }
1422 1424
1423 class TileManagerTest : public testing::Test { 1425 class TileManagerTest : public testing::Test {
1424 public: 1426 public:
1425 TileManagerTest() 1427 TileManagerTest()
1426 : host_impl_(&proxy_, &shared_bitmap_manager_, &task_graph_runner_) {} 1428 : output_surface_(FakeOutputSurface::CreateSoftware(
1429 make_scoped_ptr(new SoftwareOutputDevice))),
1430 host_impl_(&proxy_, &shared_bitmap_manager_, &task_graph_runner_) {
1431 host_impl_.InitializeRenderer(output_surface_.get());
1432 }
1427 1433
1428 protected: 1434 protected:
1429 // MockLayerTreeHostImpl allows us to intercept tile manager callbacks. 1435 // MockLayerTreeHostImpl allows us to intercept tile manager callbacks.
1430 class MockLayerTreeHostImpl : public FakeLayerTreeHostImpl { 1436 class MockLayerTreeHostImpl : public FakeLayerTreeHostImpl {
1431 public: 1437 public:
1432 MockLayerTreeHostImpl(Proxy* proxy, 1438 MockLayerTreeHostImpl(Proxy* proxy,
1433 SharedBitmapManager* manager, 1439 SharedBitmapManager* manager,
1434 TaskGraphRunner* task_graph_runner) 1440 TaskGraphRunner* task_graph_runner)
1435 : FakeLayerTreeHostImpl(proxy, manager, task_graph_runner) { 1441 : FakeLayerTreeHostImpl(proxy, manager, task_graph_runner) {}
1436 InitializeRenderer(FakeOutputSurface::CreateSoftware(
1437 make_scoped_ptr(new SoftwareOutputDevice)));
1438 }
1439 1442
1440 MOCK_METHOD0(NotifyAllTileTasksCompleted, void()); 1443 MOCK_METHOD0(NotifyAllTileTasksCompleted, void());
1441 }; 1444 };
1442 1445
1443 TestSharedBitmapManager shared_bitmap_manager_; 1446 TestSharedBitmapManager shared_bitmap_manager_;
1444 TestTaskGraphRunner task_graph_runner_; 1447 TestTaskGraphRunner task_graph_runner_;
1445 FakeImplProxy proxy_; 1448 FakeImplProxy proxy_;
1449 scoped_ptr<OutputSurface> output_surface_;
1446 MockLayerTreeHostImpl host_impl_; 1450 MockLayerTreeHostImpl host_impl_;
1447 }; 1451 };
1448 1452
1449 // Test to ensure that we call NotifyAllTileTasksCompleted when PrepareTiles is 1453 // Test to ensure that we call NotifyAllTileTasksCompleted when PrepareTiles is
1450 // called. 1454 // called.
1451 TEST_F(TileManagerTest, AllWorkFinishedTest) { 1455 TEST_F(TileManagerTest, AllWorkFinishedTest) {
1452 // Check with no tile work enqueued. 1456 // Check with no tile work enqueued.
1453 { 1457 {
1454 base::RunLoop run_loop; 1458 base::RunLoop run_loop;
1455 EXPECT_FALSE(host_impl_.tile_manager()->HasScheduledTileTasksForTesting()); 1459 EXPECT_FALSE(host_impl_.tile_manager()->HasScheduledTileTasksForTesting());
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
1554 // background is not visible. 1558 // background is not visible.
1555 ASSERT_EQ(SK_ColorBLUE, bitmap->getColor(x, y)); 1559 ASSERT_EQ(SK_ColorBLUE, bitmap->getColor(x, y));
1556 } 1560 }
1557 } 1561 }
1558 } 1562 }
1559 } 1563 }
1560 } 1564 }
1561 1565
1562 } // namespace 1566 } // namespace
1563 } // namespace cc 1567 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698