| Index: cc/trees/layer_tree_host_impl_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
|
| index c574a5050a7a36271d44dc0797da46985f6e5c8a..f716cd9feb51e3b9e0453a1cfcfc452828317554 100644
|
| --- a/cc/trees/layer_tree_host_impl_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_impl_unittest.cc
|
| @@ -8664,6 +8664,11 @@ TEST_F(LayerTreeHostImplCountingLostSurfaces, TwiceLostSurface) {
|
| EXPECT_LE(1, num_lost_surfaces_);
|
| }
|
|
|
| +size_t CountRenderPassesWithId(const RenderPassList& list, RenderPassId id) {
|
| + return std::count_if(list.begin(), list.end(),
|
| + [id](const RenderPass* p) { return p->id == id; });
|
| +}
|
| +
|
| TEST_F(LayerTreeHostImplTest, RemoveUnreferencedRenderPass) {
|
| LayerTreeHostImpl::FrameData frame;
|
| frame.render_passes.push_back(RenderPass::Create());
|
| @@ -8677,10 +8682,6 @@ TEST_F(LayerTreeHostImplTest, RemoveUnreferencedRenderPass) {
|
| pass2->SetNew(RenderPassId(2, 0), gfx::Rect(), gfx::Rect(), gfx::Transform());
|
| pass3->SetNew(RenderPassId(3, 0), gfx::Rect(), gfx::Rect(), gfx::Transform());
|
|
|
| - frame.render_passes_by_id[pass1->id] = pass1;
|
| - frame.render_passes_by_id[pass2->id] = pass2;
|
| - frame.render_passes_by_id[pass3->id] = pass3;
|
| -
|
| // Add a quad to each pass so they aren't empty.
|
| SolidColorDrawQuad* color_quad;
|
| color_quad = pass1->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
|
| @@ -8698,11 +8699,13 @@ TEST_F(LayerTreeHostImplTest, RemoveUnreferencedRenderPass) {
|
|
|
| // But pass2 is not referenced by pass1. So pass2 and pass3 should be culled.
|
| FakeLayerTreeHostImpl::RemoveRenderPasses(&frame);
|
| - EXPECT_EQ(1u, frame.render_passes_by_id.size());
|
| - EXPECT_TRUE(frame.render_passes_by_id[RenderPassId(1, 0)]);
|
| - EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(2, 0)]);
|
| - EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(3, 0)]);
|
| EXPECT_EQ(1u, frame.render_passes.size());
|
| + EXPECT_EQ(1u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(1, 0)));
|
| + EXPECT_EQ(0u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(2, 0)));
|
| + EXPECT_EQ(0u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(3, 0)));
|
| EXPECT_EQ(RenderPassId(1, 0), frame.render_passes[0]->id);
|
| }
|
|
|
| @@ -8719,10 +8722,6 @@ TEST_F(LayerTreeHostImplTest, RemoveEmptyRenderPass) {
|
| pass2->SetNew(RenderPassId(2, 0), gfx::Rect(), gfx::Rect(), gfx::Transform());
|
| pass3->SetNew(RenderPassId(3, 0), gfx::Rect(), gfx::Rect(), gfx::Transform());
|
|
|
| - frame.render_passes_by_id[pass1->id] = pass1;
|
| - frame.render_passes_by_id[pass2->id] = pass2;
|
| - frame.render_passes_by_id[pass3->id] = pass3;
|
| -
|
| // pass1 is not empty, but pass2 and pass3 are.
|
| SolidColorDrawQuad* color_quad;
|
| color_quad = pass1->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
|
| @@ -8742,11 +8741,13 @@ TEST_F(LayerTreeHostImplTest, RemoveEmptyRenderPass) {
|
| // Since pass3 is empty it should be removed. Then pass2 is empty too, and
|
| // should be removed.
|
| FakeLayerTreeHostImpl::RemoveRenderPasses(&frame);
|
| - EXPECT_EQ(1u, frame.render_passes_by_id.size());
|
| - EXPECT_TRUE(frame.render_passes_by_id[RenderPassId(1, 0)]);
|
| - EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(2, 0)]);
|
| - EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(3, 0)]);
|
| EXPECT_EQ(1u, frame.render_passes.size());
|
| + EXPECT_EQ(1u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(1, 0)));
|
| + EXPECT_EQ(0u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(2, 0)));
|
| + EXPECT_EQ(0u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(3, 0)));
|
| EXPECT_EQ(RenderPassId(1, 0), frame.render_passes[0]->id);
|
| // The RenderPassDrawQuad should be removed from pass1.
|
| EXPECT_EQ(1u, pass1->quad_list.size());
|
| @@ -8766,10 +8767,6 @@ TEST_F(LayerTreeHostImplTest, DoNotRemoveEmptyRootRenderPass) {
|
| pass2->SetNew(RenderPassId(2, 0), gfx::Rect(), gfx::Rect(), gfx::Transform());
|
| pass3->SetNew(RenderPassId(3, 0), gfx::Rect(), gfx::Rect(), gfx::Transform());
|
|
|
| - frame.render_passes_by_id[pass1->id] = pass1;
|
| - frame.render_passes_by_id[pass2->id] = pass2;
|
| - frame.render_passes_by_id[pass3->id] = pass3;
|
| -
|
| // pass3 is referenced by pass2.
|
| RenderPassDrawQuad* rpdq =
|
| pass2->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
|
| @@ -8785,11 +8782,13 @@ TEST_F(LayerTreeHostImplTest, DoNotRemoveEmptyRootRenderPass) {
|
| // should be removed. Then pass1 is empty too, but it's the root so it should
|
| // not be removed.
|
| FakeLayerTreeHostImpl::RemoveRenderPasses(&frame);
|
| - EXPECT_EQ(1u, frame.render_passes_by_id.size());
|
| - EXPECT_TRUE(frame.render_passes_by_id[RenderPassId(1, 0)]);
|
| - EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(2, 0)]);
|
| - EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(3, 0)]);
|
| EXPECT_EQ(1u, frame.render_passes.size());
|
| + EXPECT_EQ(1u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(1, 0)));
|
| + EXPECT_EQ(0u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(2, 0)));
|
| + EXPECT_EQ(0u,
|
| + CountRenderPassesWithId(frame.render_passes, RenderPassId(3, 0)));
|
| EXPECT_EQ(RenderPassId(1, 0), frame.render_passes[0]->id);
|
| // The RenderPassDrawQuad should be removed from pass1.
|
| EXPECT_EQ(0u, pass1->quad_list.size());
|
|
|