Skip to content

chore: Upgrade to luma.gl 9.3.0-alpha.10#10123

Merged
ibgreen merged 24 commits intomasterfrom
ib/luma-930-alpha.9
Mar 28, 2026
Merged

chore: Upgrade to luma.gl 9.3.0-alpha.10#10123
ibgreen merged 24 commits intomasterfrom
ib/luma-930-alpha.9

Conversation

@ibgreen
Copy link
Copy Markdown
Collaborator

@ibgreen ibgreen commented Mar 23, 2026

Summary

This PR upgrades deck.gl to @luma.gl/* 9.3.0-alpha.10 and updates the repo for the latest luma shader/block layout behavior, Node 22/Vite behavior, and website bundling changes.

What Changed

luma.gl alpha.10 upgrade

  • Upgraded workspace @luma.gl/* dependencies to 9.3.0-alpha.10
  • Regenerated yarn.lock
  • Updated the luma core API usage in modules/core/src/lib/attribute/gl-utils.ts to use dataTypeDecoder.getDataType(...)

Shader / uniform block compatibility

  • Added layout(std140) to deck GLSL uniform blocks across modules
  • Reverted the earlier temporary vec4/.xyz project-uniform workaround after the luma fixes landed
  • Updated WGSL uniform declarations where needed for current luma expectations
  • Kept the data filter module on a stable, explicit block layout to avoid offset drift between JS-packed uniforms and shader reads

DataFilter fixes

  • Reworked modules/extensions/src/data-filter/shader-module.ts so the dataFilterUniforms block has a fixed layout with padded vec4 numeric ranges and an explicit uvec4 categoryBitMask
  • Added shader-side accessors so scalar/vec2/vec3 filter paths still read the correct subset of those packed values
  • Updated the JS-side uniform payload generation to pad numeric filter ranges consistently
  • Updated unit tests to assert the packed UBO representation now stored in luma’s uniform store

Resource cleanup fixes

  • Fixed ScenegraphLayer teardown to destroy tracked GLTF materials as well as scenegraph nodes
  • Added explicit Tile3DLayer tileset destruction during finalizeState

Node 22 / Vite compatibility

  • Added vite.config.js and vite.config.mjs to strip with {type: 'json'} import attributes during Vite/esbuild processing
  • This keeps the repo test/build flow working under Node 22

Website build fixes

  • Moved the deprecated Docusaurus onBrokenMarkdownLinks setting to markdown.hooks.onBrokenMarkdownLinks
  • Added a website webpack alias for @luma.gl/webgl/constants to work around the alpha.10 package resolution issue during docs bundling

Validation

  • yarn build passes
  • yarn test no longer has the DataFilterExtension / GeoJsonLayer#DataFilterExtensionWithBinaryAttributes failures
  • Current remaining yarn test failures are render snapshot diffs only:
    • arc-lnglat
    • arc-lnglat-wrap-longitude
    • path-globe
    • icon-lnglat-facing-up

Notes

  • The website/Docusaurus build no longer hits the previous @luma.gl/webgl/constants resolution error locally
  • I was not able to complete website/yarn test-build end-to-end on this machine because the local Docusaurus build was later killed with exit 137

@coveralls
Copy link
Copy Markdown

coveralls commented Mar 23, 2026

Coverage Status

coverage: 79.906% (+0.03%) from 79.878%
when pulling b4fdf87 on ib/luma-930-alpha.9
into e87b04d on master.

@ibgreen ibgreen changed the title chore: Upgrade to luma.gl 9.3.0-alpha.9 chore: Upgrade to luma.gl 9.3.0-alpha.10 Mar 23, 2026
@ibgreen ibgreen marked this pull request as ready for review March 23, 2026 15:18
Copy link
Copy Markdown

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

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: 11f29b4278

ℹ️ 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 on lines +23 to 26
layout(std140) uniform projectUniforms {
bool wrapLongitude;
int coordinateSystem;
vec3 commonUnitsPerMeter;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Pad ProjectUniforms before opting it into std140

Making projectUniforms a layout(std140) block changes every vec3 in this UBO to a 16-byte slot, but the matching WGSL struct in modules/core/src/shaderlib/project/project.wgsl.ts still packs projectionMode, devicePixelRatio, commonOrigin, etc. immediately after the preceding vec3<f32> fields. On WebGPU, any layer that uses the shared project module will therefore read those uniforms from the wrong offsets and produce corrupted transforms. This needs explicit padding on the WGSL side (or the GLSL block must stay out of std140).

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Why? Doesn't luma.gl calculate offsets using the appropriate layout for each device?

vite.config.js Outdated
@@ -0,0 +1,14 @@
import {defineConfig, mergeConfig} from 'vite';
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

What is the purpose of these root level configs?

@ibgreen ibgreen merged commit de5a075 into master Mar 28, 2026
3 checks passed
@ibgreen ibgreen deleted the ib/luma-930-alpha.9 branch March 28, 2026 18:36
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