// Split up because some output languages limit number of locations to 8. struct FragmentOutputVec4Vec3 { @location(0) vec4f: vec4, @location(1) vec4i: vec4, @location(2) vec4u: vec4, @location(3) vec3f: vec3, @location(4) vec3i: vec3, @location(5) vec3u: vec3, } @fragment fn main_vec4vec3() -> FragmentOutputVec4Vec3 { var output: FragmentOutputVec4Vec3; output.vec4f = vec4(0.0); output.vec4i = vec4(0); output.vec4u = vec4(0u); output.vec3f = vec3(0.0); output.vec3i = vec3(0); output.vec3u = vec3(0u); return output; } struct FragmentOutputVec2Scalar { @location(0) vec2f: vec2, @location(1) vec2i: vec2, @location(2) vec2u: vec2, @location(3) scalarf: f32, @location(4) scalari: i32, @location(5) scalaru: u32, } @fragment fn main_vec2scalar() -> FragmentOutputVec2Scalar { var output: FragmentOutputVec2Scalar; output.vec2f = vec2(0.0); output.vec2i = vec2(0); output.vec2u = vec2(0u); output.scalarf = 0.0; output.scalari = 0; output.scalaru = 0u; return output; }