struct VertexOutput { [[builtin(position)]] pos : vec4; [[location(0), interpolate(flat)]] loc0 : i32; }; fn foo(x : f32) -> VertexOutput { return VertexOutput(vec4(x, x, x, 1.0), 42); } [[stage(vertex)]] fn vert_main1() -> VertexOutput { return foo(0.5); } [[stage(vertex)]] fn vert_main2() -> VertexOutput { return foo(0.25); }