#version 450 core | |
#extension GL_EXT_shader_16bit_storage : enable | |
struct S | |
{ | |
float16_t x; | |
f16vec2 y; | |
f16vec3 z; | |
}; | |
layout(column_major, std140) uniform B1 | |
{ | |
float16_t a; | |
f16vec2 b; | |
f16vec3 c; | |
float16_t d[2]; | |
S g; | |
S h[2]; | |
int j; | |
} b1; | |
layout(row_major, std430) buffer B2 | |
{ | |
float16_t o; | |
f16vec2 p; | |
f16vec3 q; | |
float16_t r[2]; | |
S u; | |
S v[2]; | |
f16vec2 x[100]; | |
float16_t w[]; | |
} b2; | |
layout(row_major, std140) uniform B5 | |
{ | |
float16_t o; | |
f16vec2 p; | |
f16vec3 q; | |
float16_t r[2]; | |
S u; | |
S v[2]; | |
f16vec2 x[100]; | |
float16_t w[100]; | |
} b5; | |
struct S2 { | |
mat4x4 x; | |
float16_t y; | |
float z; | |
}; | |
struct S3 { | |
S2 x; | |
}; | |
layout(row_major, std430) buffer B3 | |
{ | |
S2 x; | |
} b3; | |
layout(column_major, std430) buffer B4 | |
{ | |
S2 x; | |
S3 y; | |
} b4; | |
void main() | |
{ | |
b2.o = b1.a; | |
b2.p = f16vec2(vec3(b2.q).xy); | |
b2.p = f16vec2(vec3(b5.q).xy); | |
b2.r[0] = b2.r[0]; | |
b2.r[1] = b5.r[1]; | |
b2.p = b2.p; | |
float x0 = float(b1.a); | |
vec4 x1 = vec4(b1.a, b2.p, 1.0); | |
b4.x.x = b3.x.x; | |
b2.o = float16_t(vec2(b2.p).x); | |
b2.p = b2.v[1].y; | |
vec3 v3 = vec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]); | |
vec3 u3 = vec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]); | |
b2.x[0] = b2.x[0]; | |
b2.x[1] = b5.x[1]; | |
b2.p.x = b1.a; | |
b2.o = b2.p.x; | |
b2.p = f16vec2(vec2(1.0, 2.0)); | |
b2.o = float16_t(3.0); | |
} | |