uniform Lighting { vec3 light_color[4]; }; uniform Params { int light_index; }; #pragma MSP stage(vertex) layout(location=0) in vec4 position; void main() { gl_Position = position; } #pragma MSP stage(fragment) layout(location=0) out vec4 frag_color; void main() { frag_color = vec4(light_color[light_index], 1.0); } /* Expected output: vertex layout(location=0) in vec4 position; void main() { gl_Position = position; } */ /* Expected output: fragment layout(binding=5) uniform Lighting { vec3 light_color[4]; }; layout(binding=80) uniform Params { int light_index; }; layout(location=0) out vec4 frag_color; void main() { frag_color = vec4(light_color[light_index], 1.0); } */