mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-18 17:35:30 +00:00
Record zero-attribute vertex buffer when creating render pipeline
Currently Dawn ignores all zero-attribute vertex buffer in the given pipeline descriptor when creating RenderPipelineBase because zero-attribute vertex buffer is treated as unused slot, however the spec doesn't state that zero-attribute vertex buffer should be ignored. To support zero-attribute vertex buffer, this commit has the following changes. 1. Add VertexBufferNotUsed enum value to wgpu::VertexStepMode to represent unused slots 2. Ignore VertexBufferNotUsed step mode buffers when creating RenderPipelineBase and add tests to check it 3. Record zero-attribute vertex buffers when creating RenderPipelineBase and add tests to check it 4. Fix VertexStateTest::LastAllowedVertexBuffer broken by the above changes Temporarily we set the enum value of wgpu::VertexStepMode::VertexBufferNotUsed to 0 to pass the CTS tests because currently empty vertex buffer slots step mode can be zero-initialized. We will make a CL to Blink to explicitly set wgpu::VertexStepMode::VertexBufferNotUsed for empty slots and change the enum value to 2. Bug: dawn:1000 Change-Id: Ibd4ab87f2c922e8e460f2311547f13d58f1d5611 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/89340 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Takahiro <hogehoge@gachapin.jp>
This commit is contained in:
@@ -276,6 +276,8 @@ void RenderPipeline::CreateVAOForVertexState() {
|
||||
case wgpu::VertexStepMode::Instance:
|
||||
gl.VertexAttribDivisor(glAttrib, 1);
|
||||
break;
|
||||
case wgpu::VertexStepMode::VertexBufferNotUsed:
|
||||
UNREACHABLE();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user