WebGPU
WebGPU support in deck.gl v9 is still a work in progress and is not production ready.
deck.gl is gradually adding support for running on WebGPU. Support is landing layer by layer and feature by feature.
This page is conservative and source-based:
โ vX.Ymeans the current tree contains an explicit WebGPU/WGSL implementation, or the API is a thin wrapper over one. The version identifies the first deck.gl minor release with full WebGPU support.๐งmeans some code paths work, but the full API surface is not yet ported.โmeans there is no in-tree WebGPU implementation yet.
For composite and wrapper layers, statuses are based on their default or general rendering path, not on every possible custom sublayer configuration.
Enabling WebGPUโ
deck.gl needs to be set up to use a luma.gl device that uses the luma.gl webgpuAdapter.
import {webgpuAdapter} from '@luma.gl/webgpu';
new Deck({
deviceProps: {
type: 'webgpu',
adapters: [webgpuAdapter]
}
});
Layersโ
The table below covers the public layer exports from the layer packages. It is derived from the current source tree rather than the website badges, which may lag behind in-tree ports.
| Module | Layer | WebGL | WebGPU |
|---|---|---|---|
@deck.gl/layers | ArcLayer | โ | โ v9.4 |
@deck.gl/layers | BitmapLayer | โ | โ v9.4 |
@deck.gl/layers | IconLayer | โ | โ v9.3 |
@deck.gl/layers | LineLayer | โ | โ v9.2 |
@deck.gl/layers | PointCloudLayer | โ | โ v9.2 |
@deck.gl/layers | ScatterplotLayer | โ | โ v9.2 |
@deck.gl/layers | ColumnLayer | โ | โ v9.4 |
@deck.gl/layers | GridCellLayer | โ | โ v9.4 |
@deck.gl/layers | PathLayer | โ | โ v9.4 |
@deck.gl/layers | PolygonLayer | โ | โ v9.4 |
@deck.gl/layers | GeoJsonLayer | โ | โ v9.4 |
@deck.gl/layers | TextLayer | โ | โ v9.4 |
@deck.gl/layers | SolidPolygonLayer | โ | โ v9.4 |
@deck.gl/aggregation-layers | ScreenGridLayer | โ | โ v9.4 |
@deck.gl/aggregation-layers | HexagonLayer | โ | โ v9.4 |
@deck.gl/aggregation-layers | ContourLayer | โ | โ v9.4 |
@deck.gl/aggregation-layers | GridLayer | โ | โ v9.4 |
@deck.gl/aggregation-layers | HeatmapLayer | โ | โ v9.4 |
@deck.gl/mesh-layers | SimpleMeshLayer | โ | โ v9.4 |
@deck.gl/mesh-layers | ScenegraphLayer | โ | โ v9.4 |
@deck.gl/geo-layers | A5Layer | โ | โ v9.4 |
@deck.gl/geo-layers | GreatCircleLayer | โ | โ v9.4 |
@deck.gl/geo-layers | S2Layer | โ | โ v9.4 |
@deck.gl/geo-layers | QuadkeyLayer | โ | โ v9.4 |
@deck.gl/geo-layers | TileLayer | โ | โ v9.4 |
@deck.gl/geo-layers | TripsLayer | โ | โ v9.4 |
@deck.gl/geo-layers | H3ClusterLayer | โ | โ v9.4 |
@deck.gl/geo-layers | H3HexagonLayer | โ | โ v9.4 |
@deck.gl/geo-layers | Tile3DLayer | โ | โ v9.4 |
@deck.gl/geo-layers | TerrainLayer | โ | โ v9.4 |
@deck.gl/geo-layers | MVTLayer | โ | โ v9.4 |
@deck.gl/geo-layers | GeohashLayer | โ | โ v9.4 |
@deck.gl/carto | ClusterTileLayer | โ | โ |
@deck.gl/carto | H3TileLayer | โ | โ |
@deck.gl/carto | HeatmapTileLayer | โ | โ |
@deck.gl/carto | PointLabelLayer | โ | โ |
@deck.gl/carto | QuadbinTileLayer | โ | โ |
@deck.gl/carto | RasterTileLayer | โ | โ |
@deck.gl/carto | VectorTileLayer | โ | โ |
GeoJsonLayer supports polygon, line, and text point rendering on WebGPU. TextLayer supports glyph rendering; text backgrounds and collision filtering still require WebGL.
S2Layer,QuadkeyLayer, andGeohashLayerinherit their WebGPU rendering fromPolygonLayer, including extruded, stroked, and wireframe cells.H3HexagonLayersupports both its high-precisionPolygonLayerpath and its instancedColumnLayerpath on WebGPU.H3ClusterLayerrenders through the polygon path.A5Layerinherits its WebGPU rendering fromPolygonLayerand supports both bigint and hexadecimal A5 cell identifiers.Tile3DLayersupports point-cloud, glTF scenegraph, and I3S mesh tile content on WebGPU.
Extensionsโ
The table below covers the public extensions in @deck.gl/extensions. Most remain WebGL-only because they rely on GLSL shader injections, GLSL-only shader modules, or extra render/picking passes that have not been ported to WebGPU. ClipExtension has initial WebGPU support on the primitive layers used by the default MVTLayer rendering path.
| Module | Extension | WebGL | WebGPU |
|---|---|---|---|
@deck.gl/extensions | BrushingExtension | โ | โ |
@deck.gl/extensions | DataFilterExtension | โ | โ |
@deck.gl/extensions | Fp64Extension | โ | โ |
@deck.gl/extensions | PathStyleExtension | โ | โ |
@deck.gl/extensions | FillStyleExtension | โ | โ |
@deck.gl/extensions | ClipExtension | โ | ๐ง |
@deck.gl/extensions | CollisionFilterExtension | โ | โ |
@deck.gl/extensions | MaskExtension | โ | โ |
Effectsโ
The table below covers the public effect classes exported by @deck.gl/core.
| Module | Effect | WebGL | WebGPU | Notes |
|---|---|---|---|---|
@deck.gl/core | LightingEffect | โ | ๐ง | Material lighting modules have WGSL support, but the shadow path still depends on the GLSL-only shadow shader module. |
@deck.gl/core | PostProcessEffect | โ | โ | The current screen-pass chain is still generated from GLSL fragment shader templates and is not WebGPU-ready as a supported deck.gl feature. |
Featuresโ
| Feature | Status | Comment |
|---|---|---|
| Views | ๐ง | The core project and project32 shader modules have WGSL ports, so standard view/projection paths should work. |
| Picking | โ | Deck does async picking on WebGPU, including hover and click picking paths. |
| Shader hooks / layer extensions | ๐ง | ClipExtension has targeted support on ScatterplotLayer, PathLayer, and SolidPolygonLayer; general WGSL shader injection is not yet supported. |
| GPU transforms | ๐ง | Underlying GPU transform APIs are evolving, but deck.gl still has transform-gated tests and no documented WebGPU support for transform-based workflows. |
| Constant attributes | โ | AttributeManager now materializes constant attributes into full buffers on WebGPU as a compatibility path for layers that rely on constant accessors. |
| Attribute transitions | ๐ง | Some layers disable transitions on WebGPU, and transition utilities still contain WebGL-specific buffer read paths. |
| Base map overlays | ๐ง | Transparent overlay integration still requires premultiplied-alpha work across deck and the base map stack. |
| Base map interleaving | โ | No current base map integration path supports WebGPU interleaving. |
Backgroundโ
While the visible WebGPU surface is still limited, much of the groundwork has already happened in luma.gl, the GPU framework powering deck.gl. deck.gl is following that work by porting its shader modules, layers, and render features incrementally.
Participatingโ
If you want to contribute to deck.gl WebGPU development, or just follow along, we have a dedicated channel in the OpenJS / Open Visualization slack community.
You can also check release tracker tasks and ongoing implementation work on GitHub.