GPUSupportedLimits¶
interface GPUSupportedLimits
Properties¶
maxBindGroups¶
abstract val maxBindGroups: UInt
The maximum number of GPUBindGroupLayouts allowed in bindGroupLayouts when creating a GPUPipelineLayout.
maxBindGroupsPlusVertexBuffers¶
abstract val maxBindGroupsPlusVertexBuffers: UInt
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¶
abstract val maxBindingsPerBindGroup: UInt
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¶
abstract val maxColorAttachmentBytesPerSample: UInt
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¶
abstract val maxComputeInvocationsPerWorkgroup: UInt
The maximum value of the product of the workgroup_size dimensions for a compute stage GPUShaderModule entry-point.
maxComputeWorkgroupSizeX¶
abstract val maxComputeWorkgroupSizeX: UInt
The maximum value of the workgroup_size X dimension for a compute stage GPUShaderModule entry-point.
maxComputeWorkgroupSizeY¶
abstract val maxComputeWorkgroupSizeY: UInt
The maximum value of the workgroup_size Y dimensions for a compute stage GPUShaderModule entry-point.
maxComputeWorkgroupSizeZ¶
abstract val maxComputeWorkgroupSizeZ: UInt
The maximum value of the workgroup_size Z dimensions for a compute stage GPUShaderModule entry-point.
maxComputeWorkgroupsPerDimension¶
abstract val maxComputeWorkgroupsPerDimension: UInt
The maximum value for the arguments of dispatchWorkgroups(workgroupCountX, workgroupCountY, workgroupCountZ).
maxComputeWorkgroupStorageSize¶
abstract val maxComputeWorkgroupStorageSize: UInt
The maximum number of bytes of workgroup storage used for a compute stage GPUShaderModule entry-point.
maxDynamicStorageBuffersPerPipelineLayout¶
abstract val maxDynamicStorageBuffersPerPipelineLayout: UInt
The maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers with dynamic offsets. See Exceeds the binding slot limits.
maxDynamicUniformBuffersPerPipelineLayout¶
abstract val maxDynamicUniformBuffersPerPipelineLayout: UInt
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¶
abstract val maxInterStageShaderVariables: UInt
The maximum allowed number of input or output variables for inter-stage communication (like vertex outputs or fragment inputs).
maxSampledTexturesPerShaderStage¶
abstract val maxSampledTexturesPerShaderStage: UInt
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¶
abstract val maxSamplersPerShaderStage: UInt
For each possible GPUShaderStage stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are samplers. See Exceeds the binding slot limits.
maxStorageBufferBindingSize¶
abstract val maxStorageBufferBindingSize: ULong
The maximum GPUBufferBinding.size for bindings with a GPUBindGroupLayoutEntry entry for which entry.buffer?.type is "storage" or "read-only-storage".
maxStorageBuffersInFragmentStage¶
abstract val maxStorageBuffersInFragmentStage: UInt
For the fragment stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers. See Exceeds the binding slot limits.
maxStorageBuffersInVertexStage¶
abstract val maxStorageBuffersInVertexStage: UInt
For the vertex stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage buffers. See Exceeds the binding slot limits.
maxStorageBuffersPerShaderStage¶
abstract val maxStorageBuffersPerShaderStage: UInt
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¶
abstract val maxStorageTexturesInFragmentStage: UInt
For the fragment stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage textures. See Exceeds the binding slot limits.
maxStorageTexturesInVertexStage¶
abstract val maxStorageTexturesInVertexStage: UInt
For the vertex stage, the maximum number of GPUBindGroupLayoutEntry entries across a GPUPipelineLayout which are storage textures. See Exceeds the binding slot limits.
maxStorageTexturesPerShaderStage¶
abstract val maxStorageTexturesPerShaderStage: UInt
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¶
abstract val maxTextureArrayLayers: UInt
The maximum allowed value for the size.depthOrArrayLayers of a texture created with dimension "2d".
maxTextureDimension1D¶
abstract val maxTextureDimension1D: UInt
The maximum allowed value for the size.width of a texture created with dimension "1d".
maxTextureDimension2D¶
abstract val maxTextureDimension2D: UInt
The maximum allowed value for the size.width and size.height of a texture created with dimension "2d".
maxTextureDimension3D¶
abstract val maxTextureDimension3D: UInt
The maximum allowed value for the size.width, size.height and size.depthOrArrayLayers of a texture created with dimension "3d".
maxUniformBufferBindingSize¶
abstract val maxUniformBufferBindingSize: ULong
The maximum GPUBufferBinding.size for bindings with a GPUBindGroupLayoutEntry entry for which entry.buffer?.type is "uniform".
maxUniformBuffersPerShaderStage¶
abstract val maxUniformBuffersPerShaderStage: UInt
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¶
abstract val maxVertexBufferArrayStride: UInt
The maximum allowed arrayStride when creating a GPURenderPipeline.
maxVertexBuffers¶
abstract val maxVertexBuffers: UInt
The maximum number of buffers when creating a GPURenderPipeline.
minStorageBufferOffsetAlignment¶
abstract val minStorageBufferOffsetAlignment: UInt
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¶
abstract val minUniformBufferOffsetAlignment: UInt
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".