GPUAdapter: requestAdapterInfo() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,且仅在部分或全部支持的浏览器中可用。

已弃用:此功能不再推荐使用。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,或者正在被删除,或者仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅本页面底部的兼容性表格以指导您的决策。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不会对每个用户都起作用。实现之间也可能存在很大的不兼容性,并且行为可能会在将来发生变化。

requestAdapterInfo()GPUAdapter接口的一个方法,它返回一个Promise,该Promise 会解析为一个GPUAdapterInfo对象,其中包含有关适配器的识别信息。

此方法的目的是允许开发者请求用户GPU的特定详细信息,以便他们可以预先应用针对GPU特定错误的解决方法,或提供不同的代码路径以更好地适应不同的GPU架构。提供此类信息确实存在安全风险——它可能被用于指纹识别——因此共享的信息应保持在最低限度,并且不同的浏览器供应商可能会共享不同的信息类型和粒度。

注意:规范中包含一个用于requestAdapterInfo()unmaskHints参数,旨在缓解上述安全风险。一旦得到支持,开发者将能够指定他们真正需要了解的值,并且当调用此方法时,用户将收到一个权限提示,询问他们是否同意共享此信息。如果权限提示保护了这些信息,浏览器供应商可能会共享更多有用的信息,因为它使得该方法成为指纹识别的目标的可能性降低。

语法

js
requestAdapterInfo()

参数

无。

返回值

一个Promise,它会解析为一个GPUAdapterInfo对象实例。

示例

js
async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU not supported.");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("Couldn't request WebGPU adapter.");
  }

  const adapterInfo = await adapter.requestAdapterInfo();
  console.log(adapterInfo.vendor);
  console.log(adapterInfo.architecture);

  // ...
}

规范

未找到规范

未找到api.GPUAdapter.requestAdapterInfo的规范数据。
检查此页面是否存在问题或为其贡献缺少的spec_url mdn/browser-compat-data。同时确保规范包含在 w3c/browser-specs.

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅