Some small optimizations and style issues for input state

Bug=dawn:107

Change-Id: I8ecfb39a2bff11b678bd8548ec0725ba061ef333
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/6081
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/dawn_native/d3d12/RenderPipelineD3D12.cpp b/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
index 046b7ae..0b0aa06 100644
--- a/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
+++ b/src/dawn_native/d3d12/RenderPipelineD3D12.cpp
@@ -396,13 +396,8 @@
 
     D3D12_INPUT_LAYOUT_DESC RenderPipeline::ComputeInputLayout(
         std::array<D3D12_INPUT_ELEMENT_DESC, kMaxVertexAttributes>* inputElementDescriptors) {
-        const auto& attributesSetMask = GetAttributesSetMask();
         unsigned int count = 0;
-        for (auto i : IterateBitSet(attributesSetMask)) {
-            if (!attributesSetMask[i]) {
-                continue;
-            }
-
+        for (auto i : IterateBitSet(GetAttributesSetMask())) {
             D3D12_INPUT_ELEMENT_DESC& inputElementDescriptor = (*inputElementDescriptors)[count++];
 
             const VertexAttributeDescriptor& attribute = GetAttribute(i);
diff --git a/src/dawn_native/metal/RenderPipelineMTL.mm b/src/dawn_native/metal/RenderPipelineMTL.mm
index 5020a43..65e9a10 100644
--- a/src/dawn_native/metal/RenderPipelineMTL.mm
+++ b/src/dawn_native/metal/RenderPipelineMTL.mm
@@ -365,11 +365,7 @@
     MTLVertexDescriptor* RenderPipeline::MakeVertexDesc() {
         MTLVertexDescriptor* mtlVertexDescriptor = [MTLVertexDescriptor new];
 
-        const auto& attributesSetMask = GetAttributesSetMask();
-        for (uint32_t i = 0; i < attributesSetMask.size(); ++i) {
-            if (!attributesSetMask[i]) {
-                continue;
-            }
+        for (uint32_t i : IterateBitSet(GetAttributesSetMask())) {
             const VertexAttributeDescriptor& info = GetAttribute(i);
 
             auto attribDesc = [MTLVertexAttributeDescriptor new];
diff --git a/src/dawn_native/opengl/RenderPipelineGL.cpp b/src/dawn_native/opengl/RenderPipelineGL.cpp
index 991b022..f729370 100644
--- a/src/dawn_native/opengl/RenderPipelineGL.cpp
+++ b/src/dawn_native/opengl/RenderPipelineGL.cpp
@@ -197,12 +197,8 @@
     void RenderPipeline::CreateVAOForInputState(const InputStateDescriptor* inputState) {
         glGenVertexArrays(1, &mVertexArrayObject);
         glBindVertexArray(mVertexArrayObject);
-        auto& attributesSetMask = GetAttributesSetMask();
-        for (uint32_t location = 0; location < attributesSetMask.size(); ++location) {
-            if (!attributesSetMask[location]) {
-                continue;
-            }
-            auto attribute = GetAttribute(location);
+        for (uint32_t location : IterateBitSet(GetAttributesSetMask())) {
+            const auto& attribute = GetAttribute(location);
             glEnableVertexAttribArray(location);
 
             attributesUsingInput[attribute.inputSlot][location] = true;
diff --git a/src/tests/end2end/InputStateTests.cpp b/src/tests/end2end/InputStateTests.cpp
index 87c2ac0..f848601 100644
--- a/src/tests/end2end/InputStateTests.cpp
+++ b/src/tests/end2end/InputStateTests.cpp
@@ -66,7 +66,7 @@
         };
         dawn::RenderPipeline MakeTestPipeline(const dawn::InputStateDescriptor& inputState,
                                               int multiplier,
-                                              std::vector<ShaderTestSpec> testSpec) {
+                                              const std::vector<ShaderTestSpec>& testSpec) {
             std::ostringstream vs;
             vs << "#version 450\n";