Я пытаюсь записать в двумерный cudaArray через surface<void, 2>
.
Массив имеет формат канала {32, 32, 0, 0, cudaChannelFormatKindFloat}
или, проще говоря, содержит vector2
s.
Я пытаюсь записать vector2
на поверхность в положении, указанном целочисленными координатами (x, y)
. Хорошо работает следующее:
// write the float2 vector d to outSurf
surf2Dwrite(d.x, outSurf, x * sizeof(float2), y);
surf2Dwrite(d.y, outSurf, x * sizeof(float2) + sizeof(float), y);
Однако, если я сделаю
surf2Dwrite(d, outSurf, x * sizeof(float2), y);
записывается только x
компонента вектора. В чем причина этого немного неинтуитивного поведения?