Skip to content

feat(layers): extend WebGPU layer support#10450

Draft
ibgreen-openai wants to merge 2 commits into
masterfrom
codex/webgpu-layer-stack
Draft

feat(layers): extend WebGPU layer support#10450
ibgreen-openai wants to merge 2 commits into
masterfrom
codex/webgpu-layer-stack

Conversation

@ibgreen-openai

@ibgreen-openai ibgreen-openai commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

Goal

Keep a combined integration branch for the remaining WebGPU layer ports while making each focused layer PR small and easy to review.

This branch includes the landed AttributeManager buffer groups, unconditional WGSL shader/module setup (#10479), and shared website device plumbing (#10480).

Remaining integration changes

  • PathLayer: portable WGSL paths and packed neighboring-position buffer groups.
  • SolidPolygonLayer / polygon-backed GeoJsonLayer: WGSL filled, side, and wireframe models using layer-local attribute groups.
  • TextLayer: WGSL glyph rendering; the combined draft additionally includes the optional WGSL text-background/clipping path.
  • ScenegraphLayer: WGSL scenegraph rendering and the required glTF PBR adapter.
  • Website example opt-ins are restricted to static hasDeviceTabs = true; shared app-device plumbing is inherited from master.
  • Existing BitmapLayer, HexagonLayer, ScreenGridLayer, color-module plumbing, shared rendering state, and AttributeManager changes have been removed from this diff because their focused PRs have already landed.
  • Do not globally disable or silently ignore WebGL-only extensions. The Text demo explicitly skips the unsupported collision extension on WebGPU only.

Website examples

Example Layer or feature Notes
ArcLayer ArcLayer + GeoJSON polygon/path dependencies Enabled once the pending polygon/path dependencies are included.
GeoJSON paths PathLayer Packed WebGPU path attributes.
GeoJSON polygons SolidPolygonLayer Filled and extruded polygon rendering.
TextLayer MultiIconLayer / TextLayer WebGPU glyph rendering; WebGL collision filtering unchanged.
TextLayer (Clipping) TextLayer + TextBackgroundLayer Optional combined-integration background/clipping path.
ScenegraphLayer ScenegraphLayer glTF scenegraph and WebGPU PBR adapter.

The already-merged HexagonLayer, ScreenGridLayer, Bitmap-backed TileLayer/WMSLayer, IconLayer, LineLayer, ScatterplotLayer, and PointCloudLayer remain available through master and introduce no duplicate changes here.

Validation

  • yarn build: passed for the combined WebGPU integration branch.
  • yarn lint and the node test suite: passed; only existing repository warnings remain.
  • yarn test-website: the full production website build passed; only existing dependency source-map warnings remain.
  • Chromium render coverage: the PathLayer, PolygonLayer, TextLayer, and ScenegraphLayer suites all passed.
  • The four GeoJSON text screenshot mismatches reproduce unchanged on the exact current master, including identical match percentages; they are not regressions introduced by this branch.

This PR remains the broad integration draft; the individual PathLayer, SolidPolygonLayer, TextLayer, and ScenegraphLayer PRs are the preferred review and merge units.

@coveralls

coveralls commented Jul 18, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 83.181% (-0.2%) from 83.386% — codex/webgpu-layer-stack into master

@ibgreen-openai
ibgreen-openai force-pushed the codex/webgpu-layer-stack branch 2 times, most recently from b19884b to bb1e679 Compare July 18, 2026 14:26
Base automatically changed from ib/buffer-groups to master July 22, 2026 13:36
@ibgreen-openai
ibgreen-openai force-pushed the codex/webgpu-layer-stack branch 2 times, most recently from 2238d5b to efe9aed Compare July 23, 2026 11:42
…stack

# Conflicts:
#	docs/developer-guide/webgpu.md
#	modules/aggregation-layers/src/hexagon-layer/hexagon-cell-layer.wgsl.ts
#	modules/aggregation-layers/src/screen-grid-layer/screen-grid-cell-layer.wgsl.ts
#	modules/aggregation-layers/src/screen-grid-layer/screen-grid-layer-uniforms.ts
#	modules/layers/src/bitmap-layer/bitmap-layer.ts
#	modules/layers/src/bitmap-layer/bitmap-layer.wgsl.ts
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.

3 participants