Skip to main content

WebGPU

caution

WebGPU support in deck.gl v9 is a work in progress and is not production ready. At this stage, it is aimed at early adopters who wants to try out the new technology, contributors interested in supporting development, or general users that are curious to understand what to expect from future releases.

deck.gl is gradually adding support for running on WebGPU. WebGPU support will materialize over successive releases, layer by layer and feature by feature.

Enabling WebGPU

deck.gl needs to be set up to use a luma.gl device that uses the luma.gl webgpuAdapter.

One way to do this is to supply deviceProps to the Deck constructor:

import {webgpuAdapter} from '@luma.gl/webgpu`;

new Deck({
deviceProps: {
type: 'webgpu',
adapters: [webgpuAdapter]
}
});

Layers

Layers will gradually be WebGPU enabled. Layers that support WebGPU can be tested in the deck.gl website, using the WebGPU tab.

Features

Apart from listing which layers have been ported, another aspect is what deck.gl features support WebGPU.

FeatureStatusComment
Views🚧Various view systems should work via the WGSL port of the project module
PickingWebGPU pixel readout is asynchronous, requiring an overhaul of deck.gl's picking engine
Base Map overlaysdeck.gl needs to adopt pre-multiplied colors to enable transparency
Base Map interleavingAt the moment no basemaps support WebGPU

This is currently an incomplete list. Expect more detail in upcoming releases.

Background

While the WebGPU support in deck.gl may look limited, under the hood, WebGPU enablement has been in progress for several years and a lot of work has been completed. In particular luma.gl, the GPU framework powering deck.gl, has been rewritten and adopted a "WebGPU-first" design.

Participating

If you want to contribute to deck.gl WebGPU development, or just follow along, we have a dedicated channel in our OpenJS / Open Visualization slack channel.

You can also check various release tracker tasks on GitHub.