4,400 → 8
Draw calls don’t scale with the library
Grouping by master would need about 4,400 draw calls for a 4,634-master library. Grouping by rect-count bucket, with bucket sizes solved exactly from the design’s own histogram, needs 8. On real data that wastes 0.2% of GPU slots, against 45.2% for fixed buckets.
8.2 GB → 117 MB
Instancing, one level up
Masters are instanced into blocks and blocks into the chip, with exact integer transforms. A tile shared by 70 instances is one key, one fetch and one GPU allocation.
0 buffers
A pan rebuilds nothing
GPU slot records don’t depend on the view origin or the instance. A pan changes one uniform. Positions are computed in f64 on the CPU and made relative before they become f32, so zoom stays precise across a 1.6 mm die.
1,185 → 233 MB
Deep tiles, only when asked for
Deep levels are 96% of the pyramid, and a session opens a few hundred of their tiles. Built on request, a tile arrives in 15.56 ms over HTTP, against 15.55 ms for the same tile read from disk. Generating the 50M design drops from 62 s to 15 s.
77%
A frame budget that holds
The LOD switch points are solved per design and per canvas size, not hard-coded. The worst frame anywhere in the zoom range is 1,531,094 rectangles, inside the renderer’s budget of about 2 million.
108 → 13
Fetches that know you’ve moved on
Across 12 rapid camera jumps, stale requests are dropped or aborted: 13 fetches instead of 108. The visible set is pinned before it is requested, which closed a bug where tiles were evicted before they could be drawn.