From 0664d9183b5b9b2592d9fde73edf455768307ebc Mon Sep 17 00:00:00 2001 From: Popov72 Date: Tue, 15 Oct 2024 10:29:58 +0200 Subject: [PATCH] Fix requestAdapterInfo removed from the spec --- packages/dev/core/src/Engines/webgpuEngine.ts | 10 ++++++---- packages/dev/core/src/LibDeclarations/webgpu.d.ts | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/dev/core/src/Engines/webgpuEngine.ts b/packages/dev/core/src/Engines/webgpuEngine.ts index 93e386b82c4..c31f3b8a123 100644 --- a/packages/dev/core/src/Engines/webgpuEngine.ts +++ b/packages/dev/core/src/Engines/webgpuEngine.ts @@ -145,6 +145,11 @@ export interface GlslangOptions { * Options to create the WebGPU engine */ export interface WebGPUEngineOptions extends AbstractEngineOptions, GPURequestAdapterOptions { + /** + * The featureLevel property of the GPURequestAdapterOptions interface + */ + featureLevel?: string; + /** * Defines the category of adapter to use. * Is it the discrete or integrated device. @@ -639,10 +644,7 @@ export class WebGPUEngine extends ThinWebGPUEngine { this._adapterSupportedExtensions = []; this._adapter.features?.forEach((feature) => this._adapterSupportedExtensions.push(feature as WebGPUConstants.FeatureName)); this._adapterSupportedLimits = this._adapter.limits; - - this._adapter.requestAdapterInfo().then((adapterInfo) => { - this._adapterInfo = adapterInfo; - }); + this._adapterInfo = this._adapter.info; const deviceDescriptor = this._options.deviceDescriptor ?? {}; const requiredFeatures = deviceDescriptor?.requiredFeatures ?? (this._options.enableAllFeatures ? this._adapterSupportedExtensions : undefined); diff --git a/packages/dev/core/src/LibDeclarations/webgpu.d.ts b/packages/dev/core/src/LibDeclarations/webgpu.d.ts index 2707b5e76d1..4196f0ed24c 100644 --- a/packages/dev/core/src/LibDeclarations/webgpu.d.ts +++ b/packages/dev/core/src/LibDeclarations/webgpu.d.ts @@ -72,6 +72,7 @@ declare class GPU { } interface GPURequestAdapterOptions { + featureLevel?: string; powerPreference?: GPUPowerPreference; forceFallbackAdapter?: boolean /* default=false */; } @@ -83,10 +84,10 @@ declare class GPUAdapter { readonly name: string; readonly features: GPUSupportedFeatures; readonly limits: GPUSupportedLimits; + readonly info: GPUAdapterInfo; readonly isFallbackAdapter: boolean; requestDevice(descriptor?: GPUDeviceDescriptor): Promise; - requestAdapterInfo(unmaskHints?: string[]): Promise; } interface GPUDeviceDescriptor extends GPUObjectDescriptorBase {