Validate buffer usage is non-zero in createBuffer

Validate that buffer usage is not 0 (None) when creating buffer.

Bug: dawn:1266
Change-Id: I690582aca91fb505c7b8c7b79c9530e71b958ebc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/77642
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
This commit is contained in:
Zhaoming Jiang 2022-01-22 05:57:25 +00:00 committed by Dawn LUCI CQ
parent 96adaf2c87
commit e67adac441
2 changed files with 14 additions and 0 deletions

View File

@ -102,6 +102,8 @@ namespace dawn::native {
wgpu::BufferUsage usage = descriptor->usage;
DAWN_INVALID_IF(usage == wgpu::BufferUsage::None, "Buffer usages must not be 0.");
const wgpu::BufferUsage kMapWriteAllowedUsages =
wgpu::BufferUsage::MapWrite | wgpu::BufferUsage::CopySrc;
DAWN_INVALID_IF(

View File

@ -94,6 +94,18 @@ TEST_F(BufferValidationTest, CreationSuccess) {
}
}
// Test restriction on usages must not be None (0)
TEST_F(BufferValidationTest, CreationMapUsageNotZero) {
// Zero (None) usage is an error
{
wgpu::BufferDescriptor descriptor;
descriptor.size = 4;
descriptor.usage = wgpu::BufferUsage::None;
ASSERT_DEVICE_ERROR(device.CreateBuffer(&descriptor));
}
}
// Test restriction on usages allowed with MapRead and MapWrite
TEST_F(BufferValidationTest, CreationMapUsageRestrictions) {
// MapRead with CopyDst is ok