GPUBuffer: usage-Eigenschaft
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die schreibgeschützte Eigenschaft usage
des GPUBuffer
-Interfaces enthält die bitweisen Flags, die die erlaubten Nutzungen des GPUBuffer
darstellen.
usage
wird über die usage
-Eigenschaft im Deskriptor-Objekt festgelegt, das in den ursprünglichen GPUDevice.createBuffer()
-Aufruf übergeben wird.
Wert
Die bitweisen Flags, die die ursprünglichen Nutzungen darstellen, die beim ersten Erstellen des GPUBuffer
festgelegt wurden. Die zurückgegebene Zahl ist die Summe der Dezimalwerte, die die verschiedenen Flags repräsentieren, wie in der unten stehenden Tabelle zu sehen ist.
Bitweises Flag | Nutzungsbeschreibung | Hex-Wert | Dezimal-Wert |
---|---|---|---|
GPUBufferUsage.COPY_SRC |
Der Puffer kann als Quelle einer Kopie-Operation verwendet werden, zum Beispiel das Argument source eines copyBufferToBuffer() -Aufrufs. |
0x0004 | 4 |
GPUBufferUsage.COPY_DST |
Der Puffer kann als Ziel einer Kopier-/Schreiboperation verwendet werden, zum Beispiel das Argument destination eines copyTextureToBuffer() -Aufrufs. |
0x0008 | 8 |
GPUBufferUsage.INDEX |
Der Puffer kann als Indexpuffer verwendet werden, zum Beispiel als buffer -Argument, das an setIndexBuffer() übergeben wird. |
0x0010 | 16 |
GPUBufferUsage.INDIRECT |
Der Puffer kann verwendet werden, um indirekte Befehlsargumente zu speichern, zum Beispiel als indirectBuffer -Argument eines drawIndirect() - oder dispatchWorkgroupsIndirect() -Aufrufs. |
0x0100 | 256 |
GPUBufferUsage.MAP_READ |
Der Puffer kann zum Lesen gemappt werden, zum Beispiel beim Aufruf von mapAsync() mit einem mode von GPUMapMode.READ . Dieses Flag kann nur mit GPUBufferUsage.COPY_DST kombiniert werden. |
0x0001 | 1 |
GPUBufferUsage.MAP_WRITE |
Der Puffer kann zum Schreiben gemappt werden, zum Beispiel beim Aufruf von mapAsync() mit einem mode von GPUMapMode.WRITE . Dieses Flag kann nur mit GPUBufferUsage.COPY_SRC kombiniert werden. |
0x0002 | 2 |
GPUBufferUsage.QUERY_RESOLVE |
Der Puffer kann verwendet werden, um Abfrageergebnisse zu erfassen, zum Beispiel als destination -Argument eines resolveQuerySet() -Aufrufs. |
0x0200 | 512 |
GPUBufferUsage.STORAGE |
Der Puffer kann als Speicherpuffer verwendet werden, zum Beispiel als Ressource in einem Bindgruppen-Eintrag beim Erstellen einer GPUBindGroup (über createBindGroup() ), die einem GPUBindGroupLayout -Eintrag entspricht, mit einem Puffereintrags-Layout type von "storage" oder "read-only-storage" . |
0x0080 | 128 |
GPUBufferUsage.UNIFORM |
Der Puffer kann als Uniform-Puffer verwendet werden, zum Beispiel als Ressource in einem Bindgruppen-Eintrag beim Erstellen einer GPUBindGroup (über createBindGroup() ), die einem GPUBindGroupLayout -Eintrag entspricht, mit einem Puffereintrags-Layout type von "uniform" . |
0x0040 | 64 |
GPUBufferUsage.VERTEX |
Der Puffer kann als Vertex-Puffer 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
Siehe auch
- Die WebGPU API