baldurk | 15c37f7 | 2019-01-29 12:12:59 +0000 | [diff] [blame] | 1 | #version 440 core
|
| 2 |
|
| 3 | struct VertexInfo {
|
| 4 | float position[3];
|
| 5 | float normal[3];
|
| 6 | };
|
| 7 |
|
| 8 | struct TriangleInfo {
|
| 9 | VertexInfo v[3];
|
| 10 | };
|
| 11 |
|
| 12 | buffer VertexCollection {
|
| 13 | TriangleInfo t[5];
|
baldurk | a972e73 | 2019-01-30 15:34:02 +0000 | [diff] [blame] | 14 | uint padding[10];
|
baldurk | 15c37f7 | 2019-01-29 12:12:59 +0000 | [diff] [blame] | 15 | };
|
| 16 |
|
baldurk | 4a2aa82 | 2019-01-29 19:10:56 +0000 | [diff] [blame] | 17 | buffer MultipleArrays {
|
| 18 | TriangleInfo tri[5];
|
| 19 | VertexInfo vert[5];
|
| 20 | float f[5];
|
| 21 | } multiarray;
|
| 22 |
|
baldurk | 657acc0 | 2019-01-30 14:18:43 +0000 | [diff] [blame] | 23 | uniform UBO {
|
| 24 | VertexInfo verts[2];
|
| 25 | float flt[8];
|
baldurk | a972e73 | 2019-01-30 15:34:02 +0000 | [diff] [blame] | 26 | uvec4 unused;
|
baldurk | 141bc5a | 2019-02-18 09:36:29 +0000 | [diff] [blame] | 27 | float uniform_multi[4][3][2];
|
baldurk | 657acc0 | 2019-01-30 14:18:43 +0000 | [diff] [blame] | 28 | } ubo;
|
| 29 |
|
baldurk | 141bc5a | 2019-02-18 09:36:29 +0000 | [diff] [blame] | 30 | uniform float uniform_multi[4][3][2];
|
| 31 |
|
baldurk | 1905069 | 2019-02-11 11:50:24 +0000 | [diff] [blame] | 32 | struct OutputStruct {
|
| 33 | float val;
|
| 34 | vec3 a;
|
| 35 | vec2 b[4];
|
| 36 | mat2x2 c;
|
| 37 | };
|
| 38 |
|
| 39 | out OutputStruct outval;
|
baldurk | 879562b | 2019-02-11 16:39:12 +0000 | [diff] [blame] | 40 | out float outarr[3];
|
baldurk | 0af5e3e | 2019-01-29 16:04:44 +0000 | [diff] [blame] | 41 |
|
baldurk | 15c37f7 | 2019-01-29 12:12:59 +0000 | [diff] [blame] | 42 | void main()
|
| 43 | {
|
| 44 | float f;
|
| 45 | f += t[0].v[0].position[0];
|
| 46 | f += t[gl_InstanceID].v[gl_InstanceID].position[gl_InstanceID];
|
| 47 | f += t[gl_InstanceID].v[gl_InstanceID].normal[gl_InstanceID];
|
baldurk | 4a2aa82 | 2019-01-29 19:10:56 +0000 | [diff] [blame] | 48 | f += multiarray.tri[gl_InstanceID].v[0].position[0];
|
| 49 | f += multiarray.vert[gl_InstanceID].position[0];
|
| 50 | f += multiarray.f[gl_InstanceID];
|
baldurk | 657acc0 | 2019-01-30 14:18:43 +0000 | [diff] [blame] | 51 | f += ubo.verts[gl_InstanceID].position[0];
|
| 52 | f += ubo.flt[gl_InstanceID];
|
baldurk | 141bc5a | 2019-02-18 09:36:29 +0000 | [diff] [blame] | 53 | f += ubo.uniform_multi[0][0][0];
|
| 54 | f += uniform_multi[gl_InstanceID][gl_InstanceID][gl_InstanceID];
|
baldurk | 15c37f7 | 2019-01-29 12:12:59 +0000 | [diff] [blame] | 55 | TriangleInfo tlocal[5] = t;
|
baldurk | 1905069 | 2019-02-11 11:50:24 +0000 | [diff] [blame] | 56 | outval.val = f;
|
baldurk | 879562b | 2019-02-11 16:39:12 +0000 | [diff] [blame] | 57 | outarr[2] = f;
|
baldurk | 15c37f7 | 2019-01-29 12:12:59 +0000 | [diff] [blame] | 58 | }
|