| OLD | NEW |
| 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/test/fake_impl_proxy.h" | 9 #include "cc/test/fake_impl_proxy.h" |
| 10 #include "cc/test/fake_layer_tree_host_impl.h" | 10 #include "cc/test/fake_layer_tree_host_impl.h" |
| (...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 | 395 |
| 396 tile_manager()->InitializeTilesWithResourcesForTesting( | 396 tile_manager()->InitializeTilesWithResourcesForTesting( |
| 397 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); | 397 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); |
| 398 | 398 |
| 399 Tile* last_tile = NULL; | 399 Tile* last_tile = NULL; |
| 400 smoothness_tiles.clear(); | 400 smoothness_tiles.clear(); |
| 401 tile_count = 0; | 401 tile_count = 0; |
| 402 // Here we expect to get increasing ACTIVE_TREE priority_bin. | 402 // Here we expect to get increasing ACTIVE_TREE priority_bin. |
| 403 queue.Reset(); | 403 queue.Reset(); |
| 404 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); | 404 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); |
| 405 int distance_increasing = 0; |
| 406 int distance_decreasing = 0; |
| 405 while (!queue.IsEmpty()) { | 407 while (!queue.IsEmpty()) { |
| 406 Tile* tile = queue.Top(); | 408 Tile* tile = queue.Top(); |
| 407 EXPECT_TRUE(tile); | 409 EXPECT_TRUE(tile); |
| 408 EXPECT_TRUE(tile->HasResources()); | 410 EXPECT_TRUE(tile->HasResources()); |
| 409 | 411 |
| 410 if (!last_tile) | 412 if (!last_tile) |
| 411 last_tile = tile; | 413 last_tile = tile; |
| 412 | 414 |
| 413 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, | 415 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, |
| 414 tile->priority(ACTIVE_TREE).priority_bin); | 416 tile->priority(ACTIVE_TREE).priority_bin); |
| 415 if (last_tile->priority(ACTIVE_TREE).priority_bin == | 417 if (last_tile->priority(ACTIVE_TREE).priority_bin == |
| 416 tile->priority(ACTIVE_TREE).priority_bin) { | 418 tile->priority(ACTIVE_TREE).priority_bin) { |
| 417 EXPECT_LE(last_tile->required_for_activation(), | 419 EXPECT_LE(last_tile->required_for_activation(), |
| 418 tile->required_for_activation()); | 420 tile->required_for_activation()); |
| 419 if (last_tile->required_for_activation() == | 421 if (last_tile->required_for_activation() == |
| 420 tile->required_for_activation()) { | 422 tile->required_for_activation()) { |
| 421 EXPECT_GE(last_tile->priority(ACTIVE_TREE).distance_to_visible, | 423 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >= |
| 422 tile->priority(ACTIVE_TREE).distance_to_visible); | 424 tile->priority(ACTIVE_TREE).distance_to_visible) { |
| 425 ++distance_decreasing; |
| 426 } else { |
| 427 ++distance_increasing; |
| 428 } |
| 423 } | 429 } |
| 424 } | 430 } |
| 425 | 431 |
| 426 last_tile = tile; | 432 last_tile = tile; |
| 427 ++tile_count; | 433 ++tile_count; |
| 428 smoothness_tiles.insert(tile); | 434 smoothness_tiles.insert(tile); |
| 429 queue.Pop(); | 435 queue.Pop(); |
| 430 } | 436 } |
| 431 | 437 |
| 438 EXPECT_EQ(4, distance_increasing); |
| 439 EXPECT_EQ(15, distance_decreasing); |
| 432 EXPECT_EQ(tile_count, smoothness_tiles.size()); | 440 EXPECT_EQ(tile_count, smoothness_tiles.size()); |
| 433 EXPECT_EQ(all_tiles, smoothness_tiles); | 441 EXPECT_EQ(all_tiles, smoothness_tiles); |
| 434 | 442 |
| 435 std::set<Tile*> new_content_tiles; | 443 std::set<Tile*> new_content_tiles; |
| 436 last_tile = NULL; | 444 last_tile = NULL; |
| 437 // Here we expect to get increasing PENDING_TREE priority_bin. | 445 // Here we expect to get increasing PENDING_TREE priority_bin. |
| 438 queue.Reset(); | 446 queue.Reset(); |
| 439 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); | 447 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); |
| 448 distance_increasing = 0; |
| 449 distance_decreasing = 0; |
| 440 while (!queue.IsEmpty()) { | 450 while (!queue.IsEmpty()) { |
| 441 Tile* tile = queue.Top(); | 451 Tile* tile = queue.Top(); |
| 442 EXPECT_TRUE(tile); | 452 EXPECT_TRUE(tile); |
| 443 | 453 |
| 444 if (!last_tile) | 454 if (!last_tile) |
| 445 last_tile = tile; | 455 last_tile = tile; |
| 446 | 456 |
| 447 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, | 457 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, |
| 448 tile->priority(PENDING_TREE).priority_bin); | 458 tile->priority(PENDING_TREE).priority_bin); |
| 449 if (last_tile->priority(PENDING_TREE).priority_bin == | 459 if (last_tile->priority(PENDING_TREE).priority_bin == |
| 450 tile->priority(PENDING_TREE).priority_bin) { | 460 tile->priority(PENDING_TREE).priority_bin) { |
| 451 EXPECT_LE(last_tile->required_for_activation(), | 461 EXPECT_LE(last_tile->required_for_activation(), |
| 452 tile->required_for_activation()); | 462 tile->required_for_activation()); |
| 453 if (last_tile->required_for_activation() == | 463 if (last_tile->required_for_activation() == |
| 454 tile->required_for_activation()) { | 464 tile->required_for_activation()) { |
| 455 EXPECT_GE(last_tile->priority(PENDING_TREE).distance_to_visible, | 465 if (last_tile->priority(PENDING_TREE).distance_to_visible >= |
| 456 tile->priority(PENDING_TREE).distance_to_visible); | 466 tile->priority(PENDING_TREE).distance_to_visible) { |
| 467 ++distance_decreasing; |
| 468 } else { |
| 469 ++distance_increasing; |
| 470 } |
| 457 } | 471 } |
| 458 } | 472 } |
| 459 | 473 |
| 460 last_tile = tile; | 474 last_tile = tile; |
| 461 new_content_tiles.insert(tile); | 475 new_content_tiles.insert(tile); |
| 462 queue.Pop(); | 476 queue.Pop(); |
| 463 } | 477 } |
| 464 | 478 |
| 479 EXPECT_EQ(4, distance_increasing); |
| 480 EXPECT_EQ(15, distance_decreasing); |
| 481 |
| 465 EXPECT_EQ(tile_count, new_content_tiles.size()); | 482 EXPECT_EQ(tile_count, new_content_tiles.size()); |
| 466 EXPECT_EQ(all_tiles, new_content_tiles); | 483 EXPECT_EQ(all_tiles, new_content_tiles); |
| 467 } | 484 } |
| 468 | 485 |
| 469 TEST_F(TileManagerTilePriorityQueueTest, | 486 TEST_F(TileManagerTilePriorityQueueTest, |
| 470 EvictionTilePriorityQueueWithOcclusion) { | 487 EvictionTilePriorityQueueWithOcclusion) { |
| 471 gfx::Size tile_size(102, 102); | 488 gfx::Size tile_size(102, 102); |
| 472 gfx::Size layer_bounds(1000, 1000); | 489 gfx::Size layer_bounds(1000, 1000); |
| 473 | 490 |
| 474 scoped_refptr<FakePicturePileImpl> pending_pile = | 491 scoped_refptr<FakePicturePileImpl> pending_pile = |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 all_tiles.insert(queue.Top()); | 688 all_tiles.insert(queue.Top()); |
| 672 ++tile_count; | 689 ++tile_count; |
| 673 queue.Pop(); | 690 queue.Pop(); |
| 674 } | 691 } |
| 675 EXPECT_EQ(tile_count, all_tiles.size()); | 692 EXPECT_EQ(tile_count, all_tiles.size()); |
| 676 EXPECT_EQ(17u, tile_count); | 693 EXPECT_EQ(17u, tile_count); |
| 677 } | 694 } |
| 678 | 695 |
| 679 } // namespace | 696 } // namespace |
| 680 } // namespace cc | 697 } // namespace cc |
| OLD | NEW |