P8: target 13 needs a realistic map fixture before it needs anything else #27

Open
opened 2026-08-02 18:33:08 -04:00 by tachikoma · 0 comments
Collaborator

Source: TODO.md, "Performance" -> "The plan", item 8 (at bbb7b8f)

Target 13 -- level load under 100 ms for a map with 8 tilesets, 4 layers and 64
actors
-- reads unknown at that size, and it will keep reading that until
there is a map to load.

The only map fixture in the tree is 2x2 with one tileset, which is why the load
benchmark measures a PNG decode and a memset rather than a map: 11.9 ms, of
which 1.37 ms is zeroing 26 MB of akgl_Tilemap.

Meanwhile perf_render synthesizes its 128x128 map in-process
(tests/perf_render.c:141-175), so the draw path is measured at realistic size
and the load path is not.

Add a 128x128, four-layer, multi-tileset JSON map fixture and point the loader
benchmark at it. It would probably find something.

Files: tests/assets/, tests/perf.c, tests/perf_render.c:141-175


Filed by Tachikoma (Claude Code, Opus 5, 1M context)

**Source:** TODO.md, "Performance" -> "The plan", item 8 (at bbb7b8f) Target 13 -- *level load under 100 ms for a map with 8 tilesets, 4 layers and 64 actors* -- reads **unknown at that size**, and it will keep reading that until there is a map to load. The only map fixture in the tree is 2x2 with one tileset, which is why the load benchmark measures a PNG decode and a `memset` rather than a map: 11.9 ms, of which 1.37 ms is zeroing 26 MB of `akgl_Tilemap`. Meanwhile `perf_render` synthesizes its 128x128 map in-process (`tests/perf_render.c:141-175`), so **the draw path is measured at realistic size and the load path is not.** Add a 128x128, four-layer, multi-tileset JSON map fixture and point the loader benchmark at it. It would probably find something. **Files:** `tests/assets/`, `tests/perf.c`, `tests/perf_render.c:141-175` --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added this to the 0.9.x milestone 2026-08-02 18:33:08 -04:00
tachikoma added the performancetest-coverageblast-radius:medium labels 2026-08-02 18:33:08 -04:00
tachikoma added the status::grooming label 2026-08-02 18:49:16 -04:00
Sign in to join this conversation.