GPUBuffer: mapAsync() method - Web APIs | MDN
Syntax
js
mapAsync(mode)
mapAsync(mode, offset, size)
Parameters
mode-
A bitwise flag that specifies whether the
GPUBufferis mapped for reading or writing. Possible values are:GPUMapMode.READ-
The
GPUBufferis mapped for reading. Values can be read, but any changes made to theArrayBufferreturned byGPUBuffer.getMappedRange()will be discarded onceGPUBuffer.unmap()is called.Read-mode mapping can only be used on
GPUBuffers that have a usage ofGPUBufferUsage.MAP_READset on them (i.e., when created withGPUDevice.createBuffer()). GPUMapMode.WRITE-
The
GPUBufferis mapped for writing. Values can be read and updated — any changes made to theArrayBufferreturned byGPUBuffer.getMappedRange()will be saved to theGPUBufferonceGPUBuffer.unmap()is called.Write-mode mapping can only be used on
GPUBuffers that have a usage ofGPUBufferUsage.MAP_WRITEset on them (i.e., when created withGPUDevice.createBuffer()).
offsetOptional-
A number representing the offset, in bytes, from the start of the buffer to the start of the range to be mapped. If
offsetis omitted, it defaults to 0. sizeOptional-
A number representing the size, in bytes, of the range to be mapped. If
sizeis omitted, the range mapped extends to the end of theGPUBuffer.
Return value
A Promise that resolves to Undefined when the GPUBuffer's content is ready to be accessed.
Validation
The following criteria must be met when calling mapAsync(), otherwise an OperationError DOMException is thrown, the promise is rejected, and a GPUValidationError is generated:
offsetis a multiple of 8.- The total range to be mapped (
sizeif specified, orGPUBuffer.size-offsetif not) is a multiple of 4. - The total range to be mapped is inside the bounds of the
GPUBuffer. - If mode is
GPUMapMode.READ, theGPUBufferhas a usage ofGPUBufferUsage.MAP_READ. - If mode is
GPUMapMode.WRITE, theGPUBufferhas a usage ofGPUBufferUsage.MAP_WRITE.
Examples
See the main GPUBuffer page for an example.
Specifications
| Specification |
|---|
| WebGPU # dom-gpubuffer-mapasync |
Browser compatibility
See also
- The WebGPU API