GPUPipelineError
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
WebGPU API の GPUPipelineError
インターフェイスは、パイプラインの失敗を表現します。これは、GPUDevice.createComputePipelineAsync()
や GPUDevice.createRenderPipelineAsync()
から返された Promise
が拒否されたとき渡される値です。
コンストラクター
GPUPipelineError()
Experimental-
新しい
GPUPipelineError
オブジェクトのインスタンスを生成します。
インスタンスプロパティ
親の DOMException
からプロパティを継承します。
reason
Experimental 読取専用-
パイプラインの生成に失敗した理由を機械可読な形式で表す列挙値です。
例
以下のスニペットでは、GPUDevice.createComputePipelineAsync()
を用いて GPUComputePipeline
を生成しようとしています。しかし、コンピュートパイプラインの entryPoint
を ("main"
とするべきなのに) "maijn"
とスペルミスしているので、パイプラインの生成に失敗し、catch
ブロックで処理結果の理由とエラーメッセージをコンソールに出力します。
// ...
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