GPU

实验性: 这是一种 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文 (HTTPS) 中可用,在某些或所有 支持的浏览器 中。

GPUWebGPU API 的一个接口,它是使用 WebGPU 的起点。它可以用于返回一个 GPUAdapter,从中您可以请求设备、配置功能和限制等。

当前上下文的 GPU 对象可以通过 Navigator.gpuWorkerNavigator.gpu 属性访问。

实例属性

wgslLanguageFeatures 实验性 只读

一个 WGSLLanguageFeatures 对象,它报告 WebGPU 实现支持的 WGSL 语言扩展

实例方法

requestAdapter() 实验性

返回一个 Promise,它将使用 GPUAdapter 对象实例来实现。您可以从中请求一个 GPUDevice,它是使用 WebGPU 功能的主要接口。

getPreferredCanvasFormat() 实验性

返回当前系统上用于显示 8 位深度、标准动态范围内容的最佳画布纹理格式。

示例

请求适配器和设备

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 device = await adapter.requestDevice();

  //...
}

使用最佳纹理格式配置 GPUCanvasContext

js
const canvas = document.querySelector("#gpuCanvas");
const context = canvas.getContext("webgpu");

context.configure({
  device: device,
  format: navigator.gpu.getPreferredCanvasFormat(),
  alphaMode: "premultiplied",
});

规范

规范
WebGPU
# gpu-interface

浏览器兼容性

BCD 表格只能在启用 JavaScript 的浏览器中加载。

另请参见

  • 有关 WebGPU API 的更多信息,请访问此链接。