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

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

Issue 1064743003: cc: Consider resolution when checking HigherPriorityTree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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/resource_pool.h" 7 #include "cc/resources/resource_pool.h"
8 #include "cc/resources/tile.h" 8 #include "cc/resources/tile.h"
9 #include "cc/resources/tile_priority.h" 9 #include "cc/resources/tile_priority.h"
10 #include "cc/resources/tiling_set_raster_queue_all.h" 10 #include "cc/resources/tiling_set_raster_queue_all.h"
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 while (!queue->IsEmpty()) { 418 while (!queue->IsEmpty()) {
419 Tile* tile = queue->Top(); 419 Tile* tile = queue->Top();
420 EXPECT_TRUE(tile->required_for_draw()); 420 EXPECT_TRUE(tile->required_for_draw());
421 required_for_draw_tiles.insert(tile); 421 required_for_draw_tiles.insert(tile);
422 queue->Pop(); 422 queue->Pop();
423 } 423 }
424 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles); 424 EXPECT_EQ(expected_required_for_draw_tiles, required_for_draw_tiles);
425 EXPECT_NE(new_content_tiles, required_for_draw_tiles); 425 EXPECT_NE(new_content_tiles, required_for_draw_tiles);
426 } 426 }
427 427
428 TEST_F(TileManagerTilePriorityQueueTest,
429 RasterTilePriorityQueueHighNonIdealTilings) {
430 const gfx::Size layer_bounds(1000, 1000);
431 const gfx::Size viewport(800, 800);
432 host_impl_.SetViewportSize(viewport);
433 SetupDefaultTrees(layer_bounds);
434
435 pending_layer_->tilings()->AddTiling(1.5f, pending_layer_->raster_source());
436 active_layer_->tilings()->AddTiling(1.5f, active_layer_->raster_source());
437
438 pending_layer_->tilings()->UpdateTilePriorities(gfx::Rect(viewport), 1.f, 5.0,
439 Occlusion(), true);
440 active_layer_->tilings()->UpdateTilePriorities(gfx::Rect(viewport), 1.f, 5.0,
441 Occlusion(), true);
442
443 std::set<Tile*> all_expected_tiles;
444 for (size_t i = 0; i < pending_layer_->num_tilings(); ++i) {
445 PictureLayerTiling* tiling = pending_layer_->tilings()->tiling_at(i);
446 tiling->CreateAllTilesForTesting();
447 if (tiling->contents_scale() == 1.f) {
448 tiling->set_resolution(HIGH_RESOLUTION);
449 const auto& all_tiles = tiling->AllTilesForTesting();
450 all_expected_tiles.insert(all_tiles.begin(), all_tiles.end());
451 } else {
452 tiling->set_resolution(NON_IDEAL_RESOLUTION);
453 }
454 }
455
456 for (size_t i = 0; i < active_layer_->num_tilings(); ++i) {
457 PictureLayerTiling* tiling = active_layer_->tilings()->tiling_at(i);
458 tiling->CreateAllTilesForTesting();
459 if (tiling->contents_scale() == 1.5f) {
460 tiling->set_resolution(HIGH_RESOLUTION);
461 const auto& all_tiles = tiling->AllTilesForTesting();
462 all_expected_tiles.insert(all_tiles.begin(), all_tiles.end());
463 } else {
464 tiling->set_resolution(NON_IDEAL_RESOLUTION);
465 }
466 }
467
468 scoped_ptr<RasterTilePriorityQueue> queue(host_impl_.BuildRasterQueue(
469 SMOOTHNESS_TAKES_PRIORITY, RasterTilePriorityQueue::Type::ALL));
470 EXPECT_FALSE(queue->IsEmpty());
471
472 size_t tile_count = 0;
473 std::set<Tile*> all_actual_tiles;
474 while (!queue->IsEmpty()) {
475 EXPECT_TRUE(queue->Top());
476 all_actual_tiles.insert(queue->Top());
477 ++tile_count;
478 queue->Pop();
479 }
480
481 EXPECT_EQ(tile_count, all_actual_tiles.size());
482 EXPECT_EQ(all_expected_tiles.size(), all_actual_tiles.size());
483 EXPECT_EQ(all_expected_tiles, all_actual_tiles);
484 }
485
428 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) { 486 TEST_F(TileManagerTilePriorityQueueTest, RasterTilePriorityQueueInvalidation) {
429 const gfx::Size layer_bounds(1000, 1000); 487 const gfx::Size layer_bounds(1000, 1000);
430 host_impl_.SetViewportSize(gfx::Size(500, 500)); 488 host_impl_.SetViewportSize(gfx::Size(500, 500));
431 SetupDefaultTrees(layer_bounds); 489 SetupDefaultTrees(layer_bounds);
432 490
433 // Use a tile's content rect as an invalidation. We should inset it a bit to 491 // Use a tile's content rect as an invalidation. We should inset it a bit to
434 // ensure that border math doesn't invalidate neighbouring tiles. 492 // ensure that border math doesn't invalidate neighbouring tiles.
435 gfx::Rect invalidation = 493 gfx::Rect invalidation =
436 pending_layer_->HighResTiling()->TileAt(1, 0)->content_rect(); 494 pending_layer_->HighResTiling()->TileAt(1, 0)->content_rect();
437 invalidation.Inset(2, 2); 495 invalidation.Inset(2, 2);
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 RGBA_8888); 1406 RGBA_8888);
1349 1407
1350 host_impl_.tile_manager()->CheckIfMoreTilesNeedToBePreparedForTesting(); 1408 host_impl_.tile_manager()->CheckIfMoreTilesNeedToBePreparedForTesting();
1351 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw()); 1409 EXPECT_FALSE(host_impl_.is_likely_to_require_a_draw());
1352 1410
1353 host_impl_.resource_pool()->ReleaseResource(resource.Pass()); 1411 host_impl_.resource_pool()->ReleaseResource(resource.Pass());
1354 } 1412 }
1355 1413
1356 } // namespace 1414 } // namespace
1357 } // namespace cc 1415 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698