diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2024-08-06 03:00:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-06 15:30:32 +0530 |
commit | c0e9512b39a4ed3713d1fd9b28469d0edf68f578 (patch) | |
tree | 48194976942488e9ded45464e76cef943db5dedb /ext/webgpu | |
parent | 7f6b484684279b643d8ed6374bed0b92b3038b50 (diff) |
BREAKING(webgpu/unstable): Replace async .requestAdapterInfo() with sync .info (#24783)
Closes https://github.com/denoland/deno/issues/24779
Ref https://github.com/gpuweb/gpuweb/pull/4662
Diffstat (limited to 'ext/webgpu')
-rw-r--r-- | ext/webgpu/01_webgpu.js | 13 | ||||
-rw-r--r-- | ext/webgpu/webgpu.idl | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/ext/webgpu/01_webgpu.js b/ext/webgpu/01_webgpu.js index 15b82a8e3..2c30e47f0 100644 --- a/ext/webgpu/01_webgpu.js +++ b/ext/webgpu/01_webgpu.js @@ -423,6 +423,8 @@ class GPUAdapter { [_adapter]; /** @type {bool} */ [_invalid]; + /** @type {GPUAdapterInfo | undefined} */ + #adapterInfo; /** @returns {GPUSupportedFeatures} */ get features() { @@ -502,9 +504,9 @@ class GPUAdapter { } /** - * @returns {Promise<GPUAdapterInfo>} + * @returns {GPUAdapterInfo} */ - requestAdapterInfo() { + get info() { webidl.assertBranded(this, GPUAdapterPrototype); if (this[_invalid]) { @@ -513,6 +515,10 @@ class GPUAdapter { ); } + if (this.#adapterInfo !== undefined) { + return this.#adapterInfo; + } + const { vendor, architecture, @@ -525,7 +531,8 @@ class GPUAdapter { adapterInfo[_architecture] = architecture; adapterInfo[_device] = device; adapterInfo[_description] = description; - return PromiseResolve(adapterInfo); + this.#adapterInfo = adapterInfo; + return adapterInfo; } [SymbolFor("Deno.privateCustomInspect")](inspect, inspectOptions) { diff --git a/ext/webgpu/webgpu.idl b/ext/webgpu/webgpu.idl index 07d9d60ec..d673ce77b 100644 --- a/ext/webgpu/webgpu.idl +++ b/ext/webgpu/webgpu.idl @@ -78,11 +78,11 @@ enum GPUPowerPreference { [Exposed=(Window, Worker), SecureContext] interface GPUAdapter { [SameObject] readonly attribute GPUSupportedFeatures features; + [SameObject] readonly attribute GPUAdapterInfo info; [SameObject] readonly attribute GPUSupportedLimits limits; readonly attribute boolean isFallbackAdapter; Promise<GPUDevice> requestDevice(optional GPUDeviceDescriptor descriptor = {}); - Promise<GPUAdapterInfo> requestAdapterInfo(); }; dictionary GPUDeviceDescriptor |