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
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
- Die WebGPU-API