WebGPU Support
Use this page when you need a direct answer to a practical question: can you ship WebGPU to real users yet? The chart below shows how often recent browsers expose navigator.gpu and return a working adapter.
Scroll down when you need more than a yes-or-no answer. Platform support shows where WebGPU lands first. Feature support tells you if options such as shader-f16, timestamp-query, or texture compression formats show up often enough for production use. Limits show the values browsers actually report for things like buffer sizes and compute workgroup sizes.
If you are checking one machine, open the WebGPU Capabilities Report. If you are deciding on a fallback strategy, compare this page with WebGL 2 and WebGL.

This chart shows what share of recent reports can successfully use WebGPU.
0.04% use the fallback adapter.
Share of all recent reports where navigator.gpu exists and requestAdapter() returns an adapter.
WebGPU Platform Support
Browser version is only part of the story. WebGPU support also depends on the operating system, GPU, and browser engine. Use this section when you need to know where support drops on Android, Linux, iOS, macOS, Windows, or ChromeOS.
| Platform | Support |
|---|---|
| Android | 73.01% |
| Chromium OS | 91.34% |
| iOS | 81.2% |
| Linux | 12.05% |
| Mac OS | 86.81% |
| Windows | 84.63% |
WebGPU Browser Support
Use browser support to see which browser families report WebGPU most often. Results are aggregated across operating systems for each family.
| Browser | Support |
|---|---|
| Chrome/Chromium | 77.6% |
| Edge | 91.62% |
| Firefox | 59.64% |
| Opera | 87.18% |
| Other | 73.96% |
| Safari | 75.8% |
| Samsung Internet | 76.32% |
WebGPU Vendors
Vendor and architecture data help explain support patterns that browser-version charts miss. Use this section when you want to understand whether a feature gap comes from the browser, the platform, or the GPU family behind it.
WebGPU Features
Feature support is where many rollout decisions get made. A browser may support WebGPU in general and still miss the feature you need. Check this section before you rely on options such as compressed textures, subgroups, or query features.
| Features | Support |
|---|---|
| bgra8unorm-storage | 94.68% |
| chromium-experimental-dp4a | 0% |
| chromium-experimental-read-write-storage-texture | 0% |
| clip-distances | 75.8% |
| depth-clamping | 0% |
| depth-clip-control | 98.35% |
| depth24unorm-stencil8 | 0% |
| depth32float-stencil8 | 99.97% |
| dual-source-blending | 78.07% |
| float32-blendable | 87.83% |
| float32-filterable | 90.98% |
| indirect-first-instance | 99.98% |
| multi-planar-formats | 0% |
| pipeline-statistics-query | 0% |
| rg11b10ufloat-renderable | 99.98% |
| shader-f16 | 92.51% |
| subgroups | 68.62% |
| texture-compression-astc | 44.37% |
| texture-compression-astc-sliced-3d | 44.14% |
| texture-compression-bc | 87.74% |
| texture-compression-bc-sliced-3d | 84.78% |
| texture-compression-etc2 | 44.25% |
| timestamp-query | 98.99% |
| timestamp-query-inside-passes | 0% |
WebGPU Limits
Limits decide how far you can push a device. Use this section to see the values real browsers report for texture sizes, buffer sizes, bind groups, and compute workgroup dimensions. These numbers help you choose safe defaults and decide when to request higher limits.
| Limit | Values - Support | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| maxBindGroups |
| ||||||||||||||||||||||||||||||||||
| maxBindGroupsPlusVertexBuffers |
| ||||||||||||||||||||||||||||||||||
| maxBindingsPerBindGroup |
| ||||||||||||||||||||||||||||||||||
| maxBufferSize |
| ||||||||||||||||||||||||||||||||||
| maxColorAttachmentBytesPerSample |
| ||||||||||||||||||||||||||||||||||
| maxColorAttachments |
| ||||||||||||||||||||||||||||||||||
| maxComputeInvocationsPerWorkgroup |
| ||||||||||||||||||||||||||||||||||
| maxComputeWorkgroupSizeX |
| ||||||||||||||||||||||||||||||||||
| maxComputeWorkgroupSizeY |
| ||||||||||||||||||||||||||||||||||
| maxComputeWorkgroupSizeZ |
| ||||||||||||||||||||||||||||||||||
| maxComputeWorkgroupsPerDimension |
| ||||||||||||||||||||||||||||||||||
| maxComputeWorkgroupStorageSize |
| ||||||||||||||||||||||||||||||||||
| maxDynamicStorageBuffersPerPipelineLayout |
| ||||||||||||||||||||||||||||||||||
| maxDynamicUniformBuffersPerPipelineLayout |
| ||||||||||||||||||||||||||||||||||
| maxFragmentCombinedOutputResources |
| ||||||||||||||||||||||||||||||||||
| maxInterStageShaderComponents |
| ||||||||||||||||||||||||||||||||||
| maxInterStageShaderVariables |
| ||||||||||||||||||||||||||||||||||
| maxSampledTexturesPerShaderStage |
| ||||||||||||||||||||||||||||||||||
| maxSamplersPerShaderStage |
| ||||||||||||||||||||||||||||||||||
| maxStorageBufferBindingSize |
| ||||||||||||||||||||||||||||||||||
| maxStorageBuffersPerShaderStage |
| ||||||||||||||||||||||||||||||||||
| maxStorageTexturesPerShaderStage |
| ||||||||||||||||||||||||||||||||||
| maxTextureArrayLayers |
| ||||||||||||||||||||||||||||||||||
| maxTextureDimension1D |
| ||||||||||||||||||||||||||||||||||
| maxTextureDimension2D |
| ||||||||||||||||||||||||||||||||||
| maxTextureDimension3D |
| ||||||||||||||||||||||||||||||||||
| maxUniformBufferBindingSize |
| ||||||||||||||||||||||||||||||||||
| maxUniformBuffersPerShaderStage |
| ||||||||||||||||||||||||||||||||||
| maxVertexAttributes |
| ||||||||||||||||||||||||||||||||||
| maxVertexBufferArrayStride |
| ||||||||||||||||||||||||||||||||||
| maxVertexBuffers |
| ||||||||||||||||||||||||||||||||||
| minStorageBufferOffsetAlignment |
| ||||||||||||||||||||||||||||||||||
| minUniformBufferOffsetAlignment |
|
WGSL Language Features
WGSL language features affect shader authoring and portability. Check this section when you want to know if newer language features are common enough to use without a custom fallback.
| WGSL Language Features | Support |
|---|---|
| immediate_address_space | 60.97% |
| linear_indexing | 75.56% |
| packed_4x8_integer_dot_product | 98.93% |
| pointer_composite_access | 98.89% |
| readonly_and_readwrite_storage_textures | 98.84% |
| subgroup_id | 79.29% |
| subgroup_uniformity | 78.82% |
| texture_and_sampler_let | 76.41% |
| texture_formats_tier1 | 1.6% |
| uniform_buffer_standard_layout | 78.36% |
| unrestricted_pointer_parameters | 93.81% |