vk.binding.explicit.error.hlsl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Run: %dxc -T ps_6_0 -E main
  2. [[vk::binding(1)]]
  3. SamplerState sampler1 : register(s1, space1);
  4. [[vk::binding(3, 1)]]
  5. SamplerState sampler2 : register(s2);
  6. [[vk::binding(1)]] // reuse - allowed for combined image sampler
  7. Texture2D<float4> texture1;
  8. [[vk::binding(3, 1)]] // reuse - allowed for combined image sampler
  9. Texture3D<float4> texture2 : register(t0, space0);
  10. [[vk::binding(3, 1)]] // reuse - disallowed
  11. Texture3D<float4> texture3 : register(t0, space0);
  12. [[vk::binding(1)]] // reuse - disallowed
  13. SamplerState sampler3 : register(s1, space1);
  14. struct S { float f; };
  15. [[vk::binding(5)]]
  16. StructuredBuffer<S> buf1;
  17. [[vk::binding(5)]] // reuse - disallowed
  18. SamplerState sampler4;
  19. [[vk::binding(5)]] // reuse - disallowed
  20. Texture2D<float4> texture4;
  21. float4 main() : SV_Target {
  22. return 1.0;
  23. }
  24. // CHECK-NOT: :9:{{%\d+}}: warning: resource binding #1 in descriptor set #0 already assigned
  25. // CHECK-NOT: :12:{{%\d+}}: warning: resource binding #3 in descriptor set #1 already assigned
  26. // CHECK: :15:3: warning: resource binding #3 in descriptor set #1 already assigned
  27. // CHECK: :12:3: note: binding number previously assigned here
  28. // CHECK: :18:3: warning: resource binding #1 in descriptor set #0 already assigned
  29. // CHECK: :26:3: warning: resource binding #5 in descriptor set #0 already assigned
  30. // CHECK: :29:3: warning: resource binding #5 in descriptor set #0 already assigned