cbuffer6.51.hlsl 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK: ; Buffer Definitions:
  3. // CHECK: ;
  4. // CHECK: ; cbuffer buf1
  5. // CHECK: ; {
  6. // CHECK: ;
  7. // CHECK: ; struct buf1
  8. // CHECK: ; {
  9. // CHECK: ;
  10. // CHECK: ; struct struct.Foo
  11. // CHECK: ; {
  12. // CHECK: ;
  13. // CHECK: ; float4 g1[16]; ; Offset: 0
  14. // CHECK: ;
  15. // CHECK: ; } buf1; ; Offset: 0
  16. // CHECK: ;
  17. // CHECK: ;
  18. // CHECK: ; } buf1; ; Offset: 0 Size: 256
  19. // CHECK: ;
  20. // CHECK: ; }
  21. // CHECK: ;
  22. // CHECK: ; cbuffer buf2
  23. // CHECK: ; {
  24. // CHECK: ;
  25. // CHECK: ; struct buf2
  26. // CHECK: ; {
  27. // CHECK: ;
  28. // CHECK: ; struct struct.Bar
  29. // CHECK: ; {
  30. // CHECK: ;
  31. // CHECK: ; struct struct.Foo
  32. // CHECK: ; {
  33. // CHECK: ;
  34. // CHECK: ; float4 g1[16]; ; Offset: 0
  35. // CHECK: ;
  36. // CHECK: ; } foo; ; Offset: 0
  37. // CHECK: ;
  38. // CHECK: ; uint3 idx[16]; ; Offset: 256
  39. // CHECK: ;
  40. // CHECK: ; } buf2; ; Offset: 0
  41. // CHECK: ;
  42. // CHECK: ; } buf2; ; Offset: 0 Size: 508
  43. // CHECK: ;
  44. // CHECK: ; }
  45. // CHECK: ;
  46. // CHECK: ;
  47. // CHECK: ; Resource Bindings:
  48. // CHECK: ;
  49. // CHECK: ; Name Type Format Dim ID HLSL Bind Count
  50. // CHECK: ; ------------------------------ ---------- ------- ----------- ------- -------------- ------
  51. // CHECK: ; buf1 cbuffer NA NA CB0 cb77,space3unbounded
  52. // CHECK: ; buf2 cbuffer NA NA CB1 cb17unbounded
  53. // For cb17
  54. // CHECK:add i32
  55. // CHECK:, 17
  56. // For cb77
  57. // CHECK:add i32
  58. // CHECK:, 77
  59. struct Foo
  60. {
  61. float4 g1[16];
  62. };
  63. struct Bar
  64. {
  65. Foo foo;
  66. uint3 idx[16];
  67. };
  68. ConstantBuffer<Foo> buf1[] : register(b77, space3);
  69. ConstantBuffer<Bar> buf2[] : register(b17);
  70. float4 main(int3 a : A) : SV_TARGET
  71. {
  72. return buf1[ buf2[a.x].idx[a.y].z ].g1[a.z + 12].wyyy;
  73. }