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 "cc/resources/eviction_tile_priority_queue.h" | 5 #include "cc/resources/eviction_tile_priority_queue.h" |
6 #include "cc/resources/raster_tile_priority_queue.h" | 6 #include "cc/resources/raster_tile_priority_queue.h" |
7 #include "cc/resources/tile.h" | 7 #include "cc/resources/tile.h" |
8 #include "cc/resources/tile_priority.h" | 8 #include "cc/resources/tile_priority.h" |
9 #include "cc/test/fake_impl_proxy.h" | 9 #include "cc/test/fake_impl_proxy.h" |
10 #include "cc/test/fake_layer_tree_host_impl.h" | 10 #include "cc/test/fake_layer_tree_host_impl.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 state.tree_priority = tree_priority; | 48 state.tree_priority = tree_priority; |
49 | 49 |
50 global_state_ = state; | 50 global_state_ = state; |
51 host_impl_.resource_pool()->SetResourceUsageLimits( | 51 host_impl_.resource_pool()->SetResourceUsageLimits( |
52 state.soft_memory_limit_in_bytes, | 52 state.soft_memory_limit_in_bytes, |
53 state.soft_memory_limit_in_bytes, | 53 state.soft_memory_limit_in_bytes, |
54 state.num_resources_limit); | 54 state.num_resources_limit); |
55 host_impl_.tile_manager()->SetGlobalStateForTesting(state); | 55 host_impl_.tile_manager()->SetGlobalStateForTesting(state); |
56 } | 56 } |
57 | 57 |
58 virtual void SetUp() override { | 58 void SetUp() override { |
59 InitializeRenderer(); | 59 InitializeRenderer(); |
60 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); | 60 SetTreePriority(SAME_PRIORITY_FOR_BOTH_TREES); |
61 } | 61 } |
62 | 62 |
63 virtual void InitializeRenderer() { | 63 virtual void InitializeRenderer() { |
64 host_impl_.InitializeRenderer(FakeOutputSurface::Create3d()); | 64 host_impl_.InitializeRenderer(FakeOutputSurface::Create3d()); |
65 } | 65 } |
66 | 66 |
67 void SetupDefaultTrees(const gfx::Size& layer_bounds) { | 67 void SetupDefaultTrees(const gfx::Size& layer_bounds) { |
68 gfx::Size tile_size(100, 100); | 68 gfx::Size tile_size(100, 100); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
187 queue.Pop(); | 187 queue.Pop(); |
188 } | 188 } |
189 EXPECT_EQ(all_tiles, smoothness_tiles); | 189 EXPECT_EQ(all_tiles, smoothness_tiles); |
190 EXPECT_TRUE(had_low_res); | 190 EXPECT_TRUE(had_low_res); |
191 | 191 |
192 Region invalidation(gfx::Rect(0, 0, 500, 500)); | 192 Region invalidation(gfx::Rect(0, 0, 500, 500)); |
193 | 193 |
194 // Invalidate the pending tree. | 194 // Invalidate the pending tree. |
195 pending_layer_->set_invalidation(invalidation); | 195 pending_layer_->set_invalidation(invalidation); |
196 pending_layer_->HighResTiling()->UpdateTilesToCurrentRasterSource( | 196 pending_layer_->HighResTiling()->UpdateTilesToCurrentRasterSource( |
197 invalidation, gfx::Size(1000, 1000)); | 197 pending_layer_->raster_source(), invalidation, gfx::Size(1000, 1000)); |
198 pending_layer_->LowResTiling()->UpdateTilesToCurrentRasterSource( | 198 pending_layer_->LowResTiling()->UpdateTilesToCurrentRasterSource( |
199 invalidation, gfx::Size(1000, 1000)); | 199 pending_layer_->raster_source(), invalidation, gfx::Size(1000, 1000)); |
200 | 200 |
201 active_layer_->ResetAllTilesPriorities(); | 201 active_layer_->ResetAllTilesPriorities(); |
202 pending_layer_->ResetAllTilesPriorities(); | 202 pending_layer_->ResetAllTilesPriorities(); |
203 | 203 |
204 // Renew all of the tile priorities. | 204 // Renew all of the tile priorities. |
205 gfx::Rect viewport(50, 50, 100, 100); | 205 gfx::Rect viewport(50, 50, 100, 100); |
206 pending_layer_->HighResTiling()->ComputeTilePriorityRects( | 206 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
207 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 207 Occlusion()); |
208 pending_layer_->LowResTiling()->ComputeTilePriorityRects( | 208 pending_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
209 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 209 Occlusion()); |
210 active_layer_->HighResTiling()->ComputeTilePriorityRects( | 210 active_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
211 ACTIVE_TREE, viewport, 1.0f, 1.0, Occlusion()); | 211 Occlusion()); |
212 active_layer_->LowResTiling()->ComputeTilePriorityRects( | 212 active_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
213 ACTIVE_TREE, viewport, 1.0f, 1.0, Occlusion()); | 213 Occlusion()); |
214 | 214 |
215 // Populate all tiles directly from the tilings. | 215 // Populate all tiles directly from the tilings. |
216 all_tiles.clear(); | 216 all_tiles.clear(); |
217 std::set<Tile*> high_res_tiles; | 217 std::set<Tile*> high_res_tiles; |
218 std::vector<Tile*> pending_high_res_tiles = | 218 std::vector<Tile*> pending_high_res_tiles = |
219 pending_layer_->HighResTiling()->AllTilesForTesting(); | 219 pending_layer_->HighResTiling()->AllTilesForTesting(); |
220 for (size_t i = 0; i < pending_high_res_tiles.size(); ++i) { | 220 for (size_t i = 0; i < pending_high_res_tiles.size(); ++i) { |
221 all_tiles.insert(pending_high_res_tiles[i]); | 221 all_tiles.insert(pending_high_res_tiles[i]); |
222 high_res_tiles.insert(pending_high_res_tiles[i]); | 222 high_res_tiles.insert(pending_high_res_tiles[i]); |
223 } | 223 } |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 EXPECT_EQ(all_tiles, smoothness_tiles); | 435 EXPECT_EQ(all_tiles, smoothness_tiles); |
436 | 436 |
437 tile_manager()->ReleaseTileResourcesForTesting( | 437 tile_manager()->ReleaseTileResourcesForTesting( |
438 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 438 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
439 | 439 |
440 Region invalidation(gfx::Rect(0, 0, 500, 500)); | 440 Region invalidation(gfx::Rect(0, 0, 500, 500)); |
441 | 441 |
442 // Invalidate the pending tree. | 442 // Invalidate the pending tree. |
443 pending_layer_->set_invalidation(invalidation); | 443 pending_layer_->set_invalidation(invalidation); |
444 pending_layer_->HighResTiling()->UpdateTilesToCurrentRasterSource( | 444 pending_layer_->HighResTiling()->UpdateTilesToCurrentRasterSource( |
445 invalidation, gfx::Size(1000, 1000)); | 445 pending_layer_->raster_source(), invalidation, gfx::Size(1000, 1000)); |
446 pending_layer_->LowResTiling()->UpdateTilesToCurrentRasterSource( | 446 pending_layer_->LowResTiling()->UpdateTilesToCurrentRasterSource( |
447 invalidation, gfx::Size(1000, 1000)); | 447 pending_layer_->raster_source(), invalidation, gfx::Size(1000, 1000)); |
448 | 448 |
449 active_layer_->ResetAllTilesPriorities(); | 449 active_layer_->ResetAllTilesPriorities(); |
450 pending_layer_->ResetAllTilesPriorities(); | 450 pending_layer_->ResetAllTilesPriorities(); |
451 | 451 |
452 // Renew all of the tile priorities. | 452 // Renew all of the tile priorities. |
453 gfx::Rect viewport(50, 50, 100, 100); | 453 gfx::Rect viewport(50, 50, 100, 100); |
454 pending_layer_->HighResTiling()->ComputeTilePriorityRects( | 454 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
455 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 455 Occlusion()); |
456 pending_layer_->LowResTiling()->ComputeTilePriorityRects( | 456 pending_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
457 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 457 Occlusion()); |
458 active_layer_->HighResTiling()->ComputeTilePriorityRects( | 458 active_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
459 ACTIVE_TREE, viewport, 1.0f, 1.0, Occlusion()); | 459 Occlusion()); |
460 active_layer_->LowResTiling()->ComputeTilePriorityRects( | 460 active_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
461 ACTIVE_TREE, viewport, 1.0f, 1.0, Occlusion()); | 461 Occlusion()); |
462 | 462 |
463 // Populate all tiles directly from the tilings. | 463 // Populate all tiles directly from the tilings. |
464 all_tiles.clear(); | 464 all_tiles.clear(); |
465 std::vector<Tile*> pending_high_res_tiles = | 465 std::vector<Tile*> pending_high_res_tiles = |
466 pending_layer_->HighResTiling()->AllTilesForTesting(); | 466 pending_layer_->HighResTiling()->AllTilesForTesting(); |
467 for (size_t i = 0; i < pending_high_res_tiles.size(); ++i) | 467 for (size_t i = 0; i < pending_high_res_tiles.size(); ++i) |
468 all_tiles.insert(pending_high_res_tiles[i]); | 468 all_tiles.insert(pending_high_res_tiles[i]); |
469 | 469 |
470 std::vector<Tile*> pending_low_res_tiles = | 470 std::vector<Tile*> pending_low_res_tiles = |
471 pending_layer_->LowResTiling()->AllTilesForTesting(); | 471 pending_layer_->LowResTiling()->AllTilesForTesting(); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 all_tiles.insert(raster_queue.Top()); | 586 all_tiles.insert(raster_queue.Top()); |
587 raster_queue.Pop(); | 587 raster_queue.Pop(); |
588 } | 588 } |
589 EXPECT_EQ(tile_count, all_tiles.size()); | 589 EXPECT_EQ(tile_count, all_tiles.size()); |
590 EXPECT_EQ(32u, tile_count); | 590 EXPECT_EQ(32u, tile_count); |
591 | 591 |
592 pending_layer_->ResetAllTilesPriorities(); | 592 pending_layer_->ResetAllTilesPriorities(); |
593 | 593 |
594 // Renew all of the tile priorities. | 594 // Renew all of the tile priorities. |
595 gfx::Rect viewport(layer_bounds); | 595 gfx::Rect viewport(layer_bounds); |
596 pending_layer_->HighResTiling()->ComputeTilePriorityRects( | 596 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
597 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 597 Occlusion()); |
598 pending_layer_->LowResTiling()->ComputeTilePriorityRects( | 598 pending_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
599 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 599 Occlusion()); |
600 pending_child_layer->HighResTiling()->ComputeTilePriorityRects( | 600 pending_child_layer->HighResTiling()->ComputeTilePriorityRects( |
601 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 601 viewport, 1.0f, 1.0, Occlusion()); |
602 pending_child_layer->LowResTiling()->ComputeTilePriorityRects( | 602 pending_child_layer->LowResTiling()->ComputeTilePriorityRects( |
603 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 603 viewport, 1.0f, 1.0, Occlusion()); |
604 | 604 |
605 // Populate all tiles directly from the tilings. | 605 // Populate all tiles directly from the tilings. |
606 all_tiles.clear(); | 606 all_tiles.clear(); |
607 std::vector<Tile*> pending_high_res_tiles = | 607 std::vector<Tile*> pending_high_res_tiles = |
608 pending_layer_->HighResTiling()->AllTilesForTesting(); | 608 pending_layer_->HighResTiling()->AllTilesForTesting(); |
609 all_tiles.insert(pending_high_res_tiles.begin(), | 609 all_tiles.insert(pending_high_res_tiles.begin(), |
610 pending_high_res_tiles.end()); | 610 pending_high_res_tiles.end()); |
611 | 611 |
612 std::vector<Tile*> pending_low_res_tiles = | 612 std::vector<Tile*> pending_low_res_tiles = |
613 pending_layer_->LowResTiling()->AllTilesForTesting(); | 613 pending_layer_->LowResTiling()->AllTilesForTesting(); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 FakePictureLayerImpl* pending_child_layer = | 689 FakePictureLayerImpl* pending_child_layer = |
690 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); | 690 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); |
691 pending_child_layer->SetDrawsContent(true); | 691 pending_child_layer->SetDrawsContent(true); |
692 pending_child_layer->CreateDefaultTilingsAndTiles(); | 692 pending_child_layer->CreateDefaultTilingsAndTiles(); |
693 pending_child_layer->SetOpacity(0.0); | 693 pending_child_layer->SetOpacity(0.0); |
694 pending_child_layer->layer_tree_impl()->UpdateDrawProperties(); | 694 pending_child_layer->layer_tree_impl()->UpdateDrawProperties(); |
695 pending_child_layer->DoPostCommitInitializationIfNeeded(); | 695 pending_child_layer->DoPostCommitInitializationIfNeeded(); |
696 | 696 |
697 // Renew all of the tile priorities. | 697 // Renew all of the tile priorities. |
698 gfx::Rect viewport(layer_bounds); | 698 gfx::Rect viewport(layer_bounds); |
699 pending_layer_->HighResTiling()->ComputeTilePriorityRects( | 699 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
700 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 700 Occlusion()); |
701 pending_layer_->LowResTiling()->ComputeTilePriorityRects( | 701 pending_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, |
702 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 702 Occlusion()); |
703 pending_child_layer->HighResTiling()->ComputeTilePriorityRects( | 703 pending_child_layer->HighResTiling()->ComputeTilePriorityRects( |
704 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 704 viewport, 1.0f, 1.0, Occlusion()); |
705 pending_child_layer->LowResTiling()->ComputeTilePriorityRects( | 705 pending_child_layer->LowResTiling()->ComputeTilePriorityRects( |
706 PENDING_TREE, viewport, 1.0f, 1.0, Occlusion()); | 706 viewport, 1.0f, 1.0, Occlusion()); |
707 | 707 |
708 // Populate all tiles directly from the tilings. | 708 // Populate all tiles directly from the tilings. |
709 std::set<Tile*> all_pending_tiles; | 709 std::set<Tile*> all_pending_tiles; |
710 std::vector<Tile*> pending_high_res_tiles = | 710 std::vector<Tile*> pending_high_res_tiles = |
711 pending_layer_->HighResTiling()->AllTilesForTesting(); | 711 pending_layer_->HighResTiling()->AllTilesForTesting(); |
712 all_pending_tiles.insert(pending_high_res_tiles.begin(), | 712 all_pending_tiles.insert(pending_high_res_tiles.begin(), |
713 pending_high_res_tiles.end()); | 713 pending_high_res_tiles.end()); |
714 EXPECT_EQ(16u, pending_high_res_tiles.size()); | 714 EXPECT_EQ(16u, pending_high_res_tiles.size()); |
715 | 715 |
716 std::vector<Tile*> pending_low_res_tiles = | 716 std::vector<Tile*> pending_low_res_tiles = |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
858 all_tiles.insert(queue.Top()); | 858 all_tiles.insert(queue.Top()); |
859 ++tile_count; | 859 ++tile_count; |
860 queue.Pop(); | 860 queue.Pop(); |
861 } | 861 } |
862 EXPECT_EQ(tile_count, all_tiles.size()); | 862 EXPECT_EQ(tile_count, all_tiles.size()); |
863 EXPECT_EQ(16u, tile_count); | 863 EXPECT_EQ(16u, tile_count); |
864 } | 864 } |
865 | 865 |
866 } // namespace | 866 } // namespace |
867 } // namespace cc | 867 } // namespace cc |
OLD | NEW |