1#version 460
2
3
4layout(location = 5) in outBlock {
5    vec4 o3;
6};
7
8
9in vec4 gfo1;
10in vec2 gfo2;
11
12out vec4 outColor;
13
14layout (binding = 0) uniform sampler2D glass;
15
16uniform crossStageBlock1 {
17    uniform vec4 a;
18    vec4 b;
19};
20
21readonly buffer fragOnlyBlock {
22    vec2 fb1;
23};
24
25uniform crossStageBlock2 {
26    uniform vec4 a;
27    vec2 b;
28} blockName2 [2]; // instance name different from vert
29
30vec2 Bar() {
31    return  fb1 + 
32            blockName2[0].b +
33            blockName2[1].b;
34}
35
36vec4 Foo() {
37    return  a + 
38            b + 
39            blockName2[0].a +
40            blockName2[1].a +
41            vec4(Bar(), 0.0, 0.0);
42}
43
44void main()
45{
46    vec4 color = gfo1; // o1 is statically used
47    color = color + Foo();
48    outColor = color;
49}
50
51