#version 460 layout (location = 0) in vec4 io; out vec4 o; // default uniforms will be gathered into a uniform block uniform vec4 a; // declared in both stages with different types vec4 foo() { return a; } void main() { o = io + foo(); }