mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-29 04:17:11 -06:00
A brush dab on an A4 300 ppi CMYK page spent ~5 ms per touched tile in the GPU canvas's tile upload: every pixel of the 256x256 tile went through the CMYK -> sRGB transform on one thread. CMYK and Lab tiles now convert in 16-row bands in parallel, and a run of identical pixels (the transparent or flat area around a dab) is converted once. Texels are bit-identical to the per-pixel conversion. The band workers enter the document's CMYK profile scope; before, the rayon workers converting tiles did not, so a CMYK document tagged with its own profile uploaded tiles through the built-in coated CMYK instead. P33 (Windows 11, 32 threads, RTX 5070 Ti, 15 reps): p95 13.7-16.8 ms -> 2.6-3.3 ms. enforce stays false: the committed baseline machine measures every row over budget, so it is left for the next baseline. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>