GPUBuffer: usage-Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die usage-Eigenschaft der GPUBuffer-Schnittstelle enthält die bitweisen Flags, die die erlaubten Verwendungen des GPUBuffer darstellen. Diese Eigenschaft ist nur lesbar.

usage wird über die usage-Eigenschaft im Deskriptor-Objekt gesetzt, das dem ursprünglichen Aufruf zu GPUDevice.createBuffer() übergeben wird.

Wert

Die bitweisen Flags, die die ursprünglich festgelegten Verwendungen repräsentieren, als der GPUBuffer zuerst erstellt wurde. Die zurückgegebene Zahl ist die Summe der Dezimalwerte, die die verschiedenen Flags repräsentieren, wie in der Tabelle unten zu sehen ist.

Bitweises Flag Verwendungsbeschreibung Hex-Äquivalent Dezimal-Äquivalent
GPUBufferUsage.COPY_SRC Der Buffer kann als Quelle einer Kopieroperation verwendet werden, zum Beispiel als Quellargument eines copyBufferToBuffer()-Aufrufs. 0x0004 4
GPUBufferUsage.COPY_DST Der Buffer kann als Ziel einer Kopier-/Schreiboperation verwendet werden, zum Beispiel als Zielargument eines copyTextureToBuffer()-Aufrufs. 0x0008 8
GPUBufferUsage.INDEX Der Buffer kann als Index-Buffer verwendet werden, zum Beispiel als buffer-Argument, das an setIndexBuffer() übergeben wird. 0x0010 16
GPUBufferUsage.INDIRECT Der Buffer kann verwendet werden, um indirekte Befehlsargumente zu speichern, zum Beispiel als indirectBuffer-Argument eines drawIndirect() oder dispatchWorkgroupsIndirect()-Aufrufs. 0x0100 256
GPUBufferUsage.MAP_READ Der Buffer kann zum Lesen abgebildet werden, zum Beispiel wenn mapAsync() mit einem mode von GPUMapMode.READ aufgerufen wird. Dieses Flag kann nur mit GPUBufferUsage.COPY_DST kombiniert werden. 0x0001 1
GPUBufferUsage.MAP_WRITE Der Buffer kann zum Schreiben abgebildet werden, zum Beispiel wenn mapAsync() mit einem mode von GPUMapMode.WRITE aufgerufen wird. Dieses Flag kann nur mit GPUBufferUsage.COPY_SRC kombiniert werden. 0x0002 2
GPUBufferUsage.QUERY_RESOLVE Der Buffer kann verwendet werden, um Abfrageergebnisse zu erfassen, zum Beispiel als Zielargument eines resolveQuerySet()-Aufrufs. 0x0200 512
GPUBufferUsage.STORAGE Der Buffer kann als Speicherpuffer verwendet werden, zum Beispiel als Ressource in einem Bind-Group-Eintrag beim Erstellen einer GPUBindGroup (über createBindGroup()), die einem GPUBindGroupLayout-Eintrag mit einem Pufferspeicher-Layout-type von "storage" oder "read-only-storage" entspricht. 0x0080 128
GPUBufferUsage.UNIFORM Der Buffer kann als Uniform-Buffer verwendet werden, zum Beispiel als Ressource in einem Bind-Group-Eintrag beim Erstellen einer GPUBindGroup (über createBindGroup()), die einem GPUBindGroupLayout-Eintrag mit einem Pufferspeicher-Layout-type von "uniform" entspricht. 0x0040 64
GPUBufferUsage.VERTEX Der Buffer kann als Vertex-Buffer verwendet werden, zum Beispiel als buffer-Argument, das an setVertexBuffer() übergeben wird. 0x0020 32

Beispiele

js
const output = device.createBuffer({
  size: BUFFER_SIZE,
  usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
});

console.log(output.usage); // 132

const stagingBuffer = device.createBuffer({
  size: BUFFER_SIZE,
  usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
});

console.log(stagingBuffer.usage); // 9

Spezifikationen

Specification
WebGPU
# dom-gpubuffer-usage

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch