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/resources/tiling_set_raster_queue_all.h" | 9 #include "cc/resources/tiling_set_raster_queue_all.h" |
10 #include "cc/test/begin_frame_args_test.h" | 10 #include "cc/test/begin_frame_args_test.h" |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
576 // Ensure we can activate. | 576 // Ensure we can activate. |
577 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); | 577 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); |
578 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); | 578 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); |
579 } | 579 } |
580 | 580 |
581 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { | 581 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
582 const gfx::Size layer_bounds(1000, 1000); | 582 const gfx::Size layer_bounds(1000, 1000); |
583 host_impl_.SetViewportSize(layer_bounds); | 583 host_impl_.SetViewportSize(layer_bounds); |
584 SetupDefaultTrees(layer_bounds); | 584 SetupDefaultTrees(layer_bounds); |
585 | 585 |
586 EvictionTilePriorityQueue empty_queue; | 586 scoped_ptr<EvictionTilePriorityQueue> empty_queue( |
587 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 587 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); |
588 EXPECT_TRUE(empty_queue.IsEmpty()); | 588 EXPECT_TRUE(empty_queue->IsEmpty()); |
589 std::set<Tile*> all_tiles; | 589 std::set<Tile*> all_tiles; |
590 size_t tile_count = 0; | 590 size_t tile_count = 0; |
591 | 591 |
592 RasterTilePriorityQueue raster_queue; | 592 RasterTilePriorityQueue raster_queue; |
593 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES, | 593 host_impl_.BuildRasterQueue(&raster_queue, SAME_PRIORITY_FOR_BOTH_TREES, |
594 RasterTilePriorityQueue::Type::ALL); | 594 RasterTilePriorityQueue::Type::ALL); |
595 while (!raster_queue.IsEmpty()) { | 595 while (!raster_queue.IsEmpty()) { |
596 ++tile_count; | 596 ++tile_count; |
597 EXPECT_TRUE(raster_queue.Top()); | 597 EXPECT_TRUE(raster_queue.Top()); |
598 all_tiles.insert(raster_queue.Top()); | 598 all_tiles.insert(raster_queue.Top()); |
599 raster_queue.Pop(); | 599 raster_queue.Pop(); |
600 } | 600 } |
601 | 601 |
602 EXPECT_EQ(tile_count, all_tiles.size()); | 602 EXPECT_EQ(tile_count, all_tiles.size()); |
603 EXPECT_EQ(16u, tile_count); | 603 EXPECT_EQ(16u, tile_count); |
604 | 604 |
605 tile_manager()->InitializeTilesWithResourcesForTesting( | 605 tile_manager()->InitializeTilesWithResourcesForTesting( |
606 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 606 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
607 | 607 |
608 EvictionTilePriorityQueue queue; | 608 scoped_ptr<EvictionTilePriorityQueue> queue( |
609 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); | 609 host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY)); |
610 EXPECT_FALSE(queue.IsEmpty()); | 610 EXPECT_FALSE(queue->IsEmpty()); |
611 | 611 |
612 // Sanity check, all tiles should be visible. | 612 // Sanity check, all tiles should be visible. |
613 std::set<Tile*> smoothness_tiles; | 613 std::set<Tile*> smoothness_tiles; |
614 while (!queue.IsEmpty()) { | 614 while (!queue->IsEmpty()) { |
615 Tile* tile = queue.Top(); | 615 Tile* tile = queue->Top(); |
616 EXPECT_TRUE(tile); | 616 EXPECT_TRUE(tile); |
617 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); | 617 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); |
618 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); | 618 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); |
619 EXPECT_TRUE(tile->HasResource()); | 619 EXPECT_TRUE(tile->HasResource()); |
620 smoothness_tiles.insert(tile); | 620 smoothness_tiles.insert(tile); |
621 queue.Pop(); | 621 queue->Pop(); |
622 } | 622 } |
623 EXPECT_EQ(all_tiles, smoothness_tiles); | 623 EXPECT_EQ(all_tiles, smoothness_tiles); |
624 | 624 |
625 tile_manager()->ReleaseTileResourcesForTesting( | 625 tile_manager()->ReleaseTileResourcesForTesting( |
626 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 626 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
627 | 627 |
628 Region invalidation(gfx::Rect(0, 0, 500, 500)); | 628 Region invalidation(gfx::Rect(0, 0, 500, 500)); |
629 | 629 |
630 // Invalidate the pending tree. | 630 // Invalidate the pending tree. |
631 pending_layer_->set_invalidation(invalidation); | 631 pending_layer_->set_invalidation(invalidation); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
668 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) | 668 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) |
669 all_tiles.insert(active_low_res_tiles[i]); | 669 all_tiles.insert(active_low_res_tiles[i]); |
670 | 670 |
671 tile_manager()->InitializeTilesWithResourcesForTesting( | 671 tile_manager()->InitializeTilesWithResourcesForTesting( |
672 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 672 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
673 | 673 |
674 Tile* last_tile = NULL; | 674 Tile* last_tile = NULL; |
675 smoothness_tiles.clear(); | 675 smoothness_tiles.clear(); |
676 tile_count = 0; | 676 tile_count = 0; |
677 // Here we expect to get increasing ACTIVE_TREE priority_bin. | 677 // Here we expect to get increasing ACTIVE_TREE priority_bin. |
678 queue.Reset(); | 678 queue = host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY); |
679 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); | |
680 int distance_increasing = 0; | 679 int distance_increasing = 0; |
681 int distance_decreasing = 0; | 680 int distance_decreasing = 0; |
682 while (!queue.IsEmpty()) { | 681 while (!queue->IsEmpty()) { |
683 Tile* tile = queue.Top(); | 682 Tile* tile = queue->Top(); |
684 EXPECT_TRUE(tile); | 683 EXPECT_TRUE(tile); |
685 EXPECT_TRUE(tile->HasResource()); | 684 EXPECT_TRUE(tile->HasResource()); |
686 | 685 |
687 if (!last_tile) | 686 if (!last_tile) |
688 last_tile = tile; | 687 last_tile = tile; |
689 | 688 |
690 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, | 689 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, |
691 tile->priority(ACTIVE_TREE).priority_bin); | 690 tile->priority(ACTIVE_TREE).priority_bin); |
692 if (last_tile->priority(ACTIVE_TREE).priority_bin == | 691 if (last_tile->priority(ACTIVE_TREE).priority_bin == |
693 tile->priority(ACTIVE_TREE).priority_bin) { | 692 tile->priority(ACTIVE_TREE).priority_bin) { |
694 EXPECT_LE(last_tile->required_for_activation(), | 693 EXPECT_LE(last_tile->required_for_activation(), |
695 tile->required_for_activation()); | 694 tile->required_for_activation()); |
696 if (last_tile->required_for_activation() == | 695 if (last_tile->required_for_activation() == |
697 tile->required_for_activation()) { | 696 tile->required_for_activation()) { |
698 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >= | 697 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >= |
699 tile->priority(ACTIVE_TREE).distance_to_visible) | 698 tile->priority(ACTIVE_TREE).distance_to_visible) |
700 ++distance_decreasing; | 699 ++distance_decreasing; |
701 else | 700 else |
702 ++distance_increasing; | 701 ++distance_increasing; |
703 } | 702 } |
704 } | 703 } |
705 | 704 |
706 last_tile = tile; | 705 last_tile = tile; |
707 ++tile_count; | 706 ++tile_count; |
708 smoothness_tiles.insert(tile); | 707 smoothness_tiles.insert(tile); |
709 queue.Pop(); | 708 queue->Pop(); |
710 } | 709 } |
711 | 710 |
712 EXPECT_EQ(3, distance_increasing); | 711 EXPECT_EQ(3, distance_increasing); |
713 EXPECT_EQ(16, distance_decreasing); | 712 EXPECT_EQ(16, distance_decreasing); |
714 EXPECT_EQ(tile_count, smoothness_tiles.size()); | 713 EXPECT_EQ(tile_count, smoothness_tiles.size()); |
715 EXPECT_EQ(all_tiles, smoothness_tiles); | 714 EXPECT_EQ(all_tiles, smoothness_tiles); |
716 | 715 |
717 std::set<Tile*> new_content_tiles; | 716 std::set<Tile*> new_content_tiles; |
718 last_tile = NULL; | 717 last_tile = NULL; |
719 // Here we expect to get increasing PENDING_TREE priority_bin. | 718 // Here we expect to get increasing PENDING_TREE priority_bin. |
720 queue.Reset(); | 719 queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY); |
721 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); | |
722 distance_decreasing = 0; | 720 distance_decreasing = 0; |
723 distance_increasing = 0; | 721 distance_increasing = 0; |
724 while (!queue.IsEmpty()) { | 722 while (!queue->IsEmpty()) { |
725 Tile* tile = queue.Top(); | 723 Tile* tile = queue->Top(); |
726 EXPECT_TRUE(tile); | 724 EXPECT_TRUE(tile); |
727 | 725 |
728 if (!last_tile) | 726 if (!last_tile) |
729 last_tile = tile; | 727 last_tile = tile; |
730 | 728 |
731 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, | 729 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, |
732 tile->priority(PENDING_TREE).priority_bin); | 730 tile->priority(PENDING_TREE).priority_bin); |
733 if (last_tile->priority(PENDING_TREE).priority_bin == | 731 if (last_tile->priority(PENDING_TREE).priority_bin == |
734 tile->priority(PENDING_TREE).priority_bin) { | 732 tile->priority(PENDING_TREE).priority_bin) { |
735 EXPECT_LE(last_tile->required_for_activation(), | 733 EXPECT_LE(last_tile->required_for_activation(), |
736 tile->required_for_activation()); | 734 tile->required_for_activation()); |
737 if (last_tile->required_for_activation() == | 735 if (last_tile->required_for_activation() == |
738 tile->required_for_activation()) { | 736 tile->required_for_activation()) { |
739 if (last_tile->priority(PENDING_TREE).distance_to_visible >= | 737 if (last_tile->priority(PENDING_TREE).distance_to_visible >= |
740 tile->priority(PENDING_TREE).distance_to_visible) | 738 tile->priority(PENDING_TREE).distance_to_visible) |
741 ++distance_decreasing; | 739 ++distance_decreasing; |
742 else | 740 else |
743 ++distance_increasing; | 741 ++distance_increasing; |
744 } | 742 } |
745 } | 743 } |
746 | 744 |
747 last_tile = tile; | 745 last_tile = tile; |
748 new_content_tiles.insert(tile); | 746 new_content_tiles.insert(tile); |
749 queue.Pop(); | 747 queue->Pop(); |
750 } | 748 } |
751 | 749 |
752 EXPECT_EQ(3, distance_increasing); | 750 EXPECT_EQ(3, distance_increasing); |
753 EXPECT_EQ(16, distance_decreasing); | 751 EXPECT_EQ(16, distance_decreasing); |
754 EXPECT_EQ(tile_count, new_content_tiles.size()); | 752 EXPECT_EQ(tile_count, new_content_tiles.size()); |
755 EXPECT_EQ(all_tiles, new_content_tiles); | 753 EXPECT_EQ(all_tiles, new_content_tiles); |
756 } | 754 } |
757 | 755 |
758 TEST_F(TileManagerTilePriorityQueueTest, | 756 TEST_F(TileManagerTilePriorityQueueTest, |
759 EvictionTilePriorityQueueWithOcclusion) { | 757 EvictionTilePriorityQueueWithOcclusion) { |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
836 all_tiles.insert(pending_child_low_res_tiles.begin(), | 834 all_tiles.insert(pending_child_low_res_tiles.begin(), |
837 pending_child_low_res_tiles.end()); | 835 pending_child_low_res_tiles.end()); |
838 | 836 |
839 tile_manager()->InitializeTilesWithResourcesForTesting( | 837 tile_manager()->InitializeTilesWithResourcesForTesting( |
840 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 838 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
841 | 839 |
842 // Verify occlusion is considered by EvictionTilePriorityQueue. | 840 // Verify occlusion is considered by EvictionTilePriorityQueue. |
843 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; | 841 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; |
844 size_t occluded_count = 0u; | 842 size_t occluded_count = 0u; |
845 Tile* last_tile = NULL; | 843 Tile* last_tile = NULL; |
846 EvictionTilePriorityQueue queue; | 844 scoped_ptr<EvictionTilePriorityQueue> queue( |
847 host_impl_.BuildEvictionQueue(&queue, tree_priority); | 845 host_impl_.BuildEvictionQueue(tree_priority)); |
848 while (!queue.IsEmpty()) { | 846 while (!queue->IsEmpty()) { |
849 Tile* tile = queue.Top(); | 847 Tile* tile = queue->Top(); |
850 if (!last_tile) | 848 if (!last_tile) |
851 last_tile = tile; | 849 last_tile = tile; |
852 | 850 |
853 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); | 851 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); |
854 | 852 |
855 // The only way we will encounter an occluded tile after an unoccluded | 853 // The only way we will encounter an occluded tile after an unoccluded |
856 // tile is if the priorty bin decreased, the tile is required for | 854 // tile is if the priorty bin decreased, the tile is required for |
857 // activation, or the scale changed. | 855 // activation, or the scale changed. |
858 if (tile_is_occluded) { | 856 if (tile_is_occluded) { |
859 occluded_count++; | 857 occluded_count++; |
860 | 858 |
861 bool last_tile_is_occluded = | 859 bool last_tile_is_occluded = |
862 last_tile->is_occluded_for_tree_priority(tree_priority); | 860 last_tile->is_occluded_for_tree_priority(tree_priority); |
863 if (!last_tile_is_occluded) { | 861 if (!last_tile_is_occluded) { |
864 TilePriority::PriorityBin tile_priority_bin = | 862 TilePriority::PriorityBin tile_priority_bin = |
865 tile->priority_for_tree_priority(tree_priority).priority_bin; | 863 tile->priority_for_tree_priority(tree_priority).priority_bin; |
866 TilePriority::PriorityBin last_tile_priority_bin = | 864 TilePriority::PriorityBin last_tile_priority_bin = |
867 last_tile->priority_for_tree_priority(tree_priority).priority_bin; | 865 last_tile->priority_for_tree_priority(tree_priority).priority_bin; |
868 | 866 |
869 EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) || | 867 EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) || |
870 tile->required_for_activation() || | 868 tile->required_for_activation() || |
871 (tile->contents_scale() != last_tile->contents_scale())); | 869 (tile->contents_scale() != last_tile->contents_scale())); |
872 } | 870 } |
873 } | 871 } |
874 last_tile = tile; | 872 last_tile = tile; |
875 queue.Pop(); | 873 queue->Pop(); |
876 } | 874 } |
877 size_t expected_occluded_count = | 875 size_t expected_occluded_count = |
878 pending_child_high_res_tiles.size() + pending_child_low_res_tiles.size(); | 876 pending_child_high_res_tiles.size() + pending_child_low_res_tiles.size(); |
879 EXPECT_EQ(expected_occluded_count, occluded_count); | 877 EXPECT_EQ(expected_occluded_count, occluded_count); |
880 } | 878 } |
881 | 879 |
882 TEST_F(TileManagerTilePriorityQueueTest, | 880 TEST_F(TileManagerTilePriorityQueueTest, |
883 EvictionTilePriorityQueueWithTransparentLayer) { | 881 EvictionTilePriorityQueueWithTransparentLayer) { |
884 base::TimeTicks time_ticks; | 882 base::TimeTicks time_ticks; |
885 time_ticks += base::TimeDelta::FromMilliseconds(1); | 883 time_ticks += base::TimeDelta::FromMilliseconds(1); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
962 | 960 |
963 EXPECT_TRUE(pending_layer_->HasValidTilePriorities()); | 961 EXPECT_TRUE(pending_layer_->HasValidTilePriorities()); |
964 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities()); | 962 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities()); |
965 | 963 |
966 // Verify that eviction queue returns tiles also from layers without valid | 964 // Verify that eviction queue returns tiles also from layers without valid |
967 // tile priorities and that the tile priority bin of those tiles is (at most) | 965 // tile priorities and that the tile priority bin of those tiles is (at most) |
968 // EVENTUALLY. | 966 // EVENTUALLY. |
969 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; | 967 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; |
970 std::set<Tile*> new_content_tiles; | 968 std::set<Tile*> new_content_tiles; |
971 size_t tile_count = 0; | 969 size_t tile_count = 0; |
972 EvictionTilePriorityQueue queue; | 970 scoped_ptr<EvictionTilePriorityQueue> queue( |
973 host_impl_.BuildEvictionQueue(&queue, tree_priority); | 971 host_impl_.BuildEvictionQueue(tree_priority)); |
974 while (!queue.IsEmpty()) { | 972 while (!queue->IsEmpty()) { |
975 Tile* tile = queue.Top(); | 973 Tile* tile = queue->Top(); |
976 const TilePriority& pending_priority = tile->priority(PENDING_TREE); | 974 const TilePriority& pending_priority = tile->priority(PENDING_TREE); |
977 EXPECT_NE(std::numeric_limits<float>::infinity(), | 975 EXPECT_NE(std::numeric_limits<float>::infinity(), |
978 pending_priority.distance_to_visible); | 976 pending_priority.distance_to_visible); |
979 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) | 977 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) |
980 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin); | 978 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin); |
981 else | 979 else |
982 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); | 980 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); |
983 new_content_tiles.insert(tile); | 981 new_content_tiles.insert(tile); |
984 ++tile_count; | 982 ++tile_count; |
985 queue.Pop(); | 983 queue->Pop(); |
986 } | 984 } |
987 EXPECT_EQ(tile_count, new_content_tiles.size()); | 985 EXPECT_EQ(tile_count, new_content_tiles.size()); |
988 EXPECT_EQ(all_tiles, new_content_tiles); | 986 EXPECT_EQ(all_tiles, new_content_tiles); |
989 } | 987 } |
990 | 988 |
991 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { | 989 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
992 const gfx::Size layer_bounds(1000, 1000); | 990 const gfx::Size layer_bounds(1000, 1000); |
993 host_impl_.SetViewportSize(layer_bounds); | 991 host_impl_.SetViewportSize(layer_bounds); |
994 SetupDefaultTrees(layer_bounds); | 992 SetupDefaultTrees(layer_bounds); |
995 | 993 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1052 all_tiles.insert(raster_queue.Top()); | 1050 all_tiles.insert(raster_queue.Top()); |
1053 ++tile_count; | 1051 ++tile_count; |
1054 raster_queue.Pop(); | 1052 raster_queue.Pop(); |
1055 } | 1053 } |
1056 EXPECT_EQ(tile_count, all_tiles.size()); | 1054 EXPECT_EQ(tile_count, all_tiles.size()); |
1057 EXPECT_EQ(16u, tile_count); | 1055 EXPECT_EQ(16u, tile_count); |
1058 | 1056 |
1059 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); | 1057 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); |
1060 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); | 1058 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); |
1061 | 1059 |
1062 EvictionTilePriorityQueue queue; | |
1063 for (int i = 1; i < 10; ++i) { | 1060 for (int i = 1; i < 10; ++i) { |
1064 scoped_ptr<FakePictureLayerImpl> pending_layer = | 1061 scoped_ptr<FakePictureLayerImpl> pending_layer = |
1065 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); | 1062 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); |
1066 pending_layer->SetDrawsContent(true); | 1063 pending_layer->SetDrawsContent(true); |
1067 pending_layer->set_has_valid_tile_priorities(true); | 1064 pending_layer->set_has_valid_tile_priorities(true); |
1068 pending_layer_->AddChild(pending_layer.Pass()); | 1065 pending_layer_->AddChild(pending_layer.Pass()); |
1069 } | 1066 } |
1070 | 1067 |
1071 host_impl_.BuildEvictionQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); | 1068 scoped_ptr<EvictionTilePriorityQueue> queue( |
1072 EXPECT_FALSE(queue.IsEmpty()); | 1069 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); |
| 1070 EXPECT_FALSE(queue->IsEmpty()); |
1073 | 1071 |
1074 tile_count = 0; | 1072 tile_count = 0; |
1075 all_tiles.clear(); | 1073 all_tiles.clear(); |
1076 while (!queue.IsEmpty()) { | 1074 while (!queue->IsEmpty()) { |
1077 EXPECT_TRUE(queue.Top()); | 1075 EXPECT_TRUE(queue->Top()); |
1078 all_tiles.insert(queue.Top()); | 1076 all_tiles.insert(queue->Top()); |
1079 ++tile_count; | 1077 ++tile_count; |
1080 queue.Pop(); | 1078 queue->Pop(); |
1081 } | 1079 } |
1082 EXPECT_EQ(tile_count, all_tiles.size()); | 1080 EXPECT_EQ(tile_count, all_tiles.size()); |
1083 EXPECT_EQ(16u, tile_count); | 1081 EXPECT_EQ(16u, tile_count); |
1084 } | 1082 } |
1085 | 1083 |
1086 TEST_F(TileManagerTilePriorityQueueTest, | 1084 TEST_F(TileManagerTilePriorityQueueTest, |
1087 RasterTilePriorityQueueStaticViewport) { | 1085 RasterTilePriorityQueueStaticViewport) { |
1088 FakePictureLayerTilingClient client; | 1086 FakePictureLayerTilingClient client; |
1089 | 1087 |
1090 gfx::Rect viewport(50, 50, 100, 100); | 1088 gfx::Rect viewport(50, 50, 100, 100); |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1265 EXPECT_GT(eventually_bin_order_correct_count, | 1263 EXPECT_GT(eventually_bin_order_correct_count, |
1266 eventually_bin_order_incorrect_count); | 1264 eventually_bin_order_incorrect_count); |
1267 | 1265 |
1268 EXPECT_TRUE(have_tiles[TilePriority::NOW]); | 1266 EXPECT_TRUE(have_tiles[TilePriority::NOW]); |
1269 EXPECT_TRUE(have_tiles[TilePriority::SOON]); | 1267 EXPECT_TRUE(have_tiles[TilePriority::SOON]); |
1270 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); | 1268 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); |
1271 } | 1269 } |
1272 | 1270 |
1273 } // namespace | 1271 } // namespace |
1274 } // namespace cc | 1272 } // namespace cc |
OLD | NEW |