#pragma MSP stage(vertex) layout(location=0) in vec4 position; layout(location=1) in float scale; layout(location=2) in float size; float get_scale() { float s = scale*2.0; return s*s; } float get_size() { float s = size*0.5; return s*s; } void main() { gl_Position = position*get_scale()*get_size(); } /* Expected output: vertex layout(location=0) in vec4 position; layout(location=1) in float scale; layout(location=2) in float size; void main() { float s = scale*2.0; float s_1 = size*0.5; gl_Position = position*s*s*s_1*s_1; } */