blob: 89ad7765040d4136dc49a25b05f43482ffb71e3b [file] [edit]
struct S {
float f;
uint u;
float4 v;
float16_t x;
vector<float16_t, 3> y;
};
struct frag_main_inputs {
float S_f : TEXCOORD0;
nointerpolation uint S_u : TEXCOORD1;
float16_t S_x : TEXCOORD2;
vector<float16_t, 3> S_y : TEXCOORD3;
float4 S_v : SV_Position;
};
RWByteAddressBuffer output : register(u0);
void v_1(uint offset, S obj) {
output.Store((offset + 0u), asuint(obj.f));
output.Store((offset + 4u), obj.u);
output.Store4((offset + 128u), asuint(obj.v));
output.Store<float16_t>((offset + 160u), obj.x);
output.Store<vector<float16_t, 3> >((offset + 192u), obj.y);
}
void frag_main_inner(S input) {
float f = input.f;
uint u = input.u;
float4 v = input.v;
float16_t x = input.x;
vector<float16_t, 3> y = input.y;
v_1(0u, input);
}
void frag_main(frag_main_inputs inputs) {
S v_2 = {inputs.S_f, inputs.S_u, float4(inputs.S_v.xyz, (1.0f / inputs.S_v[3u])), inputs.S_x, inputs.S_y};
frag_main_inner(v_2);
}