Buffer uFloatSampler : register(t1); Buffer uIntSampler : register(t2); Buffer uUintSampler : register(t3); static float4 gl_Position; struct SPIRV_Cross_Output { float4 gl_Position : SV_Position; }; float4 sample_from_function(Buffer s0, Buffer s1, Buffer s2) { return (s0.Load(20) + asfloat(s1.Load(40))) + asfloat(s2.Load(60)); } void vert_main() { gl_Position = sample_from_function(uFloatSampler, uIntSampler, uUintSampler); } SPIRV_Cross_Output main() { vert_main(); SPIRV_Cross_Output stage_output; stage_output.gl_Position = gl_Position; return stage_output; }