From 09800d8a5b31f7e9401b88fa63e7e33edc8a1ded Mon Sep 17 00:00:00 2001 From: Andrey Kolkov Date: Fri, 31 Jul 2026 07:55:41 +0300 Subject: [PATCH] docs: CHANGELOG v0.30.30 --- CHANGELOG.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 711931a..231db64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.30.30] - 2026-07-31 + +### Fixed + +- **Memory leak: validation maps pinned every resource per frame** — + `SetBindGroup` copied every bound buffer and texture into encoder maps per draw + call (O(bindings × draws)). Validation maps were never cleared after Submit or + Release, pinning BindGroup objects indefinitely. Now tracks bind groups only; + `validateCommandBufferForSubmit` walks `boundBuffers`/`boundTextures` transitively. + `dropUsedSets()` clears maps in both `postSubmit` and `Release()`. + Contributor: @samyfodil (#291) + +- **Validation error precedence: buffer/texture errors beat bind group errors** — + Two-pass validation: first walks all bound resources from all bind groups, then + checks `bg.released`. Deterministic regardless of map iteration order. Matches + Rust wgpu ordering (buffers 1780-1808, bind groups 1815-1817). (#291) + ## [0.30.29] - 2026-07-30 ### Fixed