#version 460 out vec4 vgo1; // declaration order different than fragment shader out vec2 vgo2; // declaration order different than fragment shader layout(location = 5) out outBlock { vec4 o3; }; layout (binding = 0) uniform sampler2D glass; uniform crossStageBlock1 { uniform vec4 a; vec4 b; }; readonly buffer vertOnlyBlock { vec2 vb1; }; uniform crossStageBlock2 { uniform vec4 a; vec2 b; } blockName1 [2]; // instance name different from frag void main() { vgo1 = vec4(0); vgo2 = vec2(0); o3 = vec4(0); }