GPUValidationError

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

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

WebGPU APIGPUValidationError インターフェイスは、操作が WebGPU API のバリデーションの制約を満たさなかったことを表すアプリケーションエラーを表現します。

これは、GPUDevice.popErrorScope および uncapturederror イベントで浮かび上がったエラーの型の一つを表します。

バリデーションエラーは、WebGPU の呼び出し時に無効な入力が与えられると常に発生します。これらは一貫性があり、予測可能で、正しく作られたアプリケーションでは発生しないはずです。これらはコードを実行するどのデバイスでも同じように発生するので、一旦開発中に現れたエラーをすべて修正したら、ほとんどの期間これらを直接観測しなくてよいでしょう。このルールの例外はユーザーが提供するアセットやシェーダーなどを用いる場合で、この場合は読み込み時のバリデーションエラーの監視が役立つでしょう。

メモ: それが適切な場合、WebGPU のコードでバリデーションエラーが発生する理由を理解する助けとなる有用な情報を「バリデーション」節で提供しようとしています。これは、バリデーションエラーを回避するために満たすべき条件のリストです。例として、GPUDevice.createBindGroup() の「バリデーション」節を見てください。

GPUError GPUValidationError

コンストラクター

GPUValidationError() Experimental

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

インスタンスプロパティ

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

message Experimental 読取専用

なぜエラーが起きたのかを説明する人間向けのメッセージを提供する文字列です。

以下の例では、エラースコープを用いてバリデーションエラーの可能性があるものをキャプチャし、コンソールに記録します。

js
device.pushErrorScope("validation");

let sampler = device.createSampler({
  maxAnisotropy: 0, // 無効、maxAnisotropy は 1 以上でなければならない
});

device.popErrorScope().then((error) => {
  if (error) {
    // error は GPUValidationError オブジェクトのインスタンス
    sampler = null;
    console.error(`サンプラーの生成時にエラー発生: ${error.message}`);
  }
});

仕様書

Specification
WebGPU
# gpuvalidationerror

ブラウザーの互換性

BCD tables only load in the browser

関連情報