GPUAdapter: features プロパティ

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

GPUAdapter インターフェイスの読み取り専用プロパティ features は、アダプターが対応している追加の機能を表現する GPUSupportedFeatures オブジェクトを返します。

仮想のハードウェアで対応している機能であっても、対応するすべてのブラウザーの WebGPU ですべての機能が使用できるわけではないことに注意するべきです。これは、たとえば以下の場合など、仮想のシステム、ブラウザー、アダプターの制約によるものである可能性があります。

  • 仮想のシステムがあるブラウザーと互換性がある方法で機能を利用可能にする保証ができないかもしれません。
  • ブラウザーのベンダーが機能への対応を実装するセキュアな方法をまだ見つけられていないか、単に実装まで手が回っていないかもしれません。

WebGPU アプリケーションで特定の追加機能の恩恵を受けたい場合は、徹底的にテストすることが推奨されます。

GPUSupportedFeatures オブジェクトのインスタンスです。これは Set 風オブジェクトです。

以下のコードでは、GPUAdaptertexture-compression-astc 機能が利用可能かをチェックします。利用可能であれば、それを配列 requiredFeatures にプッシュし、GPUAdapter.requestDevice() でこの機能を要件としてデバイスを要求します。

js
async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU に対応していません。");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("WebGPU アダプターを要求できませんでした。");
  }

  const requiredFeatures = [];

  if (adapter.features.has("texture-compression-astc")) {
    requiredFeatures.push("texture-compression-astc");
  }

  const device = await adapter.requestDevice({
    requiredFeatures,
  });

  // ...
}

仕様書

Specification
WebGPU
# dom-gpuadapter-features

ブラウザーの互換性

BCD tables only load in the browser

関連情報