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

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

Issue 1139673008: cc: Make IsReadyToDraw/NeedsRaster usage consistent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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.cc ('k') | cc/resources/picture_layer_tiling_set.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 <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 2077 matching lines...) Expand 10 before | Expand all | Expand 10 after
2088 TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) { 2088 TEST_F(PictureLayerImplTest, HighResRequiredWhenMissingHighResFlagOn) {
2089 gfx::Size layer_bounds(400, 400); 2089 gfx::Size layer_bounds(400, 400);
2090 gfx::Size tile_size(100, 100); 2090 gfx::Size tile_size(100, 100);
2091 2091
2092 // No invalidation. 2092 // No invalidation.
2093 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); 2093 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
2094 2094
2095 // Verify active tree not ready. 2095 // Verify active tree not ready.
2096 Tile* some_active_tile = 2096 Tile* some_active_tile =
2097 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 2097 active_layer_->HighResTiling()->AllTilesForTesting()[0];
2098 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 2098 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw());
2099 2099
2100 // When high res are required, all tiles in active high res tiling should be 2100 // When high res are required, all tiles in active high res tiling should be
2101 // required for activation. 2101 // required for activation.
2102 host_impl_.SetRequiresHighResToDraw(); 2102 host_impl_.SetRequiresHighResToDraw();
2103 2103
2104 pending_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); 2104 pending_layer_->HighResTiling()->UpdateAllRequiredStateForTesting();
2105 pending_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); 2105 pending_layer_->LowResTiling()->UpdateAllRequiredStateForTesting();
2106 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); 2106 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting();
2107 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); 2107 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting();
2108 2108
2109 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); 2109 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty());
2110 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); 2110 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty());
2111 AssertAllTilesRequired(active_layer_->HighResTiling()); 2111 AssertAllTilesRequired(active_layer_->HighResTiling());
2112 AssertNoTilesRequired(active_layer_->LowResTiling()); 2112 AssertNoTilesRequired(active_layer_->LowResTiling());
2113 } 2113 }
2114 2114
2115 TEST_F(PictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { 2115 TEST_F(PictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) {
2116 gfx::Size layer_bounds(400, 400); 2116 gfx::Size layer_bounds(400, 400);
2117 gfx::Size tile_size(100, 100); 2117 gfx::Size tile_size(100, 100);
2118 2118
2119 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); 2119 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
2120 2120
2121 Tile* some_active_tile = 2121 Tile* some_active_tile =
2122 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 2122 active_layer_->HighResTiling()->AllTilesForTesting()[0];
2123 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 2123 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw());
2124 2124
2125 // Since there are no invalidations, pending tree should have no tiles. 2125 // Since there are no invalidations, pending tree should have no tiles.
2126 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); 2126 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty());
2127 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); 2127 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty());
2128 2128
2129 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); 2129 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting();
2130 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); 2130 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting();
2131 2131
2132 AssertAllTilesRequired(active_layer_->HighResTiling()); 2132 AssertAllTilesRequired(active_layer_->HighResTiling());
2133 AssertNoTilesRequired(active_layer_->LowResTiling()); 2133 AssertNoTilesRequired(active_layer_->LowResTiling());
2134 } 2134 }
2135 2135
2136 TEST_F(PictureLayerImplTest, DisallowRequiredForActivation) { 2136 TEST_F(PictureLayerImplTest, DisallowRequiredForActivation) {
2137 gfx::Size layer_bounds(400, 400); 2137 gfx::Size layer_bounds(400, 400);
2138 gfx::Size tile_size(100, 100); 2138 gfx::Size tile_size(100, 100);
2139 2139
2140 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); 2140 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
2141 2141
2142 Tile* some_active_tile = 2142 Tile* some_active_tile =
2143 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 2143 active_layer_->HighResTiling()->AllTilesForTesting()[0];
2144 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 2144 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw());
2145 2145
2146 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); 2146 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty());
2147 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); 2147 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty());
2148 active_layer_->HighResTiling()->set_can_require_tiles_for_activation(false); 2148 active_layer_->HighResTiling()->set_can_require_tiles_for_activation(false);
2149 active_layer_->LowResTiling()->set_can_require_tiles_for_activation(false); 2149 active_layer_->LowResTiling()->set_can_require_tiles_for_activation(false);
2150 pending_layer_->HighResTiling()->set_can_require_tiles_for_activation(false); 2150 pending_layer_->HighResTiling()->set_can_require_tiles_for_activation(false);
2151 pending_layer_->LowResTiling()->set_can_require_tiles_for_activation(false); 2151 pending_layer_->LowResTiling()->set_can_require_tiles_for_activation(false);
2152 2152
2153 // If we disallow required for activation, no tiles can be required. 2153 // If we disallow required for activation, no tiles can be required.
2154 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); 2154 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting();
(...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after
2972 EXPECT_TRUE(required_queue->IsEmpty()); 2972 EXPECT_TRUE(required_queue->IsEmpty());
2973 2973
2974 required_queue.reset(new TilingSetRasterQueueRequired( 2974 required_queue.reset(new TilingSetRasterQueueRequired(
2975 pending_layer_->picture_layer_tiling_set(), 2975 pending_layer_->picture_layer_tiling_set(),
2976 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); 2976 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION));
2977 EXPECT_FALSE(required_queue->IsEmpty()); 2977 EXPECT_FALSE(required_queue->IsEmpty());
2978 int required_for_activation_count = 0; 2978 int required_for_activation_count = 0;
2979 while (!required_queue->IsEmpty()) { 2979 while (!required_queue->IsEmpty()) {
2980 PrioritizedTile prioritized_tile = required_queue->Top(); 2980 PrioritizedTile prioritized_tile = required_queue->Top();
2981 EXPECT_TRUE(prioritized_tile.tile()->required_for_activation()); 2981 EXPECT_TRUE(prioritized_tile.tile()->required_for_activation());
2982 EXPECT_FALSE(prioritized_tile.tile()->IsReadyToDraw()); 2982 EXPECT_FALSE(prioritized_tile.tile()->draw_info().IsReadyToDraw());
2983 ++required_for_activation_count; 2983 ++required_for_activation_count;
2984 required_queue->Pop(); 2984 required_queue->Pop();
2985 } 2985 }
2986 2986
2987 // All of the high res tiles should be required for activation, since there is 2987 // All of the high res tiles should be required for activation, since there is
2988 // no active twin. 2988 // no active twin.
2989 EXPECT_EQ(high_res_now_tiles, required_for_activation_count); 2989 EXPECT_EQ(high_res_now_tiles, required_for_activation_count);
2990 2990
2991 // No NOW tiles. 2991 // No NOW tiles.
2992 time_ticks += base::TimeDelta::FromMilliseconds(200); 2992 time_ticks += base::TimeDelta::FromMilliseconds(200);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
3080 EXPECT_EQ(2u, active_layer_->num_tilings()); 3080 EXPECT_EQ(2u, active_layer_->num_tilings());
3081 3081
3082 scoped_ptr<TilingSetRasterQueueRequired> queue( 3082 scoped_ptr<TilingSetRasterQueueRequired> queue(
3083 new TilingSetRasterQueueRequired( 3083 new TilingSetRasterQueueRequired(
3084 active_layer_->picture_layer_tiling_set(), 3084 active_layer_->picture_layer_tiling_set(),
3085 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW)); 3085 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW));
3086 EXPECT_FALSE(queue->IsEmpty()); 3086 EXPECT_FALSE(queue->IsEmpty());
3087 while (!queue->IsEmpty()) { 3087 while (!queue->IsEmpty()) {
3088 PrioritizedTile prioritized_tile = queue->Top(); 3088 PrioritizedTile prioritized_tile = queue->Top();
3089 EXPECT_TRUE(prioritized_tile.tile()->required_for_draw()); 3089 EXPECT_TRUE(prioritized_tile.tile()->required_for_draw());
3090 EXPECT_FALSE(prioritized_tile.tile()->IsReadyToDraw()); 3090 EXPECT_FALSE(prioritized_tile.tile()->draw_info().IsReadyToDraw());
3091 queue->Pop(); 3091 queue->Pop();
3092 } 3092 }
3093 3093
3094 queue.reset(new TilingSetRasterQueueRequired( 3094 queue.reset(new TilingSetRasterQueueRequired(
3095 active_layer_->picture_layer_tiling_set(), 3095 active_layer_->picture_layer_tiling_set(),
3096 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION)); 3096 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION));
3097 EXPECT_TRUE(queue->IsEmpty()); 3097 EXPECT_TRUE(queue->IsEmpty());
3098 } 3098 }
3099 3099
3100 TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) { 3100 TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) {
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
3568 } 3568 }
3569 3569
3570 TEST_F(NoLowResPictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) { 3570 TEST_F(NoLowResPictureLayerImplTest, AllHighResRequiredEvenIfNotChanged) {
3571 gfx::Size layer_bounds(400, 400); 3571 gfx::Size layer_bounds(400, 400);
3572 gfx::Size tile_size(100, 100); 3572 gfx::Size tile_size(100, 100);
3573 3573
3574 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region()); 3574 SetupDefaultTreesWithFixedTileSize(layer_bounds, tile_size, Region());
3575 3575
3576 Tile* some_active_tile = 3576 Tile* some_active_tile =
3577 active_layer_->HighResTiling()->AllTilesForTesting()[0]; 3577 active_layer_->HighResTiling()->AllTilesForTesting()[0];
3578 EXPECT_FALSE(some_active_tile->IsReadyToDraw()); 3578 EXPECT_FALSE(some_active_tile->draw_info().IsReadyToDraw());
3579 3579
3580 // Since there is no invalidation, pending tree should have no tiles. 3580 // Since there is no invalidation, pending tree should have no tiles.
3581 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty()); 3581 EXPECT_TRUE(pending_layer_->HighResTiling()->AllTilesForTesting().empty());
3582 if (host_impl_.settings().create_low_res_tiling) 3582 if (host_impl_.settings().create_low_res_tiling)
3583 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty()); 3583 EXPECT_TRUE(pending_layer_->LowResTiling()->AllTilesForTesting().empty());
3584 3584
3585 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting(); 3585 active_layer_->HighResTiling()->UpdateAllRequiredStateForTesting();
3586 if (host_impl_.settings().create_low_res_tiling) 3586 if (host_impl_.settings().create_low_res_tiling)
3587 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting(); 3587 active_layer_->LowResTiling()->UpdateAllRequiredStateForTesting();
3588 3588
(...skipping 1499 matching lines...) Expand 10 before | Expand all | Expand 10 after
5088 result = layer->CalculateTileSize(gfx::Size(447, 400)); 5088 result = layer->CalculateTileSize(gfx::Size(447, 400));
5089 EXPECT_EQ(result.width(), 448); 5089 EXPECT_EQ(result.width(), 448);
5090 EXPECT_EQ(result.height(), 448); 5090 EXPECT_EQ(result.height(), 448);
5091 result = layer->CalculateTileSize(gfx::Size(500, 499)); 5091 result = layer->CalculateTileSize(gfx::Size(500, 499));
5092 EXPECT_EQ(result.width(), 512); 5092 EXPECT_EQ(result.width(), 512);
5093 EXPECT_EQ(result.height(), 500 + 2); 5093 EXPECT_EQ(result.height(), 500 + 2);
5094 } 5094 }
5095 5095
5096 } // namespace 5096 } // namespace
5097 } // namespace cc 5097 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/resources/picture_layer_tiling_set.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698