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
createBufferUsageMapModeWGPUBufferWGPUShaderModuleWGPUBindGroupLayoutWGPUBindGroupWGPUComputePipelineWGPUQuerySetWGPUComputePassEncoderWGPUCommandBufferWGPUCommandEncoderWGPUQueueWGPULimitsBufferDescriptorShaderModuleDescriptorComputePipelineDescriptorBufferBindingBindGroupEntryBindGroupDescriptorQuerySetDescriptorWGPUDeviceWGPUSupportedFeaturesWGPUAdapterWGPU
torch.js· 2026
LegalTerms of UsePrivacy Policy
/
/
  1. docs
  2. wgpu-native
  3. wgpu-native
  4. BufferUsage

wgpu-native.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: native.BufferUsage.MapRead,

  /**
   * Buffer can be mapped for writing (GPU → CPU transfer).
   */
  MAP_WRITE: native.BufferUsage.MapWrite,

  /**
   * Buffer can be the source of a copy operation.
   */
  COPY_SRC: native.BufferUsage.CopySrc,

  /**
   * Buffer can be the destination of a copy operation.
   */
  COPY_DST: native.BufferUsage.CopyDst,

  /**
   * Buffer can be used as an index buffer in render passes.
   */
  INDEX: native.BufferUsage.Index,

  /**
   * Buffer can be used as a vertex buffer in render passes.
   */
  VERTEX: native.BufferUsage.Vertex,

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

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

  /**
   * Buffer can be used as an indirect buffer for dispatch calls.
   */
  INDIRECT: native.BufferUsage.Indirect,

  /**
   * Buffer can be the destination for query results.
   */
  QUERY_RESOLVE: native.BufferUsage.QueryResolve,
} as const
MAP_READ(native.BufferUsage.MapRead)
– Buffer can be mapped for reading (CPU → GPU transfer).
MAP_WRITE(native.BufferUsage.MapWrite)
– Buffer can be mapped for writing (GPU → CPU transfer).
COPY_SRC(native.BufferUsage.CopySrc)
– Buffer can be the source of a copy operation.
COPY_DST(native.BufferUsage.CopyDst)
– Buffer can be the destination of a copy operation.
INDEX(native.BufferUsage.Index)
– Buffer can be used as an index buffer in render passes.
VERTEX(native.BufferUsage.Vertex)
– Buffer can be used as a vertex buffer in render passes.
UNIFORM(native.BufferUsage.Uniform)
– Buffer can be used as a uniform buffer in shaders. Read-only from shader perspective.
STORAGE(native.BufferUsage.Storage)
– Buffer can be used as a storage buffer in shaders. Can be read and written by shaders.
INDIRECT(native.BufferUsage.Indirect)
– Buffer can be used as an indirect buffer for dispatch calls.
QUERY_RESOLVE(native.BufferUsage.QueryResolve)
– Buffer can be the destination for query results.
Previous
BufferDescriptor
Next
ComputePipelineDescriptor