Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions files/en-us/web/api/gpudevice/createbuffer/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ createBuffer(descriptor)
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.
- : A number representing the size of the buffer, in bytes. If `mappedAtCreation` is set to `true`, this must be a multiple of `4`.
- `usage`
- : The {{glossary("Bitwise flags", "bitwise flags")}} representing the allowed usages for the `GPUBuffer`. The possible values are in the [`GPUBuffer.usage` value table](/en-US/docs/Web/API/GPUBuffer/usage#value).

Expand All @@ -39,14 +39,18 @@ createBuffer(descriptor)

A {{domxref("GPUBuffer")}} object instance.

### Exceptions

- `RangeError` {{domxref("DOMException")}}
- : Thrown if `mappedAtCreation` is set to `true`, and the specified `size` is not a multiple of `4`.

### Validation

The following criteria must be met when calling **`createBuffer()`**, otherwise a {{domxref("GPUValidationError")}} is generated and an invalid {{domxref("GPUBuffer")}} object is returned:

- A valid `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 {{domxref("GPUOutOfMemoryError")}} object is generated.
Expand Down