<?xml version="1.0" encoding="UTF-8"?>
<feature id="webgpu"><name>WebGPU</name><description>The navigator.gpu API performs operations such as rendering and computation on dedicated graphics hardware (also known as a Graphics Processing Unit).</description><group>webgpu</group><group_name>WebGPU</group_name><baseline><status>limited</status></baseline><support><browser name="chrome" version="144" supported="true"></browser><browser name="firefox" version="—" supported="false"></browser><browser name="safari" version="26" supported="true"></browser><browser name="edge" version="144" supported="true"></browser><browser name="chrome_android" version="121" supported="true"></browser><browser name="firefox_android" version="—" supported="false"></browser><browser name="safari_ios" version="26" supported="true"></browser></support><specifications><spec>https://gpuweb.github.io/gpuweb/</spec></specifications><caniuse><id>webgpu</id></caniuse><mdn_url>https://developer.mozilla.org/docs/Web/API/GPU</mdn_url><compat_features><key>api.GPU</key><key>api.GPU.getPreferredCanvasFormat</key><key>api.GPU.requestAdapter</key><key>api.GPU.requestAdapter.discrete_adapter_default_ac</key><key>api.GPU.wgslLanguageFeatures</key><key>api.GPUAdapter</key><key>api.GPUAdapter.features</key><key>api.GPUAdapter.info</key><key>api.GPUAdapter.limits</key><key>api.GPUAdapter.requestDevice</key><key>api.GPUAdapter.requestDevice.handles_duplicate_calls</key><key>api.GPUAdapter.requestDevice.undefined_limits</key><key>api.GPUAdapterInfo</key><key>api.GPUAdapterInfo.architecture</key><key>api.GPUAdapterInfo.description</key><key>api.GPUAdapterInfo.device</key><key>api.GPUAdapterInfo.subgroupMaxSize</key><key>api.GPUAdapterInfo.subgroupMinSize</key><key>api.GPUAdapterInfo.vendor</key><key>api.GPUBindGroup</key><key>api.GPUBindGroup.label</key><key>api.GPUBindGroupLayout</key><key>api.GPUBindGroupLayout.label</key><key>api.GPUBuffer</key><key>api.GPUBuffer.destroy</key><key>api.GPUBuffer.getMappedRange</key><key>api.GPUBuffer.label</key><key>api.GPUBuffer.mapAsync</key><key>api.GPUBuffer.mapState</key><key>api.GPUBuffer.size</key><key>api.GPUBuffer.unmap</key><key>api.GPUBuffer.usage</key><key>api.GPUCanvasContext</key><key>api.GPUCanvasContext.canvas</key><key>api.GPUCanvasContext.configure</key><key>api.GPUCanvasContext.configure.toneMapping</key><key>api.GPUCanvasContext.getConfiguration</key><key>api.GPUCanvasContext.getCurrentTexture</key><key>api.GPUCanvasContext.unconfigure</key><key>api.GPUCommandBuffer</key><key>api.GPUCommandBuffer.label</key><key>api.GPUCommandEncoder</key><key>api.GPUCommandEncoder.beginComputePass</key><key>api.GPUCommandEncoder.beginComputePass.timestampWrites</key><key>api.GPUCommandEncoder.beginRenderPass</key><key>api.GPUCommandEncoder.beginRenderPass.depthSlice_option</key><key>api.GPUCommandEncoder.beginRenderPass.separate_depth_stencil_read-only</key><key>api.GPUCommandEncoder.beginRenderPass.timestampWrites</key><key>api.GPUCommandEncoder.clearBuffer</key><key>api.GPUCommandEncoder.copyBufferToBuffer</key><key>api.GPUCommandEncoder.copyBufferToTexture</key><key>api.GPUCommandEncoder.copyTextureToBuffer</key><key>api.GPUCommandEncoder.copyTextureToTexture</key><key>api.GPUCommandEncoder.finish</key><key>api.GPUCommandEncoder.insertDebugMarker</key><key>api.GPUCommandEncoder.label</key><key>api.GPUCommandEncoder.popDebugGroup</key><key>api.GPUCommandEncoder.pushDebugGroup</key><key>api.GPUCommandEncoder.resolveQuerySet</key><key>api.GPUCompilationInfo</key><key>api.GPUCompilationInfo.messages</key><key>api.GPUCompilationMessage</key><key>api.GPUCompilationMessage.length</key><key>api.GPUCompilationMessage.lineNum</key><key>api.GPUCompilationMessage.linePos</key><key>api.GPUCompilationMessage.message</key><key>api.GPUCompilationMessage.offset</key><key>api.GPUCompilationMessage.type</key><key>api.GPUComputePassEncoder</key><key>api.GPUComputePassEncoder.dispatchWorkgroups</key><key>api.GPUComputePassEncoder.dispatchWorkgroupsIndirect</key><key>api.GPUComputePassEncoder.end</key><key>api.GPUComputePassEncoder.insertDebugMarker</key><key>api.GPUComputePassEncoder.label</key><key>api.GPUComputePassEncoder.popDebugGroup</key><key>api.GPUComputePassEncoder.pushDebugGroup</key><key>api.GPUComputePassEncoder.setBindGroup</key><key>api.GPUComputePassEncoder.setBindGroup.unset_bind_group</key><key>api.GPUComputePassEncoder.setPipeline</key><key>api.GPUComputePipeline</key><key>api.GPUComputePipeline.getBindGroupLayout</key><key>api.GPUComputePipeline.label</key><key>api.GPUDevice</key><key>api.GPUDevice.adapterInfo</key><key>api.GPUDevice.createBindGroup</key><key>api.GPUDevice.createBindGroupLayout</key><key>api.GPUDevice.createBindGroupLayout.storageTexture_access_read-write_read-only</key><key>api.GPUDevice.createBindGroupLayout.texture_rgb10a2uint</key><key>api.GPUDevice.createBuffer</key><key>api.GPUDevice.createCommandEncoder</key><key>api.GPUDevice.createComputePipeline</key><key>api.GPUDevice.createComputePipeline.optional_entryPoint</key><key>api.GPUDevice.createComputePipelineAsync</key><key>api.GPUDevice.createComputePipelineAsync.optional_entryPoint</key><key>api.GPUDevice.createPipelineLayout</key><key>api.GPUDevice.createQuerySet</key><key>api.GPUDevice.createQuerySet.timestamp</key><key>api.GPUDevice.createRenderBundleEncoder</key><key>api.GPUDevice.createRenderPipeline</key><key>api.GPUDevice.createRenderPipeline.dual-source-blending</key><key>api.GPUDevice.createRenderPipeline.optional_depthcompare_depthwriteenabled</key><key>api.GPUDevice.createRenderPipeline.optional_entryPoint</key><key>api.GPUDevice.createRenderPipeline.texture_rgb10a2uint</key><key>api.GPUDevice.createRenderPipeline.validates_depth_bias_for_line_and_point_topologies</key><key>api.GPUDevice.createRenderPipeline.vertex_unorm10-10-10-2</key><key>api.GPUDevice.createRenderPipelineAsync</key><key>api.GPUDevice.createRenderPipelineAsync.dual-source-blending</key><key>api.GPUDevice.createRenderPipelineAsync.optional_depthcompare_depthwriteenabled</key><key>api.GPUDevice.createRenderPipelineAsync.optional_entryPoint</key><key>api.GPUDevice.createRenderPipelineAsync.texture_rgb10a2uint</key><key>api.GPUDevice.createRenderPipelineAsync.validates_depth_bias_for_line_and_point_topologies</key><key>api.GPUDevice.createRenderPipelineAsync.vertex_unorm10-10-10-2</key><key>api.GPUDevice.createSampler</key><key>api.GPUDevice.createShaderModule</key><key>api.GPUDevice.createTexture</key><key>api.GPUDevice.createTexture.texture_rgb10a2uint</key><key>api.GPUDevice.destroy</key><key>api.GPUDevice.features</key><key>api.GPUDevice.importExternalTexture</key><key>api.GPUDevice.importExternalTexture.color_space_display-p3</key><key>api.GPUDevice.importExternalTexture.videoframe_source</key><key>api.GPUDevice.label</key><key>api.GPUDevice.limits</key><key>api.GPUDevice.lost</key><key>api.GPUDevice.popErrorScope</key><key>api.GPUDevice.pushErrorScope</key><key>api.GPUDevice.queue</key><key>api.GPUDevice.uncapturederror_event</key><key>api.GPUDeviceLostInfo</key><key>api.GPUDeviceLostInfo.message</key><key>api.GPUDeviceLostInfo.reason</key><key>api.GPUError</key><key>api.GPUError.message</key><key>api.GPUExternalTexture</key><key>api.GPUExternalTexture.label</key><key>api.GPUInternalError</key><key>api.GPUInternalError.GPUInternalError</key><key>api.GPUOutOfMemoryError</key><key>api.GPUOutOfMemoryError.GPUOutOfMemoryError</key><key>api.GPUPipelineError</key><key>api.GPUPipelineError.GPUPipelineError</key><key>api.GPUPipelineError.GPUPipelineError.message_optional</key><key>api.GPUPipelineError.reason</key><key>api.GPUPipelineLayout</key><key>api.GPUPipelineLayout.label</key><key>api.GPUQuerySet</key><key>api.GPUQuerySet.count</key><key>api.GPUQuerySet.destroy</key><key>api.GPUQuerySet.label</key><key>api.GPUQuerySet.type</key><key>api.GPUQuerySet.type.timestamp</key><key>api.GPUQueue</key><key>api.GPUQueue.copyExternalImageToTexture</key><key>api.GPUQueue.copyExternalImageToTexture.htmlimageelement_imagedata_source</key><key>api.GPUQueue.copyExternalImageToTexture.videoframe_source</key><key>api.GPUQueue.label</key><key>api.GPUQueue.onSubmittedWorkDone</key><key>api.GPUQueue.submit</key><key>api.GPUQueue.submit.validates_command_buffer_uniqueness</key><key>api.GPUQueue.writeBuffer</key><key>api.GPUQueue.writeTexture</key><key>api.GPURenderBundle</key><key>api.GPURenderBundle.label</key><key>api.GPURenderBundleEncoder</key><key>api.GPURenderBundleEncoder.draw</key><key>api.GPURenderBundleEncoder.drawIndexed</key><key>api.GPURenderBundleEncoder.drawIndexedIndirect</key><key>api.GPURenderBundleEncoder.drawIndirect</key><key>api.GPURenderBundleEncoder.finish</key><key>api.GPURenderBundleEncoder.insertDebugMarker</key><key>api.GPURenderBundleEncoder.label</key><key>api.GPURenderBundleEncoder.popDebugGroup</key><key>api.GPURenderBundleEncoder.pushDebugGroup</key><key>api.GPURenderBundleEncoder.setBindGroup</key><key>api.GPURenderBundleEncoder.setBindGroup.unset_bind_group</key><key>api.GPURenderBundleEncoder.setIndexBuffer</key><key>api.GPURenderBundleEncoder.setPipeline</key><key>api.GPURenderBundleEncoder.setVertexBuffer</key><key>api.GPURenderBundleEncoder.setVertexBuffer.unset_vertex_buffer</key><key>api.GPURenderPassEncoder</key><key>api.GPURenderPassEncoder.beginOcclusionQuery</key><key>api.GPURenderPassEncoder.draw</key><key>api.GPURenderPassEncoder.drawIndexed</key><key>api.GPURenderPassEncoder.drawIndexedIndirect</key><key>api.GPURenderPassEncoder.drawIndirect</key><key>api.GPURenderPassEncoder.end</key><key>api.GPURenderPassEncoder.endOcclusionQuery</key><key>api.GPURenderPassEncoder.executeBundles</key><key>api.GPURenderPassEncoder.insertDebugMarker</key><key>api.GPURenderPassEncoder.label</key><key>api.GPURenderPassEncoder.popDebugGroup</key><key>api.GPURenderPassEncoder.pushDebugGroup</key><key>api.GPURenderPassEncoder.setBindGroup</key><key>api.GPURenderPassEncoder.setBindGroup.unset_bind_group</key><key>api.GPURenderPassEncoder.setBlendConstant</key><key>api.GPURenderPassEncoder.setIndexBuffer</key><key>api.GPURenderPassEncoder.setPipeline</key><key>api.GPURenderPassEncoder.setScissorRect</key><key>api.GPURenderPassEncoder.setStencilReference</key><key>api.GPURenderPassEncoder.setVertexBuffer</key><key>api.GPURenderPassEncoder.setVertexBuffer.unset_vertex_buffer</key><key>api.GPURenderPassEncoder.setViewport</key><key>api.GPURenderPipeline</key><key>api.GPURenderPipeline.getBindGroupLayout</key><key>api.GPURenderPipeline.label</key><key>api.GPUSampler</key><key>api.GPUSampler.label</key><key>api.GPUShaderModule</key><key>api.GPUShaderModule.getCompilationInfo</key><key>api.GPUShaderModule.label</key><key>api.GPUSupportedFeatures</key><key>api.GPUSupportedFeatures.@@iterator</key><key>api.GPUSupportedFeatures.entries</key><key>api.GPUSupportedFeatures.feature_bgra8unorm-storage</key><key>api.GPUSupportedFeatures.feature_clip-distances</key><key>api.GPUSupportedFeatures.feature_depth-clip-control</key><key>api.GPUSupportedFeatures.feature_depth32float-stencil8</key><key>api.GPUSupportedFeatures.feature_dual-source-blending</key><key>api.GPUSupportedFeatures.feature_float32-blendable</key><key>api.GPUSupportedFeatures.feature_float32-filterable</key><key>api.GPUSupportedFeatures.feature_indirect-first-instance</key><key>api.GPUSupportedFeatures.feature_rg11b10ufloat-renderable</key><key>api.GPUSupportedFeatures.feature_shader-f16</key><key>api.GPUSupportedFeatures.feature_texture-compression-astc</key><key>api.GPUSupportedFeatures.feature_texture-compression-bc</key><key>api.GPUSupportedFeatures.feature_texture-compression-etc2</key><key>api.GPUSupportedFeatures.feature_timestamp-query</key><key>api.GPUSupportedFeatures.forEach</key><key>api.GPUSupportedFeatures.has</key><key>api.GPUSupportedFeatures.keys</key><key>api.GPUSupportedFeatures.size</key><key>api.GPUSupportedFeatures.values</key><key>api.GPUSupportedLimits</key><key>api.GPUSupportedLimits.maxBindGroups</key><key>api.GPUSupportedLimits.maxBindGroupsPlusVertexBuffers</key><key>api.GPUSupportedLimits.maxBindingsPerBindGroup</key><key>api.GPUSupportedLimits.maxBufferSize</key><key>api.GPUSupportedLimits.maxColorAttachmentBytesPerSample</key><key>api.GPUSupportedLimits.maxColorAttachments</key><key>api.GPUSupportedLimits.maxComputeInvocationsPerWorkgroup</key><key>api.GPUSupportedLimits.maxComputeWorkgroupSizeX</key><key>api.GPUSupportedLimits.maxComputeWorkgroupSizeY</key><key>api.GPUSupportedLimits.maxComputeWorkgroupSizeZ</key><key>api.GPUSupportedLimits.maxComputeWorkgroupStorageSize</key><key>api.GPUSupportedLimits.maxComputeWorkgroupsPerDimension</key><key>api.GPUSupportedLimits.maxDynamicStorageBuffersPerPipelineLayout</key><key>api.GPUSupportedLimits.maxDynamicUniformBuffersPerPipelineLayout</key><key>api.GPUSupportedLimits.maxInterStageShaderVariables</key><key>api.GPUSupportedLimits.maxSampledTexturesPerShaderStage</key><key>api.GPUSupportedLimits.maxSamplersPerShaderStage</key><key>api.GPUSupportedLimits.maxStorageBufferBindingSize</key><key>api.GPUSupportedLimits.maxStorageBuffersPerShaderStage</key><key>api.GPUSupportedLimits.maxStorageTexturesPerShaderStage</key><key>api.GPUSupportedLimits.maxTextureArrayLayers</key><key>api.GPUSupportedLimits.maxTextureDimension1D</key><key>api.GPUSupportedLimits.maxTextureDimension2D</key><key>api.GPUSupportedLimits.maxTextureDimension3D</key><key>api.GPUSupportedLimits.maxUniformBufferBindingSize</key><key>api.GPUSupportedLimits.maxUniformBuffersPerShaderStage</key><key>api.GPUSupportedLimits.maxVertexAttributes</key><key>api.GPUSupportedLimits.maxVertexBufferArrayStride</key><key>api.GPUSupportedLimits.maxVertexBuffers</key><key>api.GPUSupportedLimits.minStorageBufferOffsetAlignment</key><key>api.GPUSupportedLimits.minUniformBufferOffsetAlignment</key><key>api.GPUTexture</key><key>api.GPUTexture.createView</key><key>api.GPUTexture.createView.descriptor_format_parameter_accepts_rgb10a2uint</key><key>api.GPUTexture.createView.descriptor_usage_parameter</key><key>api.GPUTexture.depthOrArrayLayers</key><key>api.GPUTexture.destroy</key><key>api.GPUTexture.dimension</key><key>api.GPUTexture.format</key><key>api.GPUTexture.format.texture_rgb10a2uint</key><key>api.GPUTexture.height</key><key>api.GPUTexture.label</key><key>api.GPUTexture.mipLevelCount</key><key>api.GPUTexture.sampleCount</key><key>api.GPUTexture.usage</key><key>api.GPUTexture.width</key><key>api.GPUTextureView</key><key>api.GPUTextureView.label</key><key>api.GPUUncapturedErrorEvent</key><key>api.GPUUncapturedErrorEvent.GPUUncapturedErrorEvent</key><key>api.GPUUncapturedErrorEvent.error</key><key>api.GPUValidationError</key><key>api.GPUValidationError.GPUValidationError</key><key>api.HTMLCanvasElement.getContext.webgpu_context</key><key>api.Navigator.gpu</key><key>api.OffscreenCanvas.getContext.webgpu_context</key><key>api.WGSLLanguageFeatures</key><key>api.WGSLLanguageFeatures.@@iterator</key><key>api.WGSLLanguageFeatures.entries</key><key>api.WGSLLanguageFeatures.extension_packed_4x8_integer_dot_product</key><key>api.WGSLLanguageFeatures.extension_readonly_and_readwrite_storage_textures</key><key>api.WGSLLanguageFeatures.extension_unrestricted_pointer_parameters</key><key>api.WGSLLanguageFeatures.forEach</key><key>api.WGSLLanguageFeatures.has</key><key>api.WGSLLanguageFeatures.keys</key><key>api.WGSLLanguageFeatures.size</key><key>api.WGSLLanguageFeatures.values</key><key>api.WorkerNavigator.gpu</key></compat_features><canonical_url>https://nowyoucanuse.com/features--webgpu.html</canonical_url></feature>