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