Skip to content

Tracker: WebGPU #9504

Description

@ibgreen

deck.gl v10

(TBD, see luma.gl for WIP)

deck.gl 9.4

Last verified against master: 2026-07-27, after the PathLayer, SolidPolygonLayer, and HeatmapLayer ports landed.

Status: ✅ merged/working · 🟡 ready for review · 🟠 draft or partial · 🔴 CI needs attention · ⬜ focused verification/port still needed. Open-PR CI statuses were verified against GitHub on 2026-07-27.

Layer implementation and review queue

Layer / layer family Status PR Comments / next action
TextLayer / GeoJsonLayer text points 🟡 Review #10473 CI green. Glyph rendering; TextBackgroundLayer, collision filtering, and clipping remain separate follow-ups.
ScenegraphLayer 🟡 Review #10477 CI green. glTF/PBR and WebGPU instance picking; stacked on #10476, whose CI is also green. Merge the flight-data/example fix first.
TripsLayer 🔴 Fix CI #10484 CI failed on two unrelated TerrainEffect timeouts. TripsLayer regression coverage passes; rerun or investigate the shared terrain tests before merging. The example retains polygon ground/buildings and covers naturally closed paths and explicit loops.
SimpleMeshLayer 🟡 Review #10485 CI green. Restores the original polygon background. Shadow effects remain a separate WebGPU follow-up.
GridLayer 🟠 Draft #10482 CI green; still draft. CPU aggregation fallback plus the merged GridCellLayer renderer; finish review and mark ready.
ArcLayer / ContourLayer website device tabs 🟡 Review #10494 CI green. Enables complete polygon-backed demos and adds real-WebGPU Arc, Contour, and Hexagon regression coverage.
ArcLayer, IconLayer, LineLayer, PointCloudLayer, ScatterplotLayer, ColumnLayer, GridCellLayer ✅ Merged #10466 Shared simple-layer WGSL ports and premultiplied-alpha blending.
GreatCircleLayer ✅ Inherits merged port #10466 Deprecated thin subclass of ArcLayer; no independent shader port is needed. Verify the greatCircle: true example/test path if adding dedicated coverage.
PathLayer / GeoJsonLayer line strings ✅ Merged #10113 Supports path-based composite layers and the Trips port.
SolidPolygonLayer / PolygonLayer / GeoJsonLayer polygons ✅ Merged #10142 Polygon dependencies are available on master; do not remove background, building, county, or contour polygon sublayers from new ports.
BitmapLayer 🟠 Base port merged #10470 Basic bitmap rendering is in tree; document and test any remaining texture/API edge cases separately.
Image TileLayer / WMSLayer ✅ Base rendering path #10470 Image/WMS rendering is built on BitmapLayer; preserve the existing complete examples and validate image-loading edge cases separately.
HexagonLayer ✅ Merged #10471 CPU aggregation fallback is in tree. #10494 corrects the stale support table and adds WebGPU regression coverage.
ScreenGridLayer ✅ Merged #10472 CPU aggregation fallback. Native WebGPU aggregation is still a separate feature.
HeatmapLayer ✅ Merged #10483 Focused WebGPU heatmap port is now on master.
ContourLayer ✅ Rendering works; example PR open #10494 Existing CPU aggregation plus landed PathLayer isolines and SolidPolygonLayer isobands already render on WebGPU; merge the example, documentation, and regression coverage.
S2Layer / QuadkeyLayer / GeohashLayer 🟡 Review #10495 Review fixes pushed; CI running. Normalizes loaders.gl CSV tables and reactively reapplies legend filtering to loaded rows. Six real-WebGPU cases cover flat stroked and extruded wireframe cells; preserves all five Global Grid systems, device tabs, the globe overlay, and existing WebGL behavior.
A5Layer 🟡 Review #10497 CI green. Verifies bigint and hexadecimal identifiers, flat outlines, and extruded pentagon tops, sides, and wireframes on WebGPU.
H3ClusterLayer / H3HexagonLayer 🟡 Review #10496 CI green. Verifies H3 cluster polygons, high-precision polygon hexagons, and low-precision instanced ColumnLayer hexagons.
MVTLayer ⬜ Verify / write focused PR Reuse landed TileLayer, GeoJsonLayer, path, and polygon support; verify binary attributes, tile loading, and custom sublayers.
TerrainLayer / Tile3DLayer ⬜ Write focused PR(s) Verify against the SimpleMeshLayer and ScenegraphLayer ports once #10485 and #10477 land.
CARTO tile and label layers ⬜ Verify / write focused PR(s) ClusterTileLayer, H3TileLayer, HeatmapTileLayer, PointLabelLayer, QuadbinTileLayer, RasterTileLayer, and VectorTileLayer; verify each against its now-landed polygon, bitmap, heatmap, text, and tile dependencies.

Cross-cutting work

  • 🟡 #10493: enable WebGPU render tests; approved.
  • 🟡 #10478: upgrade to luma.gl 9.4.0-alpha.1; approved.
  • #10151: explicit WebGPU attribute buffer groups.
  • #10479: remove unnecessary backend-specific shader checks.
  • #10467 and #10480: persisted device selection and shared example-device plumbing.
  • Native WebGPU aggregation; current supported aggregation layers may intentionally use CPU fallback.
  • Finish WebGPU picking, hover, and click integration.
  • Shadows, text backgrounds, collision filtering, clipping, shader injections, and other WebGL-only effects/extensions.
  • 64-bit emulation with 32-bit source data; convert inputs to 64-bit where needed.
  • Remove remaining WebGL-specific calls, particularly setGLDeviceParameters().
  • Avoid unsupported unorm8x1 and unorm8x3 attribute formats.
  • Fix React map/base-map overlay integration and remaining premultiplied-alpha issues.
  • Address shader-module/project feedback in #9509.
  • Investigate and remove the workaround from #9527.

Superseded work

  • #10450: closed; useful only as a reference when extracting focused layer ports.
  • #9723: closed and superseded by the merged SolidPolygonLayer port #10142.

deck.gl 9.3

deck.gl 9.2

WEBSITE - Make a few layers run under WebGPU

deck.gl 9.1: Make a few layers run under WebGPU already in 9.1.x

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions