| OLD | NEW |
| 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/raster/raster_buffer.h" | 9 #include "cc/raster/raster_buffer.h" |
| 10 #include "cc/resources/resource_pool.h" | 10 #include "cc/resources/resource_pool.h" |
| 11 #include "cc/test/begin_frame_args_test.h" | 11 #include "cc/test/begin_frame_args_test.h" |
| 12 #include "cc/test/fake_display_list_raster_source.h" | 12 #include "cc/test/fake_display_list_raster_source.h" |
| 13 #include "cc/test/fake_display_list_recording_source.h" | 13 #include "cc/test/fake_display_list_recording_source.h" |
| 14 #include "cc/test/fake_impl_proxy.h" | 14 #include "cc/test/fake_impl_task_runner_provider.h" |
| 15 #include "cc/test/fake_layer_tree_host_impl.h" | 15 #include "cc/test/fake_layer_tree_host_impl.h" |
| 16 #include "cc/test/fake_output_surface.h" | 16 #include "cc/test/fake_output_surface.h" |
| 17 #include "cc/test/fake_output_surface_client.h" | 17 #include "cc/test/fake_output_surface_client.h" |
| 18 #include "cc/test/fake_picture_layer_impl.h" | 18 #include "cc/test/fake_picture_layer_impl.h" |
| 19 #include "cc/test/fake_picture_layer_tiling_client.h" | 19 #include "cc/test/fake_picture_layer_tiling_client.h" |
| 20 #include "cc/test/fake_tile_manager.h" | 20 #include "cc/test/fake_tile_manager.h" |
| 21 #include "cc/test/test_gpu_memory_buffer_manager.h" | 21 #include "cc/test/test_gpu_memory_buffer_manager.h" |
| 22 #include "cc/test/test_shared_bitmap_manager.h" | 22 #include "cc/test/test_shared_bitmap_manager.h" |
| 23 #include "cc/test/test_task_graph_runner.h" | 23 #include "cc/test/test_task_graph_runner.h" |
| 24 #include "cc/test/test_tile_priorities.h" | 24 #include "cc/test/test_tile_priorities.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 43 } | 43 } |
| 44 }; | 44 }; |
| 45 | 45 |
| 46 class TileManagerTilePriorityQueueTest : public testing::Test { | 46 class TileManagerTilePriorityQueueTest : public testing::Test { |
| 47 public: | 47 public: |
| 48 TileManagerTilePriorityQueueTest() | 48 TileManagerTilePriorityQueueTest() |
| 49 : memory_limit_policy_(ALLOW_ANYTHING), | 49 : memory_limit_policy_(ALLOW_ANYTHING), |
| 50 max_tiles_(10000), | 50 max_tiles_(10000), |
| 51 ready_to_activate_(false), | 51 ready_to_activate_(false), |
| 52 id_(7), | 52 id_(7), |
| 53 proxy_(base::ThreadTaskRunnerHandle::Get()), | 53 task_runner_provider_(base::ThreadTaskRunnerHandle::Get()), |
| 54 output_surface_(FakeOutputSurface::Create3d()), | 54 output_surface_(FakeOutputSurface::Create3d()), |
| 55 host_impl_(LowResTilingsSettings(), | 55 host_impl_(LowResTilingsSettings(), |
| 56 &proxy_, | 56 &task_runner_provider_, |
| 57 &shared_bitmap_manager_, | 57 &shared_bitmap_manager_, |
| 58 &task_graph_runner_, | 58 &task_graph_runner_, |
| 59 &gpu_memory_buffer_manager_) {} | 59 &gpu_memory_buffer_manager_) {} |
| 60 | 60 |
| 61 void SetTreePriority(TreePriority tree_priority) { | 61 void SetTreePriority(TreePriority tree_priority) { |
| 62 GlobalStateThatImpactsTilePriority state; | 62 GlobalStateThatImpactsTilePriority state; |
| 63 gfx::Size tile_size(256, 256); | 63 gfx::Size tile_size(256, 256); |
| 64 | 64 |
| 65 state.soft_memory_limit_in_bytes = 100 * 1000 * 1000; | 65 state.soft_memory_limit_in_bytes = 100 * 1000 * 1000; |
| 66 state.num_resources_limit = max_tiles_; | 66 state.num_resources_limit = max_tiles_; |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 protected: | 156 protected: |
| 157 GlobalStateThatImpactsTilePriority global_state_; | 157 GlobalStateThatImpactsTilePriority global_state_; |
| 158 | 158 |
| 159 TestSharedBitmapManager shared_bitmap_manager_; | 159 TestSharedBitmapManager shared_bitmap_manager_; |
| 160 TestTaskGraphRunner task_graph_runner_; | 160 TestTaskGraphRunner task_graph_runner_; |
| 161 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; | 161 TestGpuMemoryBufferManager gpu_memory_buffer_manager_; |
| 162 TileMemoryLimitPolicy memory_limit_policy_; | 162 TileMemoryLimitPolicy memory_limit_policy_; |
| 163 int max_tiles_; | 163 int max_tiles_; |
| 164 bool ready_to_activate_; | 164 bool ready_to_activate_; |
| 165 int id_; | 165 int id_; |
| 166 FakeImplProxy proxy_; | 166 FakeImplTaskRunnerProvider task_runner_provider_; |
| 167 scoped_ptr<OutputSurface> output_surface_; | 167 scoped_ptr<OutputSurface> output_surface_; |
| 168 FakeLayerTreeHostImpl host_impl_; | 168 FakeLayerTreeHostImpl host_impl_; |
| 169 FakePictureLayerImpl* pending_layer_; | 169 FakePictureLayerImpl* pending_layer_; |
| 170 FakePictureLayerImpl* active_layer_; | 170 FakePictureLayerImpl* active_layer_; |
| 171 }; | 171 }; |
| 172 | 172 |
| 173 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { | 173 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
| 174 const gfx::Size layer_bounds(1000, 1000); | 174 const gfx::Size layer_bounds(1000, 1000); |
| 175 host_impl_.SetViewportSize(layer_bounds); | 175 host_impl_.SetViewportSize(layer_bounds); |
| 176 SetupDefaultTrees(layer_bounds); | 176 SetupDefaultTrees(layer_bounds); |
| (...skipping 1273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1450 | 1450 |
| 1451 class TileManagerTest : public testing::Test { | 1451 class TileManagerTest : public testing::Test { |
| 1452 public: | 1452 public: |
| 1453 TileManagerTest() | 1453 TileManagerTest() |
| 1454 : output_surface_(FakeOutputSurface::CreateSoftware( | 1454 : output_surface_(FakeOutputSurface::CreateSoftware( |
| 1455 make_scoped_ptr(new SoftwareOutputDevice))) {} | 1455 make_scoped_ptr(new SoftwareOutputDevice))) {} |
| 1456 | 1456 |
| 1457 void SetUp() override { | 1457 void SetUp() override { |
| 1458 LayerTreeSettings settings; | 1458 LayerTreeSettings settings; |
| 1459 CustomizeSettings(&settings); | 1459 CustomizeSettings(&settings); |
| 1460 host_impl_.reset(new MockLayerTreeHostImpl( | 1460 host_impl_.reset(new MockLayerTreeHostImpl(settings, &task_runner_provider_, |
| 1461 settings, &proxy_, &shared_bitmap_manager_, &task_graph_runner_)); | 1461 &shared_bitmap_manager_, |
| 1462 &task_graph_runner_)); |
| 1462 host_impl_->SetVisible(true); | 1463 host_impl_->SetVisible(true); |
| 1463 host_impl_->InitializeRenderer(output_surface_.get()); | 1464 host_impl_->InitializeRenderer(output_surface_.get()); |
| 1464 } | 1465 } |
| 1465 | 1466 |
| 1466 protected: | 1467 protected: |
| 1467 // MockLayerTreeHostImpl allows us to intercept tile manager callbacks. | 1468 // MockLayerTreeHostImpl allows us to intercept tile manager callbacks. |
| 1468 class MockLayerTreeHostImpl : public FakeLayerTreeHostImpl { | 1469 class MockLayerTreeHostImpl : public FakeLayerTreeHostImpl { |
| 1469 public: | 1470 public: |
| 1470 MockLayerTreeHostImpl(const LayerTreeSettings& settings, | 1471 MockLayerTreeHostImpl(const LayerTreeSettings& settings, |
| 1471 Proxy* proxy, | 1472 TaskRunnerProvider* task_runner_provider, |
| 1472 SharedBitmapManager* manager, | 1473 SharedBitmapManager* manager, |
| 1473 TaskGraphRunner* task_graph_runner) | 1474 TaskGraphRunner* task_graph_runner) |
| 1474 : FakeLayerTreeHostImpl(settings, proxy, manager, task_graph_runner) {} | 1475 : FakeLayerTreeHostImpl(settings, |
| 1476 task_runner_provider, |
| 1477 manager, |
| 1478 task_graph_runner) {} |
| 1475 | 1479 |
| 1476 MOCK_METHOD0(NotifyAllTileTasksCompleted, void()); | 1480 MOCK_METHOD0(NotifyAllTileTasksCompleted, void()); |
| 1477 }; | 1481 }; |
| 1478 | 1482 |
| 1479 // By default do no customization. | 1483 // By default do no customization. |
| 1480 virtual void CustomizeSettings(LayerTreeSettings* settings) {} | 1484 virtual void CustomizeSettings(LayerTreeSettings* settings) {} |
| 1481 | 1485 |
| 1482 TestSharedBitmapManager shared_bitmap_manager_; | 1486 TestSharedBitmapManager shared_bitmap_manager_; |
| 1483 TestTaskGraphRunner task_graph_runner_; | 1487 TestTaskGraphRunner task_graph_runner_; |
| 1484 FakeImplProxy proxy_; | 1488 FakeImplTaskRunnerProvider task_runner_provider_; |
| 1485 scoped_ptr<OutputSurface> output_surface_; | 1489 scoped_ptr<OutputSurface> output_surface_; |
| 1486 scoped_ptr<MockLayerTreeHostImpl> host_impl_; | 1490 scoped_ptr<MockLayerTreeHostImpl> host_impl_; |
| 1487 }; | 1491 }; |
| 1488 | 1492 |
| 1489 // Test to ensure that we call NotifyAllTileTasksCompleted when PrepareTiles is | 1493 // Test to ensure that we call NotifyAllTileTasksCompleted when PrepareTiles is |
| 1490 // called. | 1494 // called. |
| 1491 TEST_F(TileManagerTest, AllWorkFinishedTest) { | 1495 TEST_F(TileManagerTest, AllWorkFinishedTest) { |
| 1492 // Check with no tile work enqueued. | 1496 // Check with no tile work enqueued. |
| 1493 { | 1497 { |
| 1494 base::RunLoop run_loop; | 1498 base::RunLoop run_loop; |
| (...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1797 } | 1801 } |
| 1798 | 1802 |
| 1799 // Ensures that the tile manager does not attempt to reuse tiles when partial | 1803 // Ensures that the tile manager does not attempt to reuse tiles when partial |
| 1800 // raster is disabled. | 1804 // raster is disabled. |
| 1801 TEST_F(TileManagerTest, PartialRasterSuccessfullyDisabled) { | 1805 TEST_F(TileManagerTest, PartialRasterSuccessfullyDisabled) { |
| 1802 RunPartialRasterCheck(host_impl_.Pass(), false /* partial_raster_enabled */); | 1806 RunPartialRasterCheck(host_impl_.Pass(), false /* partial_raster_enabled */); |
| 1803 } | 1807 } |
| 1804 | 1808 |
| 1805 } // namespace | 1809 } // namespace |
| 1806 } // namespace cc | 1810 } // namespace cc |
| OLD | NEW |