GPUPipelineError

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

WebGPU APIGPUPipelineError インターフェイスは、パイプラインの失敗を表現します。これは、GPUDevice.createComputePipelineAsync()GPUDevice.createRenderPipelineAsync() から返された Promise が拒否されたとき渡される値です。

DOMException GPUPipelineError

コンストラクター

GPUPipelineError() Experimental

新しい GPUPipelineError オブジェクトのインスタンスを生成します。

インスタンスプロパティ

親の DOMException からプロパティを継承します。

reason Experimental 読取専用

パイプラインの生成に失敗した理由を機械可読な形式で表す列挙値です。

以下のスニペットでは、GPUDevice.createComputePipelineAsync() を用いて GPUComputePipeline を生成しようとしています。しかし、コンピュートパイプラインの entryPoint を ("main" とするべきなのに) "maijn" とスペルミスしているので、パイプラインの生成に失敗し、catch ブロックで処理結果の理由とエラーメッセージをコンソールに出力します。

js
// ...

let computePipeline;

try {
  computePipeline = await device.createComputePipelineAsync({
    layout: device.createPipelineLayout({
      bindGroupLayouts: [bindGroupLayout],
    }),
    compute: {
      module: shaderModule,
      entryPoint: "maijn",
    },
  });
} catch (error) {
  // error は GPUPipelineError オブジェクトのインスタンス
  console.error(error.reason);
  console.error(`パイプラインの生成に失敗: ${error.message}`);
}

// ...

この場合、得られる reason"Validation" で、message"Entry point "maijn" doesn't exist in the shader module [ShaderModule]." です。

仕様書

Specification
WebGPU
# gpupipelineerror

ブラウザーの互換性

BCD tables only load in the browser

関連情報