The export pump built a fresh `vello::Renderer` (full wgpu pipeline init, ~tens of ms) AND an empty `ImageCache` on every egui repaint — i.e. per output frame. That was the dominant per-frame cost (and the code comment already flagged it). Now the renderer + image cache are built once on the first export pump, reused for every frame, and dropped when the export finishes. Also fixes a latent bug: the throwaway export ImageCache had no container path, so with Phase 4 Tier 1 (lazy image bytes) images stored only in the container wouldn't render in exports. The persistent cache now gets the container path. Audit found the original "per-frame seek" theory was wrong — export decodes the source sequentially; readback is already async/triple-buffered. Remaining wins: cache swscale contexts (rebuilt per frame), GPU YUV conversion, decouple from the repaint cadence. |
||
|---|---|---|
| .. | ||
| assets | ||
| examples | ||
| src | ||
| Cargo.toml | ||
| PLAN.md | ||
| TOOL_IMPLEMENTATION_PLAN.md | ||
| build.rs | ||