namespace.resources.hlsl 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Run: %dxc -T ps_6_0 -E main
  2. // CHECK: OpMemberDecorate %type_RWStructuredBuffer_v4float 0 Offset 0
  3. // CHECK: OpDecorate %type_RWStructuredBuffer_v4float BufferBlock
  4. // CHECK: OpMemberDecorate %type__Globals 0 Offset 0
  5. // CHECK: OpDecorate %type__Globals Block
  6. // CHECK: OpDecorate %rw1 DescriptorSet 0
  7. // CHECK: OpDecorate %rw1 Binding 0
  8. // CHECK: OpDecorate %counter_var_rw1 DescriptorSet 0
  9. // CHECK: OpDecorate %counter_var_rw1 Binding 1
  10. // CHECK: OpDecorate %rw2 DescriptorSet 0
  11. // CHECK: OpDecorate %rw2 Binding 2
  12. // CHECK: OpDecorate %counter_var_rw2 DescriptorSet 0
  13. // CHECK: OpDecorate %counter_var_rw2 Binding 3
  14. // CHECK: OpDecorate %rw3 DescriptorSet 0
  15. // CHECK: OpDecorate %rw3 Binding 4
  16. // CHECK: OpDecorate %counter_var_rw3 DescriptorSet 0
  17. // CHECK: OpDecorate %counter_var_rw3 Binding 5
  18. RWStructuredBuffer<float4> rw1;
  19. namespace A {
  20. RWStructuredBuffer<float4> rw2;
  21. namespace B {
  22. RWStructuredBuffer<float4> rw3;
  23. } // end namespace B
  24. } // end namespace A
  25. // Check that resources are not added to the globals struct.
  26. // CHECK: %type__Globals = OpTypeStruct %int
  27. int c;
  28. float4 main(float4 PosCS : SV_Position) : SV_Target
  29. {
  30. // CHECK: OpAccessChain %_ptr_Uniform_v4float %rw1 %int_0 %uint_0
  31. // CHECK: OpAccessChain %_ptr_Uniform_v4float %rw2 %int_0 %uint_1
  32. // CHECK: OpAccessChain %_ptr_Uniform_v4float %rw3 %int_0 %uint_2
  33. return rw1[0] + A::rw2[1] + A::B::rw3[2];
  34. }