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