deno.com

class GPUBuffer

implements GPUObjectBase

Represents a block of memory allocated on the GPU.

Examples #

#
// 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: string
#size: number
readonly

Methods #

#destroy(): undefined
#getMappedRange(
offset?: number,
size?: number,
): ArrayBuffer
#mapAsync(
offset?: number,
size?: number,
): Promise<undefined>
#unmap(): undefined