cb_1x1array.hlsl 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. // RUN: %dxc -E main -T vs_6_0 -Vd -validator-version 0.0 %s | %D3DReflect %s | FileCheck %s
  2. float1x1 i1x1_arr0_1[1];
  3. float1x1 i1x1_arr0[3];
  4. float3x1 i3x1_arr0[4];
  5. float1x3 i1x3_arr0[5];
  6. row_major float3x1 rm_i3x1_arr0[6];
  7. row_major float1x3 rm_i1x3_arr0[7];
  8. cbuffer CB1 {
  9. float1x1 i1x1_arr1[8];
  10. }
  11. struct CBStruct {
  12. float1x1 i1x1_arr2[9];
  13. };
  14. ConstantBuffer<CBStruct> CB2;
  15. float main() : OUT {
  16. return i1x1_arr0[0]
  17. + i1x1_arr1[1]
  18. + CB2.i1x1_arr2[2];
  19. }
  20. #if 0
  21. // CHECK: Constant Buffers:
  22. // CHECK-NEXT: ID3D12ShaderReflectionConstantBuffer:
  23. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: $Globals
  24. // CHECK-NEXT: Type: D3D_CT_CBUFFER
  25. // CHECK-NEXT: Size: 768
  26. // CHECK-NEXT: uFlags: 0
  27. // CHECK-NEXT: Num Variables: 6
  28. // CHECK-NEXT: {
  29. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  30. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: i1x1_arr0_1
  31. // CHECK-NEXT: Size: 4
  32. // CHECK-NEXT: StartOffset: 0
  33. // CHECK-NEXT: uFlags: 0
  34. // CHECK-NEXT: DefaultValue: <nullptr>
  35. // CHECK-NEXT: ID3D12ShaderReflectionType:
  36. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float1x1
  37. // CHECK-NEXT: Class: D3D_SVC_MATRIX_COLUMNS
  38. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  39. // CHECK-NEXT: Elements: 1
  40. // CHECK-NEXT: Rows: 1
  41. // CHECK-NEXT: Columns: 1
  42. // CHECK-NEXT: Members: 0
  43. // CHECK-NEXT: Offset: 0
  44. // CHECK-NEXT: CBuffer: $Globals
  45. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  46. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: i1x1_arr0
  47. // CHECK-NEXT: Size: 36
  48. // CHECK-NEXT: StartOffset: 16
  49. // CHECK-NEXT: uFlags: (D3D_SVF_USED)
  50. // CHECK-NEXT: DefaultValue: <nullptr>
  51. // CHECK-NEXT: ID3D12ShaderReflectionType:
  52. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float1x1
  53. // CHECK-NEXT: Class: D3D_SVC_MATRIX_COLUMNS
  54. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  55. // CHECK-NEXT: Elements: 3
  56. // CHECK-NEXT: Rows: 1
  57. // CHECK-NEXT: Columns: 1
  58. // CHECK-NEXT: Members: 0
  59. // CHECK-NEXT: Offset: 0
  60. // CHECK-NEXT: CBuffer: $Globals
  61. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  62. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: i3x1_arr0
  63. // CHECK-NEXT: Size: 60
  64. // CHECK-NEXT: StartOffset: 64
  65. // CHECK-NEXT: uFlags: 0
  66. // CHECK-NEXT: DefaultValue: <nullptr>
  67. // CHECK-NEXT: ID3D12ShaderReflectionType:
  68. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float3x1
  69. // CHECK-NEXT: Class: D3D_SVC_MATRIX_COLUMNS
  70. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  71. // CHECK-NEXT: Elements: 4
  72. // CHECK-NEXT: Rows: 3
  73. // CHECK-NEXT: Columns: 1
  74. // CHECK-NEXT: Members: 0
  75. // CHECK-NEXT: Offset: 0
  76. // CHECK-NEXT: CBuffer: $Globals
  77. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  78. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: i1x3_arr0
  79. // CHECK-NEXT: Size: 228
  80. // CHECK-NEXT: StartOffset: 128
  81. // CHECK-NEXT: uFlags: 0
  82. // CHECK-NEXT: DefaultValue: <nullptr>
  83. // CHECK-NEXT: ID3D12ShaderReflectionType:
  84. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float1x3
  85. // CHECK-NEXT: Class: D3D_SVC_MATRIX_COLUMNS
  86. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  87. // CHECK-NEXT: Elements: 5
  88. // CHECK-NEXT: Rows: 1
  89. // CHECK-NEXT: Columns: 3
  90. // CHECK-NEXT: Members: 0
  91. // CHECK-NEXT: Offset: 0
  92. // CHECK-NEXT: CBuffer: $Globals
  93. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  94. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: rm_i3x1_arr0
  95. // CHECK-NEXT: Size: 276
  96. // CHECK-NEXT: StartOffset: 368
  97. // CHECK-NEXT: uFlags: 0
  98. // CHECK-NEXT: DefaultValue: <nullptr>
  99. // CHECK-NEXT: ID3D12ShaderReflectionType:
  100. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float3x1
  101. // CHECK-NEXT: Class: D3D_SVC_MATRIX_ROWS
  102. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  103. // CHECK-NEXT: Elements: 6
  104. // CHECK-NEXT: Rows: 3
  105. // CHECK-NEXT: Columns: 1
  106. // CHECK-NEXT: Members: 0
  107. // CHECK-NEXT: Offset: 0
  108. // CHECK-NEXT: CBuffer: $Globals
  109. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  110. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: rm_i1x3_arr0
  111. // CHECK-NEXT: Size: 108
  112. // CHECK-NEXT: StartOffset: 656
  113. // CHECK-NEXT: uFlags: 0
  114. // CHECK-NEXT: DefaultValue: <nullptr>
  115. // CHECK-NEXT: ID3D12ShaderReflectionType:
  116. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float1x3
  117. // CHECK-NEXT: Class: D3D_SVC_MATRIX_ROWS
  118. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  119. // CHECK-NEXT: Elements: 7
  120. // CHECK-NEXT: Rows: 1
  121. // CHECK-NEXT: Columns: 3
  122. // CHECK-NEXT: Members: 0
  123. // CHECK-NEXT: Offset: 0
  124. // CHECK-NEXT: CBuffer: $Globals
  125. // CHECK-NEXT: }
  126. // CHECK-NEXT: ID3D12ShaderReflectionConstantBuffer:
  127. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: CB1
  128. // CHECK-NEXT: Type: D3D_CT_CBUFFER
  129. // CHECK-NEXT: Size: 128
  130. // CHECK-NEXT: uFlags: 0
  131. // CHECK-NEXT: Num Variables: 1
  132. // CHECK-NEXT: {
  133. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  134. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: i1x1_arr1
  135. // CHECK-NEXT: Size: 116
  136. // CHECK-NEXT: StartOffset: 0
  137. // CHECK-NEXT: uFlags: (D3D_SVF_USED)
  138. // CHECK-NEXT: DefaultValue: <nullptr>
  139. // CHECK-NEXT: ID3D12ShaderReflectionType:
  140. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float1x1
  141. // CHECK-NEXT: Class: D3D_SVC_MATRIX_COLUMNS
  142. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  143. // CHECK-NEXT: Elements: 8
  144. // CHECK-NEXT: Rows: 1
  145. // CHECK-NEXT: Columns: 1
  146. // CHECK-NEXT: Members: 0
  147. // CHECK-NEXT: Offset: 0
  148. // CHECK-NEXT: CBuffer: CB1
  149. // CHECK-NEXT: }
  150. // CHECK-NEXT: ID3D12ShaderReflectionConstantBuffer:
  151. // CHECK-NEXT: D3D12_SHADER_BUFFER_DESC: Name: CB2
  152. // CHECK-NEXT: Type: D3D_CT_CBUFFER
  153. // CHECK-NEXT: Size: 144
  154. // CHECK-NEXT: uFlags: 0
  155. // CHECK-NEXT: Num Variables: 1
  156. // CHECK-NEXT: {
  157. // CHECK-NEXT: ID3D12ShaderReflectionVariable:
  158. // CHECK-NEXT: D3D12_SHADER_VARIABLE_DESC: Name: CB2
  159. // CHECK-NEXT: Size: 132
  160. // CHECK-NEXT: StartOffset: 0
  161. // CHECK-NEXT: uFlags: (D3D_SVF_USED)
  162. // CHECK-NEXT: DefaultValue: <nullptr>
  163. // CHECK-NEXT: ID3D12ShaderReflectionType:
  164. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: CBStruct
  165. // CHECK-NEXT: Class: D3D_SVC_STRUCT
  166. // CHECK-NEXT: Type: D3D_SVT_VOID
  167. // CHECK-NEXT: Elements: 0
  168. // CHECK-NEXT: Rows: 1
  169. // CHECK-NEXT: Columns: 9
  170. // CHECK-NEXT: Members: 1
  171. // CHECK-NEXT: Offset: 0
  172. // CHECK-NEXT: {
  173. // CHECK-NEXT: ID3D12ShaderReflectionType:
  174. // CHECK-NEXT: D3D12_SHADER_TYPE_DESC: Name: float1x1
  175. // CHECK-NEXT: Class: D3D_SVC_MATRIX_COLUMNS
  176. // CHECK-NEXT: Type: D3D_SVT_FLOAT
  177. // CHECK-NEXT: Elements: 9
  178. // CHECK-NEXT: Rows: 1
  179. // CHECK-NEXT: Columns: 1
  180. // CHECK-NEXT: Members: 0
  181. // CHECK-NEXT: Offset: 0
  182. // CHECK-NEXT: }
  183. // CHECK-NEXT: CBuffer: CB2
  184. // CHECK-NEXT: }
  185. #endif