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

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

Issue 900073003: cc: Rework how picture layer tiling set gets into raster queues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed unrelated changes 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
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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 pending_layer->SetBounds(pending_layer->raster_source()->GetSize()); 123 pending_layer->SetBounds(pending_layer->raster_source()->GetSize());
124 pending_tree->SetRootLayer(pending_layer.Pass()); 124 pending_tree->SetRootLayer(pending_layer.Pass());
125 125
126 pending_layer_ = static_cast<FakePictureLayerImpl*>( 126 pending_layer_ = static_cast<FakePictureLayerImpl*>(
127 host_impl_.pending_tree()->LayerById(id_)); 127 host_impl_.pending_tree()->LayerById(id_));
128 128
129 // Add tilings/tiles for the layer. 129 // Add tilings/tiles for the layer.
130 host_impl_.pending_tree()->UpdateDrawProperties(); 130 host_impl_.pending_tree()->UpdateDrawProperties();
131 } 131 }
132 132
133 scoped_ptr<RasterTilePriorityQueue> BuildRasterQueue(
134 TreePriority tree_priority,
135 RasterTilePriorityQueue::Type type) {
136 global_state_.tree_priority = tree_priority;
137 tile_manager()->SetGlobalStateForTesting(global_state_);
138 return tile_manager()->BuildRasterQueue(type);
139 }
140
141 scoped_ptr<EvictionTilePriorityQueue> BuildEvictionQueue(
142 TreePriority tree_priority) {
143 global_state_.tree_priority = tree_priority;
144 tile_manager()->SetGlobalStateForTesting(global_state_);
145 return tile_manager()->BuildEvictionQueue();
146 }
147
133 TileManager* tile_manager() { return host_impl_.tile_manager(); } 148 TileManager* tile_manager() { return host_impl_.tile_manager(); }
134 149
135 protected: 150 protected:
136 GlobalStateThatImpactsTilePriority global_state_; 151 GlobalStateThatImpactsTilePriority global_state_;
137 152
138 TestSharedBitmapManager shared_bitmap_manager_; 153 TestSharedBitmapManager shared_bitmap_manager_;
139 TileMemoryLimitPolicy memory_limit_policy_; 154 TileMemoryLimitPolicy memory_limit_policy_;
140 int max_tiles_; 155 int max_tiles_;
141 bool ready_to_activate_; 156 bool ready_to_activate_;
142 int id_; 157 int id_;
143 FakeImplProxy proxy_; 158 FakeImplProxy proxy_;
144 FakeLayerTreeHostImpl host_impl_; 159 FakeLayerTreeHostImpl host_impl_;
145 FakePictureLayerImpl* pending_layer_; 160 FakePictureLayerImpl* pending_layer_;
146 FakePictureLayerImpl* active_layer_; 161 FakePictureLayerImpl* active_layer_;
147 }; 162 };
148 163
149 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) { 164 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueue) {
150 const gfx::Size layer_bounds(1000, 1000); 165 const gfx::Size layer_bounds(1000, 1000);
151 host_impl_.SetViewportSize(layer_bounds); 166 host_impl_.SetViewportSize(layer_bounds);
152 SetupDefaultTrees(layer_bounds); 167 SetupDefaultTrees(layer_bounds);
153 168
154 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 169 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
155 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 170 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
156 EXPECT_FALSE(queue->IsEmpty()); 171 EXPECT_FALSE(queue->IsEmpty());
157 172
158 size_t tile_count = 0; 173 size_t tile_count = 0;
159 std::set<Tile*> all_tiles; 174 std::set<Tile*> all_tiles;
160 while (!queue->IsEmpty()) { 175 while (!queue->IsEmpty()) {
161 EXPECT_TRUE(queue->Top()); 176 EXPECT_TRUE(queue->Top());
162 all_tiles.insert(queue->Top()); 177 all_tiles.insert(queue->Top());
163 ++tile_count; 178 ++tile_count;
164 queue->Pop(); 179 queue->Pop();
165 } 180 }
166 181
167 EXPECT_EQ(tile_count, all_tiles.size()); 182 EXPECT_EQ(tile_count, all_tiles.size());
168 EXPECT_EQ(16u, tile_count); 183 EXPECT_EQ(16u, tile_count);
169 184
170 // Sanity check, all tiles should be visible. 185 // Sanity check, all tiles should be visible.
171 std::set<Tile*> smoothness_tiles; 186 std::set<Tile*> smoothness_tiles;
172 queue = host_impl_.BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY, 187 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
173 RasterTilePriorityQueue::Type::ALL); 188 RasterTilePriorityQueue::Type::ALL);
174 bool had_low_res = false; 189 bool had_low_res = false;
175 while (!queue->IsEmpty()) { 190 while (!queue->IsEmpty()) {
176 Tile* tile = queue->Top(); 191 Tile* tile = queue->Top();
177 EXPECT_TRUE(tile); 192 EXPECT_TRUE(tile);
178 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); 193 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin);
179 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); 194 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin);
180 if (tile->priority(ACTIVE_TREE).resolution == LOW_RESOLUTION) 195 if (tile->priority(ACTIVE_TREE).resolution == LOW_RESOLUTION)
181 had_low_res = true; 196 had_low_res = true;
182 else 197 else
183 smoothness_tiles.insert(tile); 198 smoothness_tiles.insert(tile);
184 queue->Pop(); 199 queue->Pop();
185 } 200 }
186 EXPECT_EQ(all_tiles, smoothness_tiles); 201 EXPECT_EQ(all_tiles, smoothness_tiles);
187 EXPECT_TRUE(had_low_res); 202 EXPECT_TRUE(had_low_res);
188 203
189 // Check that everything is required for activation. 204 // Check that everything is required for activation.
190 queue = host_impl_.BuildRasterQueue( 205 queue =
191 SMOOTHNESS_TAKES_PRIORITY, 206 BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
192 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 207 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
193 std::set<Tile*> required_for_activation_tiles; 208 std::set<Tile*> required_for_activation_tiles;
194 while (!queue->IsEmpty()) { 209 while (!queue->IsEmpty()) {
195 Tile* tile = queue->Top(); 210 Tile* tile = queue->Top();
196 EXPECT_TRUE(tile->required_for_activation()); 211 EXPECT_TRUE(tile->required_for_activation());
197 required_for_activation_tiles.insert(tile); 212 required_for_activation_tiles.insert(tile);
198 queue->Pop(); 213 queue->Pop();
199 } 214 }
200 EXPECT_EQ(all_tiles, required_for_activation_tiles); 215 EXPECT_EQ(all_tiles, required_for_activation_tiles);
201 216
202 // Check that everything is required for draw. 217 // Check that everything is required for draw.
203 queue = host_impl_.BuildRasterQueue( 218 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
204 SMOOTHNESS_TAKES_PRIORITY, 219 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
205 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
206 std::set<Tile*> required_for_draw_tiles; 220 std::set<Tile*> required_for_draw_tiles;
207 while (!queue->IsEmpty()) { 221 while (!queue->IsEmpty()) {
208 Tile* tile = queue->Top(); 222 Tile* tile = queue->Top();
209 EXPECT_TRUE(tile->required_for_draw()); 223 EXPECT_TRUE(tile->required_for_draw());
210 required_for_draw_tiles.insert(tile); 224 required_for_draw_tiles.insert(tile);
211 queue->Pop(); 225 queue->Pop();
212 } 226 }
213 EXPECT_EQ(all_tiles, required_for_draw_tiles); 227 EXPECT_EQ(all_tiles, required_for_draw_tiles);
214 228
215 Region invalidation(gfx::Rect(0, 0, 500, 500)); 229 Region invalidation(gfx::Rect(0, 0, 500, 500));
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 std::vector<Tile*> active_low_res_tiles = 272 std::vector<Tile*> active_low_res_tiles =
259 active_layer_->LowResTiling()->AllTilesForTesting(); 273 active_layer_->LowResTiling()->AllTilesForTesting();
260 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) 274 for (size_t i = 0; i < active_low_res_tiles.size(); ++i)
261 all_tiles.insert(active_low_res_tiles[i]); 275 all_tiles.insert(active_low_res_tiles[i]);
262 276
263 Tile* last_tile = NULL; 277 Tile* last_tile = NULL;
264 smoothness_tiles.clear(); 278 smoothness_tiles.clear();
265 tile_count = 0; 279 tile_count = 0;
266 size_t correct_order_tiles = 0u; 280 size_t correct_order_tiles = 0u;
267 // Here we expect to get increasing ACTIVE_TREE priority_bin. 281 // Here we expect to get increasing ACTIVE_TREE priority_bin.
268 queue = host_impl_.BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY, 282 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
269 RasterTilePriorityQueue::Type::ALL); 283 RasterTilePriorityQueue::Type::ALL);
270 std::set<Tile*> expected_required_for_draw_tiles; 284 std::set<Tile*> expected_required_for_draw_tiles;
271 std::set<Tile*> expected_required_for_activation_tiles; 285 std::set<Tile*> expected_required_for_activation_tiles;
272 while (!queue->IsEmpty()) { 286 while (!queue->IsEmpty()) {
273 Tile* tile = queue->Top(); 287 Tile* tile = queue->Top();
274 EXPECT_TRUE(tile); 288 EXPECT_TRUE(tile);
275 289
276 if (!last_tile) 290 if (!last_tile)
277 last_tile = tile; 291 last_tile = tile;
278 292
279 EXPECT_LE(last_tile->priority(ACTIVE_TREE).priority_bin, 293 EXPECT_LE(last_tile->priority(ACTIVE_TREE).priority_bin,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 queue->Pop(); 325 queue->Pop();
312 } 326 }
313 327
314 EXPECT_EQ(tile_count, smoothness_tiles.size()); 328 EXPECT_EQ(tile_count, smoothness_tiles.size());
315 EXPECT_EQ(all_tiles, smoothness_tiles); 329 EXPECT_EQ(all_tiles, smoothness_tiles);
316 // Since we don't guarantee increasing distance due to spiral iterator, we 330 // Since we don't guarantee increasing distance due to spiral iterator, we
317 // should check that we're _mostly_ right. 331 // should check that we're _mostly_ right.
318 EXPECT_GT(correct_order_tiles, 3 * tile_count / 4); 332 EXPECT_GT(correct_order_tiles, 3 * tile_count / 4);
319 333
320 // Check that we have consistent required_for_activation tiles. 334 // Check that we have consistent required_for_activation tiles.
321 queue = host_impl_.BuildRasterQueue( 335 queue =
322 SMOOTHNESS_TAKES_PRIORITY, 336 BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
323 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 337 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
324 required_for_activation_tiles.clear(); 338 required_for_activation_tiles.clear();
325 while (!queue->IsEmpty()) { 339 while (!queue->IsEmpty()) {
326 Tile* tile = queue->Top(); 340 Tile* tile = queue->Top();
327 EXPECT_TRUE(tile->required_for_activation()); 341 EXPECT_TRUE(tile->required_for_activation());
328 required_for_activation_tiles.insert(tile); 342 required_for_activation_tiles.insert(tile);
329 queue->Pop(); 343 queue->Pop();
330 } 344 }
331 EXPECT_EQ(expected_required_for_activation_tiles, 345 EXPECT_EQ(expected_required_for_activation_tiles,
332 required_for_activation_tiles); 346 required_for_activation_tiles);
333 EXPECT_NE(all_tiles, required_for_activation_tiles); 347 EXPECT_NE(all_tiles, required_for_activation_tiles);
334 348
335 // Check that we have consistent required_for_draw tiles. 349 // Check that we have consistent required_for_draw tiles.
336 queue = host_impl_.BuildRasterQueue( 350 queue = BuildRasterQueue(SMOOTHNESS_TAKES_PRIORITY,
337 SMOOTHNESS_TAKES_PRIORITY, 351 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
338 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
339 required_for_draw_tiles.clear(); 352 required_for_draw_tiles.clear();
340 while (!queue->IsEmpty()) { 353 while (!queue->IsEmpty()) {
341 Tile* tile = queue->Top(); 354 Tile* tile = queue->Top();
342 EXPECT_TRUE(tile->required_for_draw()); 355 EXPECT_TRUE(tile->required_for_draw());
343 required_for_draw_tiles.insert(tile); 356 required_for_draw_tiles.insert(tile);
344 queue->Pop(); 357 queue->Pop();
345 } 358 }
346 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); 359 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles);
347 EXPECT_NE(all_tiles, required_for_draw_tiles); 360 EXPECT_NE(all_tiles, required_for_draw_tiles);
348 361
349 std::set<Tile*> new_content_tiles; 362 std::set<Tile*> new_content_tiles;
350 last_tile = NULL; 363 last_tile = NULL;
351 size_t increasing_distance_tiles = 0u; 364 size_t increasing_distance_tiles = 0u;
352 // Here we expect to get increasing PENDING_TREE priority_bin. 365 // Here we expect to get increasing PENDING_TREE priority_bin.
353 queue = host_impl_.BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY, 366 queue = BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY,
354 RasterTilePriorityQueue::Type::ALL); 367 RasterTilePriorityQueue::Type::ALL);
355 tile_count = 0; 368 tile_count = 0;
356 while (!queue->IsEmpty()) { 369 while (!queue->IsEmpty()) {
357 Tile* tile = queue->Top(); 370 Tile* tile = queue->Top();
358 EXPECT_TRUE(tile); 371 EXPECT_TRUE(tile);
359 372
360 if (!last_tile) 373 if (!last_tile)
361 last_tile = tile; 374 last_tile = tile;
362 375
363 EXPECT_LE(last_tile->priority(PENDING_TREE).priority_bin, 376 EXPECT_LE(last_tile->priority(PENDING_TREE).priority_bin,
364 tile->priority(PENDING_TREE).priority_bin); 377 tile->priority(PENDING_TREE).priority_bin);
(...skipping 17 matching lines...) Expand all
382 queue->Pop(); 395 queue->Pop();
383 } 396 }
384 397
385 EXPECT_EQ(tile_count, new_content_tiles.size()); 398 EXPECT_EQ(tile_count, new_content_tiles.size());
386 EXPECT_EQ(high_res_tiles, new_content_tiles); 399 EXPECT_EQ(high_res_tiles, new_content_tiles);
387 // Since we don't guarantee increasing distance due to spiral iterator, we 400 // Since we don't guarantee increasing distance due to spiral iterator, we
388 // should check that we're _mostly_ right. 401 // should check that we're _mostly_ right.
389 EXPECT_GE(increasing_distance_tiles, 3 * tile_count / 4); 402 EXPECT_GE(increasing_distance_tiles, 3 * tile_count / 4);
390 403
391 // Check that we have consistent required_for_activation tiles. 404 // Check that we have consistent required_for_activation tiles.
392 queue = host_impl_.BuildRasterQueue( 405 queue =
393 NEW_CONTENT_TAKES_PRIORITY, 406 BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY,
394 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 407 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
395 required_for_activation_tiles.clear(); 408 required_for_activation_tiles.clear();
396 while (!queue->IsEmpty()) { 409 while (!queue->IsEmpty()) {
397 Tile* tile = queue->Top(); 410 Tile* tile = queue->Top();
398 EXPECT_TRUE(tile->required_for_activation()); 411 EXPECT_TRUE(tile->required_for_activation());
399 required_for_activation_tiles.insert(tile); 412 required_for_activation_tiles.insert(tile);
400 queue->Pop(); 413 queue->Pop();
401 } 414 }
402 EXPECT_EQ(expected_required_for_activation_tiles, 415 EXPECT_EQ(expected_required_for_activation_tiles,
403 required_for_activation_tiles); 416 required_for_activation_tiles);
404 EXPECT_NE(new_content_tiles, required_for_activation_tiles); 417 EXPECT_NE(new_content_tiles, required_for_activation_tiles);
405 418
406 // Check that we have consistent required_for_draw tiles. 419 // Check that we have consistent required_for_draw tiles.
407 queue = host_impl_.BuildRasterQueue( 420 queue = BuildRasterQueue(NEW_CONTENT_TAKES_PRIORITY,
408 NEW_CONTENT_TAKES_PRIORITY, 421 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
409 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
410 required_for_draw_tiles.clear(); 422 required_for_draw_tiles.clear();
411 while (!queue->IsEmpty()) { 423 while (!queue->IsEmpty()) {
412 Tile* tile = queue->Top(); 424 Tile* tile = queue->Top();
413 EXPECT_TRUE(tile->required_for_draw()); 425 EXPECT_TRUE(tile->required_for_draw());
414 required_for_draw_tiles.insert(tile); 426 required_for_draw_tiles.insert(tile);
415 queue->Pop(); 427 queue->Pop();
416 } 428 }
417 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); 429 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles);
418 EXPECT_NE(new_content_tiles, required_for_draw_tiles); 430 EXPECT_NE(new_content_tiles, required_for_draw_tiles);
419 } 431 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 for (int j = 0; j <= 3; ++j) { 483 for (int j = 0; j <= 3; ++j) {
472 expected_all_tiles.insert(pending_layer_->HighResTiling()->TileAt(i, j)); 484 expected_all_tiles.insert(pending_layer_->HighResTiling()->TileAt(i, j));
473 expected_all_tiles.insert(active_layer_->HighResTiling()->TileAt(i, j)); 485 expected_all_tiles.insert(active_layer_->HighResTiling()->TileAt(i, j));
474 } 486 }
475 } 487 }
476 // Expect 15 shared tiles and 1 unshared tile. 488 // Expect 15 shared tiles and 1 unshared tile.
477 EXPECT_EQ(17u, expected_all_tiles.size()); 489 EXPECT_EQ(17u, expected_all_tiles.size());
478 490
479 // The actual test will now build different queues and verify that the queues 491 // The actual test will now build different queues and verify that the queues
480 // return the same information as computed manually above. 492 // return the same information as computed manually above.
481 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 493 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
482 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 494 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
483 std::set<Tile*> actual_now_tiles; 495 std::set<Tile*> actual_now_tiles;
484 std::set<Tile*> actual_all_tiles; 496 std::set<Tile*> actual_all_tiles;
485 while (!queue->IsEmpty()) { 497 while (!queue->IsEmpty()) {
486 Tile* tile = queue->Top(); 498 Tile* tile = queue->Top();
487 queue->Pop(); 499 queue->Pop();
488 if (tile->combined_priority().priority_bin == TilePriority::NOW) 500 if (tile->combined_priority().priority_bin == TilePriority::NOW)
489 actual_now_tiles.insert(tile); 501 actual_now_tiles.insert(tile);
490 actual_all_tiles.insert(tile); 502 actual_all_tiles.insert(tile);
491 } 503 }
492 EXPECT_EQ(expected_now_tiles, actual_now_tiles); 504 EXPECT_EQ(expected_now_tiles, actual_now_tiles);
493 EXPECT_EQ(expected_all_tiles, actual_all_tiles); 505 EXPECT_EQ(expected_all_tiles, actual_all_tiles);
494 506
495 queue = host_impl_.BuildRasterQueue( 507 queue = BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES,
496 SAME_PRIORITY_FOR_BOTH_TREES, 508 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
497 RasterTilePriorityQueue::Type::REQUIRED_FOR_DRAW);
498 std::set<Tile*> actual_required_for_draw_tiles; 509 std::set<Tile*> actual_required_for_draw_tiles;
499 while (!queue->IsEmpty()) { 510 while (!queue->IsEmpty()) {
500 Tile* tile = queue->Top(); 511 Tile* tile = queue->Top();
501 queue->Pop(); 512 queue->Pop();
502 actual_required_for_draw_tiles.insert(tile); 513 actual_required_for_draw_tiles.insert(tile);
503 } 514 }
504 EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles); 515 EXPECT_EQ(expected_required_for_draw_tiles, actual_required_for_draw_tiles);
505 516
506 queue = host_impl_.BuildRasterQueue( 517 queue =
507 SAME_PRIORITY_FOR_BOTH_TREES, 518 BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES,
508 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION); 519 RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION);
509 std::set<Tile*> actual_required_for_activation_tiles; 520 std::set<Tile*> actual_required_for_activation_tiles;
510 while (!queue->IsEmpty()) { 521 while (!queue->IsEmpty()) {
511 Tile* tile = queue->Top(); 522 Tile* tile = queue->Top();
512 queue->Pop(); 523 queue->Pop();
513 actual_required_for_activation_tiles.insert(tile); 524 actual_required_for_activation_tiles.insert(tile);
514 } 525 }
515 EXPECT_EQ(expected_required_for_activation_tiles, 526 EXPECT_EQ(expected_required_for_activation_tiles,
516 actual_required_for_activation_tiles); 527 actual_required_for_activation_tiles);
517 } 528 }
518 529
(...skipping 18 matching lines...) Expand all
537 pending_layer_->AddChild(pending_child.Pass()); 548 pending_layer_->AddChild(pending_child.Pass());
538 549
539 // Set a small viewport, so we have soon and eventually tiles. 550 // Set a small viewport, so we have soon and eventually tiles.
540 host_impl_.SetViewportSize(gfx::Size(200, 200)); 551 host_impl_.SetViewportSize(gfx::Size(200, 200));
541 time_ticks += base::TimeDelta::FromMilliseconds(1); 552 time_ticks += base::TimeDelta::FromMilliseconds(1);
542 host_impl_.SetCurrentBeginFrameArgs( 553 host_impl_.SetCurrentBeginFrameArgs(
543 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 554 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
544 host_impl_.pending_tree()->UpdateDrawProperties(); 555 host_impl_.pending_tree()->UpdateDrawProperties();
545 556
546 host_impl_.SetRequiresHighResToDraw(); 557 host_impl_.SetRequiresHighResToDraw();
547 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 558 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
548 SMOOTHNESS_TAKES_PRIORITY, RasterTilePriorityQueue::Type::ALL)); 559 SMOOTHNESS_TAKES_PRIORITY, RasterTilePriorityQueue::Type::ALL));
549 EXPECT_FALSE(queue->IsEmpty()); 560 EXPECT_FALSE(queue->IsEmpty());
550 561
551 // Get all the tiles that are NOW or SOON and make sure they are ready to 562 // Get all the tiles that are NOW or SOON and make sure they are ready to
552 // draw. 563 // draw.
553 std::vector<Tile*> all_tiles; 564 std::vector<Tile*> all_tiles;
554 while (!queue->IsEmpty()) { 565 while (!queue->IsEmpty()) {
555 Tile* tile = queue->Top(); 566 Tile* tile = queue->Top();
556 if (tile->combined_priority().priority_bin >= TilePriority::EVENTUALLY) 567 if (tile->combined_priority().priority_bin >= TilePriority::EVENTUALLY)
557 break; 568 break;
558 569
559 all_tiles.push_back(tile); 570 all_tiles.push_back(tile);
560 queue->Pop(); 571 queue->Pop();
561 } 572 }
562 573
563 tile_manager()->InitializeTilesWithResourcesForTesting( 574 tile_manager()->InitializeTilesWithResourcesForTesting(
564 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 575 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
565 576
566 // Ensure we can activate. 577 // Ensure we can activate.
567 EXPECT_TRUE(tile_manager()->IsReadyToActivate()); 578 EXPECT_TRUE(tile_manager()->IsReadyToActivate());
568 } 579 }
569 580
570 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) { 581 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueue) {
571 const gfx::Size layer_bounds(1000, 1000); 582 const gfx::Size layer_bounds(1000, 1000);
572 host_impl_.SetViewportSize(layer_bounds); 583 host_impl_.SetViewportSize(layer_bounds);
573 SetupDefaultTrees(layer_bounds); 584 SetupDefaultTrees(layer_bounds);
574 585
575 scoped_ptr<EvictionTilePriorityQueue> empty_queue( 586 scoped_ptr<EvictionTilePriorityQueue> empty_queue(
576 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); 587 BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES));
577 EXPECT_TRUE(empty_queue->IsEmpty()); 588 EXPECT_TRUE(empty_queue->IsEmpty());
578 std::set<Tile*> all_tiles; 589 std::set<Tile*> all_tiles;
579 size_t tile_count = 0; 590 size_t tile_count = 0;
580 591
581 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 592 scoped_ptr<RasterTilePriorityQueue> raster_queue(BuildRasterQueue(
582 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 593 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
583 while (!raster_queue->IsEmpty()) { 594 while (!raster_queue->IsEmpty()) {
584 ++tile_count; 595 ++tile_count;
585 EXPECT_TRUE(raster_queue->Top()); 596 EXPECT_TRUE(raster_queue->Top());
586 all_tiles.insert(raster_queue->Top()); 597 all_tiles.insert(raster_queue->Top());
587 raster_queue->Pop(); 598 raster_queue->Pop();
588 } 599 }
589 600
590 EXPECT_EQ(tile_count, all_tiles.size()); 601 EXPECT_EQ(tile_count, all_tiles.size());
591 EXPECT_EQ(16u, tile_count); 602 EXPECT_EQ(16u, tile_count);
592 603
593 tile_manager()->InitializeTilesWithResourcesForTesting( 604 tile_manager()->InitializeTilesWithResourcesForTesting(
594 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 605 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
595 606
596 scoped_ptr<EvictionTilePriorityQueue> queue( 607 scoped_ptr<EvictionTilePriorityQueue> queue(
597 host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY)); 608 BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY));
598 EXPECT_FALSE(queue->IsEmpty()); 609 EXPECT_FALSE(queue->IsEmpty());
599 610
600 // Sanity check, all tiles should be visible. 611 // Sanity check, all tiles should be visible.
601 std::set<Tile*> smoothness_tiles; 612 std::set<Tile*> smoothness_tiles;
602 while (!queue->IsEmpty()) { 613 while (!queue->IsEmpty()) {
603 Tile* tile = queue->Top(); 614 Tile* tile = queue->Top();
604 EXPECT_TRUE(tile); 615 EXPECT_TRUE(tile);
605 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin); 616 EXPECT_EQ(TilePriority::NOW, tile->priority(ACTIVE_TREE).priority_bin);
606 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin); 617 EXPECT_EQ(TilePriority::NOW, tile->priority(PENDING_TREE).priority_bin);
607 EXPECT_TRUE(tile->HasResource()); 618 EXPECT_TRUE(tile->HasResource());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 for (size_t i = 0; i < active_low_res_tiles.size(); ++i) 667 for (size_t i = 0; i < active_low_res_tiles.size(); ++i)
657 all_tiles.insert(active_low_res_tiles[i]); 668 all_tiles.insert(active_low_res_tiles[i]);
658 669
659 tile_manager()->InitializeTilesWithResourcesForTesting( 670 tile_manager()->InitializeTilesWithResourcesForTesting(
660 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 671 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
661 672
662 Tile* last_tile = NULL; 673 Tile* last_tile = NULL;
663 smoothness_tiles.clear(); 674 smoothness_tiles.clear();
664 tile_count = 0; 675 tile_count = 0;
665 // Here we expect to get increasing ACTIVE_TREE priority_bin. 676 // Here we expect to get increasing ACTIVE_TREE priority_bin.
666 queue = host_impl_.BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY); 677 queue = BuildEvictionQueue(SMOOTHNESS_TAKES_PRIORITY);
667 int distance_increasing = 0; 678 int distance_increasing = 0;
668 int distance_decreasing = 0; 679 int distance_decreasing = 0;
669 while (!queue->IsEmpty()) { 680 while (!queue->IsEmpty()) {
670 Tile* tile = queue->Top(); 681 Tile* tile = queue->Top();
671 EXPECT_TRUE(tile); 682 EXPECT_TRUE(tile);
672 EXPECT_TRUE(tile->HasResource()); 683 EXPECT_TRUE(tile->HasResource());
673 684
674 if (!last_tile) 685 if (!last_tile)
675 last_tile = tile; 686 last_tile = tile;
676 687
(...skipping 20 matching lines...) Expand all
697 } 708 }
698 709
699 EXPECT_EQ(3, distance_increasing); 710 EXPECT_EQ(3, distance_increasing);
700 EXPECT_EQ(16, distance_decreasing); 711 EXPECT_EQ(16, distance_decreasing);
701 EXPECT_EQ(tile_count, smoothness_tiles.size()); 712 EXPECT_EQ(tile_count, smoothness_tiles.size());
702 EXPECT_EQ(all_tiles, smoothness_tiles); 713 EXPECT_EQ(all_tiles, smoothness_tiles);
703 714
704 std::set<Tile*> new_content_tiles; 715 std::set<Tile*> new_content_tiles;
705 last_tile = NULL; 716 last_tile = NULL;
706 // Here we expect to get increasing PENDING_TREE priority_bin. 717 // Here we expect to get increasing PENDING_TREE priority_bin.
707 queue = host_impl_.BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY); 718 queue = BuildEvictionQueue(NEW_CONTENT_TAKES_PRIORITY);
708 distance_decreasing = 0; 719 distance_decreasing = 0;
709 distance_increasing = 0; 720 distance_increasing = 0;
710 while (!queue->IsEmpty()) { 721 while (!queue->IsEmpty()) {
711 Tile* tile = queue->Top(); 722 Tile* tile = queue->Top();
712 EXPECT_TRUE(tile); 723 EXPECT_TRUE(tile);
713 724
714 if (!last_tile) 725 if (!last_tile)
715 last_tile = tile; 726 last_tile = tile;
716 727
717 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, 728 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]); 777 static_cast<FakePictureLayerImpl*>(pending_layer_->children()[0]);
767 pending_child_layer->SetDrawsContent(true); 778 pending_child_layer->SetDrawsContent(true);
768 779
769 time_ticks += base::TimeDelta::FromMilliseconds(1); 780 time_ticks += base::TimeDelta::FromMilliseconds(1);
770 host_impl_.SetCurrentBeginFrameArgs( 781 host_impl_.SetCurrentBeginFrameArgs(
771 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks)); 782 CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
772 host_impl_.pending_tree()->UpdateDrawProperties(); 783 host_impl_.pending_tree()->UpdateDrawProperties();
773 784
774 std::set<Tile*> all_tiles; 785 std::set<Tile*> all_tiles;
775 size_t tile_count = 0; 786 size_t tile_count = 0;
776 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 787 scoped_ptr<RasterTilePriorityQueue> raster_queue(BuildRasterQueue(
777 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 788 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
778 while (!raster_queue->IsEmpty()) { 789 while (!raster_queue->IsEmpty()) {
779 ++tile_count; 790 ++tile_count;
780 EXPECT_TRUE(raster_queue->Top()); 791 EXPECT_TRUE(raster_queue->Top());
781 all_tiles.insert(raster_queue->Top()); 792 all_tiles.insert(raster_queue->Top());
782 raster_queue->Pop(); 793 raster_queue->Pop();
783 } 794 }
784 EXPECT_EQ(tile_count, all_tiles.size()); 795 EXPECT_EQ(tile_count, all_tiles.size());
785 EXPECT_EQ(32u, tile_count); 796 EXPECT_EQ(32u, tile_count);
786 797
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 pending_child_low_res_tiles.end()); 833 pending_child_low_res_tiles.end());
823 834
824 tile_manager()->InitializeTilesWithResourcesForTesting( 835 tile_manager()->InitializeTilesWithResourcesForTesting(
825 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 836 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
826 837
827 // Verify occlusion is considered by EvictionTilePriorityQueue. 838 // Verify occlusion is considered by EvictionTilePriorityQueue.
828 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; 839 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY;
829 size_t occluded_count = 0u; 840 size_t occluded_count = 0u;
830 Tile* last_tile = NULL; 841 Tile* last_tile = NULL;
831 scoped_ptr<EvictionTilePriorityQueue> queue( 842 scoped_ptr<EvictionTilePriorityQueue> queue(
832 host_impl_.BuildEvictionQueue(tree_priority)); 843 BuildEvictionQueue(tree_priority));
833 while (!queue->IsEmpty()) { 844 while (!queue->IsEmpty()) {
834 Tile* tile = queue->Top(); 845 Tile* tile = queue->Top();
835 if (!last_tile) 846 if (!last_tile)
836 last_tile = tile; 847 last_tile = tile;
837 848
838 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority); 849 bool tile_is_occluded = tile->is_occluded_for_tree_priority(tree_priority);
839 850
840 // The only way we will encounter an occluded tile after an unoccluded 851 // 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 852 // tile is if the priorty bin decreased, the tile is required for
842 // activation, or the scale changed. 853 // activation, or the scale changed.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 EXPECT_TRUE(pending_layer_->HasValidTilePriorities()); 959 EXPECT_TRUE(pending_layer_->HasValidTilePriorities());
949 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities()); 960 EXPECT_FALSE(pending_child_layer->HasValidTilePriorities());
950 961
951 // Verify that eviction queue returns tiles also from layers without valid 962 // Verify that eviction queue returns tiles also from layers without valid
952 // tile priorities and that the tile priority bin of those tiles is (at most) 963 // tile priorities and that the tile priority bin of those tiles is (at most)
953 // EVENTUALLY. 964 // EVENTUALLY.
954 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY; 965 TreePriority tree_priority = NEW_CONTENT_TAKES_PRIORITY;
955 std::set<Tile*> new_content_tiles; 966 std::set<Tile*> new_content_tiles;
956 size_t tile_count = 0; 967 size_t tile_count = 0;
957 scoped_ptr<EvictionTilePriorityQueue> queue( 968 scoped_ptr<EvictionTilePriorityQueue> queue(
958 host_impl_.BuildEvictionQueue(tree_priority)); 969 BuildEvictionQueue(tree_priority));
959 while (!queue->IsEmpty()) { 970 while (!queue->IsEmpty()) {
960 Tile* tile = queue->Top(); 971 Tile* tile = queue->Top();
961 const TilePriority& pending_priority = tile->priority(PENDING_TREE); 972 const TilePriority& pending_priority = tile->priority(PENDING_TREE);
962 EXPECT_NE(std::numeric_limits<float>::infinity(), 973 EXPECT_NE(std::numeric_limits<float>::infinity(),
963 pending_priority.distance_to_visible); 974 pending_priority.distance_to_visible);
964 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end()) 975 if (all_pending_child_tiles.find(tile) != all_pending_child_tiles.end())
965 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin); 976 EXPECT_EQ(TilePriority::EVENTUALLY, pending_priority.priority_bin);
966 else 977 else
967 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin); 978 EXPECT_EQ(TilePriority::NOW, pending_priority.priority_bin);
968 new_content_tiles.insert(tile); 979 new_content_tiles.insert(tile);
969 ++tile_count; 980 ++tile_count;
970 queue->Pop(); 981 queue->Pop();
971 } 982 }
972 EXPECT_EQ(tile_count, new_content_tiles.size()); 983 EXPECT_EQ(tile_count, new_content_tiles.size());
973 EXPECT_EQ(all_tiles, new_content_tiles); 984 EXPECT_EQ(all_tiles, new_content_tiles);
974 } 985 }
975 986
976 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) { 987 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueEmptyLayers) {
977 const gfx::Size layer_bounds(1000, 1000); 988 const gfx::Size layer_bounds(1000, 1000);
978 host_impl_.SetViewportSize(layer_bounds); 989 host_impl_.SetViewportSize(layer_bounds);
979 SetupDefaultTrees(layer_bounds); 990 SetupDefaultTrees(layer_bounds);
980 991
981 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue( 992 scoped_ptr<RasterTilePriorityQueue> queue(BuildRasterQueue(
982 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 993 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
983 EXPECT_FALSE(queue->IsEmpty()); 994 EXPECT_FALSE(queue->IsEmpty());
984 995
985 size_t tile_count = 0; 996 size_t tile_count = 0;
986 std::set<Tile*> all_tiles; 997 std::set<Tile*> all_tiles;
987 while (!queue->IsEmpty()) { 998 while (!queue->IsEmpty()) {
988 EXPECT_TRUE(queue->Top()); 999 EXPECT_TRUE(queue->Top());
989 all_tiles.insert(queue->Top()); 1000 all_tiles.insert(queue->Top());
990 ++tile_count; 1001 ++tile_count;
991 queue->Pop(); 1002 queue->Pop();
992 } 1003 }
993 1004
994 EXPECT_EQ(tile_count, all_tiles.size()); 1005 EXPECT_EQ(tile_count, all_tiles.size());
995 EXPECT_EQ(16u, tile_count); 1006 EXPECT_EQ(16u, tile_count);
996 1007
997 for (int i = 1; i < 10; ++i) { 1008 for (int i = 1; i < 10; ++i) {
998 scoped_ptr<FakePictureLayerImpl> pending_layer = 1009 scoped_ptr<FakePictureLayerImpl> pending_layer =
999 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); 1010 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i);
1000 pending_layer->SetDrawsContent(true); 1011 pending_layer->SetDrawsContent(true);
1001 pending_layer->set_has_valid_tile_priorities(true); 1012 pending_layer->set_has_valid_tile_priorities(true);
1002 pending_layer_->AddChild(pending_layer.Pass()); 1013 pending_layer_->AddChild(pending_layer.Pass());
1003 } 1014 }
1004 1015
1005 queue = host_impl_.BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES, 1016 queue = BuildRasterQueue(SAME_PRIORITY_FOR_BOTH_TREES,
1006 RasterTilePriorityQueue::Type::ALL); 1017 RasterTilePriorityQueue::Type::ALL);
1007 EXPECT_FALSE(queue->IsEmpty()); 1018 EXPECT_FALSE(queue->IsEmpty());
1008 1019
1009 tile_count = 0; 1020 tile_count = 0;
1010 all_tiles.clear(); 1021 all_tiles.clear();
1011 while (!queue->IsEmpty()) { 1022 while (!queue->IsEmpty()) {
1012 EXPECT_TRUE(queue->Top()); 1023 EXPECT_TRUE(queue->Top());
1013 all_tiles.insert(queue->Top()); 1024 all_tiles.insert(queue->Top());
1014 ++tile_count; 1025 ++tile_count;
1015 queue->Pop(); 1026 queue->Pop();
1016 } 1027 }
1017 EXPECT_EQ(tile_count, all_tiles.size()); 1028 EXPECT_EQ(tile_count, all_tiles.size());
1018 EXPECT_EQ(16u, tile_count); 1029 EXPECT_EQ(16u, tile_count);
1019 } 1030 }
1020 1031
1021 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) { 1032 TEST_F(TileManagerTilePriorityQueueTest, EvictionTilePriorityQueueEmptyLayers) {
1022 const gfx::Size layer_bounds(1000, 1000); 1033 const gfx::Size layer_bounds(1000, 1000);
1023 host_impl_.SetViewportSize(layer_bounds); 1034 host_impl_.SetViewportSize(layer_bounds);
1024 SetupDefaultTrees(layer_bounds); 1035 SetupDefaultTrees(layer_bounds);
1025 1036
1026 scoped_ptr<RasterTilePriorityQueue> raster_queue(host_impl_.BuildRasterQueue( 1037 scoped_ptr<RasterTilePriorityQueue> raster_queue(BuildRasterQueue(
1027 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL)); 1038 SAME_PRIORITY_FOR_BOTH_TREES, RasterTilePriorityQueue::Type::ALL));
1028 EXPECT_FALSE(raster_queue->IsEmpty()); 1039 EXPECT_FALSE(raster_queue->IsEmpty());
1029 1040
1030 size_t tile_count = 0; 1041 size_t tile_count = 0;
1031 std::set<Tile*> all_tiles; 1042 std::set<Tile*> all_tiles;
1032 while (!raster_queue->IsEmpty()) { 1043 while (!raster_queue->IsEmpty()) {
1033 EXPECT_TRUE(raster_queue->Top()); 1044 EXPECT_TRUE(raster_queue->Top());
1034 all_tiles.insert(raster_queue->Top()); 1045 all_tiles.insert(raster_queue->Top());
1035 ++tile_count; 1046 ++tile_count;
1036 raster_queue->Pop(); 1047 raster_queue->Pop();
1037 } 1048 }
1038 EXPECT_EQ(tile_count, all_tiles.size()); 1049 EXPECT_EQ(tile_count, all_tiles.size());
1039 EXPECT_EQ(16u, tile_count); 1050 EXPECT_EQ(16u, tile_count);
1040 1051
1041 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end()); 1052 std::vector<Tile*> tiles(all_tiles.begin(), all_tiles.end());
1042 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles); 1053 host_impl_.tile_manager()->InitializeTilesWithResourcesForTesting(tiles);
1043 1054
1044 for (int i = 1; i < 10; ++i) { 1055 for (int i = 1; i < 10; ++i) {
1045 scoped_ptr<FakePictureLayerImpl> pending_layer = 1056 scoped_ptr<FakePictureLayerImpl> pending_layer =
1046 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i); 1057 FakePictureLayerImpl::Create(host_impl_.pending_tree(), id_ + i);
1047 pending_layer->SetDrawsContent(true); 1058 pending_layer->SetDrawsContent(true);
1048 pending_layer->set_has_valid_tile_priorities(true); 1059 pending_layer->set_has_valid_tile_priorities(true);
1049 pending_layer_->AddChild(pending_layer.Pass()); 1060 pending_layer_->AddChild(pending_layer.Pass());
1050 } 1061 }
1051 1062
1052 scoped_ptr<EvictionTilePriorityQueue> queue( 1063 scoped_ptr<EvictionTilePriorityQueue> queue(
1053 host_impl_.BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES)); 1064 BuildEvictionQueue(SAME_PRIORITY_FOR_BOTH_TREES));
1054 EXPECT_FALSE(queue->IsEmpty()); 1065 EXPECT_FALSE(queue->IsEmpty());
1055 1066
1056 tile_count = 0; 1067 tile_count = 0;
1057 all_tiles.clear(); 1068 all_tiles.clear();
1058 while (!queue->IsEmpty()) { 1069 while (!queue->IsEmpty()) {
1059 EXPECT_TRUE(queue->Top()); 1070 EXPECT_TRUE(queue->Top());
1060 all_tiles.insert(queue->Top()); 1071 all_tiles.insert(queue->Top());
1061 ++tile_count; 1072 ++tile_count;
1062 queue->Pop(); 1073 queue->Pop();
1063 } 1074 }
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1247 EXPECT_GT(eventually_bin_order_correct_count, 1258 EXPECT_GT(eventually_bin_order_correct_count,
1248 eventually_bin_order_incorrect_count); 1259 eventually_bin_order_incorrect_count);
1249 1260
1250 EXPECT_TRUE(have_tiles[TilePriority::NOW]); 1261 EXPECT_TRUE(have_tiles[TilePriority::NOW]);
1251 EXPECT_TRUE(have_tiles[TilePriority::SOON]); 1262 EXPECT_TRUE(have_tiles[TilePriority::SOON]);
1252 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]); 1263 EXPECT_TRUE(have_tiles[TilePriority::EVENTUALLY]);
1253 } 1264 }
1254 1265
1255 } // namespace 1266 } // namespace
1256 } // namespace cc 1267 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698