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;