#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 _get_size_s = size*0.5; gl_Position = position*s*s*_get_size_s*_get_size_s; } */