mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
The renderer kept one tile per pattern name and ink plane, and used it only at the raster scale it was made at: the device scale rounded up to a power of two and capped. Two objects that paint one pattern at scales for which the raster scale differs, such as a pattern scaled to 25% with Transform Pattern Tiles next to the same pattern at 100%, replaced each other's tile, and every frame rasterized both tiles again. Tiles are now kept per pattern name and raster scale, within the tile cache's budget of 128 MiB per thread and ink plane. When the budget fills, the cache drops the least recently used tiles first. A tile is still used only while the pattern's art, tile, tile type and overlap are the ones it was made from. At 760%, with a pattern of 576 stars in a 288 pt tile on a rectangle that fills the view, and the same pattern at 25% on a square, release builds of vectorcraft-cli bench at 2880x1800 took a median of 26.0 ms a frame on main and 8.8 ms with this change, with 8 threads. Docs: docs/target-app-parity.md.