#version 400 core in vec2 c2D; flat in int i; out vec4 outp; out ivec4 ioutp; out uvec4 uoutp; uniform sampler2D arrayedSampler[5]; uniform usampler2DRect samp2dr; uniform isampler2DArray isamp2DA; uniform sampler2DRectShadow u2drs; #extension GL_ARB_separate_shader_objects : enable layout(location = 6) in vec4 vl2; void foo23() { const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16)); outp.x += textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]); } void main() { vec4 v; v = texture(arrayedSampler[i], c2D); outp.x = gl_ClipDistance[1]; outp.yzw = v.yzw; ivec2 offsets[4]; const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0)); uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2); outp += textureGather(arrayedSampler[0], c2D); ioutp = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3); ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2); ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i)); outp += gl_FragCoord + vl2; foo23(); }