From 841ae1d442a49379aafcdcf4fcc7ec8b1573b1f0 Mon Sep 17 00:00:00 2001 From: Orkuncakilkaya Date: Fri, 11 Sep 2026 15:43:16 +0300 Subject: [PATCH] chore(release): v0.9.1 --- CHANGELOG.md | 14 ++++++++++++++ VERSION | 2 +- changes/outline-queue-lifetime.md | 12 ------------ 3 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 changes/outline-queue-lifetime.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e14b573..b06bc520 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,20 @@ change type. Preview the next one with `ludic dev release --dry-run`. A released section may carry a hand-written summary paragraph above its groups (v0.2.0 has one); the generated bullets below it are not edited by hand. +## v0.9.1 — 2026-09-11 + +### Fixes + +- **`outline_model`'s batch survives the whole frame.** A frame is drawn by more than one + pass — a shadow map, a water reflection, the scene — and `actor_draw` runs in each of + them. An Actor's rim survives that because it is a field on the actor; the queue did not, + because the first pass to run emptied it, so a queued outline was drawn into whichever + target happened to come first and was gone by the time the scene was drawn. Nothing + appeared, with every uniform, matrix and mesh correct. + + A flush now *closes* the batch rather than clearing it, and the next `outline_model` + opens a new one: every pass in a frame sees the same requests, and a caller still needs + no frame hook. ## v0.9.0 — 2026-09-11 ### Features diff --git a/VERSION b/VERSION index ac39a106..f374f666 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.0 +0.9.1 diff --git a/changes/outline-queue-lifetime.md b/changes/outline-queue-lifetime.md deleted file mode 100644 index 6eebe4ea..00000000 --- a/changes/outline-queue-lifetime.md +++ /dev/null @@ -1,12 +0,0 @@ -bump: patch -type: fix -**`outline_model`'s batch survives the whole frame.** A frame is drawn by more than one -pass — a shadow map, a water reflection, the scene — and `actor_draw` runs in each of -them. An Actor's rim survives that because it is a field on the actor; the queue did not, -because the first pass to run emptied it, so a queued outline was drawn into whichever -target happened to come first and was gone by the time the scene was drawn. Nothing -appeared, with every uniform, matrix and mesh correct. - -A flush now *closes* the batch rather than clearing it, and the next `outline_model` -opens a new one: every pass in a frame sees the same requests, and a caller still needs -no frame hook.