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

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

Issue 644313002: cc: Use reverse spiral iterator in tiling eviction. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months 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 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
OLDNEW
« cc/resources/picture_layer_tiling.cc ('K') | « cc/resources/picture_layer_tiling.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698