#version 460 layout(location = 0) in BBlock0 { vec4 b0; vec4 b1; vec4 b2; vec4 b3; }; layout(location = 4) in vec4 b4[2]; layout(location = 6) in BBlock1 { vec4 b5; }; layout(location = 7) in vec4 b6[5]; layout(location = 12) in float b7[4]; layout(location = 21) in BBlock2 { vec2 b8; float b9; layout(location = 16) vec3 b10; float b11[4]; }; layout(location = 23) in BBlock3 { float b12[6]; }; layout(location = 29) in BBlock4 { float b13[]; // implicitly sized to 10 }; layout(location = 39) in BBlock5 { flat ivec2 b14; }; layout(location = 40) in mat2 b15; in flat uint b16; layout(location = 45) in BBlock6 { vec4 b17; layout(location = 43) vec4 b18; vec4 b19; }; layout(binding = 0) uniform UBO0 { int i; } ubo0; layout(location = 46) in vec4 b20[4]; layout(location = 50) in BBlock7 { vec4 b21[10]; }; layout(location = 60) in vec2 b22; // automatically mapped by name in GBlock0 { vec4 a20; }; // automatically mapped by name in vec2 g_a21[2]; out vec4 o; uint uncalled() { return b16; } void main() { o = b1; o += b2; o += b3; o += b4[0]; o += b4[1]; o += b5; o += b6[0]; o += b6[1]; o += b6[2]; o += b6[3]; o += b6[4]; o += vec4(b7[0], b7[1], b7[2], b7[3]); o += b8.xxyy; o += vec4(b9); o += b10.xyzx; o += vec4(b11[0], b11[1], b11[2], b11[3]); o += vec4(b12[0], b12[1], b12[2], b12[3] + b12[4] + b12[5]); o += vec4(b13[9], b13[7], b13[6], b13[0]); if (false) { o += (b15 * vec2(1.0)).xxyy; o += b18; o += b19; } o += b20[ubo0.i]; o += b21[ubo0.i]; o += b22.xxyy; o += a20; o += vec4(g_a21[0], g_a21[1]); }