Remove deprecated "Binding" types and members
This removes the following types and members as well as fixup code
and depraction tests for them:
- wgpu::BindGroupLayoutBinding
- wgpu::BindGroupLayoutDescriptor::bindingCount
- wgpu::BindGroupLayoutDescriptor::bindings
- wgpu::BindGroupBinding
- wgpu::BindGroupDescriptor::bindingCount
- wgpu::BindGroupDescriptor::bindings
Bug: dawn:22
Change-Id: Ifc0e25107f3dcfbb850624cb362909f38c90bec2
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/21680
Reviewed-by: Stephen White <senorblanco@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/dawn.json b/dawn.json
index b3dba41..0a809c2 100644
--- a/dawn.json
+++ b/dawn.json
@@ -77,9 +77,7 @@
"members": [
{"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
{"name": "layout", "type": "bind group layout"},
- {"name": "binding count", "type": "uint32_t", "default": 0},
- {"name": "bindings", "type": "bind group entry", "annotation": "const*", "length": "binding count"},
- {"name": "entry count", "type": "uint32_t", "default": 0},
+ {"name": "entry count", "type": "uint32_t"},
{"name": "entries", "type": "bind group entry", "annotation": "const*", "length": "entry count"}
]
},
@@ -106,9 +104,7 @@
"extensible": true,
"members": [
{"name": "label", "type": "char", "annotation": "const*", "length": "strlen", "optional": true},
- {"name": "binding count", "type": "uint32_t", "default": 0},
- {"name": "bindings", "type": "bind group layout entry", "annotation": "const*", "length": "binding count"},
- {"name": "entry count", "type": "uint32_t", "default": 0},
+ {"name": "entry count", "type": "uint32_t"},
{"name": "entries", "type": "bind group layout entry", "annotation": "const*", "length": "entry count"}
]
},
diff --git a/generator/templates/webgpu.h b/generator/templates/webgpu.h
index c3b2f50..4e1c7c8 100644
--- a/generator/templates/webgpu.h
+++ b/generator/templates/webgpu.h
@@ -114,10 +114,6 @@
{% endfor %}
-// TODO(dawn:22): Remove this once users use the "Entry" version.
-typedef WGPUBindGroupEntry WGPUBindGroupBinding;
-typedef WGPUBindGroupLayoutEntry WGPUBindGroupLayoutBinding;
-
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/generator/templates/webgpu_cpp.h b/generator/templates/webgpu_cpp.h
index b53f83e..3dde1e8 100644
--- a/generator/templates/webgpu_cpp.h
+++ b/generator/templates/webgpu_cpp.h
@@ -216,10 +216,6 @@
{% endfor %}
- // TODO(dawn:22): Remove this once users use the "Entry" version.
- using BindGroupBinding = BindGroupEntry;
- using BindGroupLayoutBinding = BindGroupLayoutEntry;
-
} // namespace wgpu
#endif // WEBGPU_CPP_H_
diff --git a/src/dawn_native/Device.cpp b/src/dawn_native/Device.cpp
index c75eed7..efa8d2d 100644
--- a/src/dawn_native/Device.cpp
+++ b/src/dawn_native/Device.cpp
@@ -773,25 +773,10 @@
MaybeError DeviceBase::CreateBindGroupInternal(BindGroupBase** result,
const BindGroupDescriptor* descriptor) {
DAWN_TRY(ValidateIsAlive());
-
- // TODO(dawn:22): Remove this once users use entries/entryCount
- BindGroupDescriptor fixedDescriptor = *descriptor;
- if (fixedDescriptor.bindingCount != 0) {
- if (fixedDescriptor.entryCount != 0) {
- return DAWN_VALIDATION_ERROR("Cannot use bindings and entries at the same time");
- } else {
- EmitDeprecationWarning(
- "BindGroupEntry::bindings/bindingCount is deprecated, use entries/entryCount "
- "instead");
- fixedDescriptor.entryCount = fixedDescriptor.bindingCount;
- fixedDescriptor.entries = fixedDescriptor.bindings;
- }
- }
-
if (IsValidationEnabled()) {
- DAWN_TRY(ValidateBindGroupDescriptor(this, &fixedDescriptor));
+ DAWN_TRY(ValidateBindGroupDescriptor(this, descriptor));
}
- DAWN_TRY_ASSIGN(*result, CreateBindGroupImpl(&fixedDescriptor));
+ DAWN_TRY_ASSIGN(*result, CreateBindGroupImpl(descriptor));
return {};
}
@@ -799,25 +784,10 @@
BindGroupLayoutBase** result,
const BindGroupLayoutDescriptor* descriptor) {
DAWN_TRY(ValidateIsAlive());
-
- // TODO(dawn:22): Remove this once users use entries/entryCount
- BindGroupLayoutDescriptor fixedDescriptor = *descriptor;
- if (fixedDescriptor.bindingCount != 0) {
- if (fixedDescriptor.entryCount != 0) {
- return DAWN_VALIDATION_ERROR("Cannot use bindings and entries at the same time");
- } else {
- EmitDeprecationWarning(
- "BindGroupLayoutEntry::bindings/bindingCount is deprecated, use "
- "entries/entryCount instead");
- fixedDescriptor.entryCount = fixedDescriptor.bindingCount;
- fixedDescriptor.entries = fixedDescriptor.bindings;
- }
- }
-
if (IsValidationEnabled()) {
- DAWN_TRY(ValidateBindGroupLayoutDescriptor(this, &fixedDescriptor));
+ DAWN_TRY(ValidateBindGroupLayoutDescriptor(this, descriptor));
}
- DAWN_TRY_ASSIGN(*result, GetOrCreateBindGroupLayout(&fixedDescriptor));
+ DAWN_TRY_ASSIGN(*result, GetOrCreateBindGroupLayout(descriptor));
return {};
}
diff --git a/src/tests/end2end/DeprecatedAPITests.cpp b/src/tests/end2end/DeprecatedAPITests.cpp
index 63770fd..e95c7e1 100644
--- a/src/tests/end2end/DeprecatedAPITests.cpp
+++ b/src/tests/end2end/DeprecatedAPITests.cpp
@@ -82,8 +82,6 @@
entryDesc.textureDimension = wgpu::TextureViewDimension::e2D;
wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 0;
- bglDesc.bindings = nullptr;
bglDesc.entryCount = 1;
bglDesc.entries = &entryDesc;
EXPECT_DEPRECATION_WARNING(device.CreateBindGroupLayout(&bglDesc));
@@ -97,8 +95,6 @@
entryDesc.type = wgpu::BindingType::Sampler;
wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 0;
- bglDesc.bindings = nullptr;
bglDesc.entryCount = 1;
bglDesc.entries = &entryDesc;
device.CreateBindGroupLayout(&bglDesc);
@@ -113,8 +109,6 @@
entryDesc.viewDimension = wgpu::TextureViewDimension::e2D;
wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 0;
- bglDesc.bindings = nullptr;
bglDesc.entryCount = 1;
bglDesc.entries = &entryDesc;
ASSERT_DEVICE_ERROR(device.CreateBindGroupLayout(&bglDesc));
@@ -130,8 +124,6 @@
entryDesc.textureDimension = wgpu::TextureViewDimension::Cube;
wgpu::BindGroupLayoutDescriptor bglDesc = {};
- bglDesc.bindingCount = 0;
- bglDesc.bindings = nullptr;
bglDesc.entryCount = 1;
bglDesc.entries = &entryDesc;
wgpu::BindGroupLayout layout;
@@ -160,153 +152,6 @@
ASSERT_DEVICE_ERROR(utils::MakeBindGroup(device, layout, {{0, arrayView}}));
}
-// Test for BindGroupLayout::bindings/bindingCount -> entries/entryCount
-
-// Test that creating a BGL with bindings emits a deprecation warning.
-TEST_P(DeprecationTests, BGLDescBindingIsDeprecated) {
- wgpu::BindGroupLayoutEntry entryDesc;
- entryDesc.binding = 0;
- entryDesc.visibility = wgpu::ShaderStage::None;
- entryDesc.type = wgpu::BindingType::Sampler;
-
- wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 1;
- bglDesc.bindings = &entryDesc;
- bglDesc.entryCount = 0;
- bglDesc.entries = nullptr;
- EXPECT_DEPRECATION_WARNING(device.CreateBindGroupLayout(&bglDesc));
-}
-
-// Test that creating a BGL with both entries and bindings is an error
-TEST_P(DeprecationTests, BGLDescBindingAndEntriesIsInvalid) {
- wgpu::BindGroupLayoutEntry entryDesc;
- entryDesc.binding = 0;
- entryDesc.visibility = wgpu::ShaderStage::None;
- entryDesc.type = wgpu::BindingType::Sampler;
-
- wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 1;
- bglDesc.bindings = &entryDesc;
- bglDesc.entryCount = 1;
- bglDesc.entries = &entryDesc;
- ASSERT_DEVICE_ERROR(device.CreateBindGroupLayout(&bglDesc));
-}
-
-// Test that creating a BGL with both entries and bindings to 0 doesn't emit warnings
-TEST_P(DeprecationTests, BGLDescBindingAndEntriesBothZeroEmitsNoWarning) {
- wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 0;
- bglDesc.bindings = nullptr;
- bglDesc.entryCount = 0;
- bglDesc.entries = nullptr;
- device.CreateBindGroupLayout(&bglDesc);
-}
-
-// Test that creating a BGL with bindings still does correct state tracking
-TEST_P(DeprecationTests, BGLDescBindingStateTracking) {
- wgpu::BindGroupLayoutEntry entryDesc;
- entryDesc.binding = 0;
- entryDesc.type = wgpu::BindingType::Sampler;
- entryDesc.visibility = wgpu::ShaderStage::None;
-
- wgpu::BindGroupLayoutDescriptor bglDesc;
- bglDesc.bindingCount = 1;
- bglDesc.bindings = &entryDesc;
- bglDesc.entryCount = 0;
- bglDesc.entries = nullptr;
- wgpu::BindGroupLayout layout;
- EXPECT_DEPRECATION_WARNING(layout = device.CreateBindGroupLayout(&bglDesc));
-
- // Test a case where if |bindings| wasn't taken into account, no validation error would happen
- // because the layout would be empty
- wgpu::BindGroupDescriptor badBgDesc;
- badBgDesc.layout = layout;
- badBgDesc.bindingCount = 0;
- badBgDesc.bindings = nullptr;
- badBgDesc.entryCount = 0;
- badBgDesc.entries = nullptr;
- ASSERT_DEVICE_ERROR(device.CreateBindGroup(&badBgDesc));
-}
-
-// Test for BindGroup::bindings/bindingCount -> entries/entryCount
-
-// Test that creating a BG with bindings emits a deprecation warning.
-TEST_P(DeprecationTests, BGDescBindingIsDeprecated) {
- wgpu::SamplerDescriptor samplerDesc = {};
- wgpu::Sampler sampler = device.CreateSampler(&samplerDesc);
-
- wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(
- device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::Sampler}});
-
- wgpu::BindGroupEntry entryDesc;
- entryDesc.binding = 0;
- entryDesc.sampler = sampler;
-
- wgpu::BindGroupDescriptor bgDesc;
- bgDesc.layout = layout;
- bgDesc.bindingCount = 1;
- bgDesc.bindings = &entryDesc;
- bgDesc.entryCount = 0;
- bgDesc.entries = nullptr;
- EXPECT_DEPRECATION_WARNING(device.CreateBindGroup(&bgDesc));
-}
-
-// Test that creating a BG with both entries and bindings is an error
-TEST_P(DeprecationTests, BGDescBindingAndEntriesIsInvalid) {
- wgpu::SamplerDescriptor samplerDesc = {};
- wgpu::Sampler sampler = device.CreateSampler(&samplerDesc);
-
- wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(
- device, {{0, wgpu::ShaderStage::Fragment, wgpu::BindingType::Sampler}});
-
- wgpu::BindGroupEntry entryDesc = {};
- entryDesc.binding = 0;
- entryDesc.sampler = sampler;
-
- wgpu::BindGroupDescriptor bgDesc;
- bgDesc.layout = layout;
- bgDesc.bindingCount = 1;
- bgDesc.bindings = &entryDesc;
- bgDesc.entryCount = 1;
- bgDesc.entries = &entryDesc;
- ASSERT_DEVICE_ERROR(device.CreateBindGroup(&bgDesc));
-}
-
-// Test that creating a BG with both entries and bindings to 0 doesn't emit warnings
-TEST_P(DeprecationTests, BGDescBindingAndEntriesBothZeroEmitsNoWarning) {
- wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(device, {});
-
- wgpu::BindGroupDescriptor bgDesc;
- bgDesc.layout = layout;
- bgDesc.bindingCount = 0;
- bgDesc.bindings = nullptr;
- bgDesc.entryCount = 0;
- bgDesc.entries = nullptr;
- device.CreateBindGroup(&bgDesc);
-}
-
-// Test that creating a BG with bindings still does correct state tracking
-TEST_P(DeprecationTests, BGDescBindingStateTracking) {
- wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(device, {});
-
- // Test a case where if |bindings| wasn't taken into account, no validation error would happen
- // because it would match the empty layout.
- wgpu::SamplerDescriptor samplerDesc = {};
- wgpu::Sampler sampler = device.CreateSampler(&samplerDesc);
-
- wgpu::BindGroupEntry entryDesc = {};
- entryDesc.binding = 0;
- entryDesc.sampler = sampler;
-
- wgpu::BindGroupDescriptor bgDesc;
- bgDesc.layout = layout;
- bgDesc.bindingCount = 1;
- bgDesc.bindings = &entryDesc;
- bgDesc.entryCount = 0;
- bgDesc.entries = nullptr;
- EXPECT_DEPRECATION_WARNING(ASSERT_DEVICE_ERROR(device.CreateBindGroup(&bgDesc)));
-}
-
// Tests for ShaderModuleDescriptor.code/codeSize -> ShaderModuleSPIRVDescriptor
static const char kEmptyShader[] = R"(#version 450
diff --git a/src/tests/unittests/wire/WireMultipleDeviceTests.cpp b/src/tests/unittests/wire/WireMultipleDeviceTests.cpp
index 0be91b4..3ba0da0 100644
--- a/src/tests/unittests/wire/WireMultipleDeviceTests.cpp
+++ b/src/tests/unittests/wire/WireMultipleDeviceTests.cpp
@@ -174,7 +174,7 @@
wireA.FlushClient();
- std::array<WGPUBindGroupBinding, 2> entries = {};
+ std::array<WGPUBindGroupEntry, 2> entries = {};
// Create a buffer on wire A.
WGPUBufferDescriptor bufferDesc = {};