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

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: Clean up 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 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 484
485 tile_manager()->InitializeTilesWithResourcesForTesting( 485 tile_manager()->InitializeTilesWithResourcesForTesting(
486 std::vector<Tile*>(all_tiles.begin(), all_tiles.end())); 486 std::vector<Tile*>(all_tiles.begin(), all_tiles.end()));
487 487
488 Tile* last_tile = NULL; 488 Tile* last_tile = NULL;
489 smoothness_tiles.clear(); 489 smoothness_tiles.clear();
490 tile_count = 0; 490 tile_count = 0;
491 // Here we expect to get increasing ACTIVE_TREE priority_bin. 491 // Here we expect to get increasing ACTIVE_TREE priority_bin.
492 queue.Reset(); 492 queue.Reset();
493 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY); 493 host_impl_.BuildEvictionQueue(&queue, SMOOTHNESS_TAKES_PRIORITY);
494 int distance_increasing = 0;
495 int distance_decreasing = 0;
494 while (!queue.IsEmpty()) { 496 while (!queue.IsEmpty()) {
495 Tile* tile = queue.Top(); 497 Tile* tile = queue.Top();
496 EXPECT_TRUE(tile); 498 EXPECT_TRUE(tile);
497 EXPECT_TRUE(tile->HasResources()); 499 EXPECT_TRUE(tile->HasResources());
498 500
499 if (!last_tile) 501 if (!last_tile)
500 last_tile = tile; 502 last_tile = tile;
501 503
502 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin, 504 EXPECT_GE(last_tile->priority(ACTIVE_TREE).priority_bin,
503 tile->priority(ACTIVE_TREE).priority_bin); 505 tile->priority(ACTIVE_TREE).priority_bin);
504 if (last_tile->priority(ACTIVE_TREE).priority_bin == 506 if (last_tile->priority(ACTIVE_TREE).priority_bin ==
505 tile->priority(ACTIVE_TREE).priority_bin) { 507 tile->priority(ACTIVE_TREE).priority_bin) {
506 EXPECT_LE(last_tile->required_for_activation(), 508 EXPECT_LE(last_tile->required_for_activation(),
507 tile->required_for_activation()); 509 tile->required_for_activation());
508 if (last_tile->required_for_activation() == 510 if (last_tile->required_for_activation() ==
509 tile->required_for_activation()) { 511 tile->required_for_activation()) {
510 EXPECT_GE(last_tile->priority(ACTIVE_TREE).distance_to_visible, 512 if (last_tile->priority(ACTIVE_TREE).distance_to_visible >=
511 tile->priority(ACTIVE_TREE).distance_to_visible); 513 tile->priority(ACTIVE_TREE).distance_to_visible)
514 ++distance_decreasing;
515 else
516 ++distance_increasing;
512 } 517 }
513 } 518 }
514 519
515 last_tile = tile; 520 last_tile = tile;
516 ++tile_count; 521 ++tile_count;
517 smoothness_tiles.insert(tile); 522 smoothness_tiles.insert(tile);
518 queue.Pop(); 523 queue.Pop();
519 } 524 }
520 525
526 EXPECT_EQ(3, distance_increasing);
527 EXPECT_EQ(16, distance_decreasing);
521 EXPECT_EQ(tile_count, smoothness_tiles.size()); 528 EXPECT_EQ(tile_count, smoothness_tiles.size());
522 EXPECT_EQ(all_tiles, smoothness_tiles); 529 EXPECT_EQ(all_tiles, smoothness_tiles);
523 530
524 std::set<Tile*> new_content_tiles; 531 std::set<Tile*> new_content_tiles;
525 last_tile = NULL; 532 last_tile = NULL;
526 // Here we expect to get increasing PENDING_TREE priority_bin. 533 // Here we expect to get increasing PENDING_TREE priority_bin.
527 queue.Reset(); 534 queue.Reset();
528 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); 535 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY);
536 distance_decreasing = 0;
537 distance_increasing = 0;
529 while (!queue.IsEmpty()) { 538 while (!queue.IsEmpty()) {
530 Tile* tile = queue.Top(); 539 Tile* tile = queue.Top();
531 EXPECT_TRUE(tile); 540 EXPECT_TRUE(tile);
532 541
533 if (!last_tile) 542 if (!last_tile)
534 last_tile = tile; 543 last_tile = tile;
535 544
536 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, 545 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin,
537 tile->priority(PENDING_TREE).priority_bin); 546 tile->priority(PENDING_TREE).priority_bin);
538 if (last_tile->priority(PENDING_TREE).priority_bin == 547 if (last_tile->priority(PENDING_TREE).priority_bin ==
539 tile->priority(PENDING_TREE).priority_bin) { 548 tile->priority(PENDING_TREE).priority_bin) {
540 EXPECT_LE(last_tile->required_for_activation(), 549 EXPECT_LE(last_tile->required_for_activation(),
541 tile->required_for_activation()); 550 tile->required_for_activation());
542 if (last_tile->required_for_activation() == 551 if (last_tile->required_for_activation() ==
543 tile->required_for_activation()) { 552 tile->required_for_activation()) {
544 EXPECT_GE(last_tile->priority(PENDING_TREE).distance_to_visible, 553 if (last_tile->priority(PENDING_TREE).distance_to_visible >=
545 tile->priority(PENDING_TREE).distance_to_visible); 554 tile->priority(PENDING_TREE).distance_to_visible)
555 ++distance_decreasing;
556 else
557 ++distance_increasing;
546 } 558 }
547 } 559 }
548 560
549 last_tile = tile; 561 last_tile = tile;
550 new_content_tiles.insert(tile); 562 new_content_tiles.insert(tile);
551 queue.Pop(); 563 queue.Pop();
552 } 564 }
553 565
566 EXPECT_EQ(3, distance_increasing);
567 EXPECT_EQ(16, distance_decreasing);
554 EXPECT_EQ(tile_count, new_content_tiles.size()); 568 EXPECT_EQ(tile_count, new_content_tiles.size());
555 EXPECT_EQ(all_tiles, new_content_tiles); 569 EXPECT_EQ(all_tiles, new_content_tiles);
556 } 570 }
557 571
558 TEST_F(TileManagerTilePriorityQueueTest, 572 TEST_F(TileManagerTilePriorityQueueTest,
559 EvictionTilePriorityQueueWithOcclusion) { 573 EvictionTilePriorityQueueWithOcclusion) {
560 gfx::Size tile_size(102, 102); 574 gfx::Size tile_size(102, 102);
561 gfx::Size layer_bounds(1000, 1000); 575 gfx::Size layer_bounds(1000, 1000);
562 576
563 scoped_refptr<FakePicturePileImpl> pending_pile = 577 scoped_refptr<FakePicturePileImpl> pending_pile =
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 all_tiles.insert(queue.Top()); 872 all_tiles.insert(queue.Top());
859 ++tile_count; 873 ++tile_count;
860 queue.Pop(); 874 queue.Pop();
861 } 875 }
862 EXPECT_EQ(tile_count, all_tiles.size()); 876 EXPECT_EQ(tile_count, all_tiles.size());
863 EXPECT_EQ(16u, tile_count); 877 EXPECT_EQ(16u, tile_count);
864 } 878 }
865 879
866 } // namespace 880 } // namespace
867 } // namespace cc 881 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698