struct os { sampler2D s2D; }; struct os2 { sampler2D s2D; Texture2D tex; }; Texture2D tex; os s; os2 s2; float4 osCall1(os s) { return tex.Sample(s.s2D, float2(0.2, 0.3)); } float4 osCall2(os s, float2 f2) { return tex.Sample(s.s2D, f2); } float4 os2Call1(os2 s) { return s.tex.Sample(s.s2D, float2(0.2, 0.3)); } float4 os2Call2(os2 s, float2 f2) { return s.tex.Sample(s.s2D, f2); } float4 main() : SV_TARGET0 { return osCall1(s) + osCall2(s, float2(0.2, 0.3)) + os2Call1(s2) + os2Call2(s2, float2(0.2, 0.3)); }