[dawn][headers] Removes old WGSLFeatureName and entry points.
- Removes WGSLFeatureName entirely.
- Removes remaining references to WGSLFeatureName and the
instance.EnumerateWGSLLanguageFeatures entry point.
- Updates dawn.node to reflect these changes.
Bug: 368672124
Change-Id: Iece2f764e1f96abdaedde1485b3701e4c880dd38
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/223595
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json
index 6a0e92c..e798af8 100644
--- a/src/dawn/dawn.json
+++ b/src/dawn/dawn.json
@@ -2384,13 +2384,6 @@
]
},
{
- "name": "enumerate WGSL language features",
- "returns": "size_t",
- "args": [
- {"name": "features", "type": "WGSL feature name", "annotation": "*"}
- ]
- },
- {
"name": "get WGSL language features",
"returns": "status",
"args": [
@@ -4089,21 +4082,6 @@
{"value": 41, "name": "unorm8x4 BGRA", "jsrepr": "'unorm8x4-bgra'"}
]
},
- "WGSL feature name": {
- "category": "enum",
- "values": [
- {"value": 1, "name": "readonly and readwrite storage textures", "jsrepr": "'readonly_and_readwrite_storage_textures'"},
- {"value": 2, "name": "packed 4x8 integer dot product", "jsrepr": "'packed_4x8_integer_dot_product'"},
- {"value": 3, "name": "unrestricted pointer parameters", "jsrepr": "'unrestricted_pointer_parameters'"},
- {"value": 4, "name": "pointer composite access", "jsrepr": "'pointer_composite_access'"},
-
- {"value": 0, "name": "chromium testing unimplemented", "jsrepr": "'chromium_testing_unimplemented'", "tags": ["dawn"]},
- {"value": 1, "name": "chromium testing unsafe experimental", "jsrepr": "'chromium_testing_unsafe_experimental'", "tags": ["dawn"]},
- {"value": 2, "name": "chromium testing experimental", "jsrepr": "'chromium_testing_experimental'", "tags": ["dawn"]},
- {"value": 3, "name": "chromium testing shipped with killswitch", "jsrepr": "'chromium_testing_shipped_with_killswitch'", "tags": ["dawn"]},
- {"value": 4, "name": "chromium testing shipped", "jsrepr": "'chromium_testing_shipped'", "tags": ["dawn"]}
- ]
- },
"WGSL language feature name": {
"category": "enum",
"values": [
diff --git a/src/dawn/dawn_wire.json b/src/dawn/dawn_wire.json
index 076fd40..ca6df05 100644
--- a/src/dawn/dawn_wire.json
+++ b/src/dawn/dawn_wire.json
@@ -239,7 +239,6 @@
"DevicePopErrorScopeF",
"DevicePopErrorScope2",
"DeviceSetLoggingCallback",
- "InstanceEnumerateWGSLLanguageFeatures",
"InstanceGetWGSLLanguageFeatures",
"InstanceHasWGSLLanguageFeature",
"InstanceCreateSurface",
diff --git a/src/dawn/native/Instance.cpp b/src/dawn/native/Instance.cpp
index bc5c49a..01c75e9 100644
--- a/src/dawn/native/Instance.cpp
+++ b/src/dawn/native/Instance.cpp
@@ -697,16 +697,6 @@
return wgpu::Status::Success;
}
-size_t InstanceBase::APIEnumerateWGSLLanguageFeatures(wgpu::WGSLFeatureName* features) const {
- if (features != nullptr) {
- for (wgpu::WGSLLanguageFeatureName f : mWGSLFeatures) {
- *features = static_cast<wgpu::WGSLFeatureName>(f);
- ++features;
- }
- }
- return mWGSLFeatures.size();
-}
-
void APISupportedWGSLLanguageFeaturesFreeMembers(
WGPUSupportedWGSLLanguageFeatures supportedFeatures) {
delete[] supportedFeatures.features;
diff --git a/src/dawn/native/Instance.h b/src/dawn/native/Instance.h
index aca1b1e..038ef96 100644
--- a/src/dawn/native/Instance.h
+++ b/src/dawn/native/Instance.h
@@ -151,9 +151,6 @@
uint64_t timeoutNS);
bool APIHasWGSLLanguageFeature(wgpu::WGSLLanguageFeatureName feature) const;
wgpu::Status APIGetWGSLLanguageFeatures(SupportedWGSLLanguageFeatures* features) const;
- // Always writes the full list when features is not nullptr.
- // TODO(https://github.com/webgpu-native/webgpu-headers/issues/252): Add a count argument.
- size_t APIEnumerateWGSLLanguageFeatures(wgpu::WGSLFeatureName* features) const;
void DisconnectDawnPlatform();
diff --git a/src/dawn/node/binding/Converter.cpp b/src/dawn/node/binding/Converter.cpp
index 0b5b97c..a4c72ed 100644
--- a/src/dawn/node/binding/Converter.cpp
+++ b/src/dawn/node/binding/Converter.cpp
@@ -1621,44 +1621,44 @@
return false;
}
-bool Converter::Convert(wgpu::WGSLFeatureName& out, interop::WGSLFeatureName in) {
+bool Converter::Convert(wgpu::WGSLLanguageFeatureName& out, interop::WGSLLanguageFeatureName in) {
switch (in) {
- case interop::WGSLFeatureName::kReadonlyAndReadwriteStorageTextures:
- out = wgpu::WGSLFeatureName::ReadonlyAndReadwriteStorageTextures;
+ case interop::WGSLLanguageFeatureName::kReadonlyAndReadwriteStorageTextures:
+ out = wgpu::WGSLLanguageFeatureName::ReadonlyAndReadwriteStorageTextures;
return true;
- case interop::WGSLFeatureName::kPacked4X8IntegerDotProduct:
- out = wgpu::WGSLFeatureName::Packed4x8IntegerDotProduct;
+ case interop::WGSLLanguageFeatureName::kPacked4X8IntegerDotProduct:
+ out = wgpu::WGSLLanguageFeatureName::Packed4x8IntegerDotProduct;
return true;
- case interop::WGSLFeatureName::kUnrestrictedPointerParameters:
- out = wgpu::WGSLFeatureName::UnrestrictedPointerParameters;
+ case interop::WGSLLanguageFeatureName::kUnrestrictedPointerParameters:
+ out = wgpu::WGSLLanguageFeatureName::UnrestrictedPointerParameters;
return true;
- case interop::WGSLFeatureName::kPointerCompositeAccess:
- out = wgpu::WGSLFeatureName::PointerCompositeAccess;
+ case interop::WGSLLanguageFeatureName::kPointerCompositeAccess:
+ out = wgpu::WGSLLanguageFeatureName::PointerCompositeAccess;
return true;
}
return false;
}
-bool Converter::Convert(interop::WGSLFeatureName& out, wgpu::WGSLFeatureName in) {
+bool Converter::Convert(interop::WGSLLanguageFeatureName& out, wgpu::WGSLLanguageFeatureName in) {
switch (in) {
- case wgpu::WGSLFeatureName::ReadonlyAndReadwriteStorageTextures:
- out = interop::WGSLFeatureName::kReadonlyAndReadwriteStorageTextures;
+ case wgpu::WGSLLanguageFeatureName::ReadonlyAndReadwriteStorageTextures:
+ out = interop::WGSLLanguageFeatureName::kReadonlyAndReadwriteStorageTextures;
return true;
- case wgpu::WGSLFeatureName::Packed4x8IntegerDotProduct:
- out = interop::WGSLFeatureName::kPacked4X8IntegerDotProduct;
+ case wgpu::WGSLLanguageFeatureName::Packed4x8IntegerDotProduct:
+ out = interop::WGSLLanguageFeatureName::kPacked4X8IntegerDotProduct;
return true;
- case wgpu::WGSLFeatureName::UnrestrictedPointerParameters:
- out = interop::WGSLFeatureName::kUnrestrictedPointerParameters;
+ case wgpu::WGSLLanguageFeatureName::UnrestrictedPointerParameters:
+ out = interop::WGSLLanguageFeatureName::kUnrestrictedPointerParameters;
return true;
- case wgpu::WGSLFeatureName::PointerCompositeAccess:
- out = interop::WGSLFeatureName::kPointerCompositeAccess;
+ case wgpu::WGSLLanguageFeatureName::PointerCompositeAccess:
+ out = interop::WGSLLanguageFeatureName::kPointerCompositeAccess;
return true;
- case wgpu::WGSLFeatureName::ChromiumTestingUnimplemented:
- case wgpu::WGSLFeatureName::ChromiumTestingUnsafeExperimental:
- case wgpu::WGSLFeatureName::ChromiumTestingExperimental:
- case wgpu::WGSLFeatureName::ChromiumTestingShippedWithKillswitch:
- case wgpu::WGSLFeatureName::ChromiumTestingShipped:
+ case wgpu::WGSLLanguageFeatureName::ChromiumTestingUnimplemented:
+ case wgpu::WGSLLanguageFeatureName::ChromiumTestingUnsafeExperimental:
+ case wgpu::WGSLLanguageFeatureName::ChromiumTestingExperimental:
+ case wgpu::WGSLLanguageFeatureName::ChromiumTestingShippedWithKillswitch:
+ case wgpu::WGSLLanguageFeatureName::ChromiumTestingShipped:
return false;
}
return false;
diff --git a/src/dawn/node/binding/Converter.h b/src/dawn/node/binding/Converter.h
index ef839c9..aa5aa80 100644
--- a/src/dawn/node/binding/Converter.h
+++ b/src/dawn/node/binding/Converter.h
@@ -290,8 +290,10 @@
// https://gpuweb.github.io/gpuweb/#gpu-supportedfeatures)
[[nodiscard]] bool Convert(wgpu::FeatureName& out, interop::GPUFeatureName in);
[[nodiscard]] bool Convert(interop::GPUFeatureName& out, wgpu::FeatureName in);
- [[nodiscard]] bool Convert(wgpu::WGSLFeatureName& out, interop::WGSLFeatureName in);
- [[nodiscard]] bool Convert(interop::WGSLFeatureName& out, wgpu::WGSLFeatureName in);
+ [[nodiscard]] bool Convert(wgpu::WGSLLanguageFeatureName& out,
+ interop::WGSLLanguageFeatureName in);
+ [[nodiscard]] bool Convert(interop::WGSLLanguageFeatureName& out,
+ wgpu::WGSLLanguageFeatureName in);
// std::string to C string / wgpu::StringView types
[[nodiscard]] inline bool Convert(const char*& out, const std::string& in) {
diff --git a/src/dawn/node/binding/GPU.cpp b/src/dawn/node/binding/GPU.cpp
index 0df0f3a..a83469d 100644
--- a/src/dawn/node/binding/GPU.cpp
+++ b/src/dawn/node/binding/GPU.cpp
@@ -290,15 +290,15 @@
}
interop::Interface<interop::WGSLLanguageFeatures> GPU::getWgslLanguageFeatures(Napi::Env env) {
- using InteropWGSLFeatureSet = std::unordered_set<interop::WGSLFeatureName>;
+ using InteropWGSLFeatureSet = std::unordered_set<interop::WGSLLanguageFeatureName>;
struct Features : public interop::WGSLLanguageFeatures {
explicit Features(InteropWGSLFeatureSet features) : features_(features) {}
~Features() = default;
bool has(Napi::Env env, std::string name) {
- interop::WGSLFeatureName feature;
- if (!interop::Converter<interop::WGSLFeatureName>::FromString(name, feature)) {
+ interop::WGSLLanguageFeatureName feature;
+ if (!interop::Converter<interop::WGSLLanguageFeatureName>::FromString(name, feature)) {
return false;
}
return features_.count(feature);
@@ -307,7 +307,8 @@
std::vector<std::string> out;
out.reserve(features_.size());
for (auto feature : features_) {
- out.push_back(interop::Converter<interop::WGSLFeatureName>::ToString(feature));
+ out.push_back(
+ interop::Converter<interop::WGSLLanguageFeatureName>::ToString(feature));
}
return out;
}
@@ -320,21 +321,20 @@
};
wgpu::Instance instance = instance_->Get();
- size_t count = instance.EnumerateWGSLLanguageFeatures(nullptr);
-
- std::vector<wgpu::WGSLFeatureName> features(count);
- instance.EnumerateWGSLLanguageFeatures(features.data());
+ wgpu::SupportedWGSLLanguageFeatures supportedFeatures = {};
+ instance.GetWGSLLanguageFeatures(&supportedFeatures);
// Add all known WGSLLangaugeFeatures known by dawn.node but warn loudly when there are unknown
// ones.
InteropWGSLFeatureSet featureSet;
Converter conv(env);
- for (auto feature : features) {
- interop::WGSLFeatureName wgslFeature;
+ for (size_t i = 0; i < supportedFeatures.featureCount; i++) {
+ wgpu::WGSLLanguageFeatureName feature = supportedFeatures.features[i];
+ interop::WGSLLanguageFeatureName wgslFeature;
if (conv(wgslFeature, feature)) {
featureSet.emplace(wgslFeature);
} else {
- LOG("Unknown WGSLFeatureName ", feature);
+ LOG("Unknown WGSLLanguageFeatureName ", feature);
}
}
diff --git a/src/dawn/node/interop/DawnExtensions.idl b/src/dawn/node/interop/DawnExtensions.idl
index 2aef172..150f6dd 100644
--- a/src/dawn/node/interop/DawnExtensions.idl
+++ b/src/dawn/node/interop/DawnExtensions.idl
@@ -55,7 +55,7 @@
GPUTextureViewDimension? textureBindingViewDimension;
};
-enum WGSLFeatureName {
+enum WGSLLanguageFeatureName {
"readonly_and_readwrite_storage_textures",
"packed_4x8_integer_dot_product",
"unrestricted_pointer_parameters",
diff --git a/src/dawn/wire/client/Instance.cpp b/src/dawn/wire/client/Instance.cpp
index 9966be1..2592d62 100644
--- a/src/dawn/wire/client/Instance.cpp
+++ b/src/dawn/wire/client/Instance.cpp
@@ -304,16 +304,6 @@
return WGPUStatus_Success;
}
-size_t Instance::EnumerateWGSLLanguageFeatures(WGPUWGSLFeatureName* features) const {
- if (features != nullptr) {
- for (WGPUWGSLLanguageFeatureName f : mWGSLFeatures) {
- *features = static_cast<WGPUWGSLFeatureName>(f);
- ++features;
- }
- }
- return mWGSLFeatures.size();
-}
-
WGPUSurface Instance::CreateSurface(const WGPUSurfaceDescriptor* desc) const {
dawn::ErrorLog() << "Instance::CreateSurface is not supported in the wire. Use "
"dawn::wire::client::WireClient::InjectSurface instead.";
diff --git a/src/dawn/wire/client/Instance.h b/src/dawn/wire/client/Instance.h
index 72d425c..0e82a0f 100644
--- a/src/dawn/wire/client/Instance.h
+++ b/src/dawn/wire/client/Instance.h
@@ -52,9 +52,6 @@
bool HasWGSLLanguageFeature(WGPUWGSLLanguageFeatureName feature) const;
WGPUStatus GetWGSLLanguageFeatures(WGPUSupportedWGSLLanguageFeatures* features) const;
- // Always writes the full list when features is not nullptr.
- // TODO(https://github.com/webgpu-native/webgpu-headers/issues/252): Add a count argument.
- size_t EnumerateWGSLLanguageFeatures(WGPUWGSLFeatureName* features) const;
WGPUSurface CreateSurface(const WGPUSurfaceDescriptor* desc) const;
diff --git a/tools/android/BUILD.gn b/tools/android/BUILD.gn
index f8f9a14..ff6dede 100644
--- a/tools/android/BUILD.gn
+++ b/tools/android/BUILD.gn
@@ -211,7 +211,6 @@
"java/android/dawn/VertexFormat.kt",
"java/android/dawn/VertexState.kt",
"java/android/dawn/VertexStepMode.kt",
- "java/android/dawn/WGSLFeatureName.kt",
"java/android/dawn/WGSLLanguageFeatureName.kt",
"java/android/dawn/WaitStatus.kt",
]
diff --git a/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt b/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt
index 8f47d0f..af343d2 100644
--- a/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt
+++ b/tools/android/webgpu/src/test/java/android/dawn/MappedNamedConstantsTest.kt
@@ -69,8 +69,7 @@
VertexFormat::class,
VertexStepMode::class,
WaitStatus::class,
- WGSLLanguageFeatureName::class,
- WGSLFeatureName::class
+ WGSLLanguageFeatureName::class
)
/**