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";