Signatur
Beschreibung
Die Eigenschaft label des Interfaces GPUSampler enthält einen frei wählbaren Namen für das Sampler-Objekt. Der Browser setzt diesen Namen in GPUError-Meldungen, Validierungswarnungen in der Konsole und in Grafik-Debuggern ein. So erkennt man schneller, welcher Sampler ein Problem auslöst.
Das Label legt man normalerweise gleich beim Erzeugen fest, und zwar über die Option label im Deskriptor von GPUDevice.createSampler(). Weil die Eigenschaft nicht schreibgeschützt ist, kann man sie aber auch später noch ändern, etwa wenn ein Sampler in einem Material-System eine neue Aufgabe bekommt.
Auf das Filtern oder die Adressierung der Texturen hat das Label keinen Einfluss. Es dient nur zur Diagnose. Wird kein Label angegeben, ist der Wert ein leerer String ("").
Rückgabewert
"".Beispiele
Label beim Erzeugen setzen und auslesen
const adapter = await navigator.gpu?.requestAdapter();
if (!adapter) throw new Error('WebGPU nicht verfügbar');
const device = await adapter.requestDevice();
const sampler = device.createSampler({
label: 'linearer-wiederholender-sampler',
magFilter: 'linear',
minFilter: 'linear',
addressModeU: 'repeat',
addressModeV: 'repeat',
});
console.log(sampler.label);
Label nachträglich zuweisen
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const sampler = device.createSampler({ magFilter: 'nearest' });
console.log(JSON.stringify(sampler.label)); // noch kein Label
sampler.label = 'pixelart-sampler';
console.log(sampler.label);
Label in Validierungsfehlern wiederfinden
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
device.pushErrorScope('validation');
// Ungültig: maxAnisotropy > 1 verlangt, dass alle Filter 'linear' sind
const sampler = device.createSampler({
label: 'schatten-sampler',
maxAnisotropy: 4,
magFilter: 'nearest',
});
const error = await device.popErrorScope();
if (error) {
// Die Meldung enthält typischerweise das Label, z. B. [Sampler "schatten-sampler"]
console.warn(error.message);
}
// Wichtig · Fallstricke
- Nur zur Diagnose: Das Label verändert das Sampling nicht. Wie oder ob es in Fehlermeldungen auftaucht, bestimmt der jeweilige Browser.
- Eindeutige Namen wählen: Mehrere Sampler mit gleichem Label machen das Debugging schwerer. Beschreibende Namen wie
"ui-nearest-clamp"haben sich bewährt. - Keine sensiblen Daten: Labels können in Konsolenausgaben, Fehlerberichten und Debug-Werkzeugen erscheinen. Nutzerdaten gehören deshalb nicht hinein.
- Kompatibilität: WebGPU steht nur in sicheren Kontexten (HTTPS) zur Verfügung und wird noch nicht überall unterstützt. Vor der Nutzung sollte man
navigator.gpuprüfen. Alle WebGPU-Objekte haben einelabel-Eigenschaft (sie stammt aus dem MixinGPUObjectBase).