SPIRV-Cross/reference/shaders-hlsl/asm/frag/function-overload-alias.asm.frag
Hans-Kristian Arntzen a04bdcc7f7 Handle overloaded functions which share the same OpName.
Awkward, but legal SPIR-V.
2018-02-23 14:15:51 +01:00

48 lines
810 B
GLSL

static float4 FragColor;
struct SPIRV_Cross_Output
{
float4 FragColor : SV_Target0;
};
float4 foo(float4 foo_1)
{
return foo_1 + 1.0f.xxxx;
}
float4 foo(float3 foo_1)
{
return foo_1.xyzz + 1.0f.xxxx;
}
float4 foo_1(float4 foo_2)
{
return foo_2 + 2.0f.xxxx;
}
float4 foo(float2 foo_2)
{
return foo_2.xyxy + 2.0f.xxxx;
}
void frag_main()
{
float4 foo_3 = 1.0f.xxxx;
float4 foo_2 = foo(foo_3);
float3 foo_5 = 1.0f.xxx;
float4 foo_4 = foo(foo_5);
float4 foo_7 = 1.0f.xxxx;
float4 foo_6 = foo_1(foo_7);
float2 foo_9 = 1.0f.xx;
float4 foo_8 = foo(foo_9);
FragColor = ((foo_2 + foo_4) + foo_6) + foo_8;
}
SPIRV_Cross_Output main()
{
frag_main();
SPIRV_Cross_Output stage_output;
stage_output.FragColor = FragColor;
return stage_output;
}