From 947bc03601a3fbb1b014f8ed65c020dd4e21cabd Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Sat, 1 Aug 2026 06:58:57 -0400 Subject: [PATCH] Re-verdict performance targets 16 and 17 Both cited defects that are fixed. 17 is met outright; 16 is qualified, because the tilemap cycle is the one that was leaking and the one now asserted, and nothing yet asserts the same of a sprite, spritesheet or character cycle -- a gap in the tests rather than a known leak. Co-Authored-By: Claude Opus 5 (1M context) --- TODO.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index 8cfe445..741de00 100644 --- a/TODO.md +++ b/TODO.md @@ -1163,10 +1163,16 @@ fit in 5% of a frame, leaving 95% for the pixels and the game's own logic. At | 13 | Level load under 100 ms for a map with 8 tilesets, 4 layers and 64 actors | 11.9 ms for a 2x2 map with one tileset | **unknown at that size** | | 14 | Fixed per-load overhead under 1% of a level load | 11.5% — zeroing 26 MB of `akgl_Tilemap` | **missed** | | 15 | Static footprint under 4 MB in the default configuration | 28 MB, 94% of it one tilemap | **missed** | -| 16 | No pool leaks across a load/release cycle of any asset type | tilemap leaks 5 strings per cycle (item 29) | **missed** | -| 17 | Pool exhaustion reports `AKGL_ERR_HEAP` and never crashes | item 30 crashes | **missed** | +| 16 | No pool leaks across a load/release cycle of any asset type | tilemap is clean, asserted over 64 cycles; sprite, spritesheet and character cycles are not asserted | **met where tested** | +| 17 | Pool exhaustion reports `AKGL_ERR_HEAP` and never crashes | all five pools report it, and the two JSON accessors that used to `strncpy` through a NULL now report it too | **met** | | 18 | Every benchmark held to 10x its recorded baseline, enforced in CI | done, `ctest -L perf` | **met** | +Targets 16 and 17 moved in 0.5.0, with **Defects** items 29 and 30. Target 16 is +qualified rather than met outright on purpose: the tilemap cycle is the one that +was leaking and the one that is now asserted, and nothing yet asserts the same +of a sprite, spritesheet or character load/release cycle. That is a gap in the +tests, not a known leak. + Notes on the ones worth arguing about: - **6 and 7 are the same fix.** The acquire scan is 64x slower on a full string