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

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

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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/resources/tile_priority.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 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 active_layer_->LowResTiling()->AllTilesForTesting(); 655 active_layer_->LowResTiling()->AllTilesForTesting();
656 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) 656 for (size_t i = 0; i < active_low_res_tiles.size(); ++i)
657 all_tiles.insert(active_low_res_tiles[i]); 657 all_tiles.insert(active_low_res_tiles[i]);
658 658
659 tile_manager()->InitializeTilesWithResourcesForTesting( 659 tile_manager()->InitializeTilesWithResourcesForTesting(
660 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 660 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
661 661
662 Tile* last_tile = NULL; 662 Tile* last_tile = NULL;
663 smoothness_tiles.clear(); 663 smoothness_tiles.clear();
664 tile_count = 0; 664 tile_count = 0;
665 // Here we expect to get increasing ACTIVE_TREE priority_bin. 665 // Here we expect to get increasing combined priority_bin.
666 queue = host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY); 666 queue = host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY);
667 int distance_increasing = 0; 667 int distance_increasing = 0;
668 int distance_decreasing = 0; 668 int distance_decreasing = 0;
669 while (!queue->IsEmpty()) { 669 while (!queue->IsEmpty()) {
670 Tile* tile = queue->Top(); 670 Tile* tile = queue->Top();
671 EXPECT_TRUE(tile); 671 EXPECT_TRUE(tile);
672 EXPECT_TRUE(tile->HasResource()); 672 EXPECT_TRUE(tile->HasResource());
673 673
674 if (!last_tile) 674 if (!last_tile)
675 last_tile = tile; 675 last_tile = tile;
676 676
677 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, 677 const TilePriority& last_priority = last_tile->combined_priority();
678 tile->priority(ACTIVE_TREE).priority_bin); 678 const TilePriority& priority = tile->combined_priority();
679 if (last_tile->priority(ACTIVE_TREE).priority_bin == 679
680 tile->priority(ACTIVE_TREE).priority_bin) { 680 EXPECT_GE(last_priority.priority_bin, priority.priority_bin);
681 if (last_priority.priority_bin == priority.priority_bin) {
681 EXPECT_LE(last_tile->required_for_activation(), 682 EXPECT_LE(last_tile->required_for_activation(),
682 tile->required_for_activation()); 683 tile->required_for_activation());
683 if (last_tile->required_for_activation() == 684 if (last_tile->required_for_activation() ==
684 tile->required_for_activation()) { 685 tile->required_for_activation()) {
685 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >= 686 if (last_priority.distance_to_visible >= priority.distance_to_visible)
686 tile->priority(ACTIVE_TREE).distance_to_visible)
687 ++distance_decreasing; 687 ++distance_decreasing;
688 else 688 else
689 ++distance_increasing; 689 ++distance_increasing;
690 } 690 }
691 } 691 }
692 692
693 last_tile = tile; 693 last_tile = tile;
694 ++tile_count; 694 ++tile_count;
695 smoothness_tiles.insert(tile); 695 smoothness_tiles.insert(tile);
696 queue->Pop(); 696 queue->Pop();
697 } 697 }
698 698
699 // Ensure that the distance is decreasing many more times than increasing.
699 EXPECT_EQ(3, distance_increasing); 700 EXPECT_EQ(3, distance_increasing);
700 EXPECT_EQ(16, distance_decreasing); 701 EXPECT_EQ(17, distance_decreasing);
701 EXPECT_EQ(tile_count, smoothness_tiles.size()); 702 EXPECT_EQ(tile_count, smoothness_tiles.size());
702 EXPECT_EQ(all_tiles, smoothness_tiles); 703 EXPECT_EQ(all_tiles, smoothness_tiles);
703 704
704 std::set<Tile*> new_content_tiles; 705 std::set<Tile*> new_content_tiles;
705 last_tile = NULL; 706 last_tile = NULL;
706 // Here we expect to get increasing PENDING_TREE priority_bin. 707 // Again, we expect to get increasing combined priority_bin.
707 queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY); 708 queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY);
708 distance_decreasing = 0; 709 distance_decreasing = 0;
709 distance_increasing = 0; 710 distance_increasing = 0;
710 while (!queue->IsEmpty()) { 711 while (!queue->IsEmpty()) {
711 Tile* tile = queue->Top(); 712 Tile* tile = queue->Top();
712 EXPECT_TRUE(tile); 713 EXPECT_TRUE(tile);
713 714
714 if (!last_tile) 715 if (!last_tile)
715 last_tile = tile; 716 last_tile = tile;
716 717
717 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, 718 const TilePriority& last_priority = last_tile->combined_priority();
718 tile->priority(PENDING_TREE).priority_bin); 719 const TilePriority& priority = tile->combined_priority();
719 if (last_tile->priority(PENDING_TREE).priority_bin == 720
720 tile->priority(PENDING_TREE).priority_bin) { 721 EXPECT_GE(last_priority.priority_bin, priority.priority_bin);
722 if (last_priority.priority_bin == priority.priority_bin) {
721 EXPECT_LE(last_tile->required_for_activation(), 723 EXPECT_LE(last_tile->required_for_activation(),
722 tile->required_for_activation()); 724 tile->required_for_activation());
723 if (last_tile->required_for_activation() == 725 if (last_tile->required_for_activation() ==
724 tile->required_for_activation()) { 726 tile->required_for_activation()) {
725 if (last_tile->priority(PENDING_TREE).distance_to_visible >= 727 if (last_priority.distance_to_visible >= priority.distance_to_visible)
726 tile->priority(PENDING_TREE).distance_to_visible)
727 ++distance_decreasing; 728 ++distance_decreasing;
728 else 729 else
729 ++distance_increasing; 730 ++distance_increasing;
730 } 731 }
731 } 732 }
732 733
733 last_tile = tile; 734 last_tile = tile;
734 new_content_tiles.insert(tile); 735 new_content_tiles.insert(tile);
735 queue->Pop(); 736 queue->Pop();
736 } 737 }
737 738
739 // Ensure that the distance is decreasing many more times than increasing.
738 EXPECT_EQ(3, distance_increasing); 740 EXPECT_EQ(3, distance_increasing);
739 EXPECT_EQ(16, distance_decreasing); 741 EXPECT_EQ(17, distance_decreasing);
740 EXPECT_EQ(tile_count, new_content_tiles.size()); 742 EXPECT_EQ(tile_count, new_content_tiles.size());
741 EXPECT_EQ(all_tiles, new_content_tiles); 743 EXPECT_EQ(all_tiles, new_content_tiles);
742 } 744 }
743 745
744 TEST_F(TileManagerTilePriorityQueueTest, 746 TEST_F(TileManagerTilePriorityQueueTest,
745 EvictionTilePriorityQueueWithOcclusion) { 747 EvictionTilePriorityQueueWithOcclusion) {
746 base::TimeTicks time_ticks; 748 base::TimeTicks time_ticks;
747 time_ticks += base::TimeDelta::FromMilliseconds(1); 749 time_ticks += base::TimeDelta::FromMilliseconds(1);
748 host_impl_.SetCurrentBeginFrameArgs( 750 host_impl_.SetCurrentBeginFrameArgs(
749 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 751 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
(...skipping 14 matching lines...) Expand all
764 766
765 FakePictureLayerImpl* pending_child_layer = 767 FakePictureLayerImpl* pending_child_layer =
766 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); 768 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]);
767 pending_child_layer->SetDrawsContent(true); 769 pending_child_layer->SetDrawsContent(true);
768 770
769 time_ticks += base::TimeDelta::FromMilliseconds(1); 771 time_ticks += base::TimeDelta::FromMilliseconds(1);
770 host_impl_.SetCurrentBeginFrameArgs( 772 host_impl_.SetCurrentBeginFrameArgs(
771 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 773 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
772 host_impl_.pending_tree()->UpdateDrawProperties(); 774 host_impl_.pending_tree()->UpdateDrawProperties();
773 775
776 ActivateTree();
777 SetupPendingTree(pending_pile);
778
779 FakePictureLayerImpl* active_child_layer =
780 static_cast<FakePictureLayerImpl*>(active_layer_->children()[0]);
781
774 std::set<Tile*> all_tiles; 782 std::set<Tile*> all_tiles;
775 size_t tile_count = 0; 783 size_t tile_count = 0;
776 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 784 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue(
777 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 785 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
778 while (!raster_queue->IsEmpty()) { 786 while (!raster_queue->IsEmpty()) {
779 ++tile_count; 787 ++tile_count;
780 EXPECT_TRUE(raster_queue->Top()); 788 EXPECT_TRUE(raster_queue->Top());
781 all_tiles.insert(raster_queue->Top()); 789 all_tiles.insert(raster_queue->Top());
782 raster_queue->Pop(); 790 raster_queue->Pop();
783 } 791 }
784 EXPECT_EQ(tile_count, all_tiles.size()); 792 EXPECT_EQ(tile_count, all_tiles.size());
785 EXPECT_EQ(32u, tile_count); 793 EXPECT_EQ(32u, tile_count);
786 794
787 pending_layer_->ResetAllTilesPriorities(); 795 pending_layer_->ResetAllTilesPriorities();
788 796
789 // Renew all of the tile priorities. 797 // Renew all of the tile priorities.
790 gfx::Rect viewport(layer_bounds); 798 gfx::Rect viewport(layer_bounds);
791 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, 799 pending_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0,
792 Occlusion()); 800 Occlusion());
793 pending_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0, 801 pending_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0,
794 Occlusion()); 802 Occlusion());
795 pending_child_layer->HighResTiling()->ComputeTilePriorityRects( 803 pending_child_layer->HighResTiling()->ComputeTilePriorityRects(
796 viewport, 1.0f, 1.0, Occlusion()); 804 viewport, 1.0f, 1.0, Occlusion());
797 pending_child_layer->LowResTiling()->ComputeTilePriorityRects( 805 pending_child_layer->LowResTiling()->ComputeTilePriorityRects(
798 viewport, 1.0f, 1.0, Occlusion()); 806 viewport, 1.0f, 1.0, Occlusion());
799 807
808 active_layer_->HighResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0,
809 Occlusion());
810 active_layer_->LowResTiling()->ComputeTilePriorityRects(viewport, 1.0f, 1.0,
811 Occlusion());
812 active_child_layer->HighResTiling()->ComputeTilePriorityRects(
813 viewport, 1.0f, 1.0, Occlusion());
814 active_child_layer->LowResTiling()->ComputeTilePriorityRects(
815 viewport, 1.0f, 1.0, Occlusion());
816
800 // Populate all tiles directly from the tilings. 817 // Populate all tiles directly from the tilings.
801 all_tiles.clear(); 818 all_tiles.clear();
802 std::vector<Tile*> pending_high_res_tiles = 819 std::vector<Tile*> pending_high_res_tiles =
803 pending_layer_->HighResTiling()->AllTilesForTesting(); 820 pending_layer_->HighResTiling()->AllTilesForTesting();
804 all_tiles.insert(pending_high_res_tiles.begin(), 821 all_tiles.insert(pending_high_res_tiles.begin(),
805 pending_high_res_tiles.end()); 822 pending_high_res_tiles.end());
806 823
807 std::vector<Tile*> pending_low_res_tiles = 824 std::vector<Tile*> pending_low_res_tiles =
808 pending_layer_->LowResTiling()->AllTilesForTesting(); 825 pending_layer_->LowResTiling()->AllTilesForTesting();
809 all_tiles.insert(pending_low_res_tiles.begin(), pending_low_res_tiles.end()); 826 all_tiles.insert(pending_low_res_tiles.begin(), pending_low_res_tiles.end());
810 827
811 // Set all tiles on the pending_child_layer as occluded on the pending tree. 828 // Set all tiles on the pending_child_layer as occluded on the pending tree.
812 std::vector<Tile*> pending_child_high_res_tiles = 829 std::vector<Tile*> pending_child_high_res_tiles =
813 pending_child_layer->HighResTiling()->AllTilesForTesting(); 830 pending_child_layer->HighResTiling()->AllTilesForTesting();
814 pending_child_layer->HighResTiling()->SetAllTilesOccludedForTesting(); 831 pending_child_layer->HighResTiling()->SetAllTilesOccludedForTesting();
832 active_child_layer->HighResTiling()->SetAllTilesOccludedForTesting();
815 all_tiles.insert(pending_child_high_res_tiles.begin(), 833 all_tiles.insert(pending_child_high_res_tiles.begin(),
816 pending_child_high_res_tiles.end()); 834 pending_child_high_res_tiles.end());
817 835
818 std::vector<Tile*> pending_child_low_res_tiles = 836 std::vector<Tile*> pending_child_low_res_tiles =
819 pending_child_layer->LowResTiling()->AllTilesForTesting(); 837 pending_child_layer->LowResTiling()->AllTilesForTesting();
820 pending_child_layer->LowResTiling()->SetAllTilesOccludedForTesting(); 838 pending_child_layer->LowResTiling()->SetAllTilesOccludedForTesting();
839 active_child_layer->LowResTiling()->SetAllTilesOccludedForTesting();
821 all_tiles.insert(pending_child_low_res_tiles.begin(), 840 all_tiles.insert(pending_child_low_res_tiles.begin(),
822 pending_child_low_res_tiles.end()); 841 pending_child_low_res_tiles.end());
823 842
824 tile_manager()->InitializeTilesWithResourcesForTesting( 843 tile_manager()->InitializeTilesWithResourcesForTesting(
825 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 844 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
826 845
827 // Verify occlusion is considered by EvictionTilePriorityQueue. 846 // Verify occlusion is considered by EvictionTilePriorityQueue.
828 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; 847 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY;
829 size_t occluded_count = 0u; 848 size_t occluded_count = 0u;
830 Tile* last_tile = NULL; 849 Tile* last_tile = NULL;
831 scoped_ptr<EvictionTilePriorityQueue> queue( 850 scoped_ptr<EvictionTilePriorityQueue> queue(
832 host_impl_.BuildEvictionQueue(tree_priority)); 851 host_impl_.BuildEvictionQueue(tree_priority));
833 while (!queue->IsEmpty()) { 852 while (!queue->IsEmpty()) {
834 Tile* tile = queue->Top(); 853 Tile* tile = queue->Top();
835 if (!last_tile) 854 if (!last_tile)
836 last_tile = tile; 855 last_tile = tile;
837 856
838 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); 857 bool tile_is_occluded = tile->is_occluded_combined();
839 858
840 // The only way we will encounter an occluded tile after an unoccluded 859 // The only way we will encounter an occluded tile after an unoccluded
841 // tile is if the priorty bin decreased, the tile is required for 860 // tile is if the priorty bin decreased, the tile is required for
842 // activation, or the scale changed. 861 // activation, or the scale changed.
843 if (tile_is_occluded) { 862 if (tile_is_occluded) {
844 occluded_count++; 863 occluded_count++;
845 864
846 bool last_tile_is_occluded = 865 bool last_tile_is_occluded = last_tile->is_occluded_combined();
847 last_tile->is_occluded_for_tree_priority(tree_priority);
848 if (!last_tile_is_occluded) { 866 if (!last_tile_is_occluded) {
849 TilePriority::PriorityBin tile_priority_bin = 867 TilePriority::PriorityBin tile_priority_bin =
850 tile->priority_for_tree_priority(tree_priority).priority_bin; 868 tile->priority_for_tree_priority(tree_priority).priority_bin;
851 TilePriority::PriorityBin last_tile_priority_bin = 869 TilePriority::PriorityBin last_tile_priority_bin =
852 last_tile->priority_for_tree_priority(tree_priority).priority_bin; 870 last_tile->priority_for_tree_priority(tree_priority).priority_bin;
853 871
854 EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) || 872 EXPECT_TRUE((tile_priority_bin < last_tile_priority_bin) ||
855 tile->required_for_activation() || 873 tile->required_for_activation() ||
856 (tile->contents_scale() != last_tile->contents_scale())); 874 (tile->contents_scale() != last_tile->contents_scale()));
857 } 875 }
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 queue->Pop(); 1080 queue->Pop();
1063 } 1081 }
1064 EXPECT_EQ(tile_count, all_tiles.size()); 1082 EXPECT_EQ(tile_count, all_tiles.size());
1065 EXPECT_EQ(16u, tile_count); 1083 EXPECT_EQ(16u, tile_count);
1066 } 1084 }
1067 1085
1068 TEST_F(TileManagerTilePriorityQueueTest, 1086 TEST_F(TileManagerTilePriorityQueueTest,
1069 RasterTilePriorityQueueStaticViewport) { 1087 RasterTilePriorityQueueStaticViewport) {
1070 FakePictureLayerTilingClient client; 1088 FakePictureLayerTilingClient client;
1071 1089
1072 gfx::Rect viewport(50, 50, 100, 100); 1090 gfx::Rect viewport(50, 50, 500, 500);
1073 gfx::Size layer_bounds(800, 800); 1091 gfx::Size layer_bounds(1600, 1600);
1074 1092
1093 float inset = PictureLayerTiling::CalculateSoonBorderDistance(viewport, 1.0f);
1075 gfx::Rect soon_rect = viewport; 1094 gfx::Rect soon_rect = viewport;
1076 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 1095 soon_rect.Inset(-inset, -inset);
1077 1096
1078 client.SetTileSize(gfx::Size(30, 30)); 1097 client.SetTileSize(gfx::Size(30, 30));
1079 client.set_tree(ACTIVE_TREE); 1098 client.set_tree(ACTIVE_TREE);
1080 LayerTreeSettings settings; 1099 LayerTreeSettings settings;
1081 settings.max_tiles_for_interest_area = 10000; 1100 settings.max_tiles_for_interest_area = 10000;
1082 1101
1083 scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create( 1102 scoped_ptr<PictureLayerTilingSet> tiling_set = PictureLayerTilingSet::Create(
1084 &client, settings.max_tiles_for_interest_area, 1103 &client, settings.max_tiles_for_interest_area,
1085 settings.skewport_target_time_in_seconds, 1104 settings.skewport_target_time_in_seconds,
1086 settings.skewport_extrapolation_limit_in_content_pixels); 1105 settings.skewport_extrapolation_limit_in_content_pixels);
1087 1106
1088 scoped_refptr<FakePicturePileImpl> pile = 1107 scoped_refptr<FakePicturePileImpl> pile =
1089 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); 1108 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds);
1090 PictureLayerTiling* tiling = tiling_set->AddTiling(1.0f, pile); 1109 PictureLayerTiling* tiling = tiling_set->AddTiling(1.0f, pile);
1091 tiling->set_resolution(HIGH_RESOLUTION); 1110 tiling->set_resolution(HIGH_RESOLUTION);
1092 1111
1093 tiling_set->UpdateTilePriorities(viewport, 1.0f, 1.0, Occlusion(), true); 1112 tiling_set->UpdateTilePriorities(viewport, 1.0f, 1.0, Occlusion(), true);
1094 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting(); 1113 std::vector<Tile*> all_tiles = tiling->AllTilesForTesting();
1095 // Sanity check. 1114 // Sanity check.
1096 EXPECT_EQ(841u, all_tiles.size()); 1115 EXPECT_EQ(3364u, all_tiles.size());
1097 1116
1098 // The explanation of each iteration is as follows: 1117 // The explanation of each iteration is as follows:
1099 // 1. First iteration tests that we can get all of the tiles correctly. 1118 // 1. First iteration tests that we can get all of the tiles correctly.
1100 // 2. Second iteration ensures that we can get all of the tiles again (first 1119 // 2. Second iteration ensures that we can get all of the tiles again (first
1101 // iteration didn't change any tiles), as well set all tiles to be ready to 1120 // iteration didn't change any tiles), as well set all tiles to be ready to
1102 // draw. 1121 // draw.
1103 // 3. Third iteration ensures that no tiles are returned, since they were all 1122 // 3. Third iteration ensures that no tiles are returned, since they were all
1104 // marked as ready to draw. 1123 // marked as ready to draw.
1105 for (int i = 0; i < 3; ++i) { 1124 for (int i = 0; i < 3; ++i) {
1106 scoped_ptr<TilingSetRasterQueueAll> queue( 1125 scoped_ptr<TilingSetRasterQueueAll> queue(
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1198 1217
1199 scoped_refptr<FakePicturePileImpl> pile = 1218 scoped_refptr<FakePicturePileImpl> pile =
1200 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds); 1219 FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds);
1201 PictureLayerTiling* tiling = tiling_set->AddTiling(1.0f, pile); 1220 PictureLayerTiling* tiling = tiling_set->AddTiling(1.0f, pile);
1202 tiling->set_resolution(HIGH_RESOLUTION); 1221 tiling->set_resolution(HIGH_RESOLUTION);
1203 1222
1204 tiling_set->UpdateTilePriorities(viewport, 1.0f, 1.0, Occlusion(), true); 1223 tiling_set->UpdateTilePriorities(viewport, 1.0f, 1.0, Occlusion(), true);
1205 tiling_set->UpdateTilePriorities(moved_viewport, 1.0f, 2.0, Occlusion(), 1224 tiling_set->UpdateTilePriorities(moved_viewport, 1.0f, 2.0, Occlusion(),
1206 true); 1225 true);
1207 1226
1227 float inset =
1228 PictureLayerTiling::CalculateSoonBorderDistance(moved_viewport, 1.0f);
1208 gfx::Rect soon_rect = moved_viewport; 1229 gfx::Rect soon_rect = moved_viewport;
1209 soon_rect.Inset(-312.f, -312.f, -312.f, -312.f); 1230 soon_rect.Inset(-inset, -inset);
1210 1231
1211 // There are 3 bins in TilePriority. 1232 // There are 3 bins in TilePriority.
1212 bool have_tiles[3] = {}; 1233 bool have_tiles[3] = {};
1213 Tile* last_tile = NULL; 1234 Tile* last_tile = NULL;
1214 int eventually_bin_order_correct_count = 0; 1235 int eventually_bin_order_correct_count = 0;
1215 int eventually_bin_order_incorrect_count = 0; 1236 int eventually_bin_order_incorrect_count = 0;
1216 scoped_ptr<TilingSetRasterQueueAll> queue( 1237 scoped_ptr<TilingSetRasterQueueAll> queue(
1217 new TilingSetRasterQueueAll(tiling_set.get(), false)); 1238 new TilingSetRasterQueueAll(tiling_set.get(), false));
1218 for (; !queue->IsEmpty(); queue->Pop()) { 1239 for (; !queue->IsEmpty(); queue->Pop()) {
1219 if (!last_tile) 1240 if (!last_tile)
(...skipping 27 matching lines...) Expand all
1247 EXPECT_GT(eventually_bin_order_correct_count, 1268 EXPECT_GT(eventually_bin_order_correct_count,
1248 eventually_bin_order_incorrect_count); 1269 eventually_bin_order_incorrect_count);
1249 1270
1250 EXPECT_TRUE(have_tiles[TilePriority::NOW]); 1271 EXPECT_TRUE(have_tiles[TilePriority::NOW]);
1251 EXPECT_TRUE(have_tiles[TilePriority::SOON]); 1272 EXPECT_TRUE(have_tiles[TilePriority::SOON]);
1252 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); 1273 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]);
1253 } 1274 }
1254 1275
1255 } // namespace 1276 } // namespace
1256 } // namespace cc 1277 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/tile_manager_perftest.cc ('k') | cc/resources/tile_priority.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698