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

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

Issue 736753002: cc: Implement geometry-based tile eviction (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years 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/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 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 476
477 tile_manager()->InitializeTilesWithResourcesForTesting( 477 tile_manager()->InitializeTilesWithResourcesForTesting(
478 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 478 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
479 479
480 Tile* last_tile = NULL; 480 Tile* last_tile = NULL;
481 smoothness_tiles.clear(); 481 smoothness_tiles.clear();
482 tile_count = 0; 482 tile_count = 0;
483 // Here we expect to get increasing ACTIVE_TREE priority_bin. 483 // Here we expect to get increasing ACTIVE_TREE priority_bin.
484 queue.Reset(); 484 queue.Reset();
485 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); 485 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY);
486 int distance_increasing = 0;
487 int distance_decreasing = 0;
486 while (!queue.IsEmpty()) { 488 while (!queue.IsEmpty()) {
487 Tile* tile = queue.Top(); 489 Tile* tile = queue.Top();
488 EXPECT_TRUE(tile); 490 EXPECT_TRUE(tile);
489 EXPECT_TRUE(tile->HasResources()); 491 EXPECT_TRUE(tile->HasResources());
490 492
491 if (!last_tile) 493 if (!last_tile)
492 last_tile = tile; 494 last_tile = tile;
493 495
494 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, 496 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin,
495 tile->priority(ACTIVE_TREE).priority_bin); 497 tile->priority(ACTIVE_TREE).priority_bin);
496 if (last_tile->priority(ACTIVE_TREE).priority_bin == 498 if (last_tile->priority(ACTIVE_TREE).priority_bin ==
497 tile->priority(ACTIVE_TREE).priority_bin) { 499 tile->priority(ACTIVE_TREE).priority_bin) {
498 EXPECT_LE(last_tile->required_for_activation(), 500 EXPECT_LE(last_tile->required_for_activation(),
499 tile->required_for_activation()); 501 tile->required_for_activation());
500 if (last_tile->required_for_activation() == 502 if (last_tile->required_for_activation() ==
501 tile->required_for_activation()) { 503 tile->required_for_activation()) {
502 EXPECT_GE(last_tile->priority(ACTIVE_TREE).distance_to_visible, 504 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >=
503 tile->priority(ACTIVE_TREE).distance_to_visible); 505 tile->priority(ACTIVE_TREE).distance_to_visible)
506 ++distance_decreasing;
507 else
508 ++distance_increasing;
504 } 509 }
505 } 510 }
506 511
507 last_tile = tile; 512 last_tile = tile;
508 ++tile_count; 513 ++tile_count;
509 smoothness_tiles.insert(tile); 514 smoothness_tiles.insert(tile);
510 queue.Pop(); 515 queue.Pop();
511 } 516 }
512 517
518 EXPECT_EQ(3, distance_increasing);
519 EXPECT_EQ(16, distance_decreasing);
513 EXPECT_EQ(tile_count, smoothness_tiles.size()); 520 EXPECT_EQ(tile_count, smoothness_tiles.size());
514 EXPECT_EQ(all_tiles, smoothness_tiles); 521 EXPECT_EQ(all_tiles, smoothness_tiles);
515 522
516 std::set<Tile*> new_content_tiles; 523 std::set<Tile*> new_content_tiles;
517 last_tile = NULL; 524 last_tile = NULL;
518 // Here we expect to get increasing PENDING_TREE priority_bin. 525 // Here we expect to get increasing PENDING_TREE priority_bin.
519 queue.Reset(); 526 queue.Reset();
520 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); 527 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY);
528 distance_decreasing = 0;
529 distance_increasing = 0;
521 while (!queue.IsEmpty()) { 530 while (!queue.IsEmpty()) {
522 Tile* tile = queue.Top(); 531 Tile* tile = queue.Top();
523 EXPECT_TRUE(tile); 532 EXPECT_TRUE(tile);
524 533
525 if (!last_tile) 534 if (!last_tile)
526 last_tile = tile; 535 last_tile = tile;
527 536
528 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, 537 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin,
529 tile->priority(PENDING_TREE).priority_bin); 538 tile->priority(PENDING_TREE).priority_bin);
530 if (last_tile->priority(PENDING_TREE).priority_bin == 539 if (last_tile->priority(PENDING_TREE).priority_bin ==
531 tile->priority(PENDING_TREE).priority_bin) { 540 tile->priority(PENDING_TREE).priority_bin) {
532 EXPECT_LE(last_tile->required_for_activation(), 541 EXPECT_LE(last_tile->required_for_activation(),
533 tile->required_for_activation()); 542 tile->required_for_activation());
534 if (last_tile->required_for_activation() == 543 if (last_tile->required_for_activation() ==
535 tile->required_for_activation()) { 544 tile->required_for_activation()) {
536 EXPECT_GE(last_tile->priority(PENDING_TREE).distance_to_visible, 545 if (last_tile->priority(PENDING_TREE).distance_to_visible >=
537 tile->priority(PENDING_TREE).distance_to_visible); 546 tile->priority(PENDING_TREE).distance_to_visible)
547 ++distance_decreasing;
548 else
549 ++distance_increasing;
538 } 550 }
539 } 551 }
540 552
541 last_tile = tile; 553 last_tile = tile;
542 new_content_tiles.insert(tile); 554 new_content_tiles.insert(tile);
543 queue.Pop(); 555 queue.Pop();
544 } 556 }
545 557
558 EXPECT_EQ(3, distance_increasing);
559 EXPECT_EQ(16, distance_decreasing);
546 EXPECT_EQ(tile_count, new_content_tiles.size()); 560 EXPECT_EQ(tile_count, new_content_tiles.size());
547 EXPECT_EQ(all_tiles, new_content_tiles); 561 EXPECT_EQ(all_tiles, new_content_tiles);
548 } 562 }
549 563
550 TEST_F(TileManagerTilePriorityQueueTest, 564 TEST_F(TileManagerTilePriorityQueueTest,
551 EvictionTilePriorityQueueWithOcclusion) { 565 EvictionTilePriorityQueueWithOcclusion) {
552 gfx::Size tile_size(102, 102); 566 gfx::Size tile_size(102, 102);
553 gfx::Size layer_bounds(1000, 1000); 567 gfx::Size layer_bounds(1000, 1000);
554 568
555 host_impl_.SetViewportSize(layer_bounds); 569 host_impl_.SetViewportSize(layer_bounds);
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
856 all_tiles.insert(queue.Top()); 870 all_tiles.insert(queue.Top());
857 ++tile_count; 871 ++tile_count;
858 queue.Pop(); 872 queue.Pop();
859 } 873 }
860 EXPECT_EQ(tile_count, all_tiles.size()); 874 EXPECT_EQ(tile_count, all_tiles.size());
861 EXPECT_EQ(16u, tile_count); 875 EXPECT_EQ(16u, tile_count);
862 } 876 }
863 877
864 } // namespace 878 } // namespace
865 } // namespace cc 879 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698