# What changed in vgpu

> 31 changes in vgpu 0.4 to 0.6 from its official release notes, upgrade guides and advisories: 4 breaking, 12 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/vgpu/

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

## vgpu 0.6

### Breaking changes

- Preparation must be awaited before entering synchronous frame callbacks. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)

### New APIs and options

- Canvas surfaces support optional depth/MSAA. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- canvasMouseTracker exposes normalized and drawing-buffer pixel coordinates explicitly. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Frame-owned compute passes preserve compute/render ordering and capture managed uniform values per operation. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Device loss has an explicit gpu.lost notification. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Pipelines can be prepared outside frames. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Dynamic shaders use prepareShader() for shader preparation. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Scene composition uses explicit transforms, camera state, hierarchy evaluation and fixed-capacity instances; applications own shading, lights, input handling and scheduling. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Prepared ShaderSource v2 artifacts move WGSL reflection into the build; dynamic shaders use prepareShader(). (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Next.js Turbopack integrations gain a rule with compiler-aware persistent caches. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)

### Performance

- Managed uniforms reuse unchanged work. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Repeated encodes reuse unchanged work. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)

### Behavior and default changes

- Sampled intermediate work uses offscreen targets. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)

### Fixes and other changes

- Bundle ownership has a clearer contract and diagnostics. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Consumer lifetimes have a clearer contract and diagnostics. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- A multi-binding Draw.set({ a, b }) can partially apply before throwing; repair bindings and explicitly re-record affected bundles before replay. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Resource binding validation has a clearer contract and diagnostics. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)
- Odd-length Uint16 index uploads are accepted while logical draw/write bounds are retained. (0.6.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.6.0)

## vgpu 0.5

### Breaking changes

- Allocations are immutable across core and public APIs. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Native tooling requires an Apple Silicon build host, Node.js 22, and Xcode with its Metal compiler component; its worker is ad hoc signed and not notarized. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)

### New APIs and options

- Authored entry-point metadata is available. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Texture shapes and usage can now be specified explicitly across core and public APIs. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Readback now supports mip and region operations across core and public APIs. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)

### Behavior and default changes

- WGSL host layouts are intrinsic. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Binding values are strictly JavaScript-owned. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Vulkan is now the default for Node/Linux, including hosts with X11 or Wayland. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)

### Tooling

- Optional beta tooling generates Swift/Metal packages and bundles a pinned, authenticated Tint worker at installation. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)

### Fixes and other changes

- Destroyed resources are validated. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Stale bundles are detected. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)
- Replacing target/texture pairs is safer. (0.5.0) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.5.0)

## vgpu 0.4

### Breaking changes

- Prereleases now use the canary channel, changing how developers select prerelease versions. (0.4.1) — [release notes](https://github.com/vercel-labs/vgpu/releases/tag/v0.4.1)
