webgpu.h: Remove WGPUVertexStepMode_VertexBufferNotUsed Spec PR: https://github.com/webgpu-native/webgpu-headers/pull/439 Bug: 383147017 Change-Id: I3bde3b146c1de31e5ea39f76286e4967e7c2320c Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/216675 Reviewed-by: Kai Ninomiya <kainino@chromium.org> Commit-Queue: Fr <beaufort.francois@gmail.com>
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json index 85cacb8..36c88c2 100644 --- a/src/dawn/dawn.json +++ b/src/dawn/dawn.json
@@ -2762,10 +2762,9 @@ "vertex step mode": { "category": "enum", "values": [ - {"value": 0, "name": "vertex buffer not used"}, - {"value": 1, "name": "undefined", "jsrepr": "undefined"}, - {"value": 2, "name": "vertex"}, - {"value": 3, "name": "instance"} + {"value": 0, "name": "undefined", "jsrepr": "undefined"}, + {"value": 1, "name": "vertex"}, + {"value": 2, "name": "instance"} ] }, "load op": {
diff --git a/src/dawn/native/RenderPipeline.cpp b/src/dawn/native/RenderPipeline.cpp index e4be89c..8123ce8 100644 --- a/src/dawn/native/RenderPipeline.cpp +++ b/src/dawn/native/RenderPipeline.cpp
@@ -179,11 +179,6 @@ DAWN_INVALID_IF(buffer->arrayStride % 4 != 0, "Vertex buffer arrayStride (%u) is not a multiple of 4.", buffer->arrayStride); - DAWN_INVALID_IF( - buffer->stepMode == wgpu::VertexStepMode::VertexBufferNotUsed && buffer->attributeCount > 0, - "attributeCount (%u) is not zero although vertex buffer stepMode is %s.", - buffer->attributeCount, wgpu::VertexStepMode::VertexBufferNotUsed); - for (uint32_t i = 0; i < buffer->attributeCount; ++i) { DAWN_TRY_CONTEXT(ValidateVertexAttribute(device, &buffer->attributes[i], metadata, buffer->arrayStride, attributesSetMask), @@ -980,10 +975,6 @@ if (buffer.stepMode == wgpu::VertexStepMode::Undefined && buffer.attributeCount == 0) { continue; } - // TODO(crbug.com/383147017): Remove VertexBufferNotUsed. - if (buffer.stepMode == wgpu::VertexStepMode::VertexBufferNotUsed) { - continue; - } mVertexBuffersUsed.set(slot); mVertexBufferInfos[slot].arrayStride = buffer.arrayStride; @@ -999,7 +990,6 @@ case wgpu::VertexStepMode::Instance: mVertexBuffersUsedAsInstanceBuffer.set(slot); break; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: DAWN_UNREACHABLE(); }
diff --git a/src/dawn/native/TintUtils.cpp b/src/dawn/native/TintUtils.cpp index 04fac2b..048ed07 100644 --- a/src/dawn/native/TintUtils.cpp +++ b/src/dawn/native/TintUtils.cpp
@@ -149,7 +149,6 @@ return tint::ast::transform::VertexStepMode::kVertex; case wgpu::VertexStepMode::Instance: return tint::ast::transform::VertexStepMode::kInstance; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: break; }
diff --git a/src/dawn/native/d3d11/RenderPipelineD3D11.cpp b/src/dawn/native/d3d11/RenderPipelineD3D11.cpp index 0bdba68..b1fde3f 100644 --- a/src/dawn/native/d3d11/RenderPipelineD3D11.cpp +++ b/src/dawn/native/d3d11/RenderPipelineD3D11.cpp
@@ -53,7 +53,6 @@ return D3D11_INPUT_PER_VERTEX_DATA; case wgpu::VertexStepMode::Instance: return D3D11_INPUT_PER_INSTANCE_DATA; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: break; }
diff --git a/src/dawn/native/d3d12/RenderPipelineD3D12.cpp b/src/dawn/native/d3d12/RenderPipelineD3D12.cpp index a517dc3..b10e74f 100644 --- a/src/dawn/native/d3d12/RenderPipelineD3D12.cpp +++ b/src/dawn/native/d3d12/RenderPipelineD3D12.cpp
@@ -54,7 +54,6 @@ return D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA; case wgpu::VertexStepMode::Instance: return D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: break; }
diff --git a/src/dawn/native/metal/RenderPipelineMTL.mm b/src/dawn/native/metal/RenderPipelineMTL.mm index 9361bda..eac2c0c 100644 --- a/src/dawn/native/metal/RenderPipelineMTL.mm +++ b/src/dawn/native/metal/RenderPipelineMTL.mm
@@ -136,7 +136,6 @@ return MTLVertexStepFunctionPerVertex; case wgpu::VertexStepMode::Instance: return MTLVertexStepFunctionPerInstance; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: break; }
diff --git a/src/dawn/native/opengl/RenderPipelineGL.cpp b/src/dawn/native/opengl/RenderPipelineGL.cpp index 3500ce6..2b789ba 100644 --- a/src/dawn/native/opengl/RenderPipelineGL.cpp +++ b/src/dawn/native/opengl/RenderPipelineGL.cpp
@@ -273,7 +273,6 @@ case wgpu::VertexStepMode::Instance: gl.VertexAttribDivisor(glAttrib, 1); break; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: DAWN_UNREACHABLE(); }
diff --git a/src/dawn/native/vulkan/RenderPipelineVk.cpp b/src/dawn/native/vulkan/RenderPipelineVk.cpp index 9717e77..182d59a 100644 --- a/src/dawn/native/vulkan/RenderPipelineVk.cpp +++ b/src/dawn/native/vulkan/RenderPipelineVk.cpp
@@ -54,7 +54,6 @@ return VK_VERTEX_INPUT_RATE_VERTEX; case wgpu::VertexStepMode::Instance: return VK_VERTEX_INPUT_RATE_INSTANCE; - case wgpu::VertexStepMode::VertexBufferNotUsed: case wgpu::VertexStepMode::Undefined: break; }
diff --git a/src/dawn/node/binding/Converter.cpp b/src/dawn/node/binding/Converter.cpp index 2eb80da..f7c6d5e 100644 --- a/src/dawn/node/binding/Converter.cpp +++ b/src/dawn/node/binding/Converter.cpp
@@ -1100,13 +1100,13 @@ return false; } - // Patch up the unused vertex buffer layouts to use wgpu::VertexStepMode::VertexBufferNotUsed. + // Patch up the unused vertex buffer layouts to use wgpu::VertexStepMode::Undefined. // The converter for optional value will have put the default value of wgpu::VertexBufferLayout // that has wgpu::VertexStepMode::Vertex. out.buffers = outBuffers; for (size_t i = 0; i < in.buffers.size(); i++) { if (!in.buffers[i].has_value()) { - outBuffers[i].stepMode = wgpu::VertexStepMode::VertexBufferNotUsed; + outBuffers[i].stepMode = wgpu::VertexStepMode::Undefined; } }
diff --git a/src/dawn/tests/end2end/VertexStateTests.cpp b/src/dawn/tests/end2end/VertexStateTests.cpp index 9096b20..b9566a4 100644 --- a/src/dawn/tests/end2end/VertexStateTests.cpp +++ b/src/dawn/tests/end2end/VertexStateTests.cpp
@@ -568,7 +568,7 @@ vertexState.cAttributes[0].format = VertexFormat::Float32x4; for (uint32_t i = 0; i < kBufferIndex; i++) { - vertexState.cVertexBuffers[i].stepMode = VertexStepMode::VertexBufferNotUsed; + vertexState.cVertexBuffers[i].stepMode = VertexStepMode::Undefined; } wgpu::RenderPipeline pipeline =
diff --git a/src/dawn/tests/unittests/validation/DrawVertexAndIndexBufferOOBValidationTests.cpp b/src/dawn/tests/unittests/validation/DrawVertexAndIndexBufferOOBValidationTests.cpp index 87a99fe..b8cfd09 100644 --- a/src/dawn/tests/unittests/validation/DrawVertexAndIndexBufferOOBValidationTests.cpp +++ b/src/dawn/tests/unittests/validation/DrawVertexAndIndexBufferOOBValidationTests.cpp
@@ -485,7 +485,7 @@ { // The first slot it unused so valid even if vertex buffer is not set to it. wgpu::RenderPipeline pipeline = CreateRenderPipelineWithBufferDesc( - {{0, wgpu::VertexStepMode::VertexBufferNotUsed, {}}, + {{0, wgpu::VertexStepMode::Undefined, {}}, {kFloat32x4Stride, wgpu::VertexStepMode::Vertex, {}}}); TestRenderPassDraw(pipeline, vertexBufferList, 3, 1, 0, 0, true); } @@ -666,7 +666,7 @@ { // The first slot it unused so valid even if vertex buffer is not set to it. wgpu::RenderPipeline pipeline = CreateRenderPipelineWithBufferDesc( - {{0, wgpu::VertexStepMode::VertexBufferNotUsed, {}}, + {{0, wgpu::VertexStepMode::Undefined, {}}, {kFloat32x4Stride, wgpu::VertexStepMode::Vertex, {}}, {kFloat32x2Stride, wgpu::VertexStepMode::Instance, {}}}); TestRenderPassDrawIndexed(pipeline, indexBufferDesc, vertexBufferList, 12, 3, 0, 0, 0,
diff --git a/src/dawn/tests/unittests/validation/VertexStateValidationTests.cpp b/src/dawn/tests/unittests/validation/VertexStateValidationTests.cpp index c0fd053..4a71bff 100644 --- a/src/dawn/tests/unittests/validation/VertexStateValidationTests.cpp +++ b/src/dawn/tests/unittests/validation/VertexStateValidationTests.cpp
@@ -469,20 +469,5 @@ DoTest(wgpu::VertexFormat::Sint32x2); } -// Test that non-zero attributeCount with VertexBufferNotUsed stepMode is invalid -TEST_F(VertexStateTest, UnusedBufferZeroAttribute) { - // Non-zero attributeCount with non-VertexBufferNotUsed is valid - utils::ComboVertexState state; - state.vertexBufferCount = 1; - state.cVertexBuffers[0].arrayStride = 0; - state.cVertexBuffers[0].attributeCount = 1; - state.cVertexBuffers[0].stepMode = wgpu::VertexStepMode::Vertex; - CreatePipeline(true, state, kPlaceholderVertexShader); - - // Non-zero attributeCount with VertexBufferNotUsed is invalid - state.cVertexBuffers[0].stepMode = wgpu::VertexStepMode::VertexBufferNotUsed; - CreatePipeline(false, state, kPlaceholderVertexShader); -} - } // anonymous namespace } // namespace dawn