]> git.tdb.fi Git - libs/gl.git/blob - tests/glsl/ignore_array_in_geometry_passthrough.glsl
An assortment of minor fixes
[libs/gl.git] / tests / glsl / ignore_array_in_geometry_passthrough.glsl
1 layout(push_constant) uniform Transform
2 {
3         mat4 vp_matrix;
4 };
5 uniform sampler2D tex;
6
7 #pragma MSP stage(vertex)
8 layout(location=0) in vec4 position;
9 layout(location=1) in vec2 texcoord;
10 layout(location=2) in vec4 instance_transform[3];
11 void main()
12 {
13         passthrough;
14         mat4 model_matrix = transpose(mat4(instance_transform[0], instance_transform[1], instance_transform[2], vec4(0.0, 0.0, 0.0, 1.0)));
15         gl_Position = vp_matrix*model_matrix*position;
16 }
17
18 #pragma MSP stage(geometry)
19 layout(triangles) in;
20 layout(triangle_strip, max_vertices=3) out;
21 void main()
22 {
23         for(int i=0; i<3; ++i)
24         {
25                 passthrough[i];
26                 EmitVertex();
27         }
28 }
29
30 #pragma MSP stage(fragment)
31 layout(location=0) out vec4 frag_color;
32 void main()
33 {
34         frag_color = texture(tex, texcoord);
35 }
36
37 // Target API: Vulkan
38
39 /* Expected output: vertex
40 layout(push_constant) uniform Transform
41 {
42         mat4 vp_matrix;
43 };
44 layout(location=0) in vec4 position;
45 layout(location=1) in vec2 texcoord;
46 layout(location=2) in vec4 instance_transform[3];
47 layout(location=0) out vec2 _vs_out_texcoord;
48 void main()
49 {
50         _vs_out_texcoord = texcoord;
51         gl_Position = vp_matrix*transpose(mat4(instance_transform[0], instance_transform[1], instance_transform[2], vec4(0.0, 0.0, 0.0, 1.0)))*position;
52 }
53 */
54
55 /* Expected output: geometry
56 layout(triangles) in;
57 layout(triangle_strip, max_vertices=3) out;
58 layout(location=0) in vec2 _vs_out_texcoord[3];
59 layout(location=0) out vec2 _gs_out_texcoord;
60 void main()
61 {
62         for(int i = 0; i<3; ++i)
63         {
64                 gl_Position = gl_in[i].gl_Position;
65                 _gs_out_texcoord = _vs_out_texcoord[i];
66                 EmitVertex();
67         }
68 }
69 */
70
71 /* Expected output: fragment
72 layout(set=0, binding=71) uniform sampler2D tex;
73 layout(location=0) out vec4 frag_color;
74 layout(location=0) in vec2 _gs_out_texcoord;
75 void main()
76 {
77         frag_color = texture(tex, _gs_out_texcoord);
78 }
79 */