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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 int max_tiles_; | 142 int max_tiles_; |
143 bool ready_to_activate_; | 143 bool ready_to_activate_; |
144 int id_; | 144 int id_; |
145 FakeImplProxy proxy_; | 145 FakeImplProxy proxy_; |
146 FakeLayerTreeHostImpl host_impl_; | 146 FakeLayerTreeHostImpl host_impl_; |
147 FakePictureLayerImpl* pending_layer_; | 147 FakePictureLayerImpl* pending_layer_; |
148 FakePictureLayerImpl* active_layer_; | 148 FakePictureLayerImpl* active_layer_; |
149 }; | 149 }; |
150 | 150 |
151 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { | 151 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { |
152 SetupDefaultTrees(gfx::Size(1000, 1000)); | 152 const gfx::Size layer_bounds(1000, 1000); |
| 153 host_impl_.SetViewportSize(layer_bounds); |
| 154 SetupDefaultTrees(layer_bounds); |
153 | 155 |
154 active_layer_->CreateDefaultTilingsAndTiles(); | 156 active_layer_->CreateDefaultTilingsAndTiles(); |
155 pending_layer_->CreateDefaultTilingsAndTiles(); | 157 pending_layer_->CreateDefaultTilingsAndTiles(); |
156 | 158 |
157 RasterTilePriorityQueue queue; | 159 RasterTilePriorityQueue queue; |
158 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); | 160 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); |
159 EXPECT_FALSE(queue.IsEmpty()); | 161 EXPECT_FALSE(queue.IsEmpty()); |
160 | 162 |
161 size_t tile_count = 0; | 163 size_t tile_count = 0; |
162 std::set<Tile*> all_tiles; | 164 std::set<Tile*> all_tiles; |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 | 386 |
385 tile_manager()->InitializeTilesWithResourcesForTesting( | 387 tile_manager()->InitializeTilesWithResourcesForTesting( |
386 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 388 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
387 | 389 |
388 // Ensure we can activate. | 390 // Ensure we can activate. |
389 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); | 391 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); |
390 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); | 392 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); |
391 } | 393 } |
392 | 394 |
393 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { | 395 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
394 SetupDefaultTrees(gfx::Size(1000, 1000)); | 396 const gfx::Size layer_bounds(1000, 1000); |
| 397 host_impl_.SetViewportSize(layer_bounds); |
| 398 SetupDefaultTrees(layer_bounds); |
395 | 399 |
396 active_layer_->CreateDefaultTilingsAndTiles(); | 400 active_layer_->CreateDefaultTilingsAndTiles(); |
397 pending_layer_->CreateDefaultTilingsAndTiles(); | 401 pending_layer_->CreateDefaultTilingsAndTiles(); |
398 | 402 |
399 EvictionTilePriorityQueue empty_queue; | 403 EvictionTilePriorityQueue empty_queue; |
400 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 404 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); |
401 EXPECT_TRUE(empty_queue.IsEmpty()); | 405 EXPECT_TRUE(empty_queue.IsEmpty()); |
402 std::set<Tile*> all_tiles; | 406 std::set<Tile*> all_tiles; |
403 size_t tile_count = 0; | 407 size_t tile_count = 0; |
404 | 408 |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 | 557 |
554 EXPECT_EQ(tile_count, new_content_tiles.size()); | 558 EXPECT_EQ(tile_count, new_content_tiles.size()); |
555 EXPECT_EQ(all_tiles, new_content_tiles); | 559 EXPECT_EQ(all_tiles, new_content_tiles); |
556 } | 560 } |
557 | 561 |
558 TEST_F(TileManagerTilePriorityQueueTest, | 562 TEST_F(TileManagerTilePriorityQueueTest, |
559 EvictionTilePriorityQueueWithOcclusion) { | 563 EvictionTilePriorityQueueWithOcclusion) { |
560 gfx::Size tile_size(102, 102); | 564 gfx::Size tile_size(102, 102); |
561 gfx::Size layer_bounds(1000, 1000); | 565 gfx::Size layer_bounds(1000, 1000); |
562 | 566 |
| 567 host_impl_.SetViewportSize(layer_bounds); |
| 568 |
563 scoped_refptr<FakePicturePileImpl> pending_pile = | 569 scoped_refptr<FakePicturePileImpl> pending_pile = |
564 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); | 570 FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds); |
565 SetupPendingTree(pending_pile); | 571 SetupPendingTree(pending_pile); |
566 pending_layer_->CreateDefaultTilingsAndTiles(); | 572 pending_layer_->CreateDefaultTilingsAndTiles(); |
567 | 573 |
568 scoped_ptr<FakePictureLayerImpl> pending_child = | 574 scoped_ptr<FakePictureLayerImpl> pending_child = |
569 FakePictureLayerImpl::CreateWithRasterSource(host_impl_.pending_tree(), 2, | 575 FakePictureLayerImpl::CreateWithRasterSource(host_impl_.pending_tree(), 2, |
570 pending_pile); | 576 pending_pile); |
571 pending_layer_->AddChild(pending_child.Pass()); | 577 pending_layer_->AddChild(pending_child.Pass()); |
572 | 578 |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
761 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); | 767 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); |
762 new_content_tiles.insert(tile); | 768 new_content_tiles.insert(tile); |
763 ++tile_count; | 769 ++tile_count; |
764 queue.Pop(); | 770 queue.Pop(); |
765 } | 771 } |
766 EXPECT_EQ(tile_count, new_content_tiles.size()); | 772 EXPECT_EQ(tile_count, new_content_tiles.size()); |
767 EXPECT_EQ(all_tiles, new_content_tiles); | 773 EXPECT_EQ(all_tiles, new_content_tiles); |
768 } | 774 } |
769 | 775 |
770 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { | 776 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
771 SetupDefaultTrees(gfx::Size(1000, 1000)); | 777 const gfx::Size layer_bounds(1000, 1000); |
| 778 host_impl_.SetViewportSize(layer_bounds); |
| 779 SetupDefaultTrees(layer_bounds); |
772 | 780 |
773 active_layer_->CreateDefaultTilingsAndTiles(); | 781 active_layer_->CreateDefaultTilingsAndTiles(); |
774 pending_layer_->CreateDefaultTilingsAndTiles(); | 782 pending_layer_->CreateDefaultTilingsAndTiles(); |
775 | 783 |
776 RasterTilePriorityQueue queue; | 784 RasterTilePriorityQueue queue; |
777 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); | 785 host_impl_.BuildRasterQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); |
778 EXPECT_FALSE(queue.IsEmpty()); | 786 EXPECT_FALSE(queue.IsEmpty()); |
779 | 787 |
780 size_t tile_count = 0; | 788 size_t tile_count = 0; |
781 std::set<Tile*> all_tiles; | 789 std::set<Tile*> all_tiles; |
(...skipping 26 matching lines...) Expand all Loading... |
808 EXPECT_TRUE(queue.Top()); | 816 EXPECT_TRUE(queue.Top()); |
809 all_tiles.insert(queue.Top()); | 817 all_tiles.insert(queue.Top()); |
810 ++tile_count; | 818 ++tile_count; |
811 queue.Pop(); | 819 queue.Pop(); |
812 } | 820 } |
813 EXPECT_EQ(tile_count, all_tiles.size()); | 821 EXPECT_EQ(tile_count, all_tiles.size()); |
814 EXPECT_EQ(16u, tile_count); | 822 EXPECT_EQ(16u, tile_count); |
815 } | 823 } |
816 | 824 |
817 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { | 825 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { |
818 SetupDefaultTrees(gfx::Size(1000, 1000)); | 826 const gfx::Size layer_bounds(1000, 1000); |
| 827 host_impl_.SetViewportSize(layer_bounds); |
| 828 SetupDefaultTrees(layer_bounds); |
819 | 829 |
820 active_layer_->CreateDefaultTilingsAndTiles(); | 830 active_layer_->CreateDefaultTilingsAndTiles(); |
821 pending_layer_->CreateDefaultTilingsAndTiles(); | 831 pending_layer_->CreateDefaultTilingsAndTiles(); |
822 | 832 |
823 RasterTilePriorityQueue raster_queue; | 833 RasterTilePriorityQueue raster_queue; |
824 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 834 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES); |
825 EXPECT_FALSE(raster_queue.IsEmpty()); | 835 EXPECT_FALSE(raster_queue.IsEmpty()); |
826 | 836 |
827 size_t tile_count = 0; | 837 size_t tile_count = 0; |
828 std::set<Tile*> all_tiles; | 838 std::set<Tile*> all_tiles; |
(...skipping 29 matching lines...) Expand all Loading... |
858 all_tiles.insert(queue.Top()); | 868 all_tiles.insert(queue.Top()); |
859 ++tile_count; | 869 ++tile_count; |
860 queue.Pop(); | 870 queue.Pop(); |
861 } | 871 } |
862 EXPECT_EQ(tile_count, all_tiles.size()); | 872 EXPECT_EQ(tile_count, all_tiles.size()); |
863 EXPECT_EQ(16u, tile_count); | 873 EXPECT_EQ(16u, tile_count); |
864 } | 874 } |
865 | 875 |
866 } // namespace | 876 } // namespace |
867 } // namespace cc | 877 } // namespace cc |
OLD | NEW |