Limited availability
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The createBuffer()
method of the GPUDevice
interface creates a GPUBuffer
in which to store raw data to use in GPU operations.
descriptor
An object containing the following properties:
label
Optional
A string providing a label that can be used to identify the object, for example in GPUError
messages or console warnings.
mappedAtCreation
Optional
A boolean. If set to true
, the buffer will be mapped upon creation, meaning that you can set the values inside the buffer immediately by calling GPUBuffer.getMappedRange()
. The default value is false
.
Note that it is valid to set mappedAtCreation: true
so you can set the buffer's initial data, even if the GPUBufferUsage.MAP_READ
or GPUBufferUsage.MAP_WRITE
usage flags are not set.
size
A number representing the size of the buffer, in bytes.
usage
The bitwise flags representing the allowed usages for the GPUBuffer
. The possible values are in the GPUBuffer.usage
value table.
Note that multiple possible usages can be specified by separating values with bitwise OR, for example: GPUBufferUsage.COPY_SRC | GPUBufferUsage.MAP_WRITE
.
A GPUBuffer
object instance.
The following criteria must be met when calling createBuffer()
, otherwise a GPUValidationError
is generated and an invalid GPUBuffer
object is returned:
usage
is specified.GPUBufferUsage.MAP_READ
is specified, and no additional flags are specified other than GPUBufferUsage.COPY_DST
.GPUBufferUsage.MAP_WRITE
is specified, and no additional flags are specified other than GPUBufferUsage.COPY_SRC
.mappedAtCreation: true
is specified, and the specified size
is a multiple of 4.Note: If the buffer allocation fails without any specific side-effects, a GPUOutOfMemoryError
object is generated.
In our basic compute demo, we create an output buffer to read GPU calculations to, and a staging buffer to be mapped for JavaScript access.
const output = device.createBuffer({
size: BUFFER_SIZE,
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_SRC,
});
const stagingBuffer = device.createBuffer({
size: BUFFER_SIZE,
usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST,
});
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4