layout(push_constant) uniform Transform { mat4 mvp; }; #pragma MSP stage(vertex) layout(location=0) in vec4 position; vec4 get_position() { return position; } vec4 transform_position(vec4 pos) { return mvp*pos; } void main() { gl_Position = transform_position(get_position()); } // Target API: Vulkan /* Expected output: vertex layout(push_constant) uniform Transform { mat4 mvp; }; layout(location=0) in vec4 position; void main() { gl_Position = mvp*position; } */