GPUPipelineError

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

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

GPUPipelineErrorWebGPU API 中的一个接口,用于描述管道故障。当 Promise(由 GPUDevice.createComputePipelineAsync()GPUDevice.createRenderPipelineAsync() 调用返回)被拒绝时,会接收到此值。

DOMException GPUPipelineError

构造函数

GPUPipelineError() 实验性

创建一个新的 GPUPipelineError 对象实例。

实例属性

继承自其父级 DOMException 的属性。

reason 实验性 只读

一个枚举值,以机器可读的方式定义管道创建失败的原因。

示例

在以下代码片段中,我们尝试使用 GPUDevice.createComputePipelineAsync() 创建一个 GPUComputePipeline。但是,我们错误地将计算管道 entryPoint 拼写为 "maijn"(应为 "main"),因此管道创建失败,并且我们的 catch 代码块将结果原因和错误消息打印到控制台。

js
// ...

let computePipeline;

try {
  computePipeline = await device.createComputePipelineAsync({
    layout: device.createPipelineLayout({
      bindGroupLayouts: [bindGroupLayout],
    }),
    compute: {
      module: shaderModule,
      entryPoint: "maijn",
    },
  });
} catch (error) {
  // error is a GPUPipelineError object instance
  console.error(error.reason);
  console.error(`Pipeline creation failed: ${error.message}`);
}

// ...

在这种情况下,给定的 reason"Validation"message"Entry point "maijn" doesn't exist in the shader module [ShaderModule]."

规范

规范
WebGPU
# gpupipelineerror

浏览器兼容性

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

参见