John Kessenich | 312dcfb | 2018-07-03 13:19:51 -0600 | [diff] [blame] | 1 | #version 450 core
|
| 2 |
|
| 3 | #extension GL_EXT_shader_16bit_storage : enable
|
| 4 |
|
| 5 | struct S
|
| 6 | {
|
| 7 | int16_t x;
|
| 8 | i16vec2 y;
|
| 9 | i16vec3 z;
|
| 10 | };
|
| 11 |
|
| 12 | layout(column_major, std140) uniform B1
|
| 13 | {
|
| 14 | int16_t a;
|
| 15 | i16vec2 b;
|
| 16 | i16vec3 c;
|
| 17 | int16_t d[2];
|
| 18 | S g;
|
| 19 | S h[2];
|
| 20 | int j;
|
| 21 | } b1;
|
| 22 |
|
| 23 | layout(row_major, std430) buffer B2
|
| 24 | {
|
| 25 | int16_t o;
|
| 26 | i16vec2 p;
|
| 27 | i16vec3 q;
|
| 28 | int16_t r[2];
|
| 29 | S u;
|
| 30 | S v[2];
|
| 31 | i16vec2 x[100];
|
| 32 | int16_t w[];
|
| 33 | } b2;
|
| 34 |
|
| 35 | layout(row_major, std140) uniform B5
|
| 36 | {
|
| 37 | int16_t o;
|
| 38 | i16vec2 p;
|
| 39 | i16vec3 q;
|
| 40 | int16_t r[2];
|
| 41 | S u;
|
| 42 | S v[2];
|
| 43 | i16vec2 x[100];
|
| 44 | int16_t w[100];
|
| 45 | } b5;
|
| 46 |
|
| 47 | struct S2 {
|
| 48 | mat4x4 x;
|
| 49 | int16_t y;
|
| 50 | int z;
|
| 51 | };
|
| 52 |
|
| 53 | struct S3 {
|
| 54 | S2 x;
|
| 55 | };
|
| 56 |
|
| 57 | layout(row_major, std430) buffer B3
|
| 58 | {
|
| 59 | S2 x;
|
| 60 | } b3;
|
| 61 |
|
| 62 | layout(column_major, std430) buffer B4
|
| 63 | {
|
| 64 | S2 x;
|
| 65 | S3 y;
|
| 66 | } b4;
|
| 67 |
|
| 68 | void main()
|
| 69 | {
|
| 70 | b2.o = b1.a;
|
| 71 | b2.p = i16vec2(ivec3(b2.q).xy);
|
| 72 | b2.p = i16vec2(ivec3(b5.q).xy);
|
| 73 | b2.r[0] = b2.r[0];
|
| 74 | b2.r[1] = b5.r[1];
|
| 75 | b2.p = b2.p;
|
| 76 | int x0 = int(b1.a);
|
| 77 | ivec4 x1 = ivec4(b1.a, b2.p, 1);
|
| 78 | b4.x.x = b3.x.x;
|
| 79 | b2.o = int16_t(ivec2(b2.p).x);
|
| 80 | b2.p = b2.v[1].y;
|
| 81 | ivec3 v3 = ivec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]);
|
| 82 | ivec3 u3 = ivec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]);
|
| 83 | b2.x[0] = b2.x[0];
|
| 84 | b2.x[1] = b5.x[1];
|
| 85 | b2.p.x = b1.a;
|
| 86 | b2.o = b2.p.x;
|
| 87 | b2.p = i16vec2(ivec2(1, 2));
|
| 88 | b2.o = int16_t(3);
|
| 89 | }
|
| 90 |
|