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

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

Powered by Google App Engine
This is Rietveld 408576698