summaryrefslogtreecommitdiffstats
path: root/cc/surfaces/surface_aggregator_unittest.cc
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2014-10-22 23:12:30 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-23 06:12:47 +0000
commitb4df821ac01c94d568bc4cbb466733ec96a6663e (patch)
treedf324f21251ab85241218b87a4ffb1e04aae9e0a /cc/surfaces/surface_aggregator_unittest.cc
parent0b018e8bddc3ed1bdcf4bea2ac9b4d8ee5d598ce (diff)
downloadchromium_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.cc16
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),