# Changelog

All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.

## [0.0.5](https://github.com/pex-gl/pex-gpu/compare/v0.0.4...v0.0.5) (2026-10-16)

### Bug Fixes

* add missing label pass from command ([e631e96](https://github.com/pex-gl/pex-gpu/commit/e631e96d63bd6a5ad843a45d02a33f857cd5cd3d))

### Features

* skip failed pipelines and add flush() ([cc6b1d9](https://github.com/pex-gl/pex-gpu/commit/cc6b1d98c87bac0d56a2e78dc2e73a97eb9ade11))

## [0.0.4](https://github.com/pex-gl/pex-gpu/compare/v0.0.3...v0.0.4) (2026-09-24)

### Bug Fixes

* update length on updateBuffer ([36fc491](https://github.com/pex-gl/pex-gpu/commit/36fc4912a8325d4ca7ecae3cfe76f2102b5ddda2))

### Features

* add debug timings ([be1334d](https://github.com/pex-gl/pex-gpu/commit/be1334d13e50555681b96da80f32f68e2c296790))
* add resource tracking ([a87c9b9](https://github.com/pex-gl/pex-gpu/commit/a87c9b992f8ba205adc1b96b0822ab0d9152255f))
* handle shared state ([4f3ad7e](https://github.com/pex-gl/pex-gpu/commit/4f3ad7e67d94b4b3ad37b5d79fcb8bf64627c84e))
* prevent devicePixelRatio clamping on resize ([5697c14](https://github.com/pex-gl/pex-gpu/commit/5697c14b397ef1bd946e348855d0fd4f1163107d))
* reflects layouts per address space ([25a67fb](https://github.com/pex-gl/pex-gpu/commit/25a67fba6812e476bc461cc524a368077a96a1c6))

## [0.0.3](https://github.com/pex-gl/pex-gpu/compare/v0.0.2...v0.0.3) (2026-09-16)


### Bug Fixes

* use WebGPU arrayStride instead of stride ([1bd2158](https://github.com/pex-gl/pex-gpu/commit/1bd21586ee2b4db574e96c6962190ab3c74250df))


### Features

* add alphaToCoverage ([d387bbb](https://github.com/pex-gl/pex-gpu/commit/d387bbbefa077440b687283c9eac675a5812d4e5))
* add assertPackable to validate before writing ([1860e4e](https://github.com/pex-gl/pex-gpu/commit/1860e4eb0d3125657633425ce1d382649b626390))
* add compressed texture support + add optional/required features/limits ([ccfd0de](https://github.com/pex-gl/pex-gpu/commit/ccfd0dead19498f062fa96154f4ac91bfce144fd))
* add encoder option to generateMipmaps ([db1868b](https://github.com/pex-gl/pex-gpu/commit/db1868b4f2f47f12a2b0ab8b17cf2b79d28a5428))
* add maxFramesInFlight option ([698cefa](https://github.com/pex-gl/pex-gpu/commit/698cefafb33b18bef00edf75e73cb9febf1f871a))
* add storage ring allocator ([4b23112](https://github.com/pex-gl/pex-gpu/commit/4b2311246766d479ef2ca66171b2fb9b3b117fcb))
* add support for mipLevels in createTexture ([2b85e46](https://github.com/pex-gl/pex-gpu/commit/2b85e46dc43982b456224daf754da643077413ee))
* add support for shader in render pipeline in lieu of vertex+fragment ([e57d3e9](https://github.com/pex-gl/pex-gpu/commit/e57d3e905aef77ca06212d0e6baa6d2452ce61c8))
* retain context alphaMode ([615076f](https://github.com/pex-gl/pex-gpu/commit/615076f66465d8dc3d1fa0ff3af619f15bb99f24))



## [0.0.2](https://github.com/pex-gl/pex-gpu/compare/v0.0.1...v0.0.2) (2026-08-18)


### Bug Fixes

* add support for Float16Array for texture upload and missing texture data formats ([387adaa](https://github.com/pex-gl/pex-gpu/commit/387adaafd85cb6976dbf125c8747330fdb371694))
* await a macrotask for timestamp query ([e5aafd2](https://github.com/pex-gl/pex-gpu/commit/e5aafd29ade3a40b952799c7523264c8ca0c1526))
* check id instead of view in isGpuTexture ([4b4f9c0](https://github.com/pex-gl/pex-gpu/commit/4b4f9c06be17daa0e4e7d47e3d71343bcc11839c))
* scopeConstants to each shader stage for Webkit overrides to work ([1415efa](https://github.com/pex-gl/pex-gpu/commit/1415efa22e5b2c603c33c74bb97217b029e3b3ff))


### Features

* add beginFrame/endFrame to decouple segments from rAF ([04fb1e5](https://github.com/pex-gl/pex-gpu/commit/04fb1e52d95f3ab766d7ec7ad76fb577d1fd4fdc)), closes [#24](https://github.com/pex-gl/pex-gpu/issues/24)
* add constants support to render pipeline ([7c6e2a4](https://github.com/pex-gl/pex-gpu/commit/7c6e2a4b89f013dd9b3c4d12f6fc99d6ff320190))
* add support for depthBias/depthBiasSlopeScale/depthClamp ([166aed0](https://github.com/pex-gl/pex-gpu/commit/166aed06dea37d2a37d67cb54b58520c716acb21))
* add support for non-filtering sampler ([b77ac69](https://github.com/pex-gl/pex-gpu/commit/b77ac69d924df073c10eee8f1ccdc9982fb87c4d))
* add viewDimension to GpuTexture + fix depth texture reflection ([709e551](https://github.com/pex-gl/pex-gpu/commit/709e551484aa3bdc050033d98d1eae4f3c80e796))
* allow async frame callback ([aa44335](https://github.com/pex-gl/pex-gpu/commit/aa443353fdb5d701583312e67d45aea260509c7c))
* handle any array<T, N> in reflection ([68457cd](https://github.com/pex-gl/pex-gpu/commit/68457cde31ff67e5f1ae2a157ef6dea5b0276e9b))
* handle packing array of structs ([7d0ed2f](https://github.com/pex-gl/pex-gpu/commit/7d0ed2ff97944afd5191887f9149406c3ad838a7))



## [0.0.1](https://github.com/pex-gl/pex-gpu/compare/v0.0.0...v0.0.1) (2026-07-31)



# 0.0.0 (2026-07-30)


### Bug Fixes

* make context usage replace instead of append ([b3f3941](https://github.com/pex-gl/pex-gpu/commit/b3f394106316cd29689bf69508c388860d03a740))
* make texture usage replace instead of append ([228047a](https://github.com/pex-gl/pex-gpu/commit/228047a0bb56b6b055fef7dd8b09e84407c1a2ca))


### Features

* add compute pass timestamps ([731b2c3](https://github.com/pex-gl/pex-gpu/commit/731b2c325f80d463d8343440d3c4efcb8cf6b45e))
* add context-managed depth/stencil for canvas-targeting passes ([3b87afc](https://github.com/pex-gl/pex-gpu/commit/3b87afca0bf2bafcb210331adac615c7cf83431a)), closes [#13](https://github.com/pex-gl/pex-gpu/issues/13)
* add debug and debugStats (wip) ([825efab](https://github.com/pex-gl/pex-gpu/commit/825efab8939604ae8a28e6e226061ba412f4e345)), closes [#19](https://github.com/pex-gl/pex-gpu/issues/19)
* add defineCommand/definePass/definePipeline ([7c8ee42](https://github.com/pex-gl/pex-gpu/commit/7c8ee4221acf6a2dedf6a5abc42531d989201b2d)), closes [#1](https://github.com/pex-gl/pex-gpu/issues/1)
* add dispose methods alongside [Symbol.dispose] + add disposes of uniform allocator, canvas depth/stencil texture, and the bind-group/layout/pipeline caches in ctx.dispose ([f9241d5](https://github.com/pex-gl/pex-gpu/commit/f9241d51fd479ab84b366a88df79cd7d08f15b07))
* add frame and timestamp to FrameInfo ([55ac6ee](https://github.com/pex-gl/pex-gpu/commit/55ac6ee9220ae22b7703b73adc4713f56f6f069d)), closes [#5](https://github.com/pex-gl/pex-gpu/issues/5)
* add initial implementation ([ea16de1](https://github.com/pex-gl/pex-gpu/commit/ea16de19f7976bcc594d0503a0dfcbd002a6d482))
* add preserveDrawingBuffer context option ([f71180e](https://github.com/pex-gl/pex-gpu/commit/f71180e5687640d580f162d5e5c0834c4c22a981)), closes [#23](https://github.com/pex-gl/pex-gpu/issues/23)
* add resource tracking to avoid bind group cache leak ([9452070](https://github.com/pex-gl/pex-gpu/commit/9452070c2136b6945d7f73a9e7c39cb6016b375a))
* add stencil support ([d011871](https://github.com/pex-gl/pex-gpu/commit/d01187134a5e20540709a2a3dc1dd10331132643))
* add support for depth in CreateTextureOptions ([ac15d95](https://github.com/pex-gl/pex-gpu/commit/ac15d9532f6a4ce581c697a4da24d385614313c1))
* allow pass without pipeline ([6b9d864](https://github.com/pex-gl/pex-gpu/commit/6b9d8642d1028be5bbc19ee717db647b000d10d3)), closes [#3](https://github.com/pex-gl/pex-gpu/issues/3)
* change frame info time and deltaTime to seconds ([f421383](https://github.com/pex-gl/pex-gpu/commit/f421383e18eef1cebe418f631481bca4e277fcc3)), closes [#4](https://github.com/pex-gl/pex-gpu/issues/4)
* consolidate WGSL and WebGPU error reporting across browsers ([e560d36](https://github.com/pex-gl/pex-gpu/commit/e560d360629b45d0c2c5f033bc11ed5dec12ec5e)), closes [#6](https://github.com/pex-gl/pex-gpu/issues/6)
* correctly record cache access in debug + handle lifetime vs. frame access (wip) ([c067b71](https://github.com/pex-gl/pex-gpu/commit/c067b71b471e522d622256b18950e666c1c502f2))
* handle compute batch submit ([92fea7f](https://github.com/pex-gl/pex-gpu/commit/92fea7f54728472d6b56e5487173db0dae207833))
* implement compute scoped submit ([295c5b0](https://github.com/pex-gl/pex-gpu/commit/295c5b0882dcb9e5962696c80e6fa2e63a27ecca)), closes [#9](https://github.com/pex-gl/pex-gpu/issues/9)
* remove buffer kind in favour of usage as string or GPUBufferUsageFlags ([594a9a8](https://github.com/pex-gl/pex-gpu/commit/594a9a8f8d28ead6b60b966784bbe279cdc3cb0b)), closes [#10](https://github.com/pex-gl/pex-gpu/issues/10)
* remove depthTest in favour of depthWriteEnabled ([49961da](https://github.com/pex-gl/pex-gpu/commit/49961daa5b16fa297700c4a0087423ccdc44350e))
* remove textureFromImage in favor of more generic createTexture with options.data check ([ca31214](https://github.com/pex-gl/pex-gpu/commit/ca3121488e92bc78e7c1ea54fc2185b4ca931250))
* remove vertex-storage and index-storage buffer usages ([77062f3](https://github.com/pex-gl/pex-gpu/commit/77062f33a3a7b9efc0cc8214e0ebb3246121fce7))
* split internals for lean import ([a53c933](https://github.com/pex-gl/pex-gpu/commit/a53c933a682fac9376d10e7d01c4b191378aaec9))
* use WebGPU names for color attachments properties ([76b0304](https://github.com/pex-gl/pex-gpu/commit/76b03040852f6d2d3aa9c997bfccfbecb1eb7603))
