フラグメントシェーダーでは、以下が正常にコンパイルされます。
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)が見つかりません
これは、Quadro5010M用のNvidiaのLinuxドライバー290.*ですが、(初心者の)間違いを犯して、ここで何とか仕様を作成していなかったのではないかと思います。