Skip to content

GPUSupportedLimits

GPUSupportedLimits exposes an adapter or device’s supported limits. See GPUAdapter.limits and GPUDevice.limits.

Properties

maxBindGroups

abstract val maxBindGroups: UInt
The maximum number of GPUBindGroupLayouts allowed in bindGroupLayouts when creating a GPUPipelineLayout.

maxBindGroupsPlusVertexBuffers

The maximum number of bind group and vertex buffer slots used simultaneously, counting any empty slots below the highest index. Validated in createRenderPipeline() and in draw calls.

maxBindingsPerBindGroup

The number of binding indices available when creating a GPUBindGroupLayout. Note: This limit is normative, but arbitrary. With the default binding slot limits, it is impossible to use 1000 bindings in one bind group, but this allows GPUBindGroupLayoutEntry.binding values up to 999. This limit allows implementations to treat binding space as an array, within reasonable memory space, rather than a sparse map structure.

maxBufferSize

abstract val maxBufferSize: ULong
The maximum size of size when creating a GPUBuffer.

maxColorAttachmentBytesPerSample

The maximum number of bytes necessary to hold one sample (pixel or subpixel) of render pipeline output data, across all color attachments.

maxColorAttachments

abstract val maxColorAttachments: UInt
The maximum allowed number of color attachments in GPURenderPipelineDescriptor.fragment.targets, GPURenderPassDescriptor.colorAttachments, and GPURenderPassLayout.colorFormats.

maxComputeInvocationsPerWorkgroup

The maximum value of the product of the workgroup_size dimensions for a compute stage GPUShaderModule entry-point.

maxComputeWorkgroupSizeX

The maximum value of the workgroup_size X dimension for a compute stage GPUShaderModule entry-point.

maxComputeWorkgroupSizeY

The maximum value of the workgroup_size Y dimensions for a compute stage GPUShaderModule entry-point.

maxComputeWorkgroupSizeZ

The maximum value of the workgroup_size Z dimensions for a compute stage GPUShaderModule entry-point.

maxComputeWorkgroupsPerDimension

The maximum value for the arguments of dispatchWorkgroups(workgroupCountX, workgroupCountY, workgroupCountZ).

maxComputeWorkgroupStorageSize

The maximum number of bytes of workgroup storage used for a compute stage GPUShaderModule entry-point.

maxDynamicStorageBuffersPerPipelineLayout

The maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers with dynamic offsets. See Exceeds the binding slot limits.

maxDynamicUniformBuffersPerPipelineLayout

The maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are uniform buffers with dynamic offsets. See Exceeds the binding slot limits.

maxImmediateSize

abstract val maxImmediateSize: UInt
The maximum size, in bytes, of immediate data range used in a pipeline. Note: 64 bytes is the size of a 4×4 matrix of f32 values.

maxInterStageShaderVariables

The maximum allowed number of input or output variables for inter-stage communication (like vertex outputs or fragment inputs).

maxSampledTexturesPerShaderStage

For each possible GPUShaderStage stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are sampled textures. See Exceeds the binding slot limits.

maxSamplersPerShaderStage

For each possible GPUShaderStage stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are samplers. See Exceeds the binding slot limits.

maxStorageBufferBindingSize

The maximum GPUBufferBinding.size for bindings with a GPUBindGroupLayoutEntry entry for which entry.buffer?.type is "storage" or "read-only-storage".

maxStorageBuffersInFragmentStage

For the fragment stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers. See Exceeds the binding slot limits.

maxStorageBuffersInVertexStage

For the vertex stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers. See Exceeds the binding slot limits.

maxStorageBuffersPerShaderStage

For each possible GPUShaderStage stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers. See Exceeds the binding slot limits. Note: This limit applies to all stages. At device initialization, it is normalized with maxStorageBuffersInVertexStage and maxStorageBuffersInFragmentStage so that in the validation algorithm, each stage can be checked against just one of the three limits.

maxStorageTexturesInFragmentStage

For the fragment stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage textures. See Exceeds the binding slot limits.

maxStorageTexturesInVertexStage

For the vertex stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage textures. See Exceeds the binding slot limits.

maxStorageTexturesPerShaderStage

For each possible GPUShaderStage stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage textures. See Exceeds the binding slot limits. Note: This limit applies to all stages. At device initialization, it is normalized with maxStorageTexturesInVertexStage and maxStorageTexturesInFragmentStage so that in the validation algorithm, each stage can be checked against just one of the three limits.

maxTextureArrayLayers

The maximum allowed value for the size.depthOrArrayLayers of a texture created with dimension "2d".

maxTextureDimension1D

The maximum allowed value for the size.width of a texture created with dimension "1d".

maxTextureDimension2D

The maximum allowed value for the size.width and size.height of a texture created with dimension "2d".

maxTextureDimension3D

The maximum allowed value for the size.width, size.height and size.depthOrArrayLayers of a texture created with dimension "3d".

maxUniformBufferBindingSize

The maximum GPUBufferBinding.size for bindings with a GPUBindGroupLayoutEntry entry for which entry.buffer?.type is "uniform".

maxUniformBuffersPerShaderStage

For each possible GPUShaderStage stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are uniform buffers. See Exceeds the binding slot limits.

maxVertexAttributes

abstract val maxVertexAttributes: UInt
The maximum number of attributes in total across buffers when creating a GPURenderPipeline.

maxVertexBufferArrayStride

The maximum allowed arrayStride when creating a GPURenderPipeline.

maxVertexBuffers

abstract val maxVertexBuffers: UInt
The maximum number of buffers when creating a GPURenderPipeline.

minStorageBufferOffsetAlignment

The required alignment for GPUBufferBinding.offset and the dynamic offsets provided in setBindGroup(), for bindings with a GPUBindGroupLayoutEntry entry for which entry.buffer?.type is "storage" or "read-only-storage".

minUniformBufferOffsetAlignment

The required alignment for GPUBufferBinding.offset and the dynamic offsets provided in setBindGroup(), for bindings with a GPUBindGroupLayoutEntry entry for which entry.buffer?.type is "uniform".