[dawn] Remove return value from wgpuInstanceGetWGSLLanguageFeatures This method just returns an array, it doesn't take an extensible struct. So it's infallible like wgpuAdapter/DeviceGetFeatures and wgpuGetInstanceFeatures and should return void. Corresponding upstream PR: https://github.com/webgpu-native/webgpu-headers/pull/554 Fixed: 429178774 Change-Id: Ibf21e2db11a1172be8a8d9271db3c6a282f0bc00 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/252256 Commit-Queue: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Loko Kung <lokokung@google.com>
diff --git a/src/dawn/dawn.json b/src/dawn/dawn.json index 4b79317..5dba355 100644 --- a/src/dawn/dawn.json +++ b/src/dawn/dawn.json
@@ -2463,7 +2463,6 @@ }, { "name": "get WGSL language features", - "returns": "status", "args": [ {"name": "features", "type": "supported WGSL language features", "annotation": "*"} ]
diff --git a/src/dawn/native/Instance.cpp b/src/dawn/native/Instance.cpp index f17eb8f..0dda157 100644 --- a/src/dawn/native/Instance.cpp +++ b/src/dawn/native/Instance.cpp
@@ -733,8 +733,7 @@ return mWGSLFeatures.contains(feature); } -wgpu::Status InstanceBase::APIGetWGSLLanguageFeatures( - SupportedWGSLLanguageFeatures* features) const { +void InstanceBase::APIGetWGSLLanguageFeatures(SupportedWGSLLanguageFeatures* features) const { DAWN_ASSERT(features != nullptr); size_t featureCount = mWGSLFeatures.size(); @@ -747,7 +746,6 @@ features->featureCount = featureCount; features->features = wgslFeatures; - return wgpu::Status::Success; } void APISupportedWGSLLanguageFeaturesFreeMembers(
diff --git a/src/dawn/native/Instance.h b/src/dawn/native/Instance.h index b8eb1d4..d830259 100644 --- a/src/dawn/native/Instance.h +++ b/src/dawn/native/Instance.h
@@ -152,7 +152,7 @@ FutureWaitInfo* futures, uint64_t timeoutNS); bool APIHasWGSLLanguageFeature(wgpu::WGSLLanguageFeatureName feature) const; - wgpu::Status APIGetWGSLLanguageFeatures(SupportedWGSLLanguageFeatures* features) const; + void APIGetWGSLLanguageFeatures(SupportedWGSLLanguageFeatures* features) const; void DisconnectDawnPlatform();
diff --git a/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp b/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp index fe937bf..019bb63 100644 --- a/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp +++ b/src/dawn/tests/unittests/validation/WGSLFeatureValidationTests.cpp
@@ -177,7 +177,7 @@ SetUp({}); wgpu::SupportedWGSLLanguageFeatures supportedFeatures = {}; - ASSERT_EQ(wgpu::Status::Success, instance.GetWGSLLanguageFeatures(&supportedFeatures)); + instance.GetWGSLLanguageFeatures(&supportedFeatures); ASSERT_NE(0u, supportedFeatures.featureCount); const wgpu::WGSLLanguageFeatureName* features = supportedFeatures.features;
diff --git a/src/dawn/wire/client/Instance.cpp b/src/dawn/wire/client/Instance.cpp index fdd5246..2d75c8a 100644 --- a/src/dawn/wire/client/Instance.cpp +++ b/src/dawn/wire/client/Instance.cpp
@@ -291,11 +291,8 @@ return mWGSLFeatures.contains(feature); } -WGPUStatus Instance::APIGetWGSLLanguageFeatures(WGPUSupportedWGSLLanguageFeatures* features) const { - if (features == nullptr) { - return WGPUStatus_Error; - } - +void Instance::APIGetWGSLLanguageFeatures(WGPUSupportedWGSLLanguageFeatures* features) const { + DAWN_ASSERT(features != nullptr); size_t featureCount = mWGSLFeatures.size(); WGPUWGSLLanguageFeatureName* wgslFeatures = new WGPUWGSLLanguageFeatureName[featureCount]; uint32_t index = 0; @@ -306,7 +303,6 @@ features->featureCount = featureCount; features->features = wgslFeatures; - return WGPUStatus_Success; } WGPUSurface Instance::APICreateSurface(const WGPUSurfaceDescriptor* desc) const {
diff --git a/src/dawn/wire/client/Instance.h b/src/dawn/wire/client/Instance.h index 5624c3a..7a78cdc 100644 --- a/src/dawn/wire/client/Instance.h +++ b/src/dawn/wire/client/Instance.h
@@ -56,7 +56,7 @@ WGPUWaitStatus APIWaitAny(size_t count, WGPUFutureWaitInfo* infos, uint64_t timeoutNS); bool APIHasWGSLLanguageFeature(WGPUWGSLLanguageFeatureName feature) const; - WGPUStatus APIGetWGSLLanguageFeatures(WGPUSupportedWGSLLanguageFeatures* features) const; + void APIGetWGSLLanguageFeatures(WGPUSupportedWGSLLanguageFeatures* features) const; WGPUSurface APICreateSurface(const WGPUSurfaceDescriptor* desc) const;
diff --git a/third_party/webgpu-headers/webgpu.h.diff b/third_party/webgpu-headers/webgpu.h.diff index e69de29..4d4f0d4 100644 --- a/third_party/webgpu-headers/webgpu.h.diff +++ b/third_party/webgpu-headers/webgpu.h.diff
@@ -0,0 +1,20 @@ +--- webgpu_header ++++ dawn_header +@@ + typedef void (*WGPUProcDeviceRelease)(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; + + typedef WGPUSurface (*WGPUProcInstanceCreateSurface)(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; +-typedef WGPUStatus (*WGPUProcInstanceGetWGSLLanguageFeatures)(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE; ++typedef void (*WGPUProcInstanceGetWGSLLanguageFeatures)(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE; + typedef WGPUBool (*WGPUProcInstanceHasWGSLLanguageFeature)(WGPUInstance instance, WGPUWGSLLanguageFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; + typedef void (*WGPUProcInstanceProcessEvents)(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; + typedef WGPUFuture (*WGPUProcInstanceRequestAdapter)(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPURequestAdapterCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE; +@@ + WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device) WGPU_FUNCTION_ATTRIBUTE; + + WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor) WGPU_FUNCTION_ATTRIBUTE; +-WGPU_EXPORT WGPUStatus wgpuInstanceGetWGSLLanguageFeatures(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE; ++WGPU_EXPORT void wgpuInstanceGetWGSLLanguageFeatures(WGPUInstance instance, WGPUSupportedWGSLLanguageFeatures * features) WGPU_FUNCTION_ATTRIBUTE; + WGPU_EXPORT WGPUBool wgpuInstanceHasWGSLLanguageFeature(WGPUInstance instance, WGPUWGSLLanguageFeatureName feature) WGPU_FUNCTION_ATTRIBUTE; + WGPU_EXPORT void wgpuInstanceProcessEvents(WGPUInstance instance) WGPU_FUNCTION_ATTRIBUTE; + WGPU_EXPORT WGPUFuture wgpuInstanceRequestAdapter(WGPUInstance instance, WGPU_NULLABLE WGPURequestAdapterOptions const * options, WGPURequestAdapterCallbackInfo callbackInfo) WGPU_FUNCTION_ATTRIBUTE;