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

Unified Diff: cc/layers/picture_layer_impl_unittest.cc

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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/layers/picture_layer_impl.cc ('k') | cc/layers/render_surface_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/picture_layer_impl_unittest.cc
diff --git a/cc/layers/picture_layer_impl_unittest.cc b/cc/layers/picture_layer_impl_unittest.cc
index 600f3e24851a20f88b956998bfbe3755c48f2b73..f00b2e45b82f7270d7e412a9f6a338beef887a97 100644
--- a/cc/layers/picture_layer_impl_unittest.cc
+++ b/cc/layers/picture_layer_impl_unittest.cc
@@ -240,7 +240,7 @@ class PictureLayerImplTest : public testing::Test {
layer->draw_properties().screen_space_transform_is_animating =
animating_transform_to_screen;
bool resourceless_software_draw = false;
- layer->UpdateTiles(Occlusion(), resourceless_software_draw);
+ layer->UpdateTiles(resourceless_software_draw);
}
static void VerifyAllTilesExistAndHavePile(
const PictureLayerTiling* tiling,
@@ -332,8 +332,11 @@ TEST_F(PictureLayerImplTest, TileGridAlignment) {
scoped_refptr<FakePicturePileImpl> pending_pile =
FakePicturePileImpl::CreateFilledPile(layer_size, layer_size);
+
+ scoped_ptr<FakePicturePile> active_recording =
+ FakePicturePile::CreateFilledPile(layer_size, layer_size);
scoped_refptr<FakePicturePileImpl> active_pile =
- FakePicturePileImpl::CreateFilledPile(layer_size, layer_size);
+ FakePicturePileImpl::CreateFromPile(active_recording.get(), nullptr);
SetupTrees(pending_pile, active_pile);
@@ -347,18 +350,22 @@ TEST_F(PictureLayerImplTest, TileGridAlignment) {
for (tile_iter = tiles.begin(); tile_iter < tiles.end(); tile_iter++) {
gfx::Point tile_center = (*tile_iter)->content_rect().CenterPoint();
gfx::Rect rect(tile_center.x(), tile_center.y(), 1, 1);
- active_pile->add_draw_rect(rect);
+ active_recording->add_draw_rect(rect);
rects.push_back(SkRect::MakeXYWH(rect.x(), rect.y(), 1, 1));
}
+
// Force re-raster with newly injected content
- active_pile->RemoveRecordingAt(0, 0);
- active_pile->AddRecordingAt(0, 0);
+ active_recording->RemoveRecordingAt(0, 0);
+ active_recording->AddRecordingAt(0, 0);
+
+ scoped_refptr<FakePicturePileImpl> updated_active_pile =
+ FakePicturePileImpl::CreateFromPile(active_recording.get(), nullptr);
std::vector<SkRect>::const_iterator rect_iter = rects.begin();
for (tile_iter = tiles.begin(); tile_iter < tiles.end(); tile_iter++) {
MockCanvas mock_canvas(1000, 1000);
- active_pile->PlaybackToSharedCanvas(&mock_canvas,
- (*tile_iter)->content_rect(), 1.0f);
+ updated_active_pile->PlaybackToSharedCanvas(
+ &mock_canvas, (*tile_iter)->content_rect(), 1.0f);
// This test verifies that when drawing the contents of a specific tile
// at content scale 1.0, the playback canvas never receives content from
@@ -516,7 +523,7 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
resourceless_software_draw);
active_layer_->draw_properties().visible_content_rect = viewport;
active_layer_->draw_properties().screen_space_transform = transform;
- active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ active_layer_->UpdateTiles(resourceless_software_draw);
gfx::Rect visible_rect_for_tile_priority =
active_layer_->visible_rect_for_tile_priority();
@@ -540,7 +547,7 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
viewport,
transform,
resourceless_software_draw);
- active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ active_layer_->UpdateTiles(resourceless_software_draw);
// Transform for tile priority is updated.
EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
@@ -560,7 +567,7 @@ TEST_F(PictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
viewport,
transform,
resourceless_software_draw);
- active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ active_layer_->UpdateTiles(resourceless_software_draw);
EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
active_layer_->screen_space_transform());
@@ -1616,7 +1623,7 @@ TEST_F(PictureLayerImplTest, DisallowTileDrawQuads) {
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_RESOURCELESS_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
ASSERT_EQ(1U, render_pass->quad_list.size());
@@ -1631,13 +1638,14 @@ TEST_F(PictureLayerImplTest, SolidColorLayerHasVisibleFullCoverage) {
gfx::Size layer_bounds(1500, 1500);
gfx::Rect visible_rect(250, 250, 1000, 1000);
+ scoped_ptr<FakePicturePile> empty_recording =
+ FakePicturePile::CreateEmptyPile(tile_size, layer_bounds);
+ empty_recording->SetIsSolidColor(true);
+
scoped_refptr<FakePicturePileImpl> pending_pile =
- FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
+ FakePicturePileImpl::CreateFromPile(empty_recording.get(), nullptr);
scoped_refptr<FakePicturePileImpl> active_pile =
- FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
-
- pending_pile->set_is_solid_color(true);
- active_pile->set_is_solid_color(true);
+ FakePicturePileImpl::CreateFromPile(empty_recording.get(), nullptr);
SetupTrees(pending_pile, active_pile);
@@ -1645,7 +1653,7 @@ TEST_F(PictureLayerImplTest, SolidColorLayerHasVisibleFullCoverage) {
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
Region remaining = visible_rect;
@@ -1663,13 +1671,11 @@ TEST_F(PictureLayerImplTest, TileScalesWithSolidColorPile) {
gfx::Size tile_size(host_impl_.settings().default_tile_size);
scoped_refptr<FakePicturePileImpl> pending_pile =
FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings(
- tile_size, layer_bounds);
+ tile_size, layer_bounds, false);
scoped_refptr<FakePicturePileImpl> active_pile =
FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings(
- tile_size, layer_bounds);
+ tile_size, layer_bounds, true);
- pending_pile->set_is_solid_color(false);
- active_pile->set_is_solid_color(true);
SetupTrees(pending_pile, active_pile);
// Solid color pile should not allow tilings at any scale.
EXPECT_FALSE(active_layer_->CanHaveTilings());
@@ -1707,7 +1713,7 @@ TEST_F(NoLowResPictureLayerImplTest, MarkRequiredOffscreenTiles) {
time_ticks += base::TimeDelta::FromMilliseconds(1);
host_impl_.SetCurrentBeginFrameArgs(
CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
- pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ pending_layer_->UpdateTiles(resourceless_software_draw);
int num_visible = 0;
int num_offscreen = 0;
@@ -1773,7 +1779,7 @@ TEST_F(NoLowResPictureLayerImplTest,
time_ticks += base::TimeDelta::FromMilliseconds(200);
host_impl_.SetCurrentBeginFrameArgs(
CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, time_ticks));
- pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ pending_layer_->UpdateTiles(resourceless_software_draw);
// Intersect the two rects. Any tile outside should not be required for
// activation.
@@ -1811,7 +1817,7 @@ TEST_F(NoLowResPictureLayerImplTest,
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
// All tiles in activation rect is ready to draw.
@@ -1843,7 +1849,7 @@ TEST_F(PictureLayerImplTest, HighResTileIsComplete) {
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
// All high res tiles drew, nothing was incomplete.
@@ -1870,7 +1876,7 @@ TEST_F(PictureLayerImplTest, HighResTileIsIncomplete) {
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
EXPECT_EQ(1u, render_pass->quad_list.size());
@@ -1900,7 +1906,7 @@ TEST_F(PictureLayerImplTest, HighResTileIsIncompleteLowResComplete) {
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
EXPECT_EQ(1u, render_pass->quad_list.size());
@@ -1937,7 +1943,7 @@ TEST_F(PictureLayerImplTest, LowResTileIsIncomplete) {
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
// The missing high res tile was replaced by a low res tile.
@@ -1995,7 +2001,7 @@ TEST_F(PictureLayerImplTest,
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
// All high res tiles drew, and the one ideal res tile drew.
@@ -2105,9 +2111,10 @@ TEST_F(PictureLayerImplTest, NothingRequiredIfActiveMissingTiles) {
// tiles. This is attempting to simulate scrolling past the end of recorded
// content on the active layer, where the recordings are so far away that
// no tiles are created.
+ bool is_solid_color = false;
scoped_refptr<FakePicturePileImpl> active_pile =
FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings(
- tile_size, layer_bounds);
+ tile_size, layer_bounds, is_solid_color);
SetupTreesWithFixedTileSize(pending_pile, active_pile, tile_size, Region());
@@ -2597,7 +2604,7 @@ TEST_F(DeferredInitPictureLayerImplTest, PreventUpdateTilesDuringLostContext) {
FakeOutputSurface* fake_output_surface =
static_cast<FakeOutputSurface*>(host_impl_.output_surface());
ASSERT_TRUE(fake_output_surface->InitializeAndSetContext3d(
- TestContextProvider::Create()));
+ TestContextProvider::Create(), TestContextProvider::Create()));
// These will crash PictureLayerImpl if this is not true.
ASSERT_TRUE(host_impl_.pending_tree()->needs_update_draw_properties());
@@ -2928,7 +2935,7 @@ TEST_F(PictureLayerImplTest, TilingSetRasterQueue) {
pending_layer_->draw_properties().visible_content_rect =
gfx::Rect(1100, 1100, 500, 500);
bool resourceless_software_draw = false;
- pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ pending_layer_->UpdateTiles(resourceless_software_draw);
unique_tiles.clear();
high_res_tile_count = 0u;
@@ -2959,7 +2966,7 @@ TEST_F(PictureLayerImplTest, TilingSetRasterQueue) {
pending_layer_->draw_properties().visible_content_rect =
gfx::Rect(0, 0, 500, 500);
- pending_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ pending_layer_->UpdateTiles(resourceless_software_draw);
std::vector<Tile*> high_res_tiles =
pending_layer_->HighResTiling()->AllTilesForTesting();
@@ -3030,10 +3037,13 @@ TEST_F(PictureLayerImplTest, TilingSetRasterQueueActiveTree) {
}
TEST_F(PictureLayerImplTest, TilingSetRasterQueueRequiredNoHighRes) {
+ scoped_ptr<FakePicturePile> empty_recording =
+ FakePicturePile::CreateEmptyPile(gfx::Size(256, 256),
+ gfx::Size(1024, 1024));
+ empty_recording->SetIsSolidColor(true);
+
scoped_refptr<FakePicturePileImpl> pending_pile =
- FakePicturePileImpl::CreateEmptyPile(gfx::Size(256, 256),
- gfx::Size(1024, 1024));
- pending_pile->set_is_solid_color(true);
+ FakePicturePileImpl::CreateFromPile(empty_recording.get(), nullptr);
SetupPendingTree(pending_pile);
EXPECT_FALSE(
@@ -3144,8 +3154,6 @@ TEST_F(PictureLayerImplTest, TilingSetEvictionQueue) {
if (tile->required_for_activation() ==
last_tile->required_for_activation() &&
- priority.priority_bin ==
- last_tile->priority(PENDING_TREE).priority_bin &&
std::abs(tile->contents_scale() - last_tile->contents_scale()) <
std::numeric_limits<float>::epsilon()) {
if (priority.distance_to_visible <=
@@ -3523,9 +3531,10 @@ TEST_F(NoLowResPictureLayerImplTest, NothingRequiredIfActiveMissingTiles) {
// tiles. This is attempting to simulate scrolling past the end of recorded
// content on the active layer, where the recordings are so far away that
// no tiles are created.
+ bool is_solid_color = false;
scoped_refptr<FakePicturePileImpl> active_pile =
FakePicturePileImpl::CreateEmptyPileThatThinksItHasRecordings(
- tile_size, layer_bounds);
+ tile_size, layer_bounds, is_solid_color);
SetupTreesWithFixedTileSize(pending_pile, active_pile, tile_size, Region());
@@ -3578,7 +3587,7 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
resourceless_software_draw);
active_layer_->draw_properties().visible_content_rect = viewport;
active_layer_->draw_properties().screen_space_transform = transform;
- active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ active_layer_->UpdateTiles(resourceless_software_draw);
gfx::Rect visible_rect_for_tile_priority =
active_layer_->visible_rect_for_tile_priority();
@@ -3602,7 +3611,7 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
viewport,
transform,
resourceless_software_draw);
- active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ active_layer_->UpdateTiles(resourceless_software_draw);
// Transform for tile priority is updated.
EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
@@ -3622,7 +3631,7 @@ TEST_F(NoLowResPictureLayerImplTest, InvalidViewportForPrioritizingTiles) {
viewport,
transform,
resourceless_software_draw);
- active_layer_->UpdateTiles(Occlusion(), resourceless_software_draw);
+ active_layer_->UpdateTiles(resourceless_software_draw);
EXPECT_TRANSFORMATION_MATRIX_EQ(transform,
active_layer_->screen_space_transform());
@@ -3803,7 +3812,7 @@ TEST_F(PictureLayerImplTest, SharedQuadStateContainsMaxTilingScale) {
SK_MScalar1 / max_contents_scale);
AppendQuadsData data;
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
// SharedQuadState should have be of size 1, as we are doing AppenQuad once.
EXPECT_EQ(1u, render_pass->shared_quad_state_list.size());
@@ -3869,7 +3878,7 @@ TEST_F(PictureLayerImplTestWithDelegatingRenderer,
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_HARDWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
// Even when OOM, quads should be produced, and should be different material
@@ -3971,8 +3980,7 @@ class OcclusionTrackingPictureLayerImplTest : public PictureLayerImplTest {
tile->is_occluded(twin_tree)) {
EXPECT_TRUE(tile->is_occluded(tree));
EXPECT_FALSE(tile->is_occluded(twin_tree));
- EXPECT_FALSE(
- tile->is_occluded_for_tree_priority(tree_priority));
+ EXPECT_FALSE(tile->is_occluded_combined());
} else if (priority.distance_to_visible !=
twin_priority.distance_to_visible) {
EXPECT_LT(priority_for_tree_priority.distance_to_visible,
@@ -4685,7 +4693,7 @@ void PictureLayerImplTest::TestQuadsForSolidColor(bool test_for_solid) {
scoped_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
active_layer_->WillDraw(DRAW_MODE_SOFTWARE, nullptr);
- active_layer_->AppendQuads(render_pass.get(), Occlusion(), &data);
+ active_layer_->AppendQuads(render_pass.get(), &data);
active_layer_->DidDraw(nullptr);
DrawQuad::Material expected = test_for_solid
@@ -4822,12 +4830,15 @@ TEST_F(PictureLayerImplTest, CloneMissingRecordings) {
scoped_refptr<FakePicturePileImpl> filled_pile =
FakePicturePileImpl::CreateFilledPile(tile_size, layer_bounds);
- scoped_refptr<FakePicturePileImpl> partial_pile =
- FakePicturePileImpl::CreateEmptyPile(tile_size, layer_bounds);
- for (int i = 1; i < partial_pile->tiling().num_tiles_x(); ++i) {
- for (int j = 1; j < partial_pile->tiling().num_tiles_y(); ++j)
- partial_pile->AddRecordingAt(i, j);
+
+ scoped_ptr<FakePicturePile> partial_recording =
+ FakePicturePile::CreateEmptyPile(tile_size, layer_bounds);
+ for (int i = 1; i < partial_recording->tiling().num_tiles_x(); ++i) {
+ for (int j = 1; j < partial_recording->tiling().num_tiles_y(); ++j)
+ partial_recording->AddRecordingAt(i, j);
}
+ scoped_refptr<FakePicturePileImpl> partial_pile =
+ FakePicturePileImpl::CreateFromPile(partial_recording.get(), nullptr);
SetupPendingTreeWithFixedTileSize(filled_pile, tile_size, Region());
ActivateTree();
« no previous file with comments | « cc/layers/picture_layer_impl.cc ('k') | cc/layers/render_surface_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698