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

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

Issue 1365793003: cc: Re-enable disabled tile manager unittests (plus fixes) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « cc/test/fake_layer_tree_host_impl.cc ('k') | 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 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"
11 #include "cc/test/fake_display_list_raster_source.h" 11 #include "cc/test/fake_display_list_raster_source.h"
12 #include "cc/test/fake_display_list_recording_source.h" 12 #include "cc/test/fake_display_list_recording_source.h"
13 #include "cc/test/fake_impl_proxy.h" 13 #include "cc/test/fake_impl_proxy.h"
14 #include "cc/test/fake_layer_tree_host_impl.h" 14 #include "cc/test/fake_layer_tree_host_impl.h"
15 #include "cc/test/fake_output_surface.h" 15 #include "cc/test/fake_output_surface.h"
16 #include "cc/test/fake_output_surface_client.h" 16 #include "cc/test/fake_output_surface_client.h"
17 #include "cc/test/fake_picture_layer_impl.h" 17 #include "cc/test/fake_picture_layer_impl.h"
18 #include "cc/test/fake_picture_layer_tiling_client.h" 18 #include "cc/test/fake_picture_layer_tiling_client.h"
19 #include "cc/test/fake_tile_manager.h" 19 #include "cc/test/fake_tile_manager.h"
20 #include "cc/test/test_gpu_memory_buffer_manager.h"
20 #include "cc/test/test_shared_bitmap_manager.h" 21 #include "cc/test/test_shared_bitmap_manager.h"
21 #include "cc/test/test_task_graph_runner.h" 22 #include "cc/test/test_task_graph_runner.h"
22 #include "cc/test/test_tile_priorities.h" 23 #include "cc/test/test_tile_priorities.h"
23 #include "cc/tiles/eviction_tile_priority_queue.h" 24 #include "cc/tiles/eviction_tile_priority_queue.h"
24 #include "cc/tiles/raster_tile_priority_queue.h" 25 #include "cc/tiles/raster_tile_priority_queue.h"
25 #include "cc/tiles/tile.h" 26 #include "cc/tiles/tile.h"
26 #include "cc/tiles/tile_priority.h" 27 #include "cc/tiles/tile_priority.h"
27 #include "cc/tiles/tiling_set_raster_queue_all.h" 28 #include "cc/tiles/tiling_set_raster_queue_all.h"
28 #include "cc/trees/layer_tree_impl.h" 29 #include "cc/trees/layer_tree_impl.h"
29 #include "testing/gmock/include/gmock/gmock.h" 30 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 13 matching lines...) Expand all
43 TileManagerTilePriorityQueueTest() 44 TileManagerTilePriorityQueueTest()
44 : memory_limit_policy_(ALLOW_ANYTHING), 45 : memory_limit_policy_(ALLOW_ANYTHING),
45 max_tiles_(10000), 46 max_tiles_(10000),
46 ready_to_activate_(false), 47 ready_to_activate_(false),
47 id_(7), 48 id_(7),
48 proxy_(base::ThreadTaskRunnerHandle::Get()), 49 proxy_(base::ThreadTaskRunnerHandle::Get()),
49 output_surface_(FakeOutputSurface::Create3d()), 50 output_surface_(FakeOutputSurface::Create3d()),
50 host_impl_(LowResTilingsSettings(), 51 host_impl_(LowResTilingsSettings(),
51 &proxy_, 52 &proxy_,
52 &shared_bitmap_manager_, 53 &shared_bitmap_manager_,
53 &task_graph_runner_) {} 54 &task_graph_runner_,
55 &gpu_memory_buffer_manager_) {}
54 56
55 void SetTreePriority(TreePriority tree_priority) { 57 void SetTreePriority(TreePriority tree_priority) {
56 GlobalStateThatImpactsTilePriority state; 58 GlobalStateThatImpactsTilePriority state;
57 gfx::Size tile_size(256, 256); 59 gfx::Size tile_size(256, 256);
58 60
59 state.soft_memory_limit_in_bytes = 100 * 1000 * 1000; 61 state.soft_memory_limit_in_bytes = 100 * 1000 * 1000;
60 state.num_resources_limit = max_tiles_; 62 state.num_resources_limit = max_tiles_;
61 state.hard_memory_limit_in_bytes = state.soft_memory_limit_in_bytes * 2; 63 state.hard_memory_limit_in_bytes = state.soft_memory_limit_in_bytes * 2;
62 state.memory_limit_policy = memory_limit_policy_; 64 state.memory_limit_policy = memory_limit_policy_;
63 state.tree_priority = tree_priority; 65 state.tree_priority = tree_priority;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text); 145 host_impl_.pending_tree()->UpdateDrawProperties(update_lcd_text);
144 } 146 }
145 147
146 TileManager* tile_manager() { return host_impl_.tile_manager(); } 148 TileManager* tile_manager() { return host_impl_.tile_manager(); }
147 149
148 protected: 150 protected:
149 GlobalStateThatImpactsTilePriority global_state_; 151 GlobalStateThatImpactsTilePriority global_state_;
150 152
151 TestSharedBitmapManager shared_bitmap_manager_; 153 TestSharedBitmapManager shared_bitmap_manager_;
152 TestTaskGraphRunner task_graph_runner_; 154 TestTaskGraphRunner task_graph_runner_;
155 TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
153 TileMemoryLimitPolicy memory_limit_policy_; 156 TileMemoryLimitPolicy memory_limit_policy_;
154 int max_tiles_; 157 int max_tiles_;
155 bool ready_to_activate_; 158 bool ready_to_activate_;
156 int id_; 159 int id_;
157 FakeImplProxy proxy_; 160 FakeImplProxy proxy_;
158 scoped_ptr<OutputSurface> output_surface_; 161 scoped_ptr<OutputSurface> output_surface_;
159 FakeLayerTreeHostImpl host_impl_; 162 FakeLayerTreeHostImpl host_impl_;
160 FakePictureLayerImpl* pending_layer_; 163 FakePictureLayerImpl* pending_layer_;
161 FakePictureLayerImpl* active_layer_; 164 FakePictureLayerImpl* active_layer_;
162 }; 165 };
(...skipping 1120 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 } 1286 }
1284 1287
1285 EXPECT_GT(eventually_bin_order_correct_count, 1288 EXPECT_GT(eventually_bin_order_correct_count,
1286 eventually_bin_order_incorrect_count); 1289 eventually_bin_order_incorrect_count);
1287 1290
1288 EXPECT_TRUE(have_tiles[TilePriority::NOW]); 1291 EXPECT_TRUE(have_tiles[TilePriority::NOW]);
1289 EXPECT_TRUE(have_tiles[TilePriority::SOON]); 1292 EXPECT_TRUE(have_tiles[TilePriority::SOON]);
1290 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); 1293 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]);
1291 } 1294 }
1292 1295
1293 // TODO(vmpstr): Move these to LTHI tests, since they can't create real 1296 TEST_F(TileManagerTilePriorityQueueTest, SetIsLikelyToRequireADraw) {
1294 // resources and so they don't work with non-solid raster sources.
1295 // crbug.com/534911
1296 TEST_F(TileManagerTilePriorityQueueTest, DISABLED_SetIsLikelyToRequireADraw) {
1297 const gfx::Size layer_bounds(1000, 1000); 1297 const gfx::Size layer_bounds(1000, 1000);
1298 host_impl_.SetViewportSize(layer_bounds); 1298 host_impl_.SetViewportSize(layer_bounds);
1299 SetupDefaultTrees(layer_bounds); 1299 SetupDefaultTrees(layer_bounds);
1300 1300
1301 // Verify that the queue has a required for draw tile at Top. 1301 // Verify that the queue has a required for draw tile at Top.
1302 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 1302 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue(
1303 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 1303 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
1304 EXPECT_FALSE(queue->IsEmpty()); 1304 EXPECT_FALSE(queue->IsEmpty());
1305 EXPECT_TRUE(queue->Top().tile()->required_for_draw()); 1305 EXPECT_TRUE(queue->Top().tile()->required_for_draw());
1306 1306
1307 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw()); 1307 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
1308 host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state()); 1308 host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state());
1309 EXPECT_TRUE(host_impl_.is_likely_to_require_a_draw()); 1309 EXPECT_TRUE(host_impl_.is_likely_to_require_a_draw());
1310 } 1310 }
1311 1311
1312 // TODO(vmpstr): Move these to LTHI tests, since they can't create real
1313 // resources and so they don't work with non-solid raster sources.
1314 // crbug.com/534911
1315 TEST_F(TileManagerTilePriorityQueueTest, 1312 TEST_F(TileManagerTilePriorityQueueTest,
1316 DISABLED_SetIsLikelyToRequireADrawOnZeroMemoryBudget) { 1313 SetIsLikelyToRequireADrawOnZeroMemoryBudget) {
1317 const gfx::Size layer_bounds(1000, 1000); 1314 const gfx::Size layer_bounds(1000, 1000);
1318 host_impl_.SetViewportSize(layer_bounds); 1315 host_impl_.SetViewportSize(layer_bounds);
1319 SetupDefaultTrees(layer_bounds); 1316 SetupDefaultTrees(layer_bounds);
1320 1317
1321 // Verify that the queue has a required for draw tile at Top. 1318 // Verify that the queue has a required for draw tile at Top.
1322 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 1319 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue(
1323 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 1320 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
1324 EXPECT_FALSE(queue->IsEmpty()); 1321 EXPECT_FALSE(queue->IsEmpty());
1325 EXPECT_TRUE(queue->Top().tile()->required_for_draw()); 1322 EXPECT_TRUE(queue->Top().tile()->required_for_draw());
1326 1323
1327 ManagedMemoryPolicy policy = host_impl_.ActualManagedMemoryPolicy(); 1324 ManagedMemoryPolicy policy = host_impl_.ActualManagedMemoryPolicy();
1328 policy.bytes_limit_when_visible = 0; 1325 policy.bytes_limit_when_visible = 0;
1329 host_impl_.SetMemoryPolicy(policy); 1326 host_impl_.SetMemoryPolicy(policy);
1330 1327
1331 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw()); 1328 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
1332 host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state()); 1329 host_impl_.tile_manager()->PrepareTiles(host_impl_.global_tile_state());
1333 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw()); 1330 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
1334 } 1331 }
1335 1332
1336 // TODO(vmpstr): Move these to LTHI tests, since they can't create real
1337 // resources and so they don't work with non-solid raster sources.
1338 // crbug.com/534911
1339 TEST_F(TileManagerTilePriorityQueueTest, 1333 TEST_F(TileManagerTilePriorityQueueTest,
1340 DISABLED_SetIsLikelyToRequireADrawOnLimitedMemoryBudget) { 1334 SetIsLikelyToRequireADrawOnLimitedMemoryBudget) {
1341 const gfx::Size layer_bounds(1000, 1000); 1335 const gfx::Size layer_bounds(1000, 1000);
1342 host_impl_.SetViewportSize(layer_bounds); 1336 host_impl_.SetViewportSize(layer_bounds);
1343 SetupDefaultTrees(layer_bounds); 1337 SetupDefaultTrees(layer_bounds);
1344 1338
1345 // Verify that the queue has a required for draw tile at Top. 1339 // Verify that the queue has a required for draw tile at Top.
1346 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 1340 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue(
1347 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 1341 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
1348 EXPECT_FALSE(queue->IsEmpty()); 1342 EXPECT_FALSE(queue->IsEmpty());
1349 EXPECT_TRUE(queue->Top().tile()->required_for_draw()); 1343 EXPECT_TRUE(queue->Top().tile()->required_for_draw());
1350 EXPECT_EQ(gfx::Size(256, 256), queue->Top().tile()->desired_texture_size()); 1344 EXPECT_EQ(gfx::Size(256, 256), queue->Top().tile()->desired_texture_size());
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 // background is not visible. 1556 // background is not visible.
1563 ASSERT_EQ(SK_ColorBLUE, bitmap->getColor(x, y)); 1557 ASSERT_EQ(SK_ColorBLUE, bitmap->getColor(x, y));
1564 } 1558 }
1565 } 1559 }
1566 } 1560 }
1567 } 1561 }
1568 } 1562 }
1569 1563
1570 } // namespace 1564 } // namespace
1571 } // namespace cc 1565 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/fake_layer_tree_host_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698