# What changed in @luma.gl/core

> 24 changes in @luma.gl/core 9 from its official release notes, upgrade guides and advisories: 18 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/@luma.gl/core/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @luma.gl/core 9

### New APIs and options

- WGSL shader modules support `@binding(auto)` to eliminate binding conflicts. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- Semantic color normalization now has a helper namespace; the legacy floatColors alias remains available. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- New WGSL helpers decode compact Uint64 DGGS cell keys for storage-buffer and boundary-extraction workflows. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- A new shader module provides shared semantic color normalization and premultiplied alpha helpers. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- The WGSL module adds helpers for splitting binary64-rounded subtraction into normalized double-single limbs, normalizing and comparing limbs with integer-controlled behavior, and classifying non-finite values. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- The shader module can subtract packed IEEE 754 double-precision values directly in WGSL and convert the result to f32. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- A new shader module adds a diffuse-only matte material model. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- The shader module supports a new light type, `SpotLight`. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- This shader define can force or disable integer-controlled double-single arithmetic. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- All material shader modules support an `unlit` prop so applications can disable lighting for materials that are already lit. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- Byte-based semantic color APIs accept `useByteColors: false` for float and HDR-style color values while preserving current defaults. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- ShaderModules now have WGSL variants, enabling shader modules to be used with WGSL. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- A new shader-pass pipeline type supports structured multi-pass postprocessing. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- Reusable shader assembly plugins group modules, defines, named injections, caller-owned vertex inputs, and generated cross-stage varyings. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- WebGPU shaders can read packed RGBA storage rows through this helper. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- The shared fp32 shader module provides a portable tangent approximation in GLSL and WGSL. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- A new water material shader module provides GLSL and WGSL shaders. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- Preprocessing accepts simple boolean and numeric #if expressions; assembled WGSL exposes a vertex-storage capability define so inactive resource branches are removed before automatic binding assignment. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)

### Behavior and default changes

- ShaderAssembler applies registered hook functions and standard named injections while assembling unified WGSL shaders. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- `uniformTypes` supports nested structs and fixed-size arrays. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)

### Fixes and other changes

- Indexed model draws now honor the vertex count. (9.4.2) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.2)
- The default framebuffer is resized after an external canvas resize. (9.4.1) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.1)
- The legacy alias remains available alongside the new colors helper namespace. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
- WGSL double-single arithmetic automatically uses integer-controlled operations on Apple WebGPU adapters to avoid Metal compiler reassociation while retaining the vec2f API. (9.4.0) — [release notes](https://github.com/visgl/luma.gl/releases/tag/v9.4.0)
