Signatur
Beschreibung
Die Methode requestAdapterInfo() der WebGPU-Schnittstelle GPUAdapter liefert asynchron ein GPUAdapterInfo-Objekt. Darin stehen Angaben zum physischen oder Software-Adapter: vendor (Hersteller), architecture (GPU-Familie), device (herstellerspezifische Gerätekennung) und description (lesbare Beschreibung, z. B. vom Treiber).
Diese Informationen nutzt man vor allem für Diagnose, Logging und Fehlerberichte. Man kann damit auch gezielt Workarounds für bekannte Treiberfehler bestimmter Hersteller einbauen. Für Entscheidungen über Funktionen sollte man sich trotzdem auf adapter.features und adapter.limits verlassen und nicht auf Herstellernamen.
Wichtig: Die Methode ist veraltet. Die WebGPU-Spezifikation hat sie durch die synchrone Eigenschaft GPUAdapter.info ersetzt. Chrome bietet info seit Version 127 an und hat requestAdapterInfo() in Version 131 entfernt. Neuer Code sollte adapter.info verwenden und höchstens für ältere Browser auf requestAdapterInfo() zurückgreifen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $unmaskHints | Array<string> | [] | Nur in frühen Entwürfen, inzwischen entfernt. Liste von Feldnamen (z. B. "vendor", "architecture"), deren echte Werte angefordert werden sollten. Das konnte eine Nutzerberechtigung auslösen. Aktuelle Umsetzungen erwarten keine Argumente. |
Rückgabewert
GPUAdapterInfo-Objekt erfüllt wird. Es enthält die Eigenschaften vendor, architecture, device und description (alle vom Typ string). Ist ein Wert unbekannt oder wird er aus Datenschutzgründen verborgen, ist er ein leerer String.Beispiele
Adapter-Informationen abfragen (ältere Browser)
const logAdapterInfo = async () => {
if (!navigator.gpu) {
console.warn('WebGPU wird nicht unterstützt.');
return;
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
console.warn('Kein passender GPU-Adapter gefunden.');
return;
}
const info = await adapter.requestAdapterInfo();
console.log(`Hersteller: ${info.vendor}`);
console.log(`Architektur: ${info.architecture}`);
};
logAdapterInfo();
Zukunftssichere Variante mit Rückfall auf die veraltete Methode
const getAdapterInfo = async (adapter) => {
// Aktueller Standard: synchrone Eigenschaft
if (adapter.info) return adapter.info;
// Rückfall für ältere Chromium-Versionen
if (typeof adapter.requestAdapterInfo === 'function') {
return adapter.requestAdapterInfo();
}
return null;
};
const adapter = await navigator.gpu?.requestAdapter();
if (adapter) {
const info = await getAdapterInfo(adapter);
console.log(info ? `${info.vendor} / ${info.architecture}` : 'Keine Angaben');
}
Adapterdaten in einen Fehlerbericht aufnehmen
const buildDiagnostics = async () => {
const adapter = await navigator.gpu.requestAdapter({ powerPreference: 'high-performance' });
const info = adapter.info ?? (await adapter.requestAdapterInfo());
return {
vendor: info.vendor || 'unbekannt',
architecture: info.architecture || 'unbekannt',
device: info.device || 'unbekannt',
description: info.description || 'unbekannt',
maxTextureSize: adapter.limits.maxTextureDimension2D,
features: [...adapter.features]
};
};
buildDiagnostics().then((report) => console.log(JSON.stringify(report, null, 2)));
// Wichtig · Fallstricke
- Veraltet und entfernt: In Chrome/Edge ab Version 131 gibt es
requestAdapterInfo()nicht mehr. Ein Aufruf löst dann einenTypeErroraus („is not a function“). Verwendeadapter.info(ab Chrome 127, Firefox und Safari mit WebGPU) und prüfe vor einem Rückfall auf die alte Methode, ob sie existiert. - Datenschutz: Browser geben die Werte oft nur grob oder als leeren String zurück, um Fingerprinting zu erschweren.
deviceunddescriptionsind häufig leer. Rechne also immer mit leeren Strings. - Keine Funktionserkennung über Herstellernamen: Ob eine Funktion verfügbar ist, erkennst du über
adapter.featuresundadapter.limits. Herstellerangaben eignen sich nur für Diagnose oder gezielte Treiber-Workarounds. - Sicherer Kontext: WebGPU steht nur über HTTPS bzw.
localhostzur Verfügung.navigator.gpu.requestAdapter()kannnullliefern. Das musst du vor dem Zugriff abfangen. - Der frühere Parameter
unmaskHintswurde aus der Spezifikation gestrichen und wird von keinem aktuellen Browser unterstützt.