В фрагментном шейдере отлично скомпилируется следующее:
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 - но мне интересно, допустил ли я (новичок) ошибку и не работал ли здесь какой-либо спецификации?