diff options
author | jbauman <jbauman@chromium.org> | 2014-10-22 23:12:30 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-23 06:12:47 +0000 |
commit | b4df821ac01c94d568bc4cbb466733ec96a6663e (patch) | |
tree | df324f21251ab85241218b87a4ffb1e04aae9e0a /cc/surfaces/surface_aggregator_unittest.cc | |
parent | 0b018e8bddc3ed1bdcf4bea2ac9b4d8ee5d598ce (diff) | |
download | chromium_src-b4df821ac01c94d568bc4cbb466733ec96a6663e.zip chromium_src-b4df821ac01c94d568bc4cbb466733ec96a6663e.tar.gz chromium_src-b4df821ac01c94d568bc4cbb466733ec96a6663e.tar.bz2 |
Use global index to remap RenderPassIds in SurfaceAggregator.
SurfaceIds are 64-bits, while RenderPassId.layer_id is 32-bits, so we can't just use the SurfaceId as the layer_id. Instead just keep a global counter for allocating the RenderPassIds.
Review URL: https://codereview.chromium.org/675603002
Cr-Commit-Position: refs/heads/master@{#300846}
Diffstat (limited to 'cc/surfaces/surface_aggregator_unittest.cc')
-rw-r--r-- | cc/surfaces/surface_aggregator_unittest.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/cc/surfaces/surface_aggregator_unittest.cc b/cc/surfaces/surface_aggregator_unittest.cc index cea06ea..4771c82 100644 --- a/cc/surfaces/surface_aggregator_unittest.cc +++ b/cc/surfaces/surface_aggregator_unittest.cc @@ -67,7 +67,7 @@ TEST_F(SurfaceAggregatorTest, ValidSurfaceNoFrame) { class SurfaceAggregatorValidSurfaceTest : public SurfaceAggregatorTest { public: - SurfaceAggregatorValidSurfaceTest() : allocator_(1u) {} + SurfaceAggregatorValidSurfaceTest() : allocator_(1u), child_allocator_(2u) {} virtual void SetUp() { SurfaceAggregatorTest::SetUp(); @@ -96,6 +96,12 @@ class SurfaceAggregatorValidSurfaceTest : public SurfaceAggregatorTest { TestPassesMatchExpectations( expected_passes, expected_pass_count, &frame_data->render_pass_list); + // Ensure no duplicate pass ids output. + std::set<RenderPassId> used_passes; + for (auto* pass : frame_data->render_pass_list) { + EXPECT_TRUE(used_passes.insert(pass->id).second); + } + EXPECT_EQ(expected_surface_count, aggregator_.previous_contained_surfaces().size()); for (size_t i = 0; i < expected_surface_count; i++) { @@ -133,6 +139,7 @@ class SurfaceAggregatorValidSurfaceTest : public SurfaceAggregatorTest { protected: SurfaceId root_surface_id_; SurfaceIdAllocator allocator_; + SurfaceIdAllocator child_allocator_; }; // Tests that a very simple frame containing only two solid color quads makes it @@ -153,8 +160,9 @@ TEST_F(SurfaceAggregatorValidSurfaceTest, MultiPassSimpleFrame) { test::Quad::SolidColorQuad(SK_ColorLTGRAY)}, {test::Quad::SolidColorQuad(SK_ColorGRAY), test::Quad::SolidColorQuad(SK_ColorDKGRAY)}}; - test::Pass passes[] = {test::Pass(quads[0], arraysize(quads[0])), - test::Pass(quads[1], arraysize(quads[1]))}; + test::Pass passes[] = { + test::Pass(quads[0], arraysize(quads[0]), RenderPassId(1, 1)), + test::Pass(quads[1], arraysize(quads[1]), RenderPassId(1, 2))}; SubmitFrame(passes, arraysize(passes), root_surface_id_); @@ -341,7 +349,7 @@ TEST_F(SurfaceAggregatorValidSurfaceTest, RootCopyRequest) { // This tests referencing a surface that has multiple render passes. TEST_F(SurfaceAggregatorValidSurfaceTest, MultiPassSurfaceReference) { - SurfaceId embedded_surface_id = allocator_.GenerateId(); + SurfaceId embedded_surface_id = child_allocator_.GenerateId(); factory_.Create(embedded_surface_id, SurfaceSize()); RenderPassId pass_ids[] = {RenderPassId(1, 1), RenderPassId(1, 2), |