W3cubDocs

/Web APIs

GPUSupportedLimits

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

The GPUSupportedLimits interface of the WebGPU API describes the limits supported by a GPUAdapter.

The GPUSupportedLimits object for the current adapter is accessed via the GPUAdapter.limits property.

You should note that, rather than reporting the exact limits of each GPU, browsers will likely report different tier values of different limits to reduce the unique information available to drive-by fingerprinting. For example, the tiers of a certain limit might be 2048, 8192, and 32768. If your GPU's actual limit is 16384, the browser will still report 8192.

Given that different browsers will handle this differently and the tier values may change over time, it is hard to provide an accurate account of what limit values to expect — thorough testing is advised.

Instance properties

The following limits are represented by properties in a GPUSupportedLimits object. See the Limits section of the specification for detailed descriptions of what the limits relate to.

Limit name Default value
maxTextureDimension1D 8192
maxTextureDimension2D 8192
maxTextureDimension3D 2048
maxTextureArrayLayers 256
maxBindGroups 4
maxBindingsPerBindGroup 640
maxDynamicUniformBuffersPerPipelineLayout 8
maxDynamicStorageBuffersPerPipelineLayout 4
maxSampledTexturesPerShaderStage 16
maxSamplersPerShaderStage 16
maxStorageBuffersPerShaderStage 8
maxStorageTexturesPerShaderStage 4
maxUniformBuffersPerShaderStage 12
maxUniformBufferBindingSize 65536 bytes
maxStorageBufferBindingSize 134217728 bytes (128 MB)
minUniformBufferOffsetAlignment 256 bytes
minStorageBufferOffsetAlignment 256 bytes
maxVertexBuffers 8
maxBufferSize 268435456 bytes (256 MB)
maxVertexAttributes 16
maxVertexBufferArrayStride 2048 bytes
maxInterStageShaderComponents Deprecated Non-standard (use maxInterStageShaderVariables instead, see deprecation notice for more info) 60
maxInterStageShaderVariables 16
maxColorAttachments 8
maxColorAttachmentBytesPerSample 32
maxComputeWorkgroupStorageSize 16384 bytes
maxComputeInvocationsPerWorkgroup 256
maxComputeWorkgroupSizeX 256
maxComputeWorkgroupSizeY 256
maxComputeWorkgroupSizeZ 64
maxComputeWorkgroupsPerDimension 65535

Examples

In the following code we query the GPUAdapter.limits value of maxBindGroups to see if it is equal to or greater than 6. Our theoretical example app ideally needs 6 bind groups, so if the returned value is >= 6, we add a maximum limit of 6 to the requiredLimits object. We then request a device with that limit requirement using GPUAdapter.requestDevice():

async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU not supported.");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("Couldn't request WebGPU adapter.");
  }

  const requiredLimits = {};

  // App ideally needs 6 bind groups, so we'll try to request what the app needs
  if (adapter.limits.maxBindGroups >= 6) {
    requiredLimits.maxBindGroups = 6;
  }

  const device = await adapter.requestDevice({
    requiredLimits,
  });

  // …
}

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android WebView on iOS
GPUSupportedLimits
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxBindGroups
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxBindGroupsPlusVertexBuffers 120 120
141Currently supported on Windows only, in all contexts except for service workers.
106 26 121 No 81 26 25.0 121 26
maxBindingsPerBindGroup
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxBufferSize
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxColorAttachmentBytesPerSample
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxColorAttachments
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxComputeInvocationsPerWorkgroup
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxComputeWorkgroupSizeX
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxComputeWorkgroupSizeY
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxComputeWorkgroupSizeZ
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxComputeWorkgroupStorageSize
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxComputeWorkgroupsPerDimension
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxDynamicStorageBuffersPerPipelineLayout
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxDynamicUniformBuffersPerPipelineLayout
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxInterStageShaderComponents 113–135 113–135 No 99–120 26 121 No 81 26 25.0 121 26
maxInterStageShaderVariables
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxSampledTexturesPerShaderStage
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxSamplersPerShaderStage
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxStorageBufferBindingSize
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxStorageBuffersPerShaderStage
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxStorageTexturesPerShaderStage
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxTextureArrayLayers
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxTextureDimension1D
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxTextureDimension2D
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxTextureDimension3D
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxUniformBufferBindingSize
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxUniformBuffersPerShaderStage
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxVertexAttributes
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxVertexBufferArrayStride
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
maxVertexBuffers
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
minStorageBufferOffsetAlignment
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26
minUniformBufferOffsetAlignment
113Currently supported on ChromeOS, macOS, and Windows only.
113Currently supported on ChromeOS, macOS, and Windows only.
141Currently supported on Windows only, in all contexts except for service workers.
99Currently supported on ChromeOS, macOS, and Windows only.
26 121 No 81 26 25.0 121 26

See also

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPUSupportedLimits