Signatur
Beschreibung
Die schreibgeschützte Eigenschaft description eines GPUAdapterInfo-Objekts enthält einen Klartext, der den physischen oder virtuellen Grafikadapter beschreibt, zum Beispiel "NVIDIA GeForce RTX 3070" oder "ANGLE (Apple, Apple M1, OpenGL 4.1)". Ist diese Information nicht verfügbar oder wird sie aus Datenschutzgründen zurückgehalten, ist der Wert ein leerer String "".
An das GPUAdapterInfo-Objekt kommen Sie über die Eigenschaft GPUAdapter.info. Ältere Implementierungen boten stattdessen die asynchrone Methode GPUAdapter.requestAdapterInfo() an. Den Adapter selbst erhalten Sie mit navigator.gpu.requestAdapter().
Gedacht ist description vor allem für Diagnose, Logging und Fehlerberichte, etwa um in einem Absturzbericht festzuhalten, auf welcher Hardware ein Rendering-Fehler aufgetreten ist. Für Programmlogik wie Feature-Erkennung oder Leistungsstufen eignet sich die Eigenschaft nicht: Format und Inhalt sind nicht standardisiert und können je nach Browser, Treiber und Betriebssystem unterschiedlich ausfallen. Für Programmlogik sind GPUAdapter.features und GPUAdapter.limits die richtige Wahl.
Rückgabewert
"", wenn sie nicht verfügbar ist.Beispiele
Adapterbeschreibung auslesen
const zeigeAdapter = 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 { description } = adapter.info;
console.log(description || '(keine Beschreibung verfügbar)');
};
zeigeAdapter();
Kompatibel mit älteren Browsern (requestAdapterInfo)
const holeAdapterInfo = async (adapter) => {
// Neuere Browser: synchrone Eigenschaft info
if (adapter.info) return adapter.info;
// Ältere Chrome-Versionen: asynchrone Methode
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('Beschreibung:', info?.description ?? 'unbekannt');
}
Hardware-Angaben für einen Fehlerbericht sammeln
const erstelleDiagnose = async () => {
const adapter = await navigator.gpu?.requestAdapter({ powerPreference: 'high-performance' });
if (!adapter) return { webgpu: false };
const { vendor, architecture, device, description } = adapter.info;
return {
webgpu: true,
vendor: vendor || 'unbekannt',
architecture: architecture || 'unbekannt',
device: device || 'unbekannt',
description: description || 'unbekannt',
maxTextureDimension2D: adapter.limits.maxTextureDimension2D
};
};
console.log(JSON.stringify(await erstelleDiagnose(), null, 2));
// Wichtig · Fallstricke
- Häufig leer: Viele Browser liefern für
description(unddevice) aus Datenschutzgründen einen leeren String, weil detaillierte Hardware-Angaben für Browser-Fingerprinting missbraucht werden können. Ihr Code muss mit""rechnen. - Nicht für Programmlogik nutzen: Der Inhalt ist nicht standardisiert und hängt von Browser und Treiber ab. Leiten Sie daraus keine Feature- oder Leistungsentscheidungen ab, sondern verwenden Sie
adapter.featuresundadapter.limits. - API-Änderung:
GPUAdapter.requestAdapterInfo()ist veraltet und wurde durch die synchrone EigenschaftGPUAdapter.infoersetzt (Chrome 127+). Für ältere Versionen ist ein Fallback sinnvoll. - Kompatibilität: WebGPU ist nur in sicheren Kontexten (HTTPS) verfügbar. Chrome/Edge unterstützen es ab Version 113 (Linux teilweise erst später), Safari ab 26, Firefox ab 141 zunächst nur unter Windows. Prüfen Sie vorher immer, ob
navigator.gpuvorhanden ist. - Die Eigenschaft ist schreibgeschützt. Zuweisungen werden ignoriert oder lösen im Strict Mode einen
TypeErroraus.