Skip to content

feat(layers): port BitmapLayer to WebGPU#10470

Merged
ibgreen merged 2 commits into
masterfrom
codex/webgpu-bitmap-layer
Jul 23, 2026
Merged

feat(layers): port BitmapLayer to WebGPU#10470
ibgreen merged 2 commits into
masterfrom
codex/webgpu-bitmap-layer

Conversation

@ibgreen-openai

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

Copy link
Copy Markdown
Collaborator

For #9504

Split from #10450.

Goal

Port the small, self-contained BitmapLayer rendering path to WebGPU and expose the website examples it directly unlocks.

Why this is low risk

  • WebGL keeps the same GLSL shaders, shader-module list, and getBufferLayouts() call as master.
  • The WGSL source and color module are selected only when device.type === 'webgpu'.
  • The only WebGPU-specific layout adjustment removes the index buffer from vertex-buffer layouts because WebGPU binds index buffers separately.
  • No shared core, aggregation, extension, or public API changes are included.
image image

Website examples

Example Layer/feature Notes
TileLayer (Geospatial) BitmapLayer sublayers Raster OSM tiles render in WebGPU.
WMSLayer BitmapLayer sublayer WMS raster imagery renders in WebGPU.

Changes

  • Add BitmapLayer WGSL for projection, coordinate conversion, texture sampling, tint/desaturation, opacity, and picking UV encoding.
  • Add WGSL uniform and texture bindings while retaining the existing GLSL uniform blocks.
  • Pass the selected device through the TileLayer and WMS website demos and enable their device tabs.

Validation

  • yarn build
  • yarn lint (passes; existing repository warnings remain)
  • yarn test-headless test/modules/layers/bitmap-layer.spec.ts
  • yarn test-website
  • Manual Chrome runtime check: fresh WebGPU loads of /examples/tile-layer and /examples/wms-layer produced no BitmapLayer, shader, or pipeline console errors.

@coveralls

coveralls commented Jul 23, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 83.368% (-0.004%) from 83.372% — codex/webgpu-bitmap-layer into master

@ibgreen-openai
ibgreen-openai marked this pull request as ready for review July 23, 2026 14:00

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ab64ce1f15

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread modules/layers/src/bitmap-layer/bitmap-layer.wgsl.ts Outdated
Comment thread modules/layers/src/bitmap-layer/bitmap-layer.wgsl.ts Outdated
Comment thread modules/layers/src/bitmap-layer/bitmap-layer.wgsl.ts
@ibgreen-openai

ibgreen-openai commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator Author

Review follow-up: all reviewer threads are addressed and resolved in ffc254f. Local build, lint, focused BitmapLayer tests, and website checks passed. GitHub reports the PR approved and mergeable. CI finished with test-website and test-python green; test-node is blocked only by an unrelated MapboxOverlay timing failure in test/modules/mapbox/mapbox-overlay.spec.ts, where drawLog was [poi, poi] instead of [poi]. Rerun that check before merge.

@ibgreen
ibgreen merged commit fa758fd into master Jul 23, 2026
7 of 8 checks passed
@ibgreen
ibgreen deleted the codex/webgpu-bitmap-layer branch July 23, 2026 19:22
@ibgreen-openai ibgreen-openai mentioned this pull request Jul 23, 2026
26 tasks
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.

4 participants