webgpu.h: Update sentinel values for VertexBufferStepMode

https://github.com/webgpu-native/webgpu-headers/pull/364

Bug: 377820810
Change-Id: I541c24a84e076750d2a7cd1b8b786d2095509103
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/214854
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
diff --git a/generator/dawn_json_generator.py b/generator/dawn_json_generator.py
index 6b80fec..96d700f 100644
--- a/generator/dawn_json_generator.py
+++ b/generator/dawn_json_generator.py
@@ -145,8 +145,6 @@
             value += prefix
 
             if value_name == "undefined":
-                if name != "optional bool":
-                    assert value == 0
                 self.hasUndefined = True
             if value != lastValue + 1:
                 self.contiguousFromZero = False
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index fc01551..864b4b1 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -2772,7 +2772,7 @@
         "extensible": false,
         "members": [
             {"name": "array stride", "type": "uint64_t"},
-            {"name": "step mode", "type": "vertex step mode", "default": "vertex"},
+            {"name": "step mode", "type": "vertex step mode"},
             {"name": "attribute count", "type": "size_t"},
             {"name": "attributes", "type": "vertex attribute", "annotation": "const*", "length": "attribute count"}
         ]
@@ -2780,8 +2780,8 @@
     "vertex step mode": {
         "category": "enum",
         "values": [
-            {"value": 0, "name": "undefined", "jsrepr": "undefined"},
-            {"value": 1, "name": "vertex buffer not used"},
+            {"value": 0, "name": "vertex buffer not used"},
+            {"value": 1, "name": "undefined", "jsrepr": "undefined"},
             {"value": 2, "name": "vertex"},
             {"value": 3, "name": "instance"}
         ]
diff --git a/src/dawn/native/RenderPipeline.cpp b/src/dawn/native/RenderPipeline.cpp
index 6c5c97f..212f50c 100644
--- a/src/dawn/native/RenderPipeline.cpp
+++ b/src/dawn/native/RenderPipeline.cpp
@@ -968,22 +968,20 @@
 
     auto buffers =
         ityp::SpanFromUntyped<VertexBufferSlot>(descriptor->vertex.buffers, mVertexBufferCount);
-    for (auto [slot, bufferOrig] : Enumerate(buffers)) {
+    for (auto [slot, buffer] : Enumerate(buffers)) {
         // Skip unused slots
-        if (bufferOrig.stepMode == wgpu::VertexStepMode::VertexBufferNotUsed) {
+        if (buffer.stepMode == wgpu::VertexStepMode::VertexBufferNotUsed) {
             continue;
         }
 
-        // Make a local copy with defaulting applied, before copying the
-        // now-defaulted values into mVertexBufferInfos.
-        VertexBufferLayout buffer = bufferOrig.WithTrivialFrontendDefaults();
-
         mVertexBuffersUsed.set(slot);
         mVertexBufferInfos[slot].arrayStride = buffer.arrayStride;
-        mVertexBufferInfos[slot].stepMode = buffer.stepMode;
+        mVertexBufferInfos[slot].stepMode = (buffer.stepMode == wgpu::VertexStepMode::Undefined)
+                                                ? wgpu::VertexStepMode::Vertex
+                                                : buffer.stepMode;
         mVertexBufferInfos[slot].usedBytesInStride = 0;
         mVertexBufferInfos[slot].lastStride = 0;
-        switch (buffer.stepMode) {
+        switch (mVertexBufferInfos[slot].stepMode) {
             case wgpu::VertexStepMode::Vertex:
                 mVertexBuffersUsedAsVertexBuffer.set(slot);
                 break;