Image comparison
Try each mode — split, onion-skin, difference, heat — then drag the slider that mode exposes. Turn off smooth sampling to see nearest-neighbour texture filtering at the pixel level.
The component that finally uses textures. Every other one here reads a storage buffer — the right call each time, but it left the whole sampled-texture path unexercised, and nothing in the stack owned the “images to textures” step — neither vgpu nor this project — until this component forced it. Zoom in with smooth sampling off and you are looking at hardware nearest-neighbour filtering; the percentage above is counted by a compute pass over all 262,144 pixels, run once per image pair rather than once per frame, which is why panning and switching modes costs nothing.