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

Unified Diff: trunk/src/cc/resources/picture_pile_unittest.cc

Issue 347493002: Revert 277964 "cc: In SyncFromActiveLayer, drop all tiles not in..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 6 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 | « trunk/src/cc/resources/picture_pile_base.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/src/cc/resources/picture_pile_unittest.cc
===================================================================
--- trunk/src/cc/resources/picture_pile_unittest.cc (revision 277979)
+++ trunk/src/cc/resources/picture_pile_unittest.cc (working copy)
@@ -51,26 +51,20 @@
gfx::Rect tiling_rect() const { return pile_->tiling_rect(); }
- bool UpdateAndExpandInvalidation(Region* invalidation,
- const gfx::Rect& visible_layer_rect) {
+ bool Update(const Region& invalidation, const gfx::Rect& visible_layer_rect) {
frame_number_++;
- return pile_->UpdateAndExpandInvalidation(&client_,
- invalidation,
- background_color_,
- contents_opaque_,
- false,
- visible_layer_rect,
- frame_number_,
- Picture::RECORD_NORMALLY,
- &stats_instrumentation_);
+ return pile_->Update(&client_,
+ background_color_,
+ contents_opaque_,
+ false,
+ invalidation,
+ visible_layer_rect,
+ frame_number_,
+ Picture::RECORD_NORMALLY,
+ &stats_instrumentation_);
}
- bool UpdateWholePile() {
- Region invalidation = tiling_rect();
- bool result = UpdateAndExpandInvalidation(&invalidation, tiling_rect());
- EXPECT_EQ(tiling_rect().ToString(), invalidation.ToString());
- return result;
- }
+ bool UpdateWholePile() { return Update(tiling_rect(), tiling_rect()); }
FakeContentLayerClient client_;
FakeRenderingStatsInstrumentation stats_instrumentation_;
@@ -85,9 +79,8 @@
UpdateWholePile();
// Invalidate something inside a tile.
- Region invalidate_rect(gfx::Rect(50, 50, 1, 1));
- UpdateAndExpandInvalidation(&invalidate_rect, tiling_rect());
- EXPECT_EQ(gfx::Rect(50, 50, 1, 1).ToString(), invalidate_rect.ToString());
+ gfx::Rect invalidate_rect(50, 50, 1, 1);
+ Update(invalidate_rect, tiling_rect());
EXPECT_EQ(1, pile_->tiling().num_tiles_x());
EXPECT_EQ(1, pile_->tiling().num_tiles_y());
@@ -109,9 +102,8 @@
UpdateWholePile();
// Invalidate something inside a tile.
- Region invalidate_rect(gfx::Rect(50, 50, 100, 100));
- UpdateAndExpandInvalidation(&invalidate_rect, tiling_rect());
- EXPECT_EQ(gfx::Rect(50, 50, 100, 100).ToString(), invalidate_rect.ToString());
+ gfx::Rect invalidate_rect(50, 50, 100, 100);
+ Update(invalidate_rect, tiling_rect());
EXPECT_EQ(1, pile_->tiling().num_tiles_x());
EXPECT_EQ(1, pile_->tiling().num_tiles_y());
@@ -151,14 +143,12 @@
// Invalidate something just over a tile boundary by a single pixel.
// This will invalidate the tile (1, 1), as well as 1 row of pixels in (1, 0).
- Region invalidate_rect(
- gfx::Rect(pile_->tiling().TileBoundsWithBorder(0, 0).right(),
- pile_->tiling().TileBoundsWithBorder(0, 0).bottom() - 1,
- 50,
- 50));
- Region expected_invalidation = invalidate_rect;
- UpdateAndExpandInvalidation(&invalidate_rect, tiling_rect());
- EXPECT_EQ(expected_invalidation.ToString(), invalidate_rect.ToString());
+ gfx::Rect invalidate_rect(
+ pile_->tiling().TileBoundsWithBorder(0, 0).right(),
+ pile_->tiling().TileBoundsWithBorder(0, 0).bottom() - 1,
+ 50,
+ 50);
+ Update(invalidate_rect, tiling_rect());
for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
for (int j = 0; j < pile_->tiling().num_tiles_y(); ++j) {
@@ -207,10 +197,9 @@
}
}
- // Update once more with a small viewport.
- Region invalidation = tiling_rect();
- UpdateAndExpandInvalidation(&invalidation, viewport);
- EXPECT_EQ(tiling_rect().ToString(), invalidation.ToString());
+ // Update once more with a small viewport tiilng_rect.x(), tiilng_rect.y(),
+ // tiling_rect.width() by 1
+ Update(tiling_rect(), viewport);
for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
for (int j = 0; j < pile_->tiling().num_tiles_y(); ++j) {
@@ -229,22 +218,8 @@
}
}
- // Update a partial tile that doesn't get recorded. We should expand the
- // invalidation to the entire tiles that overlap it.
- Region small_invalidation =
- gfx::Rect(pile_->tiling().TileBounds(3, 4).x(),
- pile_->tiling().TileBounds(3, 4).y() + 10,
- 1,
- 1);
- UpdateAndExpandInvalidation(&small_invalidation, viewport);
- EXPECT_TRUE(small_invalidation.Contains(gfx::UnionRects(
- pile_->tiling().TileBounds(2, 4), pile_->tiling().TileBounds(3, 4))))
- << small_invalidation.ToString();
-
// Now update with no invalidation and full viewport
- Region empty_invalidation;
- UpdateAndExpandInvalidation(&empty_invalidation, tiling_rect());
- EXPECT_EQ(Region().ToString(), empty_invalidation.ToString());
+ Update(gfx::Rect(), tiling_rect());
for (int i = 0; i < pile_->tiling().num_tiles_x(); ++i) {
for (int j = 0; j < pile_->tiling().num_tiles_y(); ++j) {
@@ -254,8 +229,13 @@
->second;
// Expect the invalidation frequency to be less than 1, since we just
// updated with no invalidations.
- EXPECT_LT(picture_info.GetInvalidationFrequencyForTesting(), 1.f);
+ float expected_frequency =
+ 1.0f -
+ 1.0f / TestPicturePile::PictureInfo::INVALIDATION_FRAMES_TRACKED;
+ EXPECT_FLOAT_EQ(expected_frequency,
+ picture_info.GetInvalidationFrequencyForTesting());
+
// We expect that there are pictures everywhere now.
EXPECT_TRUE(picture_info.GetPicture()) << "i " << i << " j " << j;
}
@@ -311,9 +291,7 @@
// Update once more with a small viewport.
gfx::Rect viewport(0, 0, tiling_rect().width(), 1);
- Region invalidation(tiling_rect());
- UpdateAndExpandInvalidation(&invalidation, viewport);
- EXPECT_EQ(tiling_rect().ToString(), invalidation.ToString());
+ Update(tiling_rect(), viewport);
// Sanity check some pictures exist and others don't.
EXPECT_TRUE(pile_->picture_map()
@@ -337,49 +315,17 @@
EXPECT_TRUE(!pile_->recorded_viewport().IsEmpty());
// No invalidation, same viewport.
- Region invalidation;
- UpdateAndExpandInvalidation(&invalidation, tiling_rect());
+ Update(gfx::Rect(), tiling_rect());
EXPECT_TRUE(!pile_->recorded_viewport().IsEmpty());
- EXPECT_EQ(Region().ToString(), invalidation.ToString());
// Partial invalidation, same viewport.
- invalidation = gfx::Rect(0, 0, 1, 1);
- UpdateAndExpandInvalidation(&invalidation, tiling_rect());
+ Update(gfx::Rect(gfx::Rect(0, 0, 1, 1)), tiling_rect());
EXPECT_TRUE(!pile_->recorded_viewport().IsEmpty());
- EXPECT_EQ(gfx::Rect(0, 0, 1, 1).ToString(), invalidation.ToString());
// No invalidation, changing viewport.
- invalidation = Region();
- UpdateAndExpandInvalidation(&invalidation, gfx::Rect(5, 5, 5, 5));
+ Update(gfx::Rect(), gfx::Rect(5, 5, 5, 5));
EXPECT_TRUE(!pile_->recorded_viewport().IsEmpty());
- EXPECT_EQ(Region().ToString(), invalidation.ToString());
}
-TEST_F(PicturePileTest, InvalidationOutsideRecordingRect) {
- gfx::Rect huge_layer_rect(10000000, 20000000);
- gfx::Rect viewport(300000, 400000, 5000, 6000);
-
- pile_->SetTilingRect(huge_layer_rect);
-
- // Invalidation inside the recording rect does not need to be expanded.
- Region invalidation = viewport;
- UpdateAndExpandInvalidation(&invalidation, viewport);
- EXPECT_EQ(viewport.ToString(), invalidation.ToString());
-
- // Invalidation outside the recording rect should expand to the tiles it
- // covers.
- gfx::Rect recorded_over_tiles =
- pile_->tiling().ExpandRectToTileBounds(pile_->recorded_viewport());
- gfx::Rect invalidation_outside(
- recorded_over_tiles.right(), recorded_over_tiles.y(), 30, 30);
- invalidation = invalidation_outside;
- UpdateAndExpandInvalidation(&invalidation, viewport);
- gfx::Rect expanded_recorded_viewport =
- pile_->tiling().ExpandRectToTileBounds(pile_->recorded_viewport());
- Region expected_invalidation =
- pile_->tiling().ExpandRectToTileBounds(invalidation_outside);
- EXPECT_EQ(expected_invalidation.ToString(), invalidation.ToString());
-}
-
} // namespace
} // namespace cc
« no previous file with comments | « trunk/src/cc/resources/picture_pile_base.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698