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

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

Issue 674103004: [WIP] cc: Use reverse spiral iterator in tiling eviction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 1 month 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
« no previous file with comments | « cc/resources/picture_layer_tiling_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
517 }
512 } 518 }
513 } 519 }
514 520
515 last_tile = tile; 521 last_tile = tile;
516 ++tile_count; 522 ++tile_count;
517 smoothness_tiles.insert(tile); 523 smoothness_tiles.insert(tile);
518 queue.Pop(); 524 queue.Pop();
519 } 525 }
520 526
527 EXPECT_EQ(3, distance_increasing);
528 EXPECT_EQ(16, distance_decreasing);
521 EXPECT_EQ(tile_count, smoothness_tiles.size()); 529 EXPECT_EQ(tile_count, smoothness_tiles.size());
522 EXPECT_EQ(all_tiles, smoothness_tiles); 530 EXPECT_EQ(all_tiles, smoothness_tiles);
523 531
524 std::set<Tile*> new_content_tiles; 532 std::set<Tile*> new_content_tiles;
525 last_tile = NULL; 533 last_tile = NULL;
526 // Here we expect to get increasing PENDING_TREE priority_bin. 534 // Here we expect to get increasing PENDING_TREE priority_bin.
527 queue.Reset(); 535 queue.Reset();
528 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY); 536 host_impl_.BuildEvictionQueue(&queue, NEW_CONTENT_TAKES_PRIORITY);
537 distance_increasing = 0;
538 distance_decreasing = 0;
529 while (!queue.IsEmpty()) { 539 while (!queue.IsEmpty()) {
530 Tile* tile = queue.Top(); 540 Tile* tile = queue.Top();
531 EXPECT_TRUE(tile); 541 EXPECT_TRUE(tile);
532 542
533 if (!last_tile) 543 if (!last_tile)
534 last_tile = tile; 544 last_tile = tile;
535 545
536 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin, 546 EXPECT_GE(last_tile->priority(PENDING_TREE).priority_bin,
537 tile->priority(PENDING_TREE).priority_bin); 547 tile->priority(PENDING_TREE).priority_bin);
538 if (last_tile->priority(PENDING_TREE).priority_bin == 548 if (last_tile->priority(PENDING_TREE).priority_bin ==
539 tile->priority(PENDING_TREE).priority_bin) { 549 tile->priority(PENDING_TREE).priority_bin) {
540 EXPECT_LE(last_tile->required_for_activation(), 550 EXPECT_LE(last_tile->required_for_activation(),
541 tile->required_for_activation()); 551 tile->required_for_activation());
542 if (last_tile->required_for_activation() == 552 if (last_tile->required_for_activation() ==
543 tile->required_for_activation()) { 553 tile->required_for_activation()) {
544 EXPECT_GE(last_tile->priority(PENDING_TREE).distance_to_visible, 554 if (last_tile->priority(PENDING_TREE).distance_to_visible >=
545 tile->priority(PENDING_TREE).distance_to_visible); 555 tile->priority(PENDING_TREE).distance_to_visible) {
556 ++distance_decreasing;
557 } else {
558 ++distance_increasing;
559 }
546 } 560 }
547 } 561 }
548 562
549 last_tile = tile; 563 last_tile = tile;
550 new_content_tiles.insert(tile); 564 new_content_tiles.insert(tile);
551 queue.Pop(); 565 queue.Pop();
552 } 566 }
553 567
568 EXPECT_EQ(3, distance_increasing);
569 EXPECT_EQ(16, distance_decreasing);
570
554 EXPECT_EQ(tile_count, new_content_tiles.size()); 571 EXPECT_EQ(tile_count, new_content_tiles.size());
555 EXPECT_EQ(all_tiles, new_content_tiles); 572 EXPECT_EQ(all_tiles, new_content_tiles);
556 } 573 }
557 574
558 TEST_F(TileManagerTilePriorityQueueTest, 575 TEST_F(TileManagerTilePriorityQueueTest,
559 EvictionTilePriorityQueueWithOcclusion) { 576 EvictionTilePriorityQueueWithOcclusion) {
560 gfx::Size tile_size(102, 102); 577 gfx::Size tile_size(102, 102);
561 gfx::Size layer_bounds(1000, 1000); 578 gfx::Size layer_bounds(1000, 1000);
562 579
563 scoped_refptr<FakePicturePileImpl> pending_pile = 580 scoped_refptr<FakePicturePileImpl> pending_pile =
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 all_tiles.insert(queue.Top()); 875 all_tiles.insert(queue.Top());
859 ++tile_count; 876 ++tile_count;
860 queue.Pop(); 877 queue.Pop();
861 } 878 }
862 EXPECT_EQ(tile_count, all_tiles.size()); 879 EXPECT_EQ(tile_count, all_tiles.size());
863 EXPECT_EQ(16u, tile_count); 880 EXPECT_EQ(16u, tile_count);
864 } 881 }
865 882
866 } // namespace 883 } // namespace
867 } // namespace cc 884 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/picture_layer_tiling_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698