GPUBuffer

class

class GPUBuffer implements GPUObjectBase

Represents a block of memory allocated on the GPU.

Example

// Create a buffer that can be used as a vertex buffer and can be written to
const vertexBuffer = device.createBuffer({
  label: "Vertex Buffer",
  size: vertices.byteLength,
  usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
});

// Write data to the buffer
device.queue.writeBuffer(vertexBuffer, 0, vertices);

// Example of creating a mapped buffer for CPU access
const stagingBuffer = device.createBuffer({
  size: data.byteLength,
  usage: GPUBufferUsage.MAP_WRITE | GPUBufferUsage.COPY_SRC,
  mappedAtCreation: true,
});

// Copy data to the mapped buffer
new Uint8Array(stagingBuffer.getMappedRange()).set(data);
stagingBuffer.unmap();

Properties

label

label: string

size

readonly size: number

usage

readonly usage: GPUFlagsConstant

mapState

readonly mapState: GPUBufferMapState

Methods

mapAsync

mapAsync(mode: GPUMapModeFlags, offset?: number, size?: number): Promise<undefined>

getMappedRange

getMappedRange(offset?: number, size?: number): ArrayBuffer

unmap

unmap(): undefined

destroy

destroy(): undefined