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

Unified Diff: cc/resources/picture_layer_tiling_unittest.cc

Issue 1108773003: Revert of cc: Remove tile sharing from tilings. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/resources/picture_layer_tiling_set.cc ('k') | cc/resources/raster_tile_priority_queue_all.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/picture_layer_tiling_unittest.cc
diff --git a/cc/resources/picture_layer_tiling_unittest.cc b/cc/resources/picture_layer_tiling_unittest.cc
index ab0e68c418b92414e1c8802317b7b4bf6b19284a..5999ecd55e7b52b6005dc2faebb323de24e74a52 100644
--- a/cc/resources/picture_layer_tiling_unittest.cc
+++ b/cc/resources/picture_layer_tiling_unittest.cc
@@ -2,11 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "cc/resources/picture_layer_tiling.h"
+
#include <limits>
#include <set>
#include "cc/base/math_util.h"
-#include "cc/resources/picture_layer_tiling.h"
#include "cc/resources/picture_layer_tiling_set.h"
#include "cc/test/fake_output_surface.h"
#include "cc/test/fake_output_surface_client.h"
@@ -82,17 +83,6 @@
const gfx::Size& layer_bounds) {
client_.SetTileSize(tile_size);
client_.set_tree(PENDING_TREE);
- scoped_refptr<FakePicturePileImpl> pile =
- FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds);
- tiling_ = TestablePictureLayerTiling::Create(contents_scale, pile, &client_,
- LayerTreeSettings());
- }
-
- void InitializeActive(const gfx::Size& tile_size,
- float contents_scale,
- const gfx::Size& layer_bounds) {
- client_.SetTileSize(tile_size);
- client_.set_tree(ACTIVE_TREE);
scoped_refptr<FakePicturePileImpl> pile =
FakePicturePileImpl::CreateFilledPileWithDefaultTileSize(layer_bounds);
tiling_ = TestablePictureLayerTiling::Create(contents_scale, pile, &client_,
@@ -199,7 +189,7 @@
// deletes tiles that intersect that invalidation.
gfx::Size tile_size(100, 100);
gfx::Size original_layer_size(10, 10);
- InitializeActive(tile_size, 1.f, original_layer_size);
+ Initialize(tile_size, 1.f, original_layer_size);
SetLiveRectAndVerifyTiles(gfx::Rect(original_layer_size));
// Tiling only has one tile, since its total size is less than one.
@@ -415,7 +405,7 @@
// deletes tiles that intersect that invalidation.
gfx::Size tile_size(100, 100);
gfx::Size original_layer_size(99, 99);
- InitializeActive(tile_size, 1.f, original_layer_size);
+ Initialize(tile_size, 1.f, original_layer_size);
SetLiveRectAndVerifyTiles(gfx::Rect(original_layer_size));
// Tiling only has one tile, since its total size is less than one.
@@ -813,7 +803,7 @@
for (int i = 0; i < 47; ++i) {
for (int j = 0; j < 47; ++j) {
Tile* tile = tiling->TileAt(i, j);
- TilePriority priority = tile->priority();
+ TilePriority priority = tile->priority(ACTIVE_TREE);
gfx::Rect tile_rect = tiling->TilingDataForTesting().TileBounds(i, j);
if (viewport_in_content_space.Intersects(tile_rect)) {
@@ -845,13 +835,13 @@
// 41,9 8x8 on all sides.
EXPECT_EQ(tiling->TileAt(5, 1)->content_rect().ToString(), "40,8 10x10");
- TilePriority priority = tiling->TileAt(5, 1)->priority();
+ TilePriority priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(68.f, priority.distance_to_visible);
- priority = tiling->TileAt(2, 5)->priority();
+ priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(68.f, priority.distance_to_visible);
- priority = tiling->TileAt(3, 4)->priority();
+ priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(40.f, priority.distance_to_visible);
// Move the viewport down 40 pixels.
@@ -883,7 +873,7 @@
for (int i = 0; i < 47; ++i) {
for (int j = 0; j < 47; ++j) {
Tile* tile = tiling->TileAt(i, j);
- TilePriority priority = tile->priority();
+ TilePriority priority = tile->priority(ACTIVE_TREE);
gfx::Rect tile_rect = tiling->TilingDataForTesting().TileBounds(i, j);
if (viewport_in_content_space.Intersects(tile_rect)) {
@@ -913,26 +903,26 @@
EXPECT_TRUE(have_soon);
EXPECT_TRUE(have_eventually);
- priority = tiling->TileAt(5, 1)->priority();
+ priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(68.f, priority.distance_to_visible);
- priority = tiling->TileAt(2, 5)->priority();
+ priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(28.f, priority.distance_to_visible);
- priority = tiling->TileAt(3, 4)->priority();
+ priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(4.f, priority.distance_to_visible);
// Change the underlying layer scale.
tiling->ComputeTilePriorityRects(viewport, 2.0f, 3.0, Occlusion());
tiling->UpdateAllTilePrioritiesForTesting();
- priority = tiling->TileAt(5, 1)->priority();
+ priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(136.f, priority.distance_to_visible);
- priority = tiling->TileAt(2, 5)->priority();
+ priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(56.f, priority.distance_to_visible);
- priority = tiling->TileAt(3, 4)->priority();
+ priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(8.f, priority.distance_to_visible);
// Test additional scales.
@@ -941,25 +931,25 @@
tiling->ComputeTilePriorityRects(viewport, 1.0f, 4.0, Occlusion());
tiling->UpdateAllTilePrioritiesForTesting();
- priority = tiling->TileAt(5, 1)->priority();
+ priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(110.f, priority.distance_to_visible);
- priority = tiling->TileAt(2, 5)->priority();
+ priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(70.f, priority.distance_to_visible);
- priority = tiling->TileAt(3, 4)->priority();
+ priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(60.f, priority.distance_to_visible);
tiling->ComputeTilePriorityRects(viewport, 0.5f, 5.0, Occlusion());
tiling->UpdateAllTilePrioritiesForTesting();
- priority = tiling->TileAt(5, 1)->priority();
+ priority = tiling->TileAt(5, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(55.f, priority.distance_to_visible);
- priority = tiling->TileAt(2, 5)->priority();
+ priority = tiling->TileAt(2, 5)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(35.f, priority.distance_to_visible);
- priority = tiling->TileAt(3, 4)->priority();
+ priority = tiling->TileAt(3, 4)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(30.f, priority.distance_to_visible);
}
@@ -1327,19 +1317,19 @@
ASSERT_TRUE(tiling->TileAt(1, 0));
ASSERT_TRUE(tiling->TileAt(1, 1));
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
}
@@ -1383,30 +1373,30 @@
ASSERT_TRUE(tiling->TileAt(1, 0));
ASSERT_TRUE(tiling->TileAt(1, 1));
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
// Furthermore, in this scenario tiles on the right hand side should have a
// larger distance to visible.
- TilePriority left = tiling->TileAt(0, 0)->priority();
- TilePriority right = tiling->TileAt(1, 0)->priority();
+ TilePriority left = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
+ TilePriority right = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_GT(right.distance_to_visible, left.distance_to_visible);
- left = tiling->TileAt(0, 1)->priority();
- right = tiling->TileAt(1, 1)->priority();
+ left = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
+ right = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(right.distance_to_visible, left.distance_to_visible);
}
@@ -1449,19 +1439,19 @@
ASSERT_TRUE(tiling->TileAt(1, 0));
ASSERT_TRUE(tiling->TileAt(1, 1));
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
}
@@ -1509,27 +1499,27 @@
ASSERT_TRUE(tiling->TileAt(1, 0));
ASSERT_TRUE(tiling->TileAt(1, 1));
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
// Furthermore, in this scenario the bottom-right tile should have the larger
// distance to visible.
- TilePriority top_left = tiling->TileAt(0, 0)->priority();
- TilePriority top_right = tiling->TileAt(1, 0)->priority();
- TilePriority bottom_right = tiling->TileAt(1, 1)->priority();
+ TilePriority top_left = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
+ TilePriority top_right = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
+ TilePriority bottom_right = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(top_right.distance_to_visible, top_left.distance_to_visible);
EXPECT_EQ(bottom_right.distance_to_visible, top_right.distance_to_visible);
@@ -1595,29 +1585,29 @@
// All tiles will have a positive distance_to_visible
// and an infinite time_to_visible.
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(priority.distance_to_visible, 0.f);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(priority.distance_to_visible, 0.f);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
// Furthermore, in this scenario the top-left distance_to_visible
// will be smallest, followed by top-right. The bottom layers
// will of course be further than the top layers.
- TilePriority top_left = tiling->TileAt(0, 0)->priority();
- TilePriority top_right = tiling->TileAt(1, 0)->priority();
- TilePriority bottom_left = tiling->TileAt(0, 1)->priority();
- TilePriority bottom_right = tiling->TileAt(1, 1)->priority();
+ TilePriority top_left = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
+ TilePriority top_right = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
+ TilePriority bottom_left = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
+ TilePriority bottom_right = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(bottom_right.distance_to_visible, top_right.distance_to_visible);
@@ -1689,21 +1679,21 @@
// Left-side tiles will be clipped by the transform, so we have to assume
// they are visible just in case.
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_FLOAT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
// Right-side tiles will have a positive distance_to_visible
// and an infinite time_to_visible.
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(priority.distance_to_visible, 0.f);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
}
@@ -1758,21 +1748,21 @@
ASSERT_TRUE(tiling->TileAt(1, 0));
ASSERT_TRUE(tiling->TileAt(1, 1));
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
// time_to_visible for the right hand side layers needs an extra 0.099
// seconds because this tile is 99 pixels further away.
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 1)->priority();
+ priority = tiling->TileAt(1, 1)->priority(ACTIVE_TREE);
EXPECT_GT(priority.distance_to_visible, 0.f);
EXPECT_NE(TilePriority::NOW, priority.priority_bin);
}
@@ -1836,15 +1826,15 @@
ASSERT_TRUE(tiling->TileAt(1, 0));
ASSERT_TRUE(tiling->TileAt(1, 1));
- TilePriority priority = tiling->TileAt(0, 0)->priority();
+ TilePriority priority = tiling->TileAt(0, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(0, 1)->priority();
+ priority = tiling->TileAt(0, 1)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
- priority = tiling->TileAt(1, 0)->priority();
+ priority = tiling->TileAt(1, 0)->priority(ACTIVE_TREE);
EXPECT_FLOAT_EQ(0.f, priority.distance_to_visible);
EXPECT_EQ(TilePriority::NOW, priority.priority_bin);
}
@@ -1895,13 +1885,15 @@
active_client.set_recycled_twin_tiling(recycle_tiling.get());
recycle_client.set_twin_tiling(NULL);
+ // Verify that tiles exist and are shared.
EXPECT_TRUE(active_tiling->TileAt(0, 0));
- EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
+ EXPECT_TRUE(recycle_tiling->TileAt(0, 0));
+ EXPECT_EQ(active_tiling->TileAt(0, 0), recycle_tiling->TileAt(0, 0));
// Move the viewport far away from the (0, 0) tile.
active_tiling->ComputeTilePriorityRects(gfx::Rect(9000, 9000, 100, 100), 1.0f,
2.0, Occlusion());
- // Ensure the tile was deleted.
+ // Ensure the tile was deleted on both tilings.
EXPECT_FALSE(active_tiling->TileAt(0, 0));
EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
@@ -1909,9 +1901,9 @@
active_tiling->ComputeTilePriorityRects(gfx::Rect(0, 0, 100, 100), 1.0f, 3.0,
Occlusion());
- // Ensure that we now have a tile here on both active.
+ // Ensure that we now have a tile here on both tilings again.
EXPECT_TRUE(active_tiling->TileAt(0, 0));
- EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
+ EXPECT_TRUE(recycle_tiling->TileAt(0, 0));
}
TEST(PictureLayerTilingTest, RecycledTilesClearedOnReset) {
@@ -1951,8 +1943,10 @@
active_client.set_recycled_twin_tiling(recycle_tiling.get());
recycle_client.set_twin_tiling(NULL);
+ // Verify that tiles exist and are shared.
EXPECT_TRUE(active_tiling->TileAt(0, 0));
- EXPECT_FALSE(recycle_tiling->TileAt(0, 0));
+ EXPECT_TRUE(recycle_tiling->TileAt(0, 0));
+ EXPECT_EQ(active_tiling->TileAt(0, 0), recycle_tiling->TileAt(0, 0));
// Reset the active tiling. The recycle tiles should be released too.
active_tiling->Reset();
« no previous file with comments | « cc/resources/picture_layer_tiling_set.cc ('k') | cc/resources/raster_tile_priority_queue_all.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698