Releases: software-mansion/TypeGPU
v0.4.4
🐞 Bug fixes/stabilization
- feat: Check for invalid length in arrayOf and disarrayOf by @mhawryluk in #941
- fix: Better type hints for inferred struct (& unstruct) schemas by @iwoplaza in #938
📖 Docs/DX
- docs: Function visualizer example by @aleksanderkatan in #894
- docs: Add multisampling to function visualizer by @reczkok in #903
- docs: Display errors thrown by Controls event handlers by @aleksanderkatan in #901
- chore: Remove CodeSandbox continuous releases workflow by @mhawryluk in #940
- build(deps): bump astro from 5.3.0 to 5.3.1 by @dependabot in #946
- build(deps): bump @astrojs/starlight from 0.32.0 to 0.32.1 by @dependabot in #945
- build(deps): bump starlight-blog from 0.17.2 to 0.17.3 by @dependabot in #944
- dx: Fetch dependency versions automatically from codebase in openInStackBlitz function by @mhawryluk in #939
🧪 Unstable APIs
- fix: Type inference for VertexLayouts with decorated data by @reczkok in #933
- feat: root.unwrap for samplers by @mhawryluk in #872
Full Changelog: v0.4.3...v0.4.4
v0.4.3
🗿 Stability
- fix(typegpu): Deprecate and rename
Uniform
,Vertex
andStorage
toUniformFlag
,VertexFlag
andStorageFlag
to avoid ambiguity with globalStorage
type by @aleksanderkatan in #906 - bump: typegpu 0.4.3 by @iwoplaza in #932
📖 Docs/DX
- docs: Twoslash integration for better code-blocks by @iwoplaza in #895
- chore: Update to pnpm 10.x by @iwoplaza in #905
- chore: Linking from source directory in local dev by @iwoplaza in #923
- chore: Fix dependabot configuration by @iwoplaza in #907
- chore: Use the
catalog:
protocol for grouping version ranges by @iwoplaza in #930 - build(deps): bump lucide-react from 0.474.0 to 0.475.0 by @dependabot in #922
- build(deps-dev): bump astro-vtbot from 1.10.7 to 2.0.6 by @dependabot in #920
- build(deps-dev): bump @types/node from 20.17.19 to 22.13.4 by @dependabot in #915
- build(deps): bump motion from 12.4.4 to 12.4.5 by @dependabot in #928
- build(deps): bump monaco-editor from 0.50.0 to 0.52.2 by @dependabot in #926
🧪 Unstable
- feat: Bundler plugin built on
unplugin
by @mhawryluk in #873 - bump: unplugin-typegpu 0.1.0-alpha.3 by @iwoplaza in #932
Full Changelog: v0.4.2...v0.4.3
v0.4.2
This version brings substantial improvement to vector performance, alongside minor fixes and changes to unstable APIs 🚀
🗿 Bug-fixes/stabilization
- perf(typegpu): Vector implementation without using Proxy by @deluksic #779
- fix(typegpu): Throw NotStorageError instead of NotUniformError when unwrapping invalid bind group storage entry. by @iwoplaza in #888
📖 Docs/DX
- docs: Make game of life and increment examples stable by @mhawryluk in #865
- docs: Make colors in game of life example independent from resolution by @mhawryluk in #869
- docs: Functions guide and triangle example by @mhawryluk in #849, #882
- chore: Allow PR-builds to be compared with other versions in the benchmark app by @mhawryluk in #867
- docs: Select controls in Stackblitz integration by @mhawryluk in #887
- chore: Use packages from source in development, instead of the watch&rebuild cycle by @iwoplaza in #879
- chore: Use typegpu plugin in StackBlitz integration by @mhawryluk in #892
🧪 Unstable
- fix: In .beginRenderPass, handle vertex buffers coming from .setVertexBuffer calls as well as priors by @iwoplaza in #880
- fix: Handle externals in values of object expressions by @iwoplaza in #884
Full Changelog: v0.4.1...v0.4.2
v0.4.1
v0.4.0
🚀 Features
A new tgpu.vertexLayout
API is now stable! It allows vertex layouts to be defined with type-safe schemas, and streamlines their use in WGSL shaders.
- feat: Vertex layouts can be unwrapped with
root.unwrap
by @reczkok in #781 - feat: Resolvable unstructs by @reczkok in #781
Alongside writing to buffers in-whole, portions of a buffer can now be updated with buffer.writePartial(...)
.
🗿 Stabilization/refactors
- chore(🦜): Make structs un-exotic by @iwoplaza in #834
- chore(🦀): Make numeric primitive schemas un-exotic by @iwoplaza in #844
- chore(🪻): Make vector schemas un-exotic by @iwoplaza in #845
- chore(🗿): Make arrays un-exotic by @iwoplaza in #839
- chore(🍸): Make matrix schemas un-exotic by @iwoplaza in #848
- chore(🧹): Purge the world of exotic by @iwoplaza in #850
📖 Docs/DX
- docs: Use
writePartial()
in fluid with atomics example and update buffer docs by @reczkok in #856 - chore: Add explicit type to bindGroupLayout calls in docs and examples by @reczkok in #860
🧪 Unstable
- feat: Matrix multiplication in typegpu/std by @mhawryluk in #832
- feat: Replace as*() functions with .as(*) for buffer usages by @mhawryluk in #836
- feat: Handle TGSL fragment functions, new std functions (mix, pow), improve WGSL parser, convert some examples to TGSL and QoL improvements by @reczkok in #846
- bump(unplugin-typegpu): Version 0.1.0-alpha.1 by @iwoplaza in #858
- bump(tinyest,tinyest-for-wgsl,unplugin-typegpu): New versions of auxiliary packages by @iwoplaza in #861
Full Changelog: v0.3.4...v0.4.0
v0.3.4
🐞 Bug fixes/stabilization
- fix(unplugin-typegpu): Make babel plugin target only calls to does with a function expression inside by @iwoplaza in #824
- fix(unplugin-typegpu): Modify AST using babel/types instead of string expressions by @iwoplaza in #826
- build(deps): bump vitest from 2.1.5 to 2.1.9 by @dependabot in #818
- build(deps): bump the npm_and_yarn group across 3 directories with 5 updates by @dependabot in #819
📖 Docs/DX
- docs: Add toggle to show experimental examples by @mhawryluk in #822
- docs: Freshen' up "tgpu-gen" guide (#820) by @iwoplaza in #825
- docs: Update "Fluid with atomics" example by @reczkok in #671
🧪 Unstable
New Contributors
- @dependabot made their first contribution in #818
Full Changelog: v0.3.3...v0.3.4
v0.3.3
🐞 Bug fixes/stabilization
- fix: Fix some more unexpected regex behaviors in resolution process by @mhawryluk in #794
📖 Docs/DX
- docs(🗿): Deploy docs from 'release' branch by @iwoplaza in #814
- docs(🦕): Modernize Gradient Tiles example by @iwoplaza in #812
- dx(🐎): Scaffolding for a benchmarking tool by @iwoplaza in #805
- docs(📚): Removed legacy docs by @iwoplaza in #799
- docs: Update year in copyright notice 🎇 by @mhawryluk in #797
🧪 Unstable
- feat: Create typegpu babel plugin by @mhawryluk in #804
- feat: Change
vertexFn
parameters to accept a struct each. Handle TGSL vertex shader resolution by @reczkok in #802 - feat: Return proxy from
.value
properties by @mhawryluk in #795 - feat(🫵): Add ptr<function, ...> schema by @iwoplaza in #806
- feat: TGSL structs by @reczkok in #798
- feat(🎁): Add an alternate slot-value propagation mechanism, allowing for slot values to pass through a derived boundary by @iwoplaza in #697
Full Changelog: v0.3.2...v0.3.3
v0.3.2
What's Changed
- Change how external object resolution regex works for RN by @mhawryluk in #792 #793
Documentation
- Hide camera examples on iOS Safari for now by @mhawryluk in #790
Full Changelog: v0.3.1...v0.3.2
v0.3.1
What's Changed
- Fix invalid bound type for samplers by @mhawryluk in #771
- Add interpolate attribute by @deluksic in #761
- Hide internal resolve API by @iwoplaza in #775
- Make
typegpu/std
public by @iwoplaza in #778 - More functions in typegpu/std by @iwoplaza in #776
- Object access in external resolution by @mhawryluk in #780
Unstable features (experimental)
- Auto-use all struct types in the shell of WGSL-implemented functions by @mhawryluk in #752
- Fix replacing object access identifiers in replaceExternalsInWgsl by @mhawryluk in #766
- Remove experimental module by @mhawryluk in #782
Note
Unstable (experimental) features are now exported by the library and accessible through ['~unstable']
property or marked with "unstable_" prefix. Use with caution, API is sure to change.
Documentation
- 0.3 live examples mobile layout by @mhawryluk in #758
- Updated references of
Parsed
intoInfer
by @iwoplaza in #760 - Set boids example as flagship by @mhawryluk in #764
- Add f16 vector types to cheatsheet by @mhawryluk in #767
- Add missing jsdocs to the TgpuRoot type by @mhawryluk in #768
New Contributors
Full Changelog: v0.3.0...v0.3.1
v0.3.0
0.2 -> 0.3 Migration
- Typed bind groups are now creating using
root.createBindGroup(layout, ...)
instead oflayout.populate(...)
- Size of schemas can be retrieved using
sizeOf(...)
instead of.size
- Alignment of schemas can be retrieved using
alignmentOf(...)
instead of.byteAlignment
- To copy a buffer into another buffer, use the
.copyFrom
API instead of.write
Features
- Add support for f16 by @reczkok in #515
- Add
$idx
builder method to bindGroupLayouts by @mhawryluk in #533 tgpu.resolve
API by @reczkok, @mhawryluk in #535, #574- A rework of builtins as decorated data-types. by @iwoplaza in #567
- Exposing textures as bound from a bind group layout. by @iwoplaza in #600
- Data type schemas are pure objects, which allows TypeGPU to consume structurally valid schemas even if they do not come from TypeGPU by @iwoplaza in #594
- Improve labeling gpu objects by @mhawryluk in #626
- Move builtins to
typegpu/data
by @mhawryluk in #633 root.createBindGroup
API replacinglayout.populate
by @mhawryluk in #636- Separate API for writing from copying. by @iwoplaza in #615
- Allow only vertex usage for buffers containing loose data by @reczkok in #644
- Add support for vecX and update vertex attributes by @reczkok in #517
- Improve the behavior of
$addFlags
by @reczkok in #723 - Change resolve api by @reczkok in #737
Bug fixes
- Disallow runtime-sized data in uniforms by @mhawryluk in #619
- Better exotic inference by @iwoplaza in #607
- Destroy gpu device on root.destroy by @mhawryluk in #618
- Better import suggestions for
typegpu/data
by @iwoplaza in #719 - Add missing toString methods to TgpuResolvables by @mhawryluk in #751
Documentation
- StackBlitz integration by @mhawryluk in #538
- WebGPU Interoperability by @iwoplaza in #605
- Html editor integration in Live Examples by @mhawryluk in #504
- FIx losing scroll position when switching between html/ts tabs in Live Examples by @mhawryluk in #529
- Add example of MLP inference by @reczkok in #487
- Example controls definition via exported object by @mhawryluk in #543
- Update enabling WebGPU on Safari iOS by @PPojda in #553
- Improve null GPU adapter experience on Live Examples page by @mhawryluk in #565
- Updates the troubleshooting section of Getting Started. by @iwoplaza in #602
- Better root api docs by @iwoplaza in #608
- Work on game of life example and tutorial by @5ZYSZ3K in #597
- Update docs to use root.createBindGroup API by @mhawryluk in #638
- Allow for
* as d
wildcard imports in example code by @mhawryluk in #640 - Document
copyFrom
method by @mhawryluk in #646 - Fix resizable canvas being reset on code change by @mhawryluk in #675
- Add info about
$addFlags
method to buffer docs by @mhawryluk in #720 - Update pages for 0.3 release by @mhawryluk in #736
tgpu.resolve
by @mhawryluk in #724- Add jsdoc for resolve api and related functions by @reczkok in #741
Internal DX
- CodeSandbox CI config by @mhawryluk in #581
- Made use of Vitest fixtures to refactor tests. by @iwoplaza in #621
- Config for JSR publishing of "@typegpu/tinyest". by @iwoplaza in #666
Experimental
- Use plugin in examples by @reczkok in #610
- Update texture examples to use tgpu.resolve by @mhawryluk in #629
- Automatically add output struct to $uses for raw-WGSL implemented functions by @mhawryluk in #617
- Move slots into experimental
tgpu
. by @iwoplaza in #647 - Derived API by @iwoplaza in #655
- Make plugin not override anything passed in $uses by @reczkok in #674
- Create new
tgpu.declare
API by @mhawryluk in #669 - New
tgpu.const
andtgpu.var
API by @mhawryluk in #672 - Move standard functions to typegpu/std by @reczkok in #656
- Add validation when passing typed Textures to Bind Groups by @reczkok in #650
- Create
tgpu.accessor
API by @mhawryluk in #695 - Change how texture views are created. by @reczkok in #690
- Fix misleading error message when texture validation fails due to missing usage. by @reczkok in #687
- Rename loose data to
unstruct
anddisarray
by @mhawryluk in #733 - Handling unary operators & order of binary operators better. by @iwoplaza in #732
New Contributors
Full Changelog: v0.2.2...v0.3.0