node: Throw a TypeError for unsupported GPUQueryTypes The WebGPU spec requires this so that an extension not being enabled or not implemented by the browser both behave the same. Bug: None Change-Id: I52d991ba63438068d4adaf1391771336186a402a Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/112422 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Reviewed-by: Austin Eng <enga@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/node/binding/Converter.cpp b/src/dawn/node/binding/Converter.cpp index 95c4916..f2718bd 100644 --- a/src/dawn/node/binding/Converter.cpp +++ b/src/dawn/node/binding/Converter.cpp
@@ -1609,8 +1609,14 @@ out = wgpu::QueryType::Occlusion; return true; case interop::GPUQueryType::kTimestamp: - out = wgpu::QueryType::Timestamp; - return true; + if (HasFeature(wgpu::FeatureName::TimestampQuery)) { + out = wgpu::QueryType::Timestamp; + return true; + } else { + Napi::TypeError::New(env, "invalid value for GPUQueryType") + .ThrowAsJavaScriptException(); + return false; + } } Napi::Error::New(env, "invalid value for GPUQueryType").ThrowAsJavaScriptException(); return false;
diff --git a/src/dawn/node/binding/GPUDevice.cpp b/src/dawn/node/binding/GPUDevice.cpp index b540d50..5aab3eb 100644 --- a/src/dawn/node/binding/GPUDevice.cpp +++ b/src/dawn/node/binding/GPUDevice.cpp
@@ -472,7 +472,7 @@ interop::Interface<interop::GPUQuerySet> GPUDevice::createQuerySet( Napi::Env env, interop::GPUQuerySetDescriptor descriptor) { - Converter conv(env); + Converter conv(env, device_); wgpu::QuerySetDescriptor desc{}; if (!conv(desc.label, descriptor.label) || !conv(desc.type, descriptor.type) ||