[require] GLSL >= 1.30 [fragment shader] uniform int n; uniform vec4 val, val2; void main() { vec4 x = val; if (n != 1) { if (n == 2) x.xy = val2.xy; } else { x = val2; } gl_FragColor = x; } [test] uniform int n 3 uniform vec4 val 0 1 0 1 uniform vec4 val2 1 0 0 1 draw rect -1 -1 2 2 probe all rgba 0.0 1.0 0.0 1.0