| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // RUN: %dxc -E main -T ps_6_0 -Od %s | FileCheck %s
- // Make sure unused resources are handled even when
- // they're arrays.
- // CHECK: @main
- static bool gG;
- static bool gG2;
- static bool gG3;
- Texture2D tex0[42] : register(t0);
- Texture2D tex1 : register(t42);
- Texture2D tex2[2][2] : register(t43);
- const uint idx1;
- const uint idx2;
- const uint idx3;
- static Texture2D local_tex1;
- static Texture2D local_tex2;
- static Texture2D local_tex3;
- Texture2D f(bool foo) {
- [branch]
- if (foo)
- return local_tex1;
- else
- return tex1;
- }
- Texture2D g(bool foo) {
- [branch]
- if (foo)
- return local_tex2;
- else
- return local_tex3;
- }
- Texture2D h(bool foo3) {
- return foo3 ? f(gG2) : g(gG3);
- }
- [RootSignature("CBV(b0), DescriptorTable(SRV(t0, numDescriptors=42), SRV(t42), SRV(t43, numDescriptors=4))")]
- float4 main() : sv_target {
- // CHECK: %[[handle:.+]] = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 42
- local_tex1 = tex0[idx1];
- local_tex2 = tex0[idx2];
- local_tex3 = tex2[idx3][idx1];
- gG = true;
- gG2 = false;
- gG3 = false;
- // CHECK: @dx.op.textureLoad.f32(i32 66, %dx.types.Handle %[[handle]]
- return h(gG).Load(0);
- };
|