Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: cc/resources/tile_manager_unittest.cc

Issue 862263004: cc: Make eviction queue building consistent with raster. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/resources/tile_manager_perftest.cc ('k') | cc/test/fake_tile_manager_client.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « cc/resources/tile_manager_perftest.cc ('k') | cc/test/fake_tile_manager_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698