Start · Sprachen · JavaScript · Referenz · GPUAdapterInfo.isFallbackAdapter

GPUAdapterInfo.isFallbackAdapter

Eigenschaft

Schreibgeschützter boolescher Wert: <code>true</code>, wenn der WebGPU-Adapter ein Ausweichadapter ist (meist eine langsame Software-Implementierung), sonst <code>false</code>.

seit JavaScript WebGPU: Chromium 136+ (Chrome, Edge); in anderen B Kategorie: webapi

Signatur

get GPUAdapterInfo.isFallbackAdapter

Beschreibung

Die Eigenschaft isFallbackAdapter des Interfaces GPUAdapterInfo gibt an, ob der Adapter, den navigator.gpu.requestAdapter() geliefert hat, ein Ausweichadapter ist. Ein solcher Adapter wird vom Browser bereitgestellt, wenn keine passende Hardware-GPU verfügbar ist oder ausdrücklich danach gefragt wurde. Meist handelt es sich um einen Software-Renderer wie SwiftShader, der auf der CPU läuft.

Ausweichadapter erfüllen zwar die WebGPU-Spezifikation, sind aber deutlich langsamer und haben oft niedrigere Grenzwerte (limits). Mit dieser Eigenschaft können Anwendungen deshalb entscheiden, ob sie rechenintensive Aufgaben (3D-Rendering, ML-Inferenz, Compute-Shader) überhaupt über WebGPU ausführen oder lieber auf WebGL, WebAssembly bzw. eine vereinfachte Darstellung ausweichen.

Das GPUAdapterInfo-Objekt erreichen Sie über die Eigenschaft GPUAdapter.info oder, bei einem bereits erzeugten Gerät, über GPUDevice.adapterInfo. Früher gab es die Eigenschaft direkt als GPUAdapter.isFallbackAdapter. Diese ältere Form ist veraltet und wurde entfernt.

Rückgabewert

Typ
boolean
Beschreibung
true, wenn der Adapter ein Ausweichadapter ist (typischerweise eine Software-Implementierung mit deutlich geringerer Leistung), sonst false.

Beispiele

Prüfen, ob der Standard-Adapter ein Ausweichadapter ist

const checkAdapter = async () => {
  if (!('gpu' in navigator)) {
    console.log('WebGPU wird nicht unterstützt.');
    return;
  }
  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    console.log('Kein Adapter verfügbar.');
    return;
  }
  console.log('Ausweichadapter:', adapter.info.isFallbackAdapter);
};

checkAdapter();
Ausweichadapter: false

Bei Software-Rendering auf eine schlankere Darstellung umschalten

const initRenderer = async () => {
  const adapter = await navigator.gpu?.requestAdapter({
    powerPreference: 'high-performance'
  });

  if (!adapter) return { mode: 'webgl' };

  const { isFallbackAdapter, vendor, architecture } = adapter.info;

  if (isFallbackAdapter) {
    console.warn('Nur Software-GPU verfügbar – reduzierte Qualität wird genutzt.');
    return { mode: 'webgpu-low', device: await adapter.requestDevice() };
  }

  console.log(`Hardware-GPU: ${vendor} (${architecture})`);
  return { mode: 'webgpu-high', device: await adapter.requestDevice() };
};

initRenderer().then(({ mode }) => console.log('Modus:', mode));
Hardware-GPU: nvidia (ampere) Modus: webgpu-high

Ausweichadapter gezielt anfordern (z. B. für Tests)

const testFallback = async () => {
  const adapter = await navigator.gpu.requestAdapter({
    forceFallbackAdapter: true
  });

  if (!adapter) {
    console.log('Dieser Browser stellt keinen Ausweichadapter bereit.');
    return;
  }

  const device = await adapter.requestDevice();
  // Auch über das Gerät erreichbar
  console.log(device.adapterInfo.isFallbackAdapter);
};

testFallback();
true

// Wichtig · Fallstricke

  • Veraltete Variante: Die frühere Eigenschaft GPUAdapter.isFallbackAdapter ist veraltet und wurde entfernt. Wenn Sie ältere Browser unterstützen müssen, fragen Sie beide Varianten ab: adapter.info?.isFallbackAdapter ?? adapter.isFallbackAdapter.
  • Kein Ausweichadapter garantiert: Mit requestAdapter({ forceFallbackAdapter: true }) kann der Rückgabewert null sein, wenn der Browser keinen Software-Adapter mitbringt. Prüfen Sie den Adapter immer auf null.
  • Kein Maß für die Leistung: Ist der Wert false, heißt das nur, dass es kein Ausweichadapter ist, nicht dass die GPU schnell ist. Für genauere Entscheidungen werten Sie auch adapter.limits und adapter.features aus.
  • Kompatibilität: WebGPU steht nur in sicheren Kontexten (HTTPS) zur Verfügung. Die Eigenschaft auf GPUAdapterInfo gibt es in Chromium-basierten Browsern ab Version 136. In Firefox und Safari ist die WebGPU-Unterstützung je nach Version und Plattform unterschiedlich, deshalb sollten Sie vorher prüfen, ob die Funktion vorhanden ist.
  • Datenschutz: Die Informationen in GPUAdapterInfo können zum Fingerprinting beitragen. Browser dürfen einzelne Felder daher verallgemeinern oder leer lassen.