uniform GlobalValues { vec4 tint; vec2 scale; }; #pragma MSP stage(vertex) layout(location=0) in vec4 position; layout(location=1) in vec4 color; out VertexOut { vec2 texcoord; vec4 color; } vs_out; void main() { vs_out.texcoord = position.xy*scale*0.5+0.5; vs_out.color = color; gl_Position = position; } #pragma MSP stage(fragment) layout(location=0) out vec4 frag_color; void main() { scale = vec2(1.0); frag_color = vs_out.color*tint; } /* Expected output: vertex layout(binding=72) uniform GlobalValues { vec4 tint; vec2 scale; }; layout(location=0) in vec4 position; layout(location=1) in vec4 color; out VertexOut { vec2 texcoord; vec4 color; } vs_out; void main() { vs_out.texcoord = position.xy*scale*0.5+0.5; vs_out.color = color; gl_Position = position; } */ /* Expected output: fragment layout(binding=72) uniform GlobalValues { vec4 tint; vec2 scale; }; layout(location=0) out vec4 frag_color; in VertexOut { vec2 texcoord; vec4 color; } vs_out; void main() { frag_color = vs_out.color*tint; } */