Nothing on the host reads a decoded image back: it is DMAed to the GPU, or a CPU
engine walks it once and drops it. An ordinary store pays for that twice - it
reads every cache line before overwriting it, and it evicts 72 MB of live cache
to make room - and the decode is bound by exactly that traffic, which is why
neither an eight-pixel-at-a-time scalar loop nor an SSE2 prefix sum moved it at
all. Storing the pixels non-temporally takes an 18 Mpx frame from 27 ms to
11 ms, and 240 frames from six sweeps decode byte for byte as before.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>