Во фрагментном шейдере следующее компилируется нормально:
uniform isampler2D testTexture;
/* in main() x, y, xoff and yoff are declared as int and assigned here, then... */
int tmp = texelFetchOffset(testTexture, ivec2(x, y), 0, ivec2(xoff, yoff)).r;
Однако следующее не компилируется:
uniform usampler2D testTexture;
/* in main() x, y, xoff and yoff are declared as uint and assigned here, then... */
uint tmp = texelFetchOffset(testTexture, uvec2(x, y), 0, uvec2(xoff, yoff)).r;
Драйвер OpenGL 4.2 выдает следующее сообщение об ошибке компилятора:
ошибка C1115: не удалось найти совместимую перегруженную функцию "texelFetchOffset(usampler2D, uvec2, int, uvec2)
Это драйвер Nvidia Linux 290. * для Quadro 5010M, но мне интересно, сделал ли я (новичок) ошибку и не работал ли здесь как-то по спецификации?