Skip to content

Expand WebGPU layer coverage and documentation - #705

Merged
ibgreen merged 2 commits into
masterfrom
codex/webgpu-coverage-cleanup
Jul 31, 2026
Merged

Expand WebGPU layer coverage and documentation#705
ibgreen merged 2 commits into
masterfrom
codex/webgpu-coverage-cleanup

Conversation

@ibgreen

@ibgreen ibgreen commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • restore portable state-boundary rendering in the wind example and validate it on a native WebGPU device
  • expand browser validation across GeoArrow, global-grid/tile-border, and curved trace rendering paths
  • correct the compatibility matrix, generated documentation badge classifications, wind documentation, and docs/whats-new.md

This PR targets master directly and has no dependency on the separate software-WebGPU CI enablement in #706. It preserves the existing CI workflow and provider behavior.

Why

Several portable paths were still hidden or unverified after moving to deck.gl 9.4 alpha.2:

  • The wind example retained a stale !isWebgpu guard around its stroked GeoJsonLayer state boundaries even though upstream PathLayer is now portable.
  • GeoArrow browser coverage only exercised path and solid-polygon wrappers.
  • Backend-neutral documentation pages inherited package-level partial badges, and TreeLayer was incorrectly described as using an external renderer instead of deck.gl SimpleMeshLayer.

The broader coverage also exposed a remaining baseline limitation: GeoArrowArcLayer currently requests nine vertex buffers while baseline WebGPU guarantees eight. This PR documents that path as remaining work instead of marking it supported.

WebGPU porting tracker

Area This PR Status / remaining work
Wind state boundaries Removed the stale WebGPU guard and added native-device coverage for the stroked GeoJSON boundary.
GeoArrow column, heatmap, path, point-cloud, polygon, scatterplot, and solid-polygon layers Arrow binary attributes are browser-verified on WebGL2 and WebGPU.
GlobalGridLayer and TileGridLayer borders Added local-data WebGL2/WebGPU coverage for upstream polygon and path renderers.
Curved trace dependencies Added WebGPU coverage for ArcLayer-backed curve routing; row separators remain portable solid lines.
Example device tabs Every gallery and live layer-reference example uses the shared DeviceTabsWidget.
Documentation badges and release notes Every documentation page has a WebGPU badge; backend-neutral APIs are marked not applicable; the matrix and whats-new.md are updated.
Software-WebGPU CI execution Intentionally split into independent PR #706; this PR does not depend on it.
GeoArrowArcLayer Reduce the current nine vertex-buffer layout to the baseline WebGPU limit of eight.
GeoArrow H3, text, and trips layers Validate upstream renderers and complete remaining custom shader work.
SharedTile2DLayer / TileSourceLayer Validate tile formats, texture upload, labels, and picking with local fixtures.
Timeline labels and interactions Complete stable upstream TextLayer validation plus pointer/drag coverage.
Editable interactions Add WebGPU pointer, drag, snapping, and selection interaction coverage.
Complete graph rendering Validate images, labels, layouts, styling, and picking end to end.
Basemap styles Validate each selected style's polygon, path, texture, and label composition.
ElevationLayer / TreeLayer Adopt upstream WebGPU support for TerrainLayer and SimpleMeshLayer.
FlowPathLayer Replace the incomplete WebGL transform-feedback design with a backend-neutral animation or compute implementation.
Leaflet and Bing Maps overlays Host-owned WebGL contexts cannot be converted to WebGPU by adding device tabs.

Validation

  • yarn lint
  • yarn test — 168 files passed; 1,420 tests passed, 9 skipped
  • yarn test-headless — 57 files passed; 433 tests passed, 8 WebGPU tests skipped as expected without CI enablement
  • DECK_GL_COMMUNITY_SOFTWARE_WEBGPU=true yarn test-headless modules/geo-layers/test/webgpu-layers.browser.spec.ts — 2 tests passed, 0 skipped
  • yarn build
  • yarn --cwd website build
  • direct badge-classification assertions for supported, unsupported, partial, and not-applicable pages

@github-actions

Copy link
Copy Markdown

Coverage

Stmts: 51.01% ▼-0.01% | Branch: 42.11% | Funcs: 49.15% | Lines: 51.12% ▼-0.01%

Test Files 168 passed (168)

@ibgreen ibgreen changed the title Expand WebGPU coverage and enforce software CI Expand WebGPU layer coverage and documentation Jul 30, 2026
@ibgreen
ibgreen marked this pull request as ready for review July 31, 2026 11:38
@ibgreen
ibgreen merged commit aebb7c5 into master Jul 31, 2026
4 checks passed
@ibgreen
ibgreen deleted the codex/webgpu-coverage-cleanup branch July 31, 2026 11:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant