]> git.tdb.fi Git - libs/gl.git/blob - tests/glsl/conditional_multiple_emitvertex.glsl
Check the flat qualifier from the correct member
[libs/gl.git] / tests / glsl / conditional_multiple_emitvertex.glsl
1 layout(push_constant) uniform Flag
2 {
3         int flag;
4 };
5 uniform sampler2D tex;
6
7 #pragma MSP stage(vertex)
8 layout(location=0) in vec4 position;
9 void main()
10 {
11         out vec2 texcoord = position.xy*0.5+0.5;
12         gl_Position = position;
13 }
14
15 #pragma MSP stage(geometry)
16 layout(triangles) in;
17 layout(triangle_strip, max_vertices=3) out;
18 void main()
19 {
20         passthrough[0];
21         if(flag!=0)
22                 EmitVertex();
23         passthrough[1];
24         if(flag!=0)
25                 EmitVertex();
26         passthrough[2];
27         if(flag!=0)
28                 EmitVertex();
29 }
30
31 #pragma MSP stage(fragment)
32 layout(location=0) out vec4 frag_color;
33 void main()
34 {
35         frag_color = texture(tex, texcoord);
36 }
37
38 // Target API: Vulkan
39
40 /* Expected output: vertex
41 layout(location=0) in vec4 position;
42 layout(location=0) out vec2 texcoord;
43 void main()
44 {
45         texcoord = position.xy*0.5+0.5;
46         gl_Position = position;
47 }
48 */
49
50 /* Expected output: geometry
51 layout(push_constant) uniform Flag
52 {
53         int flag;
54 };
55 layout(triangles) in;
56 layout(triangle_strip, max_vertices=3) out;
57 layout(location=0) in vec2 texcoord[3];
58 layout(location=0) out vec2 _gs_out_texcoord;
59 void main()
60 {
61         gl_Position = gl_in[0].gl_Position;
62         _gs_out_texcoord = texcoord[0];
63         if(flag!=0)
64                 EmitVertex();
65         gl_Position = gl_in[1].gl_Position;
66         _gs_out_texcoord = texcoord[1];
67         if(flag!=0)
68                 EmitVertex();
69         gl_Position = gl_in[2].gl_Position;
70         _gs_out_texcoord = texcoord[2];
71         if(flag!=0)
72                 EmitVertex();
73 }
74 */
75
76 /* Expected output: fragment
77 layout(set=0, binding=71) uniform sampler2D tex;
78 layout(location=0) out vec4 frag_color;
79 layout(location=0) in vec2 _gs_out_texcoord;
80 void main()
81 {
82         frag_color = texture(tex, _gs_out_texcoord);
83 }
84 */