GPUSupportedFeatures
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
WebGPU API の GPUSupportedFeatures
インターフェイスは、GPUAdapter
が対応している追加機能を表現する Set
風オブジェクトです。
現在のアダプター用の GPUSupportedFeatures
オブジェクトは、GPUAdapter.features
経由で参照できます。
下層のハードウェアで対応していても、対応するすべてのブラウザーの WebGPU ですべての機能が利用できるわけではないことに注意するべきです。これは、たとえば以下の場合など、下層のシステム、ブラウザー、アダプターの制限によるものである可能性があります。
- 下層のシステムが、あるブラウザーと互換性がある方式で機能を利用可能にする保証ができないかもしれません。
- ブラウザーのベンダーがある機能への対応を実装するセキュアな方法をまだ見つけていないか、単にまだ実装に手が回っていないかもしれません。
WebGPU アプリケーションにおいて特定の追加機能の恩恵を受けたい場合は、徹底的にテストを行うことを推奨します。
利用可能な機能
実装や物理デバイスによって異なる可能性があり、時間の経過によっても変わる可能性があるので、ここでは WebGPU で使用可能な追加機能の完全な集合を列挙していませんリストは、仕様書内の Feature Index を参照してください。
インスタンスプロパティ
以下のプロパティは、すべての読み取り専用の Set
風オブジェクトで使用可能です。(以下のリンクはグローバルオブジェクト Set
のリファレンスページです)
size
Experimental-
集合に含まれる値の数を返します。
インスタンスメソッド
以下のメソッドは、すべての読み取り専用の Set
風オブジェクトで使用可能です。(以下のリンクはグローバルオブジェクト Set
のリファレンスページです)
has()
Experimental-
指定の値の要素が集合に含まれるか否かを表す論理値を返します。
values()
Experimental-
集合内の各要素の 値 を挿入した順に出力する新しいイテレーターオブジェクトを返します。
keys()
Experimental-
values()
の別名です。 entries()
Experimental-
集合内の各要素に対応する 配列
[value, value]
が挿入した順に含まれる新しいイテレーターオブジェクトを返します。 forEach()
Experimental-
集合内の各要素について挿入した順に指定のコールバック関数を 1 度ずつ呼び出します。
例
async function init() {
if (!navigator.gpu) {
throw Error("WebGPU に対応していません。");
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
throw Error("WebGPU のアダプターを要求できませんでした。");
}
const adapterFeatures = adapter.features;
// 集合のサイズを返す
console.log(adapterFeatures.size);
// アダプターがある機能に対応しているかどうかをチェックする
console.log(adapterFeatures.has("texture-compression-astc"));
// values() を用いて集合のすべての値を走査する
const valueIterator = adapterFeatures.values();
for (const value of valueIterator) {
console.log(value);
}
// keys() を用いて集合のすべての値を走査する
const keyIterator = adapterFeatures.keys();
for (const value of keyIterator) {
console.log(value);
}
// entries() を用いて集合のすべての値を走査する
const entryIterator = adapterFeatures.entries();
for (const entry of entryIterator) {
console.log(entry[0]);
}
// forEach() を用いて集合のすべての値を走査する
adapterFeatures.forEach((value) => {
console.log(value);
});
//...
}
仕様書
Specification |
---|
WebGPU # gpu-supportedfeatures |
ブラウザーの互換性
BCD tables only load in the browser