Skip to main content
torch.js has not been released yet.
torch.js logotorch.js logotorch.js
PlaygroundContact
Login
Documentation
IntroductionType SafetyTensor ExpressionsTensor IndexingEinsumEinopsAutogradTraining a ModelProfiling & MemoryPyTorch MigrationBest PracticesRuntimesPerformancePyTorch CompatibilityBenchmarksDType Coverage
Introduction
createdestroyBufferUsageMapModeShaderStageBufferHandleDeviceHandleAdapterHandleShaderModuleHandleComputePipelineHandleBindGroupHandleBindGroupLayoutHandleCommandEncoderHandleCommandBufferHandleComputePassEncoderHandleQuerySetHandleQueueHandleWGPUBufferWGPUShaderModuleWGPUBindGroupLayoutWGPUBindGroupWGPUComputePipelineWGPUQuerySetWGPUComputePassEncoderWGPUCommandBufferWGPUCommandEncoderWGPUQueueWGPULimitsBufferDescriptorShaderModuleDescriptorComputePipelineDescriptorBufferBindingBindGroupEntryBindGroupDescriptorQuerySetDescriptorWGPUDeviceWGPUSupportedFeaturesWGPUAdapterWGPU
torch.js· 2026
LegalTerms of UsePrivacy Policy
/
/
  1. docs
  2. dawn
  3. dawn
  4. BufferUsage

dawn.BufferUsage

Bit flags for GPU buffer usage capabilities.

Specifies what operations a buffer can be used for. Multiple flags can be combined with bitwise OR. For example: BufferUsage.STORAGE | BufferUsage.COPY_DST creates a buffer that can be used as a storage buffer and written to.

BufferUsage = {
  /**
   * Buffer can be mapped for reading (CPU → GPU transfer).
   */
  MAP_READ: 0x0001,

  /**
   * Buffer can be mapped for writing (GPU → CPU transfer).
   */
  MAP_WRITE: 0x0002,

  /**
   * Buffer can be the source of a copy operation.
   */
  COPY_SRC: 0x0004,

  /**
   * Buffer can be the destination of a copy operation.
   */
  COPY_DST: 0x0008,

  /**
   * Buffer can be used as an index buffer in render passes.
   */
  INDEX: 0x0010,

  /**
   * Buffer can be used as a vertex buffer in render passes.
   */
  VERTEX: 0x0020,

  /**
   * Buffer can be used as a uniform buffer in shaders.
   * Read-only from shader perspective.
   */
  UNIFORM: 0x0040,

  /**
   * Buffer can be used as a storage buffer in shaders.
   * Can be read and written by shaders.
   */
  STORAGE: 0x0080,

  /**
   * Buffer can be used as an indirect buffer for dispatch calls.
   */
  INDIRECT: 0x0100,

  /**
   * Buffer can be the destination for query results.
   */
  QUERY_RESOLVE: 0x0200,
} as const
MAP_READ(number)
– Buffer can be mapped for reading (CPU → GPU transfer).
MAP_WRITE(number)
– Buffer can be mapped for writing (GPU → CPU transfer).
COPY_SRC(number)
– Buffer can be the source of a copy operation.
COPY_DST(number)
– Buffer can be the destination of a copy operation.
INDEX(number)
– Buffer can be used as an index buffer in render passes.
VERTEX(number)
– Buffer can be used as a vertex buffer in render passes.
UNIFORM(number)
– Buffer can be used as a uniform buffer in shaders. Read-only from shader perspective.
STORAGE(number)
– Buffer can be used as a storage buffer in shaders. Can be read and written by shaders.
INDIRECT(number)
– Buffer can be used as an indirect buffer for dispatch calls.
QUERY_RESOLVE(number)
– Buffer can be the destination for query results.
Previous
BufferHandle
Next
CommandBufferHandle