GPUBuffer: getMappedRange() method
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The getMappedRange() method of the
GPUBuffer interface returns an ArrayBuffer containing the mapped contents of the GPUBuffer in the specified range.
This can only happen once the GPUBuffer has been successfully mapped with GPUBuffer.mapAsync() (this can be checked via GPUBuffer.mapState). While the GPUBuffer is mapped it cannot be used in any GPU commands.
When you have finished working with the GPUBuffer values, call GPUBuffer.unmap() to unmap it, making it accessible to the GPU again.
Syntax
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)
Parameters
offsetOptional-
A number representing the offset, in bytes, from the start of the
GPUBuffer's mapped range to the start of the range to be returned in theArrayBuffer. Ifoffsetis omitted, it defaults to 0. sizeOptional-
A number representing the size, in bytes, of the
ArrayBufferto return. Ifsizeis omitted, the range extends to the end of theGPUBuffer's mapped range.
Return value
An ArrayBuffer.
Validation
The following criteria must be met when calling getMappedRange(), otherwise an OperationError DOMException is thrown:
offsetis a multiple of 8.- The total range to be mapped (
sizeif specified, or mapped range length -offsetif not) is a multiple of 4. - The total range is inside the bounds of the mapped range and does not overlap with the
ArrayBufferranges specified by any other activegetMappedRange()calls.
Exceptions
TypeErrorDOMException-
Thrown if an attempt is made to detach the
ArrayBufferin any way other than viaGPUBuffer.unmap().
Examples
See the main GPUBuffer page for an example.
Specifications
| Specification |
|---|
| WebGPU # dom-gpubuffer-getmappedrange |
Browser compatibility
BCD tables only load in the browser
See also
- The WebGPU API