3D texture access for volume data
One often wants to access volume data using tex3D() instead of a 1D buffer texture and texelFetch() etc. The former gives 'free' (very cheap) trilinear interpolation from the hardware, as well as simply being clearer as to what is going on.
Currently VTK-m can schedule 3D execution, but in the end the data ends up sitting in a 1D buffer and array accesses are linearized. We need to propagate the fact that we're running over 3D data into the data representation (notably ArrayHandle
), so that it knows when to use a 3D versus a 1D texture.