GPUPipelineError

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

GPUPipelineError 介面是 WebGPU API 的一部分,用於描述管道(pipeline)的失敗。當 PromiseGPUDevice.createComputePipelineAsync()GPUDevice.createRenderPipelineAsync() 呼叫拒絕時,就會接收到這個值。

DOMException GPUPipelineError

建構函式

GPUPipelineError()

建立一個新的 GPUPipelineError 物件例項。

例項屬性

繼承其父級 DOMException 的屬性。

reason 只讀

一個列舉值,以機器可讀的方式定義了管道建立失敗的原因。

示例

在下面的程式碼片段中,我們嘗試使用 GPUDevice.createComputePipelineAsync() 建立一個 GPUComputePipeline。但是,我們錯誤地拼寫了計算管道的 entryPoint,將其寫成了 "maijn"(而它應該是 "main"),因此管道建立失敗,我們的 catch 塊將由此產生的 reason 和錯誤訊息列印到控制檯。

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]."(入口點 "maijn" 在著色器模組 [ShaderModule] 中不存在。)

規範

規範
WebGPU
# gpupipelineerror

瀏覽器相容性

另見