Start · Sprachen · JavaScript · Referenz · GPUSampler.label

GPUSampler.label

Eigenschaft

Eine lesbare und beschreibbare Zeichenkette, die einen <code>GPUSampler</code> benennt, etwa für Fehlermeldungen, Konsolenwarnungen und Debugging-Werkzeuge.

seit JavaScript WebGPU – Chrome/Edge 113+, Firefox 141+ (Windows), Kategorie: webapi

Signatur

GPUSampler.label

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

Typ
string
Beschreibung
Das aktuelle Label des Samplers. Wurde keines gesetzt, ist es ein leerer String "".

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);
linearer-wiederholender-sampler

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);
"" pixelart-sampler

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);
}
(browserabhängige Meldung, die „schatten-sampler“ erwähnt)

// 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.gpu prüfen. Alle WebGPU-Objekte haben eine label-Eigenschaft (sie stammt aus dem Mixin GPUObjectBase).