dawn/node: Add experimental GPUAdapterInfo.isFallbackAdapter attribute Spec PR: https://github.com/gpuweb/gpuweb/pull/5099 Bug: 403172841 Change-Id: Icda3d72cae665b0759ae7af674a22c383461c425 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/230674 Commit-Queue: Fr <beaufort.francois@gmail.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/node/binding/GPUAdapterInfo.cpp b/src/dawn/node/binding/GPUAdapterInfo.cpp index 81dab1c..a1ae894 100644 --- a/src/dawn/node/binding/GPUAdapterInfo.cpp +++ b/src/dawn/node/binding/GPUAdapterInfo.cpp
@@ -109,7 +109,8 @@ device_(NormalizeIdentifierString(info.device)), description_(info.description), subgroup_min_size_(info.subgroupMinSize), - subgroup_max_size_(info.subgroupMaxSize) { + subgroup_max_size_(info.subgroupMaxSize), + is_fallback_adapter_(info.adapterType == wgpu::AdapterType::CPU) { auto* next = info.nextInChain; while (next) { if (next->sType == SType::AdapterPropertiesSubgroupMatrixConfigs) { @@ -147,6 +148,10 @@ return subgroup_max_size_; } +bool GPUAdapterInfo::getIsFallbackAdapter(Napi::Env) { + return is_fallback_adapter_; +} + GPUAdapterInfo::SubgroupMatrixConfigs GPUAdapterInfo::getSubgroupMatrixConfigs(Napi::Env env) { SubgroupMatrixConfigs out; out.reserve(subgroup_matrix_configs_.size());
diff --git a/src/dawn/node/binding/GPUAdapterInfo.h b/src/dawn/node/binding/GPUAdapterInfo.h index d46f330..b300332 100644 --- a/src/dawn/node/binding/GPUAdapterInfo.h +++ b/src/dawn/node/binding/GPUAdapterInfo.h
@@ -51,6 +51,7 @@ std::string getDescription(Napi::Env) override; uint32_t getSubgroupMinSize(Napi::Env) override; uint32_t getSubgroupMaxSize(Napi::Env) override; + bool getIsFallbackAdapter(Napi::Env) override; using SubgroupMatrixConfigs = interop::FrozenArray<interop::Interface<interop::GPUSubgroupMatrixConfig>>; @@ -63,6 +64,7 @@ std::string description_; uint32_t subgroup_min_size_; uint32_t subgroup_max_size_; + bool is_fallback_adapter_; std::vector<wgpu::SubgroupMatrixConfig> subgroup_matrix_configs_; };
diff --git a/src/dawn/node/interop/DawnExtensions.idl b/src/dawn/node/interop/DawnExtensions.idl index 39ed74a..2d535f2 100644 --- a/src/dawn/node/interop/DawnExtensions.idl +++ b/src/dawn/node/interop/DawnExtensions.idl
@@ -53,6 +53,7 @@ }; interface GPUAdapterInfo { + readonly attribute boolean isFallbackAdapter; [SameObject] readonly attribute FrozenArray<GPUSubgroupMatrixConfig> subgroupMatrixConfigs; };