Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web APIs
  3. GPUBuffer
  4. mapAsync()

GPUBuffer: mapAsync() method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.

Note: This feature is available inWeb Workers.

ThemapAsync() method of theGPUBuffer interface maps the specified range of theGPUBuffer. It returns aPromise that resolves when theGPUBuffer's content is ready to be accessed. While theGPUBuffer is mapped it cannot be used in any GPU commands.

Once the buffer is successfully mapped (which can be checked viaGPUBuffer.mapState), calls toGPUBuffer.getMappedRange() will return anArrayBuffer containing theGPUBuffer's current values, to be read and updated by JavaScript as required.

When you have finished working with theGPUBuffer values, callGPUBuffer.unmap() to unmap it, making it accessible to the GPU again.

Syntax

js
mapAsync(mode)mapAsync(mode, offset, size)

Parameters

mode

Abitwise flag that specifies whether theGPUBuffer is mapped for reading or writing. Possible values are:

GPUMapMode.READ

TheGPUBuffer is mapped for reading. Values can be read, but any changes made to theArrayBuffer returned byGPUBuffer.getMappedRange() will be discarded onceGPUBuffer.unmap() is called.

Read-mode mapping can only be used onGPUBuffers that have a usage ofGPUBufferUsage.MAP_READ set on them (i.e., when created withGPUDevice.createBuffer()).

GPUMapMode.WRITE

TheGPUBuffer is mapped for writing. Values can be read and updated — any changes made to theArrayBuffer returned byGPUBuffer.getMappedRange() will be saved to theGPUBuffer onceGPUBuffer.unmap() is called.

Write-mode mapping can only be used onGPUBuffers that have a usage ofGPUBufferUsage.MAP_WRITE set 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. Ifoffset is omitted, it defaults to 0.

sizeOptional

A number representing the size, in bytes, of the range to be mapped. Ifsize is omitted, the range mapped extends to the end of theGPUBuffer.

Return value

APromise that resolves toUndefined when theGPUBuffer's content is ready to be accessed.

Validation

The following criteria must be met when callingmapAsync(), otherwise anOperationErrorDOMException is thrown, the promise is rejected, and aGPUValidationError is generated:

  • offset is a multiple of 8.
  • The total range to be mapped (size if specified, orGPUBuffer.size -offset if not) is a multiple of 4.
  • The total range to be mapped is inside the bounds of theGPUBuffer.
  • If mode isGPUMapMode.READ, theGPUBuffer has a usage ofGPUBufferUsage.MAP_READ.
  • If mode isGPUMapMode.WRITE, theGPUBuffer has a usage ofGPUBufferUsage.MAP_WRITE.

Examples

See themainGPUBuffer page for an example.

Specifications

Specification
WebGPU
# dom-gpubuffer-mapasync

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp