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 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 // Ensure we can activate. | 566 // Ensure we can activate. |
567 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); | 567 EXPECT_TRUE(pending_layer_->AllTilesRequiredForActivationAreReadyToDraw()); |
568 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); | 568 EXPECT_TRUE(pending_child_raw->AllTilesRequiredForActivationAreReadyToDraw()); |
569 } | 569 } |
570 | 570 |
571 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { | 571 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { |
572 const gfx::Size layer_bounds(1000, 1000); | 572 const gfx::Size layer_bounds(1000, 1000); |
573 host_impl_.SetViewportSize(layer_bounds); | 573 host_impl_.SetViewportSize(layer_bounds); |
574 SetupDefaultTrees(layer_bounds); | 574 SetupDefaultTrees(layer_bounds); |
575 | 575 |
576 EvictionTilePriorityQueue empty_queue; | 576 scoped_ptr<EvictionTilePriorityQueue> empty_queue( |
577 host_impl_.BuildEvictionQueue(&empty_queue, SAME_PRIORITY_FOR_BOTH_TREES); | 577 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); |
578 EXPECT_TRUE(empty_queue.IsEmpty()); | 578 EXPECT_TRUE(empty_queue->IsEmpty()); |
579 std::set<Tile*> all_tiles; | 579 std::set<Tile*> all_tiles; |
580 size_t tile_count = 0; | 580 size_t tile_count = 0; |
581 | 581 |
582 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( | 582 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( |
583 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); | 583 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); |
584 while (!raster_queue->IsEmpty()) { | 584 while (!raster_queue->IsEmpty()) { |
585 ++tile_count; | 585 ++tile_count; |
586 EXPECT_TRUE(raster_queue->Top()); | 586 EXPECT_TRUE(raster_queue->Top()); |
587 all_tiles.insert(raster_queue->Top()); | 587 all_tiles.insert(raster_queue->Top()); |
588 raster_queue->Pop(); | 588 raster_queue->Pop(); |
589 } | 589 } |
590 | 590 |
591 EXPECT_EQ(tile_count, all_tiles.size()); | 591 EXPECT_EQ(tile_count, all_tiles.size()); |
592 EXPECT_EQ(16u, tile_count); | 592 EXPECT_EQ(16u, tile_count); |
593 | 593 |
594 tile_manager()->InitializeTilesWithResourcesForTesting( | 594 tile_manager()->InitializeTilesWithResourcesForTesting( |
595 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 595 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
596 | 596 |
597 EvictionTilePriorityQueue queue; | 597 scoped_ptr<EvictionTilePriorityQueue> queue( |
598 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); | 598 host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY)); |
599 EXPECT_FALSE(queue.IsEmpty()); | 599 EXPECT_FALSE(queue->IsEmpty()); |
600 | 600 |
601 // Sanity check, all tiles should be visible. | 601 // Sanity check, all tiles should be visible. |
602 std::set<Tile*> smoothness_tiles; | 602 std::set<Tile*> smoothness_tiles; |
603 while (!queue.IsEmpty()) { | 603 while (!queue->IsEmpty()) { |
604 Tile* tile = queue.Top(); | 604 Tile* tile = queue->Top(); |
605 EXPECT_TRUE(tile); | 605 EXPECT_TRUE(tile); |
606 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); | 606 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); |
607 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); | 607 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); |
608 EXPECT_TRUE(tile->HasResource()); | 608 EXPECT_TRUE(tile->HasResource()); |
609 smoothness_tiles.insert(tile); | 609 smoothness_tiles.insert(tile); |
610 queue.Pop(); | 610 queue->Pop(); |
611 } | 611 } |
612 EXPECT_EQ(all_tiles, smoothness_tiles); | 612 EXPECT_EQ(all_tiles, smoothness_tiles); |
613 | 613 |
614 tile_manager()->ReleaseTileResourcesForTesting( | 614 tile_manager()->ReleaseTileResourcesForTesting( |
615 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 615 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
616 | 616 |
617 Region invalidation(gfx::Rect(0, 0, 500, 500)); | 617 Region invalidation(gfx::Rect(0, 0, 500, 500)); |
618 | 618 |
619 // Invalidate the pending tree. | 619 // Invalidate the pending tree. |
620 pending_layer_->set_invalidation(invalidation); | 620 pending_layer_->set_invalidation(invalidation); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) | 657 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) |
658 all_tiles.insert(active_low_res_tiles[i]); | 658 all_tiles.insert(active_low_res_tiles[i]); |
659 | 659 |
660 tile_manager()->InitializeTilesWithResourcesForTesting( | 660 tile_manager()->InitializeTilesWithResourcesForTesting( |
661 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 661 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
662 | 662 |
663 Tile* last_tile = NULL; | 663 Tile* last_tile = NULL; |
664 smoothness_tiles.clear(); | 664 smoothness_tiles.clear(); |
665 tile_count = 0; | 665 tile_count = 0; |
666 // Here we expect to get increasing ACTIVE_TREE priority_bin. | 666 // Here we expect to get increasing ACTIVE_TREE priority_bin. |
667 queue.Reset(); | 667 queue = host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY); |
668 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); | |
669 int distance_increasing = 0; | 668 int distance_increasing = 0; |
670 int distance_decreasing = 0; | 669 int distance_decreasing = 0; |
671 while (!queue.IsEmpty()) { | 670 while (!queue->IsEmpty()) { |
672 Tile* tile = queue.Top(); | 671 Tile* tile = queue->Top(); |
673 EXPECT_TRUE(tile); | 672 EXPECT_TRUE(tile); |
674 EXPECT_TRUE(tile->HasResource()); | 673 EXPECT_TRUE(tile->HasResource()); |
675 | 674 |
676 if (!last_tile) | 675 if (!last_tile) |
677 last_tile = tile; | 676 last_tile = tile; |
678 | 677 |
679 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, | 678 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, |
680 tile->priority(ACTIVE_TREE).priority_bin); | 679 tile->priority(ACTIVE_TREE).priority_bin); |
681 if (last_tile->priority(ACTIVE_TREE).priority_bin == | 680 if (last_tile->priority(ACTIVE_TREE).priority_bin == |
682 tile->priority(ACTIVE_TREE).priority_bin) { | 681 tile->priority(ACTIVE_TREE).priority_bin) { |
683 EXPECT_LE(last_tile->required_for_activation(), | 682 EXPECT_LE(last_tile->required_for_activation(), |
684 tile->required_for_activation()); | 683 tile->required_for_activation()); |
685 if (last_tile->required_for_activation() == | 684 if (last_tile->required_for_activation() == |
686 tile->required_for_activation()) { | 685 tile->required_for_activation()) { |
687 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >= | 686 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >= |
688 tile->priority(ACTIVE_TREE).distance_to_visible) | 687 tile->priority(ACTIVE_TREE).distance_to_visible) |
689 ++distance_decreasing; | 688 ++distance_decreasing; |
690 else | 689 else |
691 ++distance_increasing; | 690 ++distance_increasing; |
692 } | 691 } |
693 } | 692 } |
694 | 693 |
695 last_tile = tile; | 694 last_tile = tile; |
696 ++tile_count; | 695 ++tile_count; |
697 smoothness_tiles.insert(tile); | 696 smoothness_tiles.insert(tile); |
698 queue.Pop(); | 697 queue->Pop(); |
699 } | 698 } |
700 | 699 |
701 EXPECT_EQ(3, distance_increasing); | 700 EXPECT_EQ(3, distance_increasing); |
702 EXPECT_EQ(16, distance_decreasing); | 701 EXPECT_EQ(16, distance_decreasing); |
703 EXPECT_EQ(tile_count, smoothness_tiles.size()); | 702 EXPECT_EQ(tile_count, smoothness_tiles.size()); |
704 EXPECT_EQ(all_tiles, smoothness_tiles); | 703 EXPECT_EQ(all_tiles, smoothness_tiles); |
705 | 704 |
706 std::set<Tile*> new_content_tiles; | 705 std::set<Tile*> new_content_tiles; |
707 last_tile = NULL; | 706 last_tile = NULL; |
708 // Here we expect to get increasing PENDING_TREE priority_bin. | 707 // Here we expect to get increasing PENDING_TREE priority_bin. |
709 queue.Reset(); | 708 queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY); |
710 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); | |
711 distance_decreasing = 0; | 709 distance_decreasing = 0; |
712 distance_increasing = 0; | 710 distance_increasing = 0; |
713 while (!queue.IsEmpty()) { | 711 while (!queue->IsEmpty()) { |
714 Tile* tile = queue.Top(); | 712 Tile* tile = queue->Top(); |
715 EXPECT_TRUE(tile); | 713 EXPECT_TRUE(tile); |
716 | 714 |
717 if (!last_tile) | 715 if (!last_tile) |
718 last_tile = tile; | 716 last_tile = tile; |
719 | 717 |
720 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, | 718 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, |
721 tile->priority(PENDING_TREE).priority_bin); | 719 tile->priority(PENDING_TREE).priority_bin); |
722 if (last_tile->priority(PENDING_TREE).priority_bin == | 720 if (last_tile->priority(PENDING_TREE).priority_bin == |
723 tile->priority(PENDING_TREE).priority_bin) { | 721 tile->priority(PENDING_TREE).priority_bin) { |
724 EXPECT_LE(last_tile->required_for_activation(), | 722 EXPECT_LE(last_tile->required_for_activation(), |
725 tile->required_for_activation()); | 723 tile->required_for_activation()); |
726 if (last_tile->required_for_activation() == | 724 if (last_tile->required_for_activation() == |
727 tile->required_for_activation()) { | 725 tile->required_for_activation()) { |
728 if (last_tile->priority(PENDING_TREE).distance_to_visible >= | 726 if (last_tile->priority(PENDING_TREE).distance_to_visible >= |
729 tile->priority(PENDING_TREE).distance_to_visible) | 727 tile->priority(PENDING_TREE).distance_to_visible) |
730 ++distance_decreasing; | 728 ++distance_decreasing; |
731 else | 729 else |
732 ++distance_increasing; | 730 ++distance_increasing; |
733 } | 731 } |
734 } | 732 } |
735 | 733 |
736 last_tile = tile; | 734 last_tile = tile; |
737 new_content_tiles.insert(tile); | 735 new_content_tiles.insert(tile); |
738 queue.Pop(); | 736 queue->Pop(); |
739 } | 737 } |
740 | 738 |
741 EXPECT_EQ(3, distance_increasing); | 739 EXPECT_EQ(3, distance_increasing); |
742 EXPECT_EQ(16, distance_decreasing); | 740 EXPECT_EQ(16, distance_decreasing); |
743 EXPECT_EQ(tile_count, new_content_tiles.size()); | 741 EXPECT_EQ(tile_count, new_content_tiles.size()); |
744 EXPECT_EQ(all_tiles, new_content_tiles); | 742 EXPECT_EQ(all_tiles, new_content_tiles); |
745 } | 743 } |
746 | 744 |
747 TEST_F(TileManagerTilePriorityQueueTest, | 745 TEST_F(TileManagerTilePriorityQueueTest, |
748 EvictionTilePriorityQueueWithOcclusion) { | 746 EvictionTilePriorityQueueWithOcclusion) { |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
824 all_tiles.insert(pending_child_low_res_tiles.begin(), | 822 all_tiles.insert(pending_child_low_res_tiles.begin(), |
825 pending_child_low_res_tiles.end()); | 823 pending_child_low_res_tiles.end()); |
826 | 824 |
827 tile_manager()->InitializeTilesWithResourcesForTesting( | 825 tile_manager()->InitializeTilesWithResourcesForTesting( |
828 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 826 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
829 | 827 |
830 // Verify occlusion is considered by EvictionTilePriorityQueue. | 828 // Verify occlusion is considered by EvictionTilePriorityQueue. |
831 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; | 829 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; |
832 size_t occluded_count = 0u; | 830 size_t occluded_count = 0u; |
833 Tile* last_tile = NULL; | 831 Tile* last_tile = NULL; |
834 EvictionTilePriorityQueue queue; | 832 scoped_ptr<EvictionTilePriorityQueue> queue( |
835 host_impl_.BuildEvictionQueue(&queue, tree_priority); | 833 host_impl_.BuildEvictionQueue(tree_priority)); |
836 while (!queue.IsEmpty()) { | 834 while (!queue->IsEmpty()) { |
837 Tile* tile = queue.Top(); | 835 Tile* tile = queue->Top(); |
838 if (!last_tile) | 836 if (!last_tile) |
839 last_tile = tile; | 837 last_tile = tile; |
840 | 838 |
841 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); | 839 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); |
842 | 840 |
843 // The only way we will encounter an occluded tile after an unoccluded | 841 // The only way we will encounter an occluded tile after an unoccluded |
844 // tile is if the priorty bin decreased, the tile is required for | 842 // tile is if the priorty bin decreased, the tile is required for |
845 // activation, or the scale changed. | 843 // activation, or the scale changed. |
846 if (tile_is_occluded) { | 844 if (tile_is_occluded) { |
847 occluded_count++; | 845 occluded_count++; |
848 | 846 |
849 bool last_tile_is_occluded = | 847 bool last_tile_is_occluded = |
850 last_tile->is_occluded_for_tree_priority(tree_priority); | 848 last_tile->is_occluded_for_tree_priority(tree_priority); |
851 if (!last_tile_is_occluded) { | 849 if (!last_tile_is_occluded) { |
852 TilePriority::PriorityBin tile_priority_bin = | 850 TilePriority::PriorityBin tile_priority_bin = |
853 tile->priority_for_tree_priority(tree_priority).priority_bin; | 851 tile->priority_for_tree_priority(tree_priority).priority_bin; |
854 TilePriority::PriorityBin last_tile_priority_bin = | 852 TilePriority::PriorityBin last_tile_priority_bin = |
855 last_tile->priority_for_tree_priority(tree_priority).priority_bin; | 853 last_tile->priority_for_tree_priority(tree_priority).priority_bin; |
856 | 854 |
857 EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) || | 855 EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) || |
858 tile->required_for_activation() || | 856 tile->required_for_activation() || |
859 (tile->contents_scale() != last_tile->contents_scale())); | 857 (tile->contents_scale() != last_tile->contents_scale())); |
860 } | 858 } |
861 } | 859 } |
862 last_tile = tile; | 860 last_tile = tile; |
863 queue.Pop(); | 861 queue->Pop(); |
864 } | 862 } |
865 size_t expected_occluded_count = | 863 size_t expected_occluded_count = |
866 pending_child_high_res_tiles.size() + pending_child_low_res_tiles.size(); | 864 pending_child_high_res_tiles.size() + pending_child_low_res_tiles.size(); |
867 EXPECT_EQ(expected_occluded_count, occluded_count); | 865 EXPECT_EQ(expected_occluded_count, occluded_count); |
868 } | 866 } |
869 | 867 |
870 TEST_F(TileManagerTilePriorityQueueTest, | 868 TEST_F(TileManagerTilePriorityQueueTest, |
871 EvictionTilePriorityQueueWithTransparentLayer) { | 869 EvictionTilePriorityQueueWithTransparentLayer) { |
872 base::TimeTicks time_ticks; | 870 base::TimeTicks time_ticks; |
873 time_ticks += base::TimeDelta::FromMilliseconds(1); | 871 time_ticks += base::TimeDelta::FromMilliseconds(1); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
950 | 948 |
951 EXPECT_TRUE(pending_layer_->HasValidTilePriorities()); | 949 EXPECT_TRUE(pending_layer_->HasValidTilePriorities()); |
952 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities()); | 950 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities()); |
953 | 951 |
954 // Verify that eviction queue returns tiles also from layers without valid | 952 // Verify that eviction queue returns tiles also from layers without valid |
955 // tile priorities and that the tile priority bin of those tiles is (at most) | 953 // tile priorities and that the tile priority bin of those tiles is (at most) |
956 // EVENTUALLY. | 954 // EVENTUALLY. |
957 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; | 955 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; |
958 std::set<Tile*> new_content_tiles; | 956 std::set<Tile*> new_content_tiles; |
959 size_t tile_count = 0; | 957 size_t tile_count = 0; |
960 EvictionTilePriorityQueue queue; | 958 scoped_ptr<EvictionTilePriorityQueue> queue( |
961 host_impl_.BuildEvictionQueue(&queue, tree_priority); | 959 host_impl_.BuildEvictionQueue(tree_priority)); |
962 while (!queue.IsEmpty()) { | 960 while (!queue->IsEmpty()) { |
963 Tile* tile = queue.Top(); | 961 Tile* tile = queue->Top(); |
964 const TilePriority& pending_priority = tile->priority(PENDING_TREE); | 962 const TilePriority& pending_priority = tile->priority(PENDING_TREE); |
965 EXPECT_NE(std::numeric_limits<float>::infinity(), | 963 EXPECT_NE(std::numeric_limits<float>::infinity(), |
966 pending_priority.distance_to_visible); | 964 pending_priority.distance_to_visible); |
967 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) | 965 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) |
968 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin); | 966 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin); |
969 else | 967 else |
970 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); | 968 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); |
971 new_content_tiles.insert(tile); | 969 new_content_tiles.insert(tile); |
972 ++tile_count; | 970 ++tile_count; |
973 queue.Pop(); | 971 queue->Pop(); |
974 } | 972 } |
975 EXPECT_EQ(tile_count, new_content_tiles.size()); | 973 EXPECT_EQ(tile_count, new_content_tiles.size()); |
976 EXPECT_EQ(all_tiles, new_content_tiles); | 974 EXPECT_EQ(all_tiles, new_content_tiles); |
977 } | 975 } |
978 | 976 |
979 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { | 977 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { |
980 const gfx::Size layer_bounds(1000, 1000); | 978 const gfx::Size layer_bounds(1000, 1000); |
981 host_impl_.SetViewportSize(layer_bounds); | 979 host_impl_.SetViewportSize(layer_bounds); |
982 SetupDefaultTrees(layer_bounds); | 980 SetupDefaultTrees(layer_bounds); |
983 | 981 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 all_tiles.insert(raster_queue->Top()); | 1035 all_tiles.insert(raster_queue->Top()); |
1038 ++tile_count; | 1036 ++tile_count; |
1039 raster_queue->Pop(); | 1037 raster_queue->Pop(); |
1040 } | 1038 } |
1041 EXPECT_EQ(tile_count, all_tiles.size()); | 1039 EXPECT_EQ(tile_count, all_tiles.size()); |
1042 EXPECT_EQ(16u, tile_count); | 1040 EXPECT_EQ(16u, tile_count); |
1043 | 1041 |
1044 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); | 1042 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); |
1045 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); | 1043 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); |
1046 | 1044 |
1047 EvictionTilePriorityQueue queue; | |
1048 for (int i = 1; i < 10; ++i) { | 1045 for (int i = 1; i < 10; ++i) { |
1049 scoped_ptr<FakePictureLayerImpl> pending_layer = | 1046 scoped_ptr<FakePictureLayerImpl> pending_layer = |
1050 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); | 1047 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); |
1051 pending_layer->SetDrawsContent(true); | 1048 pending_layer->SetDrawsContent(true); |
1052 pending_layer->set_has_valid_tile_priorities(true); | 1049 pending_layer->set_has_valid_tile_priorities(true); |
1053 pending_layer_->AddChild(pending_layer.Pass()); | 1050 pending_layer_->AddChild(pending_layer.Pass()); |
1054 } | 1051 } |
1055 | 1052 |
1056 host_impl_.BuildEvictionQueue(&queue, SAME_PRIORITY_FOR_BOTH_TREES); | 1053 scoped_ptr<EvictionTilePriorityQueue> queue( |
1057 EXPECT_FALSE(queue.IsEmpty()); | 1054 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); |
| 1055 EXPECT_FALSE(queue->IsEmpty()); |
1058 | 1056 |
1059 tile_count = 0; | 1057 tile_count = 0; |
1060 all_tiles.clear(); | 1058 all_tiles.clear(); |
1061 while (!queue.IsEmpty()) { | 1059 while (!queue->IsEmpty()) { |
1062 EXPECT_TRUE(queue.Top()); | 1060 EXPECT_TRUE(queue->Top()); |
1063 all_tiles.insert(queue.Top()); | 1061 all_tiles.insert(queue->Top()); |
1064 ++tile_count; | 1062 ++tile_count; |
1065 queue.Pop(); | 1063 queue->Pop(); |
1066 } | 1064 } |
1067 EXPECT_EQ(tile_count, all_tiles.size()); | 1065 EXPECT_EQ(tile_count, all_tiles.size()); |
1068 EXPECT_EQ(16u, tile_count); | 1066 EXPECT_EQ(16u, tile_count); |
1069 } | 1067 } |
1070 | 1068 |
1071 TEST_F(TileManagerTilePriorityQueueTest, | 1069 TEST_F(TileManagerTilePriorityQueueTest, |
1072 RasterTilePriorityQueueStaticViewport) { | 1070 RasterTilePriorityQueueStaticViewport) { |
1073 FakePictureLayerTilingClient client; | 1071 FakePictureLayerTilingClient client; |
1074 | 1072 |
1075 gfx::Rect viewport(50, 50, 100, 100); | 1073 gfx::Rect viewport(50, 50, 100, 100); |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1250 EXPECT_GT(eventually_bin_order_correct_count, | 1248 EXPECT_GT(eventually_bin_order_correct_count, |
1251 eventually_bin_order_incorrect_count); | 1249 eventually_bin_order_incorrect_count); |
1252 | 1250 |
1253 EXPECT_TRUE(have_tiles[TilePriority::NOW]); | 1251 EXPECT_TRUE(have_tiles[TilePriority::NOW]); |
1254 EXPECT_TRUE(have_tiles[TilePriority::SOON]); | 1252 EXPECT_TRUE(have_tiles[TilePriority::SOON]); |
1255 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); | 1253 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); |
1256 } | 1254 } |
1257 | 1255 |
1258 } // namespace | 1256 } // namespace |
1259 } // namespace cc | 1257 } // namespace cc |
OLD | NEW |