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

Unified Diff: cc/tiles/picture_layer_tiling_set_unittest.cc

Issue 2529533002: cc: Force update tile priorities for pending tree tiling set on commit. (Closed)
Patch Set: review Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/tiles/picture_layer_tiling_set.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tiles/picture_layer_tiling_set_unittest.cc
diff --git a/cc/tiles/picture_layer_tiling_set_unittest.cc b/cc/tiles/picture_layer_tiling_set_unittest.cc
index e17c3dc9f32e87fd9dccc3907cd76107fa2fe4a6..e4fa86d15edb065eb040c22a3c13d6ecde36491a 100644
--- a/cc/tiles/picture_layer_tiling_set_unittest.cc
+++ b/cc/tiles/picture_layer_tiling_set_unittest.cc
@@ -984,5 +984,58 @@ TEST(PictureLayerTilingTest, InvalidateAfterComputeTilePriorityRects) {
tiling_set->UpdateTilePriorities(viewport, 1.f, time, Occlusion(), true));
}
+TEST(PictureLayerTilingTest, InvalidateAfterUpdateRasterSourceForCommit) {
+ FakePictureLayerTilingClient pending_client;
+ FakePictureLayerTilingClient active_client;
+ std::unique_ptr<PictureLayerTilingSet> pending_set =
+ PictureLayerTilingSet::Create(PENDING_TREE, &pending_client, 1000, 1.f,
+ 1000, 1000.f);
+ std::unique_ptr<PictureLayerTilingSet> active_set =
+ PictureLayerTilingSet::Create(ACTIVE_TREE, &active_client, 1000, 1.f,
+ 1000, 1000.f);
+
+ gfx::Size layer_bounds(100, 100);
+ scoped_refptr<FakeRasterSource> raster_source =
+ FakeRasterSource::CreateFilled(layer_bounds);
+
+ auto* pending_tiling = pending_set->AddTiling(1.f, raster_source);
+ pending_tiling->set_resolution(HIGH_RESOLUTION);
+ active_client.set_twin_tiling_set(pending_set.get());
+
+ double time = 1.;
+ gfx::Rect viewport(0, 0, 100, 100);
+
+ // The first commit will update the raster source for pending tilings.
+ pending_set->UpdateTilingsToCurrentRasterSourceForCommit(raster_source,
+ Region(), 1.f, 1.f);
+ // UpdateTilePriorities for pending set gets called during UDP in commit.
+ EXPECT_TRUE(pending_set->UpdateTilePriorities(viewport, 1.f, time,
+ Occlusion(), true));
+ // The active set doesn't have tilings yet.
+ EXPECT_FALSE(
+ active_set->UpdateTilePriorities(viewport, 1.f, time, Occlusion(), true));
+
+ // On activation tilings are copied from pending set to active set.
+ active_set->UpdateTilingsToCurrentRasterSourceForActivation(
+ raster_source, pending_set.get(), Region(), 1.f, 1.f);
+ // Pending set doesn't have any tilings now.
+ EXPECT_FALSE(pending_set->UpdateTilePriorities(viewport, 1.f, time,
+ Occlusion(), true));
+ // UpdateTilePriorities for active set gets called during UDP in draw.
+ EXPECT_TRUE(
+ active_set->UpdateTilePriorities(viewport, 1.f, time, Occlusion(), true));
+
+ // Even though frame time and viewport haven't changed since last commit we
+ // update tile priorities because of potential invalidations.
+ pending_set->UpdateTilingsToCurrentRasterSourceForCommit(raster_source,
+ Region(), 1.f, 1.f);
+ // UpdateTilePriorities for pending set gets called during UDP in commit.
+ EXPECT_TRUE(pending_set->UpdateTilePriorities(viewport, 1.f, time,
+ Occlusion(), true));
+ // No changes for active set until activation.
+ EXPECT_FALSE(
+ active_set->UpdateTilePriorities(viewport, 1.f, time, Occlusion(), true));
+}
+
} // namespace
} // namespace cc
« no previous file with comments | « cc/tiles/picture_layer_tiling_set.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698