dawn-cmake/test/var/inferred/function-let.wgsl.expected.hlsl
Ben Clayton 4135ea55eb writer/hlsl: Don't wrap arrays in structures
FXC has trouble dealing with these.
This was originally added to handle returning arrays as structures.
HLSL supports typedefs, which is a much simpiler solution, and doesn't upset FXC.

Bug: tint:848
Bug: tint:904
Change-Id: Ie841c9c454461a885a35c41476fd4d05d3f34cbf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/56774
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
2021-07-05 15:20:57 +00:00

54 lines
1.0 KiB
HLSL

struct MyStruct {
float f1;
};
int ret_i32() {
return 1;
}
uint ret_u32() {
return 1u;
}
float ret_f32() {
return 1.0f;
}
MyStruct ret_MyStruct() {
const MyStruct tint_symbol_1 = (MyStruct)0;
return tint_symbol_1;
}
typedef float ret_MyArray_ret[10];
ret_MyArray_ret ret_MyArray() {
const float tint_symbol_2[10] = (float[10])0;
return tint_symbol_2;
}
void let_decls() {
const int v1 = 1;
const uint v2 = 1u;
const float v3 = 1.0f;
const int3 v4 = int3(1, 1, 1);
const uint3 v5 = uint3(1u, 1u, 1u);
const float3 v6 = float3(1.0f, 1.0f, 1.0f);
const float3x3 v7 = float3x3(v6, v6, v6);
const MyStruct v8 = {1.0f};
const float v9[10] = (float[10])0;
const int v10 = ret_i32();
const uint v11 = ret_u32();
const float v12 = ret_f32();
const MyStruct v13 = ret_MyStruct();
const MyStruct v14 = ret_MyStruct();
const float v15[10] = ret_MyArray();
}
struct tint_symbol {
float4 value : SV_Target0;
};
tint_symbol main() {
const tint_symbol tint_symbol_3 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
return tint_symbol_3;
}