Skip to content

WebGPU

The WebGPU API ↗ allows you to use the GPU directly from JavaScript.

The WebGPU API is only accessible from within Durable Objects. You cannot use the WebGPU API from within Workers.

To use the WebGPU API in local development, enable the experimental and webgpu compatibility flags in the wrangler.toml configuration file of your Durable Object.

compatibility_flags = ["experimental", "webgpu"]

The following subset of the WebGPU API is available from within Durable Objects:

APISupported?Notes
navigator.gpu ↗✅
GPU.requestAdapter ↗✅
GPUAdapterInfo ↗✅
GPUAdapter ↗✅
GPUBindGroupLayout ↗✅
GPUBindGroup ↗✅
GPUBuffer ↗✅
GPUCommandBuffer ↗✅
GPUCommandEncoder ↗✅
GPUComputePassEncoder ↗✅
GPUComputePipeline ↗✅
GPUComputePipelineError ↗✅
GPUDevice ↗✅
GPUOutOfMemoryError ↗✅
GPUValidationError ↗✅
GPUInternalError ↗✅
GPUDeviceLostInfo ↗✅
GPUPipelineLayout ↗✅
GPUQuerySet ↗✅
GPUQueue ↗✅
GPUSampler ↗✅
GPUCompilationMessage ↗✅
GPUShaderModule ↗✅
GPUSupportedFeatures ↗✅
GPUSupportedLimits ↗✅
GPUMapMode ↗✅
GPUShaderStage ↗✅
GPUUncapturedErrorEvent ↗✅

The following subset of the WebGPU API is not yet supported:

APISupported?Notes
GPU.getPreferredCanvasFormat ↗
GPURenderBundle ↗
GPURenderBundleEncoder ↗
GPURenderPassEncoder ↗
GPURenderPipeline ↗
GPUShaderModule ↗
GPUTexture ↗
GPUTextureView ↗
GPUExternalTexture ↗

Examples