glslang/Test/hlsl.aliasOpaque.frag
John Kessenich f31507421b HLSL: Convert run-time sampler assignments to compile-time aliases.
For "s.m = t", a sampler member assigned a sampler, make t an alias
for s.m, and when s.m is flattened, it will flatten to the alias t.
Normally, assignments to samplers are disallowed.
2017-06-02 18:27:21 -06:00

30 lines
452 B
GLSL

struct OS {
SamplerState ss;
float a;
Texture2D tex;
};
SamplerState gss;
SamplerState gss2;
Texture2D gtex;
float4 osCall(OS s)
{
return s.a * s.tex.Sample(s.ss, float2(0.2, 0.3));
}
float4 main() : SV_TARGET0
{
OS os;
os.ss = gss2;
os.ss = gss;
os.tex = gtex;
os.a = 3.0;
// this should give an error
//SamplerState localss;
//localss = gss2;
return osCall(os);
}