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

Side by Side Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 2910303002: cc: Keep tile eviction prioritization consistent with raster priorities. (Closed)
Patch Set: Created 3 years, 6 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/layers/picture_layer_impl_perftest.cc ('k') | cc/tiles/eviction_tile_priority_queue.cc » ('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/layers/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <limits> 10 #include <limits>
(...skipping 2943 matching lines...) Expand 10 before | Expand all | Expand 10 after
2954 } 2954 }
2955 } 2955 }
2956 2956
2957 // Sanity checks. 2957 // Sanity checks.
2958 EXPECT_EQ(16u, all_tiles.size()); 2958 EXPECT_EQ(16u, all_tiles.size());
2959 EXPECT_EQ(16u, all_tiles_set.size()); 2959 EXPECT_EQ(16u, all_tiles_set.size());
2960 EXPECT_GT(number_of_marked_tiles, 1u); 2960 EXPECT_GT(number_of_marked_tiles, 1u);
2961 EXPECT_GT(number_of_unmarked_tiles, 1u); 2961 EXPECT_GT(number_of_unmarked_tiles, 1u);
2962 2962
2963 // Tiles don't have resources yet. 2963 // Tiles don't have resources yet.
2964 std::unique_ptr<TilingSetEvictionQueue> queue( 2964 std::unique_ptr<TilingSetEvictionQueue> queue(new TilingSetEvictionQueue(
2965 new TilingSetEvictionQueue(pending_layer()->picture_layer_tiling_set())); 2965 pending_layer()->picture_layer_tiling_set(),
2966 pending_layer()->contributes_to_drawn_render_surface()));
2966 EXPECT_TRUE(queue->IsEmpty()); 2967 EXPECT_TRUE(queue->IsEmpty());
2967 2968
2968 host_impl()->tile_manager()->InitializeTilesWithResourcesForTesting( 2969 host_impl()->tile_manager()->InitializeTilesWithResourcesForTesting(
2969 all_tiles); 2970 all_tiles);
2970 2971
2971 std::set<Tile*> unique_tiles; 2972 std::set<Tile*> unique_tiles;
2972 float expected_scales[] = {low_res_factor, 1.f}; 2973 float expected_scales[] = {low_res_factor, 1.f};
2973 size_t scale_index = 0; 2974 size_t scale_index = 0;
2974 bool reached_visible = false; 2975 bool reached_visible = false;
2975 PrioritizedTile last_tile; 2976 PrioritizedTile last_tile;
2976 size_t distance_decreasing = 0; 2977 size_t distance_decreasing = 0;
2977 size_t distance_increasing = 0; 2978 size_t distance_increasing = 0;
2978 queue.reset( 2979 queue.reset(new TilingSetEvictionQueue(
2979 new TilingSetEvictionQueue(pending_layer()->picture_layer_tiling_set())); 2980 pending_layer()->picture_layer_tiling_set(),
2981 pending_layer()->contributes_to_drawn_render_surface()));
2980 while (!queue->IsEmpty()) { 2982 while (!queue->IsEmpty()) {
2981 PrioritizedTile prioritized_tile = queue->Top(); 2983 PrioritizedTile prioritized_tile = queue->Top();
2982 Tile* tile = prioritized_tile.tile(); 2984 Tile* tile = prioritized_tile.tile();
2983 if (!last_tile.tile()) 2985 if (!last_tile.tile())
2984 last_tile = prioritized_tile; 2986 last_tile = prioritized_tile;
2985 2987
2986 EXPECT_TRUE(tile); 2988 EXPECT_TRUE(tile);
2987 2989
2988 TilePriority priority = prioritized_tile.priority(); 2990 TilePriority priority = prioritized_tile.priority();
2989 2991
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
3653 return settings; 3655 return settings;
3654 } 3656 }
3655 3657
3656 void VerifyEvictionConsidersOcclusion(FakePictureLayerImpl* layer, 3658 void VerifyEvictionConsidersOcclusion(FakePictureLayerImpl* layer,
3657 WhichTree tree, 3659 WhichTree tree,
3658 size_t expected_occluded_tile_count, 3660 size_t expected_occluded_tile_count,
3659 int source_line) { 3661 int source_line) {
3660 size_t occluded_tile_count = 0u; 3662 size_t occluded_tile_count = 0u;
3661 PrioritizedTile last_tile; 3663 PrioritizedTile last_tile;
3662 3664
3663 std::unique_ptr<TilingSetEvictionQueue> queue( 3665 std::unique_ptr<TilingSetEvictionQueue> queue(new TilingSetEvictionQueue(
3664 new TilingSetEvictionQueue(layer->picture_layer_tiling_set())); 3666 layer->picture_layer_tiling_set(),
3667 layer->contributes_to_drawn_render_surface()));
3665 while (!queue->IsEmpty()) { 3668 while (!queue->IsEmpty()) {
3666 PrioritizedTile prioritized_tile = queue->Top(); 3669 PrioritizedTile prioritized_tile = queue->Top();
3667 Tile* tile = prioritized_tile.tile(); 3670 Tile* tile = prioritized_tile.tile();
3668 if (!last_tile.tile()) 3671 if (!last_tile.tile())
3669 last_tile = prioritized_tile; 3672 last_tile = prioritized_tile;
3670 3673
3671 // The only way we will encounter an occluded tile after an unoccluded 3674 // The only way we will encounter an occluded tile after an unoccluded
3672 // tile is if the priorty bin decreased, the tile is required for 3675 // tile is if the priorty bin decreased, the tile is required for
3673 // activation, or the scale changed. 3676 // activation, or the scale changed.
3674 bool tile_is_occluded = prioritized_tile.is_occluded(); 3677 bool tile_is_occluded = prioritized_tile.is_occluded();
(...skipping 1469 matching lines...) Expand 10 before | Expand all | Expand 10 after
5144 EXPECT_EQ(gfx::AxisTransform2d(2.25f, gfx::Vector2dF(0.75f, 0.25f)), 5147 EXPECT_EQ(gfx::AxisTransform2d(2.25f, gfx::Vector2dF(0.75f, 0.25f)),
5145 tiling->raster_transform()); 5148 tiling->raster_transform());
5146 EXPECT_EQ(4u, tiling->AllTilesForTesting().size()); 5149 EXPECT_EQ(4u, tiling->AllTilesForTesting().size());
5147 for (auto* tile : tiling->AllTilesForTesting()) 5150 for (auto* tile : tiling->AllTilesForTesting())
5148 EXPECT_EQ(tile->raster_transform(), tiling->raster_transform()); 5151 EXPECT_EQ(tile->raster_transform(), tiling->raster_transform());
5149 } 5152 }
5150 } 5153 }
5151 5154
5152 } // namespace 5155 } // namespace
5153 } // namespace cc 5156 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl_perftest.cc ('k') | cc/tiles/eviction_tile_priority_queue.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698