Signatur
Beschreibung
Die Eigenschaft vendor der Schnittstelle GPUAdapterInfo gibt den Namen des Herstellers des physischen oder softwarebasierten Grafikadapters zurück. Typische Werte sind kurze, klein geschriebene Kennungen wie "nvidia", "amd", "intel", "apple", "qualcomm" oder "arm". Kann oder will der Browser die Information nicht preisgeben, ist der Wert ein leerer String "".
An ein GPUAdapterInfo-Objekt kommt man in aktuellen Browsern synchron über die Eigenschaft GPUAdapter.info bzw. über GPUDevice.adapterInfo. Ältere Implementierungen boten stattdessen die asynchrone Methode GPUAdapter.requestAdapterInfo() an, die inzwischen entfernt wurde.
Einsatzgebiete sind vor allem Diagnose und Telemetrie (z. B. Fehlerberichte mit Hardware-Angaben), das Anzeigen von Systeminformationen im UI sowie – mit Vorsicht – gezielte Umgehungen bekannter Treiberfehler eines bestimmten Herstellers. Für Entscheidungen über Funktionsumfang sollte man dagegen immer adapter.features und adapter.limits auswerten, nicht den Herstellernamen.
Rückgabewert
"intel") oder ein leerer String, wenn der Wert nicht verfügbar ist oder aus Datenschutzgründen zurückgehalten wird.Beispiele
Hersteller des Standard-Adapters auslesen
const zeigeHersteller = async () => {
if (!navigator.gpu) {
console.log('WebGPU wird nicht unterstützt.');
return;
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
console.log('Kein passender GPU-Adapter gefunden.');
return;
}
const { vendor } = adapter.info;
console.log(`GPU-Hersteller: ${vendor || 'unbekannt'}`);
};
zeigeHersteller();
Kompatibel mit älteren Browsern (requestAdapterInfo)
const holeAdapterInfo = async (adapter) => {
// Neue API: synchrone Eigenschaft
if (adapter.info) return adapter.info;
// Alte API: asynchrone Methode (inzwischen entfernt)
if (typeof adapter.requestAdapterInfo === 'function') {
return adapter.requestAdapterInfo();
}
return null;
};
const adapter = await navigator.gpu?.requestAdapter();
if (adapter) {
const info = await holeAdapterInfo(adapter);
console.log(info?.vendor ?? 'keine Info');
}
Hardware-Angaben für einen Fehlerbericht sammeln
const sammleGpuDiagnose = async () => {
const adapter = await navigator.gpu?.requestAdapter({ powerPreference: 'high-performance' });
if (!adapter) return { webgpu: false };
const device = await adapter.requestDevice();
const info = device.adapterInfo ?? adapter.info;
return {
webgpu: true,
vendor: info.vendor || '(nicht verfügbar)',
architecture: info.architecture || '(nicht verfügbar)',
maxTextureSize: adapter.limits.maxTextureDimension2D
};
};
sammleGpuDiagnose().then((daten) => console.log(JSON.stringify(daten)));
// Wichtig · Fallstricke
- Leerer String ist normal: Browser dürfen den Hersteller aus Datenschutzgründen (Schutz vor Fingerprinting) zurückhalten. Prüfen Sie immer auf
""und bauen Sie keine Logik, die zwingend einen Wert erwartet. - Kein Ersatz für Feature-Erkennung: Verzweigen Sie nicht anhand von
vendor, um Funktionen freizuschalten. Nutzen Sieadapter.featuresundadapter.limits. Herstellerabhängige Workarounds nur gezielt für bekannte Treiberfehler. - Format nicht garantiert: Die Spezifikation legt keine festen Werte fest. Es kann sich um einen Namen oder eine Kennung handeln, und Browser können unterschiedliche Schreibweisen liefern. Vergleiche deshalb am besten ohne Beachtung der Groß-/Kleinschreibung durchführen.
- API-Änderung:
GPUAdapter.requestAdapterInfo()(asynchron) wurde durch die synchrone EigenschaftGPUAdapter.infoersetzt (Chrome 127+). Für ältere Browser ist eine Fallback-Prüfung sinnvoll. - Kompatibilität: WebGPU steht nur in sicheren Kontexten (HTTPS) zur Verfügung, auch in Web Workern. Unterstützt in Chromium-Browsern ab 113 (auf Linux teils nur mit Flag), in Safari ab 26 und in Firefox ab 141 (zunächst unter Windows). Vorher immer
navigator.gpuprüfen. - Die Eigenschaft ist schreibgeschützt. Zuweisungen werden stillschweigend ignoriert bzw. werfen im Strict Mode einen
TypeError.