Я запутался, как текстуры работают с CUDA
например, когда я делаю запрос устройства «на моем GTX 780», я нахожу это:
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
теперь, когда я исследовал "пример частиц" CUDA, я нашел это:
checkCudaErrors(cudaBindTexture(0, oldPosTex, sortedPos, numParticles*sizeof(float4)));
где numParticles в моем случае я увеличил его до 1024 * 1024 * 2 (около 2,1 миллиона)
как это вписывается в 1D текстуру??
также внутри ядер я нашел это «нужно больше объяснить, пожалуйста, так как все здесь связано»
texture<float4, 1, cudaReadModeElementType> oldPosTex;
#define FETCH(t, i) tex1Dfetch(t##Tex, i)
в ядре:
float4 pos = FETCH(oldPos, sortedIndex);
Теперь, что мне нужно знать, я могу использовать эту текстуру "с ее определенным размером numParticles*sizeof(float4) в отрисовке кадрового буфера вместо отрисовки VBO?