1#version 460
2
3layout (location = 0) in vec4 io;
4
5out vec4 o;
6
7// default uniforms will be gathered into a uniform block
8uniform vec4 a;     // declared in both stages with different types
9
10uniform float test; // declared twice in this compilation unit
11uniform vec2 test;
12
13vec4 foo() {
14    return a + vec4(test);
15}
16
17void main() {
18    o = io + foo();
19}
20