1#version 460
2
3layout(points) in;
4layout(triangle_strip, max_vertices=3) out;
5
6in vec4 vgo1[];
7in vec2 vgo2[];
8
9layout(location = 5) in outBlock {
10    vec4 o3;
11} inBlock[];
12
13out vec4 gfo1;
14out vec2 gfo2;
15
16layout(location = 5) out outBlock {
17    vec4 o3;
18} gf_out;
19
20uniform vec2 u1;
21uniform vec3 u2 = vec3(0); // initializer not present in fragment stage
22uniform vec4 u3 = vec4(0); // initializer matches initializer in fragment stage
23
24uniform crossStageBlock2 {
25    uniform vec4 a;
26    vec2 b;
27} blockName1 [2]; // instance name different from frag
28
29void main()
30{
31    for (int i = 0; i < 3; i++) {
32        gfo1 = vec4(0);
33        gfo2 = vec2(0);
34        gf_out.o3 = inBlock[i].o3;
35        EmitVertex();
36    }
37    EndPrimitive();
38}
39
40