glslang/Test/hlsl.flattenOpaqueInit.vert
John Kessenich dc005fb083 HLSL: Stop flattening non-IO structs containing opaques.
This makes struct returns from functions work, but breaks
structs containing arrays, due to limitations in subsequent
transforms in spirv-opt. This is expected to be fixed soon.
2017-12-08 04:30:29 -07:00

28 lines
605 B
GLSL

struct FxaaTex { SamplerState smpl; Texture2D tex; };
SamplerState g_tInputTexture_sampler; Texture2D g_tInputTexture;
float4 lookUp(FxaaTex tex)
{
return tex.tex.Sample(tex.smpl, float2(0.3, 0.4));
}
FxaaTex fillOpaque()
{
FxaaTex t;
t.smpl = g_tInputTexture_sampler;
t.tex = g_tInputTexture;
return t;
}
float4 main() : SV_TARGET0
{
FxaaTex tex1 = { g_tInputTexture_sampler, g_tInputTexture };
float4 res = lookUp(tex1);
FxaaTex tex2 = fillOpaque();
res += lookUp(tex2);
FxaaTex tex3 = tex1;
res += lookUp(tex3);
return res;
}