dawn-cmake/test/tint/buffer/uniform/static_index/read.wgsl.expected.dxc.hlsl

140 lines
5.6 KiB
HLSL

struct Inner {
int scalar_i32;
float scalar_f32;
};
cbuffer cbuffer_ub : register(b0) {
uint4 ub[44];
};
float2x2 ub_load_12(uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
uint4 ubo_load = ub[scalar_offset / 4];
const uint scalar_offset_1 = ((offset + 8u)) / 4;
uint4 ubo_load_1 = ub[scalar_offset_1 / 4];
return float2x2(asfloat(((scalar_offset & 2) ? ubo_load.zw : ubo_load.xy)), asfloat(((scalar_offset_1 & 2) ? ubo_load_1.zw : ubo_load_1.xy)));
}
float2x3 ub_load_13(uint offset) {
const uint scalar_offset_2 = ((offset + 0u)) / 4;
const uint scalar_offset_3 = ((offset + 16u)) / 4;
return float2x3(asfloat(ub[scalar_offset_2 / 4].xyz), asfloat(ub[scalar_offset_3 / 4].xyz));
}
float2x4 ub_load_14(uint offset) {
const uint scalar_offset_4 = ((offset + 0u)) / 4;
const uint scalar_offset_5 = ((offset + 16u)) / 4;
return float2x4(asfloat(ub[scalar_offset_4 / 4]), asfloat(ub[scalar_offset_5 / 4]));
}
float3x2 ub_load_15(uint offset) {
const uint scalar_offset_6 = ((offset + 0u)) / 4;
uint4 ubo_load_2 = ub[scalar_offset_6 / 4];
const uint scalar_offset_7 = ((offset + 8u)) / 4;
uint4 ubo_load_3 = ub[scalar_offset_7 / 4];
const uint scalar_offset_8 = ((offset + 16u)) / 4;
uint4 ubo_load_4 = ub[scalar_offset_8 / 4];
return float3x2(asfloat(((scalar_offset_6 & 2) ? ubo_load_2.zw : ubo_load_2.xy)), asfloat(((scalar_offset_7 & 2) ? ubo_load_3.zw : ubo_load_3.xy)), asfloat(((scalar_offset_8 & 2) ? ubo_load_4.zw : ubo_load_4.xy)));
}
float3x3 ub_load_16(uint offset) {
const uint scalar_offset_9 = ((offset + 0u)) / 4;
const uint scalar_offset_10 = ((offset + 16u)) / 4;
const uint scalar_offset_11 = ((offset + 32u)) / 4;
return float3x3(asfloat(ub[scalar_offset_9 / 4].xyz), asfloat(ub[scalar_offset_10 / 4].xyz), asfloat(ub[scalar_offset_11 / 4].xyz));
}
float3x4 ub_load_17(uint offset) {
const uint scalar_offset_12 = ((offset + 0u)) / 4;
const uint scalar_offset_13 = ((offset + 16u)) / 4;
const uint scalar_offset_14 = ((offset + 32u)) / 4;
return float3x4(asfloat(ub[scalar_offset_12 / 4]), asfloat(ub[scalar_offset_13 / 4]), asfloat(ub[scalar_offset_14 / 4]));
}
float4x2 ub_load_18(uint offset) {
const uint scalar_offset_15 = ((offset + 0u)) / 4;
uint4 ubo_load_5 = ub[scalar_offset_15 / 4];
const uint scalar_offset_16 = ((offset + 8u)) / 4;
uint4 ubo_load_6 = ub[scalar_offset_16 / 4];
const uint scalar_offset_17 = ((offset + 16u)) / 4;
uint4 ubo_load_7 = ub[scalar_offset_17 / 4];
const uint scalar_offset_18 = ((offset + 24u)) / 4;
uint4 ubo_load_8 = ub[scalar_offset_18 / 4];
return float4x2(asfloat(((scalar_offset_15 & 2) ? ubo_load_5.zw : ubo_load_5.xy)), asfloat(((scalar_offset_16 & 2) ? ubo_load_6.zw : ubo_load_6.xy)), asfloat(((scalar_offset_17 & 2) ? ubo_load_7.zw : ubo_load_7.xy)), asfloat(((scalar_offset_18 & 2) ? ubo_load_8.zw : ubo_load_8.xy)));
}
float4x3 ub_load_19(uint offset) {
const uint scalar_offset_19 = ((offset + 0u)) / 4;
const uint scalar_offset_20 = ((offset + 16u)) / 4;
const uint scalar_offset_21 = ((offset + 32u)) / 4;
const uint scalar_offset_22 = ((offset + 48u)) / 4;
return float4x3(asfloat(ub[scalar_offset_19 / 4].xyz), asfloat(ub[scalar_offset_20 / 4].xyz), asfloat(ub[scalar_offset_21 / 4].xyz), asfloat(ub[scalar_offset_22 / 4].xyz));
}
float4x4 ub_load_20(uint offset) {
const uint scalar_offset_23 = ((offset + 0u)) / 4;
const uint scalar_offset_24 = ((offset + 16u)) / 4;
const uint scalar_offset_25 = ((offset + 32u)) / 4;
const uint scalar_offset_26 = ((offset + 48u)) / 4;
return float4x4(asfloat(ub[scalar_offset_23 / 4]), asfloat(ub[scalar_offset_24 / 4]), asfloat(ub[scalar_offset_25 / 4]), asfloat(ub[scalar_offset_26 / 4]));
}
typedef float3 ub_load_21_ret[2];
ub_load_21_ret ub_load_21(uint offset) {
float3 arr[2] = (float3[2])0;
{
for(uint i = 0u; (i < 2u); i = (i + 1u)) {
const uint scalar_offset_27 = ((offset + (i * 16u))) / 4;
arr[i] = asfloat(ub[scalar_offset_27 / 4].xyz);
}
}
return arr;
}
Inner ub_load_22(uint offset) {
const uint scalar_offset_28 = ((offset + 0u)) / 4;
const uint scalar_offset_29 = ((offset + 16u)) / 4;
const Inner tint_symbol = {asint(ub[scalar_offset_28 / 4][scalar_offset_28 % 4]), asfloat(ub[scalar_offset_29 / 4][scalar_offset_29 % 4])};
return tint_symbol;
}
typedef Inner ub_load_23_ret[4];
ub_load_23_ret ub_load_23(uint offset) {
Inner arr_1[4] = (Inner[4])0;
{
for(uint i_1 = 0u; (i_1 < 4u); i_1 = (i_1 + 1u)) {
arr_1[i_1] = ub_load_22((offset + (i_1 * 32u)));
}
}
return arr_1;
}
[numthreads(1, 1, 1)]
void main() {
const float scalar_f32 = asfloat(ub[0].x);
const int scalar_i32 = asint(ub[0].y);
const uint scalar_u32 = ub[0].z;
const float2 vec2_f32 = asfloat(ub[1].xy);
const int2 vec2_i32 = asint(ub[1].zw);
const uint2 vec2_u32 = ub[2].xy;
const float3 vec3_f32 = asfloat(ub[3].xyz);
const int3 vec3_i32 = asint(ub[4].xyz);
const uint3 vec3_u32 = ub[5].xyz;
const float4 vec4_f32 = asfloat(ub[6]);
const int4 vec4_i32 = asint(ub[7]);
const uint4 vec4_u32 = ub[8];
const float2x2 mat2x2_f32 = ub_load_12(144u);
const float2x3 mat2x3_f32 = ub_load_13(160u);
const float2x4 mat2x4_f32 = ub_load_14(192u);
const float3x2 mat3x2_f32 = ub_load_15(224u);
const float3x3 mat3x3_f32 = ub_load_16(256u);
const float3x4 mat3x4_f32 = ub_load_17(304u);
const float4x2 mat4x2_f32 = ub_load_18(352u);
const float4x3 mat4x3_f32 = ub_load_19(384u);
const float4x4 mat4x4_f32 = ub_load_20(448u);
const float3 arr2_vec3_f32[2] = ub_load_21(512u);
const Inner struct_inner = ub_load_22(544u);
const Inner array_struct_inner[4] = ub_load_23(576u);
return;
}