files/en-us/web/api/gpubuffer/getmappedrange/index.md
{{APIRef("WebGPU API")}}{{SecureContext_Header}}{{AvailableInWorkers}}
The getMappedRange() method of the
{{domxref("GPUBuffer")}} interface returns an {{jsxref("ArrayBuffer")}} containing the mapped contents of the GPUBuffer in the specified range.
This can only happen once the GPUBuffer has been successfully mapped with {{domxref("GPUBuffer.mapAsync()")}} (this can be checked via {{domxref("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 {{domxref("GPUBuffer.unmap()")}} to unmap it, making it accessible to the GPU again. A TypeError is thrown if an attempt is made to detach the {{jsxref("ArrayBuffer")}} in any way other than via {{domxref("GPUBuffer.unmap()")}}, such as by calling {{jsxref("ArrayBuffer/transfer", "transfer()")}}.
getMappedRange()
getMappedRange(offset)
getMappedRange(offset, size)
offset {{optional_inline}}
GPUBuffer's mapped range to the start of the range to be returned in the {{jsxref("ArrayBuffer")}}. If offset is omitted, it defaults to 0.size {{optional_inline}}
size is omitted, the range extends to the end of the GPUBuffer's mapped range.An {{jsxref("ArrayBuffer")}}.
The following criteria must be met when calling getMappedRange(), otherwise an OperationError {{domxref("DOMException")}} is thrown:
offset is a multiple of 8.size if specified, or mapped range length - offset if not) is a multiple of 4.getMappedRange() calls.See the main GPUBuffer page for an example.
{{Specifications}}
{{Compat}}