Block vs. Interleaved Is it worth it?


I’m looking to perform bilinear interpolation for image expansion; and have three (separate) blocks of rgb data coming in. Bilinear filtering can be performed by CUDA on 3-tuples, so should I convert my three blocks of colour data into an interleaved, 3-tuple form (and then back again)? Would I get a performance advantage, or would the conversion negate this?


Bilinear filtering is a very cheap operation, so reorganising memory to make it a little bit faster (if at all) is not worth it.

I agree - the texture fetch is unlikely to be the bottleneck, so I would just bind your planar image data as 3 one-component textures and then do 3 bilinear texture lookups.