1#version 450 core 2 3#extension GL_EXT_shader_16bit_storage : enable 4 5struct S 6{ 7 int16_t x; 8 i16vec2 y; 9 i16vec3 z; 10}; 11 12layout(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 23layout(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 35layout(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 47struct S2 { 48 mat4x4 x; 49 int16_t y; 50 int z; 51}; 52 53struct S3 { 54 S2 x; 55}; 56 57layout(row_major, std430) buffer B3 58{ 59 S2 x; 60} b3; 61 62layout(column_major, std430) buffer B4 63{ 64 S2 x; 65 S3 y; 66} b4; 67 68void 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 91