diff --git a/dawn.json b/dawn.json
index 4267240..b97fcc2 100644
--- a/dawn.json
+++ b/dawn.json
@@ -863,7 +863,7 @@
             {"name": "sample count", "type": "uint32_t"},
             {"name": "depth stencil state", "type": "depth stencil state descriptor", "annotation": "const*", "optional": true},
             {"name": "num color states", "type": "uint32_t"},
-            {"name": "color states", "type": "color state descriptor", "annotation": "const*", "length": "num color states"}
+            {"name": "color states", "type": "color state descriptor", "annotation": "const*const*", "length": "num color states"}
         ]
     },
     "sampler": {
diff --git a/examples/Animometer.cpp b/examples/Animometer.cpp
index 5d2e281..e992643 100644
--- a/examples/Animometer.cpp
+++ b/examples/Animometer.cpp
@@ -115,7 +115,7 @@
     descriptor.cFragmentStage.module = fsModule;
     descriptor.depthStencilState = &descriptor.cDepthStencilState;
     descriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-    descriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+    descriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
 
     pipeline = device.CreateRenderPipeline(&descriptor);
 
diff --git a/examples/CHelloTriangle.cpp b/examples/CHelloTriangle.cpp
index 5dd38b7..302db61 100644
--- a/examples/CHelloTriangle.cpp
+++ b/examples/CHelloTriangle.cpp
@@ -72,8 +72,6 @@
 
         descriptor.sampleCount = 1;
 
-        descriptor.numColorStates = 1;
-
         dawnBlendDescriptor blendDescriptor;
         blendDescriptor.operation = DAWN_BLEND_OPERATION_ADD;
         blendDescriptor.srcFactor = DAWN_BLEND_FACTOR_ONE;
@@ -84,7 +82,10 @@
         colorStateDescriptor.alphaBlend = blendDescriptor;
         colorStateDescriptor.colorBlend = blendDescriptor;
         colorStateDescriptor.colorWriteMask = DAWN_COLOR_WRITE_MASK_ALL;
-        descriptor.colorStates = &colorStateDescriptor;
+
+        descriptor.numColorStates = 1;
+        dawnColorStateDescriptor* colorStatesPtr[] = {&colorStateDescriptor};
+        descriptor.colorStates = colorStatesPtr;
 
         dawnPipelineLayoutDescriptor pl;
         pl.nextInChain = nullptr;
diff --git a/examples/ComputeBoids.cpp b/examples/ComputeBoids.cpp
index 8e2dd0c..d6d0e78 100644
--- a/examples/ComputeBoids.cpp
+++ b/examples/ComputeBoids.cpp
@@ -158,7 +158,7 @@
     descriptor.inputState = inputState;
     descriptor.depthStencilState = &descriptor.cDepthStencilState;
     descriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-    descriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+    descriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
 
     renderPipeline = device.CreateRenderPipeline(&descriptor);
 }
diff --git a/examples/CppHelloTriangle.cpp b/examples/CppHelloTriangle.cpp
index 8f837d1..e4f4bc1 100644
--- a/examples/CppHelloTriangle.cpp
+++ b/examples/CppHelloTriangle.cpp
@@ -142,7 +142,7 @@
     descriptor.inputState = inputState;
     descriptor.depthStencilState = &descriptor.cDepthStencilState;
     descriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-    descriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+    descriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
 
     pipeline = device.CreateRenderPipeline(&descriptor);
 
diff --git a/examples/CubeReflection.cpp b/examples/CubeReflection.cpp
index 833c40b..728fbf0 100644
--- a/examples/CubeReflection.cpp
+++ b/examples/CubeReflection.cpp
@@ -217,7 +217,7 @@
     descriptor.inputState = inputState;
     descriptor.depthStencilState = &descriptor.cDepthStencilState;
     descriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-    descriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+    descriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
     descriptor.cDepthStencilState.depthWriteEnabled = true;
     descriptor.cDepthStencilState.depthCompare = dawn::CompareFunction::Less;
 
@@ -230,7 +230,7 @@
     pDescriptor.inputState = inputState;
     pDescriptor.depthStencilState = &pDescriptor.cDepthStencilState;
     pDescriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-    pDescriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+    pDescriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
     pDescriptor.cDepthStencilState.stencilFront.passOp = dawn::StencilOperation::Replace;
     pDescriptor.cDepthStencilState.stencilBack.passOp = dawn::StencilOperation::Replace;
     pDescriptor.cDepthStencilState.depthCompare = dawn::CompareFunction::Less;
@@ -244,7 +244,7 @@
     rfDescriptor.inputState = inputState;
     rfDescriptor.depthStencilState = &rfDescriptor.cDepthStencilState;
     rfDescriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-    rfDescriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+    rfDescriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
     rfDescriptor.cDepthStencilState.stencilFront.compare = dawn::CompareFunction::Equal;
     rfDescriptor.cDepthStencilState.stencilBack.compare = dawn::CompareFunction::Equal;
     rfDescriptor.cDepthStencilState.stencilFront.passOp = dawn::StencilOperation::Replace;
diff --git a/examples/glTFViewer/glTFViewer.cpp b/examples/glTFViewer/glTFViewer.cpp
index d0ec863..127c324 100644
--- a/examples/glTFViewer/glTFViewer.cpp
+++ b/examples/glTFViewer/glTFViewer.cpp
@@ -321,7 +321,7 @@
         descriptor.indexFormat = dawn::IndexFormat::Uint16;
         descriptor.depthStencilState = &descriptor.cDepthStencilState;
         descriptor.cDepthStencilState.format = dawn::TextureFormat::D32FloatS8Uint;
-        descriptor.cColorStates[0].format = GetPreferredSwapChainTextureFormat();
+        descriptor.cColorStates[0]->format = GetPreferredSwapChainTextureFormat();
         descriptor.cDepthStencilState.depthWriteEnabled = true;
         descriptor.cDepthStencilState.depthCompare = dawn::CompareFunction::Less;
 
diff --git a/src/dawn_native/RenderPipeline.cpp b/src/dawn_native/RenderPipeline.cpp
index ac544a6..f954159 100644
--- a/src/dawn_native/RenderPipeline.cpp
+++ b/src/dawn_native/RenderPipeline.cpp
@@ -131,7 +131,7 @@
         }
 
         for (uint32_t i = 0; i < descriptor->numColorStates; ++i) {
-            DAWN_TRY(ValidateColorStateDescriptor(&descriptor->colorStates[i]));
+            DAWN_TRY(ValidateColorStateDescriptor(descriptor->colorStates[i]));
         }
 
         if (descriptor->depthStencilState) {
@@ -197,7 +197,7 @@
 
         for (uint32_t i = 0; i < descriptor->numColorStates; ++i) {
             mColorAttachmentsSet.set(i);
-            mColorStates[i] = descriptor->colorStates[i];
+            mColorStates[i] = *descriptor->colorStates[i];
         }
 
         // TODO(cwallez@chromium.org): Check against the shader module that the correct color
diff --git a/src/tests/end2end/BindGroupTests.cpp b/src/tests/end2end/BindGroupTests.cpp
index b0a60ad..cc5e78c 100644
--- a/src/tests/end2end/BindGroupTests.cpp
+++ b/src/tests/end2end/BindGroupTests.cpp
@@ -130,7 +130,7 @@
     textureDescriptor.layout = pipelineLayout;
     textureDescriptor.cVertexStage.module = vsModule;
     textureDescriptor.cFragmentStage.module = fsModule;
-    textureDescriptor.cColorStates[0].format = renderPass.colorFormat;
+    textureDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&textureDescriptor);
 
@@ -215,7 +215,7 @@
     pipelineDescriptor.layout = pipelineLayout;
     pipelineDescriptor.cVertexStage.module = vsModule;
     pipelineDescriptor.cFragmentStage.module = fsModule;
-    pipelineDescriptor.cColorStates[0].format = renderPass.colorFormat;
+    pipelineDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&pipelineDescriptor);
 
@@ -337,7 +337,7 @@
     textureDescriptor.layout = pipelineLayout;
     textureDescriptor.cVertexStage.module = vsModule;
     textureDescriptor.cFragmentStage.module = fsModule;
-    textureDescriptor.cColorStates[0].format = renderPass.colorFormat;
+    textureDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&textureDescriptor);
 
@@ -431,7 +431,7 @@
     pipelineDescriptor.layout = pipelineLayout;
     pipelineDescriptor.cVertexStage.module = vsModule;
     pipelineDescriptor.cFragmentStage.module = fsModule;
-    pipelineDescriptor.cColorStates[0].format = renderPass.colorFormat;
+    pipelineDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&pipelineDescriptor);
     dawn::CommandEncoder encoder = device.CreateCommandEncoder();
diff --git a/src/tests/end2end/ColorStateTests.cpp b/src/tests/end2end/ColorStateTests.cpp
index ea099f4..33a7274 100644
--- a/src/tests/end2end/ColorStateTests.cpp
+++ b/src/tests/end2end/ColorStateTests.cpp
@@ -54,7 +54,7 @@
 
     // Set up basePipeline and testPipeline. testPipeline has the given blend state on the first
     // attachment. basePipeline has no blending
-    void SetupSingleSourcePipelines(const dawn::ColorStateDescriptor& colorStateDescriptor) {
+    void SetupSingleSourcePipelines(dawn::ColorStateDescriptor colorStateDescriptor) {
         dawn::ShaderModule fsModule =
             utils::CreateShaderModule(device, dawn::ShaderStage::Fragment, R"(
                 #version 450
@@ -73,7 +73,7 @@
         baseDescriptor.layout = pipelineLayout;
         baseDescriptor.cVertexStage.module = vsModule;
         baseDescriptor.cFragmentStage.module = fsModule;
-        baseDescriptor.cColorStates[0].format = renderPass.colorFormat;
+        baseDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
         basePipeline = device.CreateRenderPipeline(&baseDescriptor);
 
@@ -81,8 +81,8 @@
         testDescriptor.layout = pipelineLayout;
         testDescriptor.cVertexStage.module = vsModule;
         testDescriptor.cFragmentStage.module = fsModule;
-        testDescriptor.cColorStates[0] = colorStateDescriptor;
-        testDescriptor.cColorStates[0].format = renderPass.colorFormat;
+        testDescriptor.cColorStates[0] = &colorStateDescriptor;
+        testDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
         testPipeline = device.CreateRenderPipeline(&testDescriptor);
     }
@@ -834,14 +834,14 @@
     blend3.srcFactor = dawn::BlendFactor::One;
     blend3.dstFactor = dawn::BlendFactor::One;
 
-    testDescriptor.cColorStates[0].colorBlend = blend1;
-    testDescriptor.cColorStates[0].alphaBlend = blend1;
+    testDescriptor.cColorStates[0]->colorBlend = blend1;
+    testDescriptor.cColorStates[0]->alphaBlend = blend1;
 
-    testDescriptor.cColorStates[1].colorBlend = blend2;
-    testDescriptor.cColorStates[1].alphaBlend = blend2;
+    testDescriptor.cColorStates[1]->colorBlend = blend2;
+    testDescriptor.cColorStates[1]->alphaBlend = blend2;
 
-    testDescriptor.cColorStates[3].colorBlend = blend3;
-    testDescriptor.cColorStates[3].alphaBlend = blend3;
+    testDescriptor.cColorStates[3]->colorBlend = blend3;
+    testDescriptor.cColorStates[3]->alphaBlend = blend3;
 
     testPipeline = device.CreateRenderPipeline(&testDescriptor);
 
@@ -909,7 +909,7 @@
     baseDescriptor.layout = pipelineLayout;
     baseDescriptor.cVertexStage.module = vsModule;
     baseDescriptor.cFragmentStage.module = fsModule;
-    baseDescriptor.cColorStates[0].format = renderPass.colorFormat;
+    baseDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     basePipeline = device.CreateRenderPipeline(&baseDescriptor);
 
@@ -917,14 +917,14 @@
     testDescriptor.layout = pipelineLayout;
     testDescriptor.cVertexStage.module = vsModule;
     testDescriptor.cFragmentStage.module = fsModule;
-    testDescriptor.cColorStates[0].format = renderPass.colorFormat;
+    testDescriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     dawn::BlendDescriptor blend;
     blend.operation = dawn::BlendOperation::Add;
     blend.srcFactor = dawn::BlendFactor::BlendColor;
     blend.dstFactor = dawn::BlendFactor::One;
-    testDescriptor.cColorStates[0].colorBlend = blend;
-    testDescriptor.cColorStates[0].alphaBlend = blend;
+    testDescriptor.cColorStates[0]->colorBlend = blend;
+    testDescriptor.cColorStates[0]->alphaBlend = blend;
 
     testPipeline = device.CreateRenderPipeline(&testDescriptor);
     constexpr dawn::Color kWhite{1.0f, 1.0f, 1.0f, 1.0f};
diff --git a/src/tests/end2end/DrawIndexedTests.cpp b/src/tests/end2end/DrawIndexedTests.cpp
index 3148516..9324226 100644
--- a/src/tests/end2end/DrawIndexedTests.cpp
+++ b/src/tests/end2end/DrawIndexedTests.cpp
@@ -64,7 +64,7 @@
             descriptor.primitiveTopology = dawn::PrimitiveTopology::TriangleStrip;
             descriptor.indexFormat = dawn::IndexFormat::Uint32;
             descriptor.inputState = inputState;
-            descriptor.cColorStates[0].format = renderPass.colorFormat;
+            descriptor.cColorStates[0]->format = renderPass.colorFormat;
 
             pipeline = device.CreateRenderPipeline(&descriptor);
 
diff --git a/src/tests/end2end/DrawTests.cpp b/src/tests/end2end/DrawTests.cpp
index b7eed7a..48a8311 100644
--- a/src/tests/end2end/DrawTests.cpp
+++ b/src/tests/end2end/DrawTests.cpp
@@ -62,7 +62,7 @@
         descriptor.primitiveTopology = dawn::PrimitiveTopology::TriangleStrip;
         descriptor.indexFormat = dawn::IndexFormat::Uint32;
         descriptor.inputState = inputState;
-        descriptor.cColorStates[0].format = renderPass.colorFormat;
+        descriptor.cColorStates[0]->format = renderPass.colorFormat;
 
         pipeline = device.CreateRenderPipeline(&descriptor);
 
diff --git a/src/tests/end2end/IndexFormatTests.cpp b/src/tests/end2end/IndexFormatTests.cpp
index b940179..6b26a1e 100644
--- a/src/tests/end2end/IndexFormatTests.cpp
+++ b/src/tests/end2end/IndexFormatTests.cpp
@@ -69,7 +69,7 @@
             descriptor.primitiveTopology = dawn::PrimitiveTopology::TriangleStrip;
             descriptor.indexFormat = format;
             descriptor.inputState = inputState;
-            descriptor.cColorStates[0].format = renderPass.colorFormat;
+            descriptor.cColorStates[0]->format = renderPass.colorFormat;
 
             return device.CreateRenderPipeline(&descriptor);
         }
diff --git a/src/tests/end2end/InputStateTests.cpp b/src/tests/end2end/InputStateTests.cpp
index 9e365c3..d2367a4 100644
--- a/src/tests/end2end/InputStateTests.cpp
+++ b/src/tests/end2end/InputStateTests.cpp
@@ -125,7 +125,7 @@
             descriptor.cVertexStage.module = vsModule;
             descriptor.cFragmentStage.module = fsModule;
             descriptor.inputState = inputState;
-            descriptor.cColorStates[0].format = renderPass.colorFormat;
+            descriptor.cColorStates[0]->format = renderPass.colorFormat;
 
             return device.CreateRenderPipeline(&descriptor);
         }
diff --git a/src/tests/end2end/PrimitiveTopologyTests.cpp b/src/tests/end2end/PrimitiveTopologyTests.cpp
index 791c8b3..bff5644 100644
--- a/src/tests/end2end/PrimitiveTopologyTests.cpp
+++ b/src/tests/end2end/PrimitiveTopologyTests.cpp
@@ -203,7 +203,7 @@
             descriptor.cFragmentStage.module = fsModule;
             descriptor.primitiveTopology = primitiveTopology;
             descriptor.inputState = inputState;
-            descriptor.cColorStates[0].format = renderPass.colorFormat;
+            descriptor.cColorStates[0]->format = renderPass.colorFormat;
 
             dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&descriptor);
 
diff --git a/src/tests/end2end/PushConstantTests.cpp b/src/tests/end2end/PushConstantTests.cpp
index e8cf5eb..a9e4842 100644
--- a/src/tests/end2end/PushConstantTests.cpp
+++ b/src/tests/end2end/PushConstantTests.cpp
@@ -195,8 +195,8 @@
             blend.operation = dawn::BlendOperation::Add;
             blend.srcFactor = dawn::BlendFactor::One;
             blend.dstFactor = dawn::BlendFactor::One;
-            descriptor.cColorStates[0].alphaBlend = blend;
-            descriptor.cColorStates[0].colorBlend = blend;
+            descriptor.cColorStates[0]->alphaBlend = blend;
+            descriptor.cColorStates[0]->colorBlend = blend;
 
             return device.CreateRenderPipeline(&descriptor);
         }
diff --git a/src/tests/end2end/RenderPassTests.cpp b/src/tests/end2end/RenderPassTests.cpp
index 94c4abb..51c0b0f 100644
--- a/src/tests/end2end/RenderPassTests.cpp
+++ b/src/tests/end2end/RenderPassTests.cpp
@@ -48,7 +48,7 @@
         descriptor.cFragmentStage.module = fsModule;
         descriptor.primitiveTopology = dawn::PrimitiveTopology::TriangleStrip;
         descriptor.indexFormat = dawn::IndexFormat::Uint32;
-        descriptor.cColorStates[0].format = kFormat;
+        descriptor.cColorStates[0]->format = kFormat;
 
         pipeline = device.CreateRenderPipeline(&descriptor);
     }
diff --git a/src/tests/end2end/SamplerTests.cpp b/src/tests/end2end/SamplerTests.cpp
index 9f2f567..0bb6fe2 100644
--- a/src/tests/end2end/SamplerTests.cpp
+++ b/src/tests/end2end/SamplerTests.cpp
@@ -77,7 +77,7 @@
         pipelineDescriptor.layout = pipelineLayout;
         pipelineDescriptor.cVertexStage.module = vsModule;
         pipelineDescriptor.cFragmentStage.module = fsModule;
-        pipelineDescriptor.cColorStates[0].format = mRenderPass.colorFormat;
+        pipelineDescriptor.cColorStates[0]->format = mRenderPass.colorFormat;
 
         mPipeline = device.CreateRenderPipeline(&pipelineDescriptor);
 
diff --git a/src/tests/end2end/ScissorTests.cpp b/src/tests/end2end/ScissorTests.cpp
index 95c61ad..65f80ed 100644
--- a/src/tests/end2end/ScissorTests.cpp
+++ b/src/tests/end2end/ScissorTests.cpp
@@ -40,7 +40,7 @@
         utils::ComboRenderPipelineDescriptor descriptor(device);
         descriptor.cVertexStage.module = vsModule;
         descriptor.cFragmentStage.module = fsModule;
-        descriptor.cColorStates[0].format = format;
+        descriptor.cColorStates[0]->format = format;
 
         return device.CreateRenderPipeline(&descriptor);
     }
diff --git a/src/tests/end2end/TextureViewTests.cpp b/src/tests/end2end/TextureViewTests.cpp
index 5c00f11..2fc8d78 100644
--- a/src/tests/end2end/TextureViewTests.cpp
+++ b/src/tests/end2end/TextureViewTests.cpp
@@ -172,7 +172,7 @@
         textureDescriptor.cVertexStage.module = mVSModule;
         textureDescriptor.cFragmentStage.module = fsModule;
         textureDescriptor.layout = mPipelineLayout;
-        textureDescriptor.cColorStates[0].format = mRenderPass.colorFormat;
+        textureDescriptor.cColorStates[0]->format = mRenderPass.colorFormat;
 
         dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&textureDescriptor);
 
@@ -516,7 +516,7 @@
         utils::ComboRenderPipelineDescriptor pipelineDescriptor(device);
         pipelineDescriptor.cVertexStage.module = vsModule;
         pipelineDescriptor.cFragmentStage.module = oneColorFsModule;
-        pipelineDescriptor.cColorStates[0].format = kDefaultFormat;
+        pipelineDescriptor.cColorStates[0]->format = kDefaultFormat;
 
         dawn::RenderPipeline oneColorPipeline = device.CreateRenderPipeline(&pipelineDescriptor);
 
diff --git a/src/tests/end2end/ViewportOrientationTests.cpp b/src/tests/end2end/ViewportOrientationTests.cpp
index 074997eb..ee49058 100644
--- a/src/tests/end2end/ViewportOrientationTests.cpp
+++ b/src/tests/end2end/ViewportOrientationTests.cpp
@@ -40,7 +40,7 @@
     descriptor.cVertexStage.module = vsModule;
     descriptor.cFragmentStage.module = fsModule;
     descriptor.primitiveTopology = dawn::PrimitiveTopology::PointList;
-    descriptor.cColorStates[0].format = renderPass.colorFormat;
+    descriptor.cColorStates[0]->format = renderPass.colorFormat;
 
     dawn::RenderPipeline pipeline = device.CreateRenderPipeline(&descriptor);
 
diff --git a/src/tests/unittests/validation/InputStateValidationTests.cpp b/src/tests/unittests/validation/InputStateValidationTests.cpp
index d5d1d70..724a061 100644
--- a/src/tests/unittests/validation/InputStateValidationTests.cpp
+++ b/src/tests/unittests/validation/InputStateValidationTests.cpp
@@ -39,7 +39,7 @@
             descriptor.cVertexStage.module = vsModule;
             descriptor.cFragmentStage.module = fsModule;
             descriptor.inputState = inputState;
-            descriptor.cColorStates[0].format = dawn::TextureFormat::R8G8B8A8Unorm;
+            descriptor.cColorStates[0]->format = dawn::TextureFormat::R8G8B8A8Unorm;
 
             if (!success) {
                 ASSERT_DEVICE_ERROR(device.CreateRenderPipeline(&descriptor));
diff --git a/src/tests/unittests/wire/WireArgumentTests.cpp b/src/tests/unittests/wire/WireArgumentTests.cpp
index 4108df0..d1fdbf0 100644
--- a/src/tests/unittests/wire/WireArgumentTests.cpp
+++ b/src/tests/unittests/wire/WireArgumentTests.cpp
@@ -154,7 +154,8 @@
     pipelineDescriptor.fragmentStage = &fragmentStage;
 
     pipelineDescriptor.numColorStates = 1;
-    pipelineDescriptor.colorStates = &colorStateDescriptor;
+    dawnColorStateDescriptor* colorStatesPtr[] = {&colorStateDescriptor};
+    pipelineDescriptor.colorStates = colorStatesPtr;
 
     pipelineDescriptor.sampleCount = 1;
     pipelineDescriptor.layout = layout;
diff --git a/src/tests/unittests/wire/WireOptionalTests.cpp b/src/tests/unittests/wire/WireOptionalTests.cpp
index 71cf5de..73803ce 100644
--- a/src/tests/unittests/wire/WireOptionalTests.cpp
+++ b/src/tests/unittests/wire/WireOptionalTests.cpp
@@ -139,7 +139,8 @@
     pipelineDescriptor.fragmentStage = &fragmentStage;
 
     pipelineDescriptor.numColorStates = 1;
-    pipelineDescriptor.colorStates = &colorStateDescriptor;
+    dawnColorStateDescriptor* colorStatesPtr[] = {&colorStateDescriptor};
+    pipelineDescriptor.colorStates = colorStatesPtr;
 
     pipelineDescriptor.sampleCount = 1;
     pipelineDescriptor.layout = layout;
diff --git a/src/utils/ComboRenderPipelineDescriptor.cpp b/src/utils/ComboRenderPipelineDescriptor.cpp
index 9aff3f2..165d45b 100644
--- a/src/utils/ComboRenderPipelineDescriptor.cpp
+++ b/src/utils/ComboRenderPipelineDescriptor.cpp
@@ -52,7 +52,8 @@
             colorStateDescriptor.colorBlend = blend;
             colorStateDescriptor.colorWriteMask = dawn::ColorWriteMask::All;
             for (uint32_t i = 0; i < kMaxColorAttachments; ++i) {
-                cColorStates[i] = colorStateDescriptor;
+                mColorStates[i] = colorStateDescriptor;
+                cColorStates[i] = &mColorStates[i];
             }
         }
 
diff --git a/src/utils/ComboRenderPipelineDescriptor.h b/src/utils/ComboRenderPipelineDescriptor.h
index 2318b4d..d5e50e9 100644
--- a/src/utils/ComboRenderPipelineDescriptor.h
+++ b/src/utils/ComboRenderPipelineDescriptor.h
@@ -30,10 +30,11 @@
         dawn::PipelineStageDescriptor cVertexStage;
         dawn::PipelineStageDescriptor cFragmentStage;
 
-        std::array<dawn::ColorStateDescriptor, kMaxColorAttachments> cColorStates;
+        std::array<dawn::ColorStateDescriptor*, kMaxColorAttachments> cColorStates;
         dawn::DepthStencilStateDescriptor cDepthStencilState;
 
       private:
+        dawn::ColorStateDescriptor mColorStates[kMaxColorAttachments];
     };
 
 }  // namespace utils
