packreg.hlsl 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. // RUN: %clang_cc1 -fsyntax-only -ffreestanding -verify %s
  2. // :FXC_VERIFY_ARGUMENTS: /E main /T ps_5_1
  3. // fxc error X3115: Conflicting register semantics: 's0' and 's1'
  4. sampler myVar_conflict : register(s0) : register(s1); // expected-error {{conflicting register semantics}} fxc-error {{X3115: Conflicting register semantics: 's0' and 's1'}}
  5. float4 f_conflict : register(c0) : register(c1); // expected-error {{conflicting register semantics}} fxc-error {{X3115: Conflicting register semantics: 'c0' and 'c1'}}
  6. float4 f_no_conflict : register(vs, c0) : register(ps, c1);
  7. // fxc error X3530: invalid register specification, expected 'b' or 'c' binding
  8. cbuffer MySamplerBuffer : register(s20) // expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}}
  9. {
  10. float4 MySamplerBuffer_f4;
  11. }
  12. struct Foo {
  13. float g1;
  14. };
  15. cbuffer CB1 : register(t1) { float c1; } /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  16. cbuffer CB2 : register(c2) { float c2; } /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  17. cbuffer CB3 : register(b3) { float c3; }
  18. cbuffer CB4 : register(u4) { float c4; } /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  19. ConstantBuffer<Foo> D3D12CB1 : register(t1); /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  20. ConstantBuffer<Foo> D3D12CB2 : register(c1); /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  21. ConstantBuffer<Foo> D3D12CB3 : register(b1);
  22. ConstantBuffer<Foo> D3D12CB4 : register(u1); /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  23. cbuffer CB5 : register(T1) { float c5; } /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  24. cbuffer CB6 : register(C2) { float c6; } /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  25. cbuffer CB7 : register(B3) { float c7; }
  26. cbuffer CB8 : register(U4) { float c8; } /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  27. ConstantBuffer<Foo> D3D12CB5 : register(T1); /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  28. ConstantBuffer<Foo> D3D12CB6 : register(C1); /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  29. ConstantBuffer<Foo> D3D12CB7 : register(B1);
  30. ConstantBuffer<Foo> D3D12CB8 : register(U1); /* expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  31. tbuffer TB11 : register(t11) { float c11; }
  32. tbuffer TB12 : register(c12) { float c12; } /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  33. tbuffer TB13 : register(b13) { float c13; } /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  34. tbuffer TB14 : register(u14) { float c14; } /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  35. TextureBuffer<Foo> D3D12TB11 : register(t11);
  36. TextureBuffer<Foo> D3D12TB12 : register(c11); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  37. TextureBuffer<Foo> D3D12TB13 : register(b11); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  38. TextureBuffer<Foo> D3D12TB14 : register(u11); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  39. tbuffer TB15 : register(T11) { float c15; }
  40. tbuffer TB16 : register(C12) { float c16; } /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  41. tbuffer TB17 : register(B13) { float c17; } /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  42. tbuffer TB18 : register(U14) { float c18; } /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  43. TextureBuffer<Foo> D3D12TB15 : register(T11);
  44. TextureBuffer<Foo> D3D12TB16 : register(C11); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  45. TextureBuffer<Foo> D3D12TB17 : register(B11); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  46. TextureBuffer<Foo> D3D12TB18 : register(U11); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3591: incorrect bind semantic}} */
  47. // fxc error X4567: maximum cbuffer exceeded. target has 14 slots, manual bind to slot 20 failed
  48. // We leave this bit of validation to the back-end, as this is presumably target-dependent.
  49. cbuffer MyLargeBBuffer : register(b20)
  50. {
  51. float4 MyLargeBBuffer_f4;
  52. }
  53. // fxc error X3515: User defined constant buffer slots cannot be target specific
  54. cbuffer MyUDBuffer : register(ps, b0) : register(vs, b2) // expected-error {{user defined constant buffer slots cannot be target specific}} expected-error {{user defined constant buffer slots cannot be target specific}} fxc-error {{X3515: User defined constant buffer slots cannot be target specific}} fxc-error {{X3530: Buffers may only be bound to one slot.}}
  55. {
  56. float4 MyUDBuffer_f4;
  57. }
  58. // fxc error X3530: Buffers may only be bound to one slot.
  59. cbuffer MyDupeBuffer2 : register(b0) : register(b2) // expected-error {{conflicting register semantics}} fxc-error {{X3530: Buffers may only be bound to one slot.}}
  60. {
  61. float4 Element100 : packoffset(c100) : MY_SEMANTIC : packoffset(c0) : packoffset(c2); // expected-warning {{packoffset is overridden by another packoffset annotation}} fxc-pass {{}}
  62. }
  63. // fxc error X3530: Buffers may only be bound to one constant offset.
  64. cbuffer MyDupeBuffer : register(c0) : register(c1) // expected-error {{conflicting register semantics}} expected-error {{invalid register specification, expected 'b' binding}} expected-error {{invalid register specification, expected 'b' binding}} fxc-error {{X3591: incorrect bind semantic}}
  65. {
  66. float4 Element101 : packoffset(c100) : MY_SEMANTIC : packoffset(c0) : packoffset(c2); // expected-warning {{packoffset is overridden by another packoffset annotation}} fxc-pass {{}}
  67. }
  68. cbuffer MyFloats
  69. {
  70. float4 f4_simple : packoffset(c0.x);
  71. /*verify-ast
  72. VarDecl parent cbuffer <col:3, col:10> col:10 f4_simple 'const float4':'const vector<float, 4>'
  73. `-ConstantPacking <col:22> packoffset(c0.x)
  74. */
  75. // fxc error X3530: register or offset bind c3.xy not valid
  76. float4 f4_nonseq : packoffset(c2.xy); // expected-error {{packoffset component should indicate offset with one of x, y, z, w, r, g, b, or a}} fxc-error {{X3530: register or offset bind c2.xy not valid}}
  77. float4 f4_outoforder : packoffset(c3.w); // expected-error {{register or offset bind not valid}} fxc-error {{X3530: register or offset bind c3.w not valid}}
  78. }
  79. tbuffer OtherFloats
  80. {
  81. float4 f4_t_simple : packoffset(c10.x);
  82. float3 f3_t_simple : packoffset(c11.y);
  83. /*verify-ast
  84. VarDecl parent tbuffer <col:3, col:10> col:10 f3_t_simple 'const float3':'const vector<float, 3>'
  85. `-ConstantPacking <col:24> packoffset(c11.y)
  86. */
  87. // fxc error X3530: register or offset bind c3.xy not valid
  88. float4 f4_t_nonseq : packoffset(c12.xy); // expected-error {{packoffset component should indicate offset with one of x, y, z, w, r, g, b, or a}} fxc-error {{X3530: register or offset bind c12.xy not valid}}
  89. // fxc error X3530: register or offset bind c3.w not valid
  90. float4 f4_t_outoforder : packoffset(c13.w); // expected-error {{register or offset bind not valid}} fxc-error {{X3530: register or offset bind c13.w not valid}}
  91. }
  92. sampler myvar_noparens : register; // expected-error {{expected '(' after 'register'}} fxc-error {{X3000: syntax error: unexpected token ';'}}
  93. sampler myvar_noclosebracket: register(ps, s[2); ]; // expected-error {{expected ']'}} expected-error {{expected unqualified-id}} expected-note {{to match this '['}} fxc-error {{X3000: syntax error: unexpected token ')'}}
  94. sampler myvar_norparen: register(ps, s[2]; ); // expected-error {{expected ')'}} expected-error {{expected unqualified-id}} fxc-error {{X3000: syntax error: unexpected token ';'}}
  95. sampler myVar : register(ps_5_0, s);
  96. /*verify-ast
  97. VarDecl <col:1, col:9> col:9 myVar 'sampler':'SamplerState'
  98. `-RegisterAssignment <col:17> register(ps_5_0, s0)
  99. */
  100. sampler myVar2 : register(vs, s[8]);
  101. sampler myVar2_offset : register(vs, s2[8]);
  102. /*verify-ast
  103. VarDecl <col:1, col:9> col:9 myVar2_offset 'sampler':'SamplerState'
  104. `-RegisterAssignment <col:25> register(vs, s10)
  105. */
  106. sampler myVar2_emptyu : register(vs, s2[]); // expected-error {{expected expression}} fxc-error {{X3000: syntax error: unexpected token ']'}}
  107. sampler myVar_2 : register(vs, s8);
  108. // fxc error: error X4017: cannot bind the same variable to multiple constants in the same constant bank
  109. sampler myVar3 : register(ps_5_0, s[0]) : register(vs, s[8]);
  110. // fxc error X3591: incorrect bind semantic
  111. sampler myVar4 : register(vs, t0); /* fxc-error {{X3591: incorrect bind semantic}} */
  112. sampler myVar65536 : register(vs, s65536);
  113. sampler myVar4294967296 : register(vs, s4294967296); // expected-error {{register number should be an integral numeric string}} fxc-pass {{}}
  114. sampler myVar281474976710656 : register(vs, s281474976710656); // expected-error {{register number should be an integral numeric string}} fxc-pass {{}}
  115. sampler myVar5 : register(vs, s);
  116. /*verify-ast
  117. VarDecl <col:1, col:9> col:9 myVar5 'sampler':'SamplerState'
  118. `-RegisterAssignment <col:18> register(vs, s0)
  119. */
  120. // fxc error X3530: register vs not valid
  121. sampler myVar6 : register(vs); // expected-error {{expected ','}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  122. // fxc error X3000: syntax error: unexpected token ')'
  123. sampler myVar7 : register(); // expected-error {{expected identifier}} fxc-error {{X3000: syntax error: unexpected token ')'}}
  124. // fxc error X3000: syntax error: unexpected token ';'
  125. sampler myVar8 : ; // expected-error {{expected ';' after top level declarator}} fxc-error {{X3000: syntax error: unexpected token ';'}}
  126. // fxc error X3000: error X3530: register a0 not valid
  127. sampler myVar9 : register(ps, a0); // expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  128. // fxc error X3000: error X3530: register a not valid
  129. sampler myVar10 : register(ps, a); // expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  130. AppendStructuredBuffer<float4> myVar11 : register(ps, u1);
  131. RWStructuredBuffer<float4> myVar11_rw : register(ps, u);
  132. // fxc error X3000: syntax error: unexpected integer constant
  133. sampler myVar12 : register(ps, 3); // expected-error {{expected identifier}} fxc-error {{X3000: syntax error: unexpected integer constant}}
  134. // fxc error X3000: error X3530: register _ not valid
  135. sampler myVar13 : register(ps, _); // expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  136. sampler myVar14 : register(ps, T14); /* fxc-error {{X3591: incorrect bind semantic}} */
  137. sampler myVar15 : register(S15);
  138. sampler myVar16 : register(ps, A16); // expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  139. // fxc error X3091: packoffset is only allowed in a constant buffer
  140. sampler myVar17 : packoffset(c0); // expected-error {{packoffset is only allowed in a constant buffer}} fxc-error {{X3091: packoffset is only allowed in a constant buffer}}
  141. sampler myVar_s : register(ps, s);
  142. Texture2D myVar_t : register(ps, t);
  143. Texture2D myVar_t_1 : register(ps, t[1]);
  144. Texture2D myVar_t_1_1 : register(ps, t1[1]),
  145. /*verify-ast
  146. VarDecl <col:1, col:11> col:11 myVar_t_1_1 'Texture2D':'Texture2D<vector<float, 4> >'
  147. `-RegisterAssignment <col:25> register(ps, t2)
  148. VarDecl <col:1, line:167:3> col:3 myVar_t_2_1 'Texture2D':'Texture2D<vector<float, 4> >'
  149. |-RegisterAssignment <col:17> register(ps, t3)
  150. `-RegisterAssignment <col:39> register(vs, t0)
  151. */
  152. myVar_t_2_1 : register(ps, t2[1]) : register(vs, t0);
  153. // fxc error X3591: incorrect bind semantic
  154. sampler myVar_i : register(ps, i); // expected-error {{invalid register specification, expected 's' or 't' binding}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  155. float4 myVar_b : register(ps, b);
  156. bool myVar_bool : register(ps, b) : register(ps, c);
  157. /*verify-ast
  158. VarDecl <col:1, col:6> col:6 myVar_bool 'const bool'
  159. |-RegisterAssignment <col:19> register(ps, b0)
  160. `-RegisterAssignment <col:37> register(ps, c0)
  161. */
  162. // fxc error X3591: incorrect bind semantic
  163. sampler myVar_c : register(ps, c); // expected-error {{invalid register specification, expected 's' or 't' binding}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  164. // fxc error X3000: error X3530: register z not valid
  165. sampler myVar_z : register(ps, z); // expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: sampler requires an 's' or 't' register}}
  166. sampler myVar_1 : register(ps, s[1]);
  167. sampler myVar_11 : register(ps, s[1+1]);
  168. /*verify-ast
  169. VarDecl <col:1, col:9> col:9 myVar_11 'sampler':'SamplerState'
  170. `-RegisterAssignment <col:20> register(ps, s2)
  171. */
  172. sampler myVar_16 : register(ps, s[15]);
  173. // fxc error X4509: maximum sampler register index exceeded, target has 16 slots, manual bind to slot s1073741823 failed
  174. sampler myVar_n1 : register(ps, s[-1]); // expected-error {{register subcomponent is not an integral constant}} fxc-pass {{}}
  175. sampler myVar_n1p5 : register(ps, s[1.5]);
  176. sampler myVar_s1 : register(ps, s[1], space1);
  177. /*verify-ast
  178. VarDecl <col:1, col:9> col:9 myVar_s1 'sampler':'SamplerState'
  179. `-RegisterAssignment <col:20> register(ps, s1, space1)
  180. */
  181. // fxc error X3591: incorrect bind semantic
  182. sampler myVar_sb : register(ps, s[1], splice); // expected-error {{expected space definition with syntax 'spaceX', where X is an integral value}} fxc-error {{X3591: incorrect bind semantic}}
  183. sampler myVar_sz : register(ps, s[1], spacez); // expected-error {{space number should be an integral numeric string}} fxc-error {{X3591: incorrect bind semantic}}
  184. // Legal in fxc due to compatibility mode:
  185. sampler mySamp_t1 : register(t1); /* fxc-error {{X3591: incorrect bind semantic}} */
  186. Buffer buff_t2 : register(t2);
  187. Buffer buff_s2 : register(s2); // expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}}
  188. Buffer buff_u2 : register(u2); // expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}}
  189. Buffer buff_b2 : register(b2); // expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}}
  190. Buffer buff_t3 : register(T3);
  191. Buffer buff_s3 : register(S3); // expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}}
  192. Buffer buff_u3 : register(U3); // expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}}
  193. Buffer buff_b3 : register(B3); // expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}}
  194. RasterizerOrderedBuffer<float4> ROVBuff_u1 : register(u1);
  195. RasterizerOrderedBuffer<float4> ROVBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  196. RasterizerOrderedBuffer<float4> ROVBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  197. RasterizerOrderedBuffer<float4> ROVBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  198. RasterizerOrderedBuffer<float4> ROVBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  199. RasterizerOrderedBuffer<float4> ROVBuff_u2 : register(U2);
  200. RasterizerOrderedBuffer<float4> ROVBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  201. RasterizerOrderedBuffer<float4> ROVBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  202. RasterizerOrderedBuffer<float4> ROVBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  203. RasterizerOrderedBuffer<float4> ROVBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  204. Texture1D T1D_t1 : register(t1);
  205. Texture1D T1D_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  206. Texture1D T1D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  207. Texture1D T1D_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  208. Texture1D T1D_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  209. Texture1D T1D_t2 : register(T2);
  210. Texture1D T1D_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  211. Texture1D T1D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  212. Texture1D T1D_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  213. Texture1D T1D_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  214. Texture1DArray T1DArray_t1 : register(t1);
  215. Texture1DArray T1DArray_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  216. Texture1DArray T1DArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  217. Texture1DArray T1DArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  218. Texture1DArray T1DArray_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  219. Texture1DArray T1DArray_t2 : register(T2);
  220. Texture1DArray T1DArray_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  221. Texture1DArray T1DArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  222. Texture1DArray T1DArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  223. Texture1DArray T1DArray_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  224. Texture2D T2D_t1 : register(t1);
  225. Texture2D T2D_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  226. Texture2D T2D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  227. Texture2D T2D_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  228. Texture2D T2D_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  229. Texture2D T2D_t2 : register(T2);
  230. Texture2D T2D_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  231. Texture2D T2D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  232. Texture2D T2D_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  233. Texture2D T2D_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  234. Texture2DMS<float4, 4> T2DMS_t1 : register(t1);
  235. Texture2DMS<float4, 4> T2DMS_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  236. Texture2DMS<float4, 4> T2DMS_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  237. Texture2DMS<float4, 4> T2DMS_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  238. Texture2DMS<float4, 4> T2DMS_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  239. Texture2DMS<float4, 4> T2DMS_t2 : register(T2);
  240. Texture2DMS<float4, 4> T2DMS_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  241. Texture2DMS<float4, 4> T2DMS_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  242. Texture2DMS<float4, 4> T2DMS_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  243. Texture2DMS<float4, 4> T2DMS_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  244. Texture2DArray T2DArray_t1 : register(t1);
  245. Texture2DArray T2DArray_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  246. Texture2DArray T2DArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  247. Texture2DArray T2DArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  248. Texture2DArray T2DArray_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  249. Texture2DArray T2DArray_t2 : register(T2);
  250. Texture2DArray T2DArray_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  251. Texture2DArray T2DArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  252. Texture2DArray T2DArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  253. Texture2DArray T2DArray_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  254. Texture3D T3D_t1 : register(t1);
  255. Texture3D T3D_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  256. Texture3D T3D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  257. Texture3D T3D_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  258. Texture3D T3D_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  259. Texture3D T3D_t2 : register(T2);
  260. Texture3D T3D_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  261. Texture3D T3D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  262. Texture3D T3D_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  263. Texture3D T3D_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  264. TextureCube TCube_t1 : register(t1);
  265. TextureCube TCube_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  266. TextureCube TCube_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  267. TextureCube TCube_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  268. TextureCube TCube_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  269. TextureCube TCube_t2 : register(T2);
  270. TextureCube TCube_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  271. TextureCube TCube_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  272. TextureCube TCube_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  273. TextureCube TCube_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  274. TextureCubeArray TCubeArray_t1 : register(t1);
  275. TextureCubeArray TCubeArray_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  276. TextureCubeArray TCubeArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  277. TextureCubeArray TCubeArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  278. TextureCubeArray TCubeArray_s1 : register(s1); /* fxc-error {{X3591: incorrect bind semantic}} */
  279. TextureCubeArray TCubeArray_t2 : register(T2);
  280. TextureCubeArray TCubeArray_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  281. TextureCubeArray TCubeArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  282. TextureCubeArray TCubeArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' or 's' binding}} fxc-error {{X3530: texture requires a 't' or 's' register}} */
  283. TextureCubeArray TCubeArray_s2 : register(S2); /* fxc-error {{X3591: incorrect bind semantic}} */
  284. RWTexture1D<float4> RWT1D_u1 : register(u1);
  285. RWTexture1D<float4> RWT1D_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  286. RWTexture1D<float4> RWT1D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  287. RWTexture1D<float4> RWT1D_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  288. RWTexture1D<float4> RWT1D_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  289. RWTexture1D<float4> RWT1D_u2 : register(U2);
  290. RWTexture1D<float4> RWT1D_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  291. RWTexture1D<float4> RWT1D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  292. RWTexture1D<float4> RWT1D_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  293. RWTexture1D<float4> RWT1D_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  294. RWTexture1DArray<float4> RWT1DArray_u1 : register(u1);
  295. RWTexture1DArray<float4> RWT1DArray_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  296. RWTexture1DArray<float4> RWT1DArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  297. RWTexture1DArray<float4> RWT1DArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  298. RWTexture1DArray<float4> RWT1DArray_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  299. RWTexture1DArray<float4> RWT1DArray_u2 : register(U2);
  300. RWTexture1DArray<float4> RWT1DArray_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  301. RWTexture1DArray<float4> RWT1DArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  302. RWTexture1DArray<float4> RWT1DArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  303. RWTexture1DArray<float4> RWT1DArray_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  304. RWTexture2D<float4> RWT2D_u1 : register(u1);
  305. RWTexture2D<float4> RWT2D_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  306. RWTexture2D<float4> RWT2D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  307. RWTexture2D<float4> RWT2D_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  308. RWTexture2D<float4> RWT2D_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  309. RWTexture2D<float4> RWT2D_u2 : register(U2);
  310. RWTexture2D<float4> RWT2D_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  311. RWTexture2D<float4> RWT2D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  312. RWTexture2D<float4> RWT2D_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  313. RWTexture2D<float4> RWT2D_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  314. RWTexture2DArray<float4> RWT2DArray_u1 : register(u1);
  315. RWTexture2DArray<float4> RWT2DArray_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  316. RWTexture2DArray<float4> RWT2DArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  317. RWTexture2DArray<float4> RWT2DArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  318. RWTexture2DArray<float4> RWT2DArray_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  319. RWTexture2DArray<float4> RWT2DArray_u2 : register(U2);
  320. RWTexture2DArray<float4> RWT2DArray_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  321. RWTexture2DArray<float4> RWT2DArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  322. RWTexture2DArray<float4> RWT2DArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  323. RWTexture2DArray<float4> RWT2DArray_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  324. RWTexture3D<float4> RWT3D_u1 : register(u1);
  325. RWTexture3D<float4> RWT3D_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  326. RWTexture3D<float4> RWT3D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  327. RWTexture3D<float4> RWT3D_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  328. RWTexture3D<float4> RWT3D_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  329. RWTexture3D<float4> RWT3D_u2 : register(U2);
  330. RWTexture3D<float4> RWT3D_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  331. RWTexture3D<float4> RWT3D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  332. RWTexture3D<float4> RWT3D_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  333. RWTexture3D<float4> RWT3D_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  334. RasterizerOrderedTexture1D<float4> ROVT1D_u1 : register(u1);
  335. RasterizerOrderedTexture1D<float4> ROVT1D_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  336. RasterizerOrderedTexture1D<float4> ROVT1D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  337. RasterizerOrderedTexture1D<float4> ROVT1D_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  338. RasterizerOrderedTexture1D<float4> ROVT1D_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  339. RasterizerOrderedTexture1D<float4> ROVT1D_u2 : register(U2);
  340. RasterizerOrderedTexture1D<float4> ROVT1D_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  341. RasterizerOrderedTexture1D<float4> ROVT1D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  342. RasterizerOrderedTexture1D<float4> ROVT1D_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  343. RasterizerOrderedTexture1D<float4> ROVT1D_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  344. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_u1 : register(u1);
  345. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  346. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  347. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  348. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  349. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_u2 : register(U2);
  350. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  351. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  352. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  353. RasterizerOrderedTexture1DArray<float4> ROVT1DArray_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  354. RasterizerOrderedTexture2D<float4> ROVT2D_u1 : register(u1);
  355. RasterizerOrderedTexture2D<float4> ROVT2D_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  356. RasterizerOrderedTexture2D<float4> ROVT2D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  357. RasterizerOrderedTexture2D<float4> ROVT2D_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  358. RasterizerOrderedTexture2D<float4> ROVT2D_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  359. RasterizerOrderedTexture2D<float4> ROVT2D_u2 : register(U2);
  360. RasterizerOrderedTexture2D<float4> ROVT2D_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  361. RasterizerOrderedTexture2D<float4> ROVT2D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  362. RasterizerOrderedTexture2D<float4> ROVT2D_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  363. RasterizerOrderedTexture2D<float4> ROVT2D_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  364. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_u1 : register(u1);
  365. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  366. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  367. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  368. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  369. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_u2 : register(U2);
  370. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  371. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  372. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  373. RasterizerOrderedTexture2DArray<float4> ROVT2DArray_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  374. RasterizerOrderedTexture3D<float4> ROVT3D_u1 : register(u1);
  375. RasterizerOrderedTexture3D<float4> ROVT3D_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  376. RasterizerOrderedTexture3D<float4> ROVT3D_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  377. RasterizerOrderedTexture3D<float4> ROVT3D_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  378. RasterizerOrderedTexture3D<float4> ROVT3D_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  379. RasterizerOrderedTexture3D<float4> ROVT3D_u2 : register(U2);
  380. RasterizerOrderedTexture3D<float4> ROVT3D_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  381. RasterizerOrderedTexture3D<float4> ROVT3D_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  382. RasterizerOrderedTexture3D<float4> ROVT3D_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  383. RasterizerOrderedTexture3D<float4> ROVT3D_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  384. ByteAddressBuffer ByteAddressBuff_t1 : register(t1);
  385. ByteAddressBuffer ByteAddressBuff_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  386. ByteAddressBuffer ByteAddressBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: buffer requires a 't' register}} */
  387. ByteAddressBuffer ByteAddressBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  388. ByteAddressBuffer ByteAddressBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  389. ByteAddressBuffer ByteAddressBuff_t2 : register(T2);
  390. ByteAddressBuffer ByteAddressBuff_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  391. ByteAddressBuffer ByteAddressBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: buffer requires a 't' register}} */
  392. ByteAddressBuffer ByteAddressBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  393. ByteAddressBuffer ByteAddressBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  394. RWByteAddressBuffer RWByteAddressBuff_u1 : register(u1);
  395. RWByteAddressBuffer RWByteAddressBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  396. RWByteAddressBuffer RWByteAddressBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  397. RWByteAddressBuffer RWByteAddressBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  398. RWByteAddressBuffer RWByteAddressBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  399. RWByteAddressBuffer RWByteAddressBuff_u2 : register(U2);
  400. RWByteAddressBuffer RWByteAddressBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  401. RWByteAddressBuffer RWByteAddressBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  402. RWByteAddressBuffer RWByteAddressBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  403. RWByteAddressBuffer RWByteAddressBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  404. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_u1 : register(u1);
  405. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  406. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  407. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  408. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  409. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_u2 : register(U2);
  410. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  411. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  412. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  413. RasterizerOrderedByteAddressBuffer ROVByteAddressBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  414. StructuredBuffer<float4> StructuredBuff_t1 : register(t1);
  415. StructuredBuffer<float4> StructuredBuff_u1 : register(u1); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  416. StructuredBuffer<float4> StructuredBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: buffer requires a 't' register}} */
  417. StructuredBuffer<float4> StructuredBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  418. StructuredBuffer<float4> StructuredBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  419. StructuredBuffer<float4> StructuredBuff_t2 : register(T2);
  420. StructuredBuffer<float4> StructuredBuff_u2 : register(U2); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  421. StructuredBuffer<float4> StructuredBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: buffer requires a 't' register}} */
  422. StructuredBuffer<float4> StructuredBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  423. StructuredBuffer<float4> StructuredBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 't' binding}} fxc-error {{X3530: buffer requires a 't' register}} */
  424. RWStructuredBuffer<float4> RWStructuredBuff_u1 : register(u1);
  425. RWStructuredBuffer<float4> RWStructuredBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  426. RWStructuredBuffer<float4> RWStructuredBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  427. RWStructuredBuffer<float4> RWStructuredBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  428. RWStructuredBuffer<float4> RWStructuredBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  429. RWStructuredBuffer<float4> RWStructuredBuff_u2 : register(U2);
  430. RWStructuredBuffer<float4> RWStructuredBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  431. RWStructuredBuffer<float4> RWStructuredBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  432. RWStructuredBuffer<float4> RWStructuredBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  433. RWStructuredBuffer<float4> RWStructuredBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  434. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_u1 : register(u1);
  435. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  436. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  437. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  438. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  439. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_u2 : register(U2);
  440. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  441. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  442. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  443. RasterizerOrderedStructuredBuffer<float4> ROVStructuredBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  444. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_u1 : register(u1);
  445. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  446. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  447. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  448. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  449. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_u2 : register(U2);
  450. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  451. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  452. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  453. ConsumeStructuredBuffer<float4> ConsumeStructuredBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  454. AppendStructuredBuffer<float4> AppendStructuredBuff_u1 : register(u1);
  455. AppendStructuredBuffer<float4> AppendStructuredBuff_t1 : register(t1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  456. AppendStructuredBuffer<float4> AppendStructuredBuff_f1 : register(f1); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  457. AppendStructuredBuffer<float4> AppendStructuredBuff_b1 : register(b1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  458. AppendStructuredBuffer<float4> AppendStructuredBuff_s1 : register(s1); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  459. AppendStructuredBuffer<float4> AppendStructuredBuff_u2 : register(U2);
  460. AppendStructuredBuffer<float4> AppendStructuredBuff_t2 : register(T2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  461. AppendStructuredBuffer<float4> AppendStructuredBuff_f2 : register(F2); /* expected-error {{register type is unsupported - available types are 'b', 'c', 'i', 's', 't', 'u'}} fxc-error {{X3530: UAV requires a 'u' register}} */
  462. AppendStructuredBuffer<float4> AppendStructuredBuff_b2 : register(B2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  463. AppendStructuredBuffer<float4> AppendStructuredBuff_s2 : register(S2); /* expected-error {{invalid register specification, expected 'u' binding}} fxc-error {{X3530: UAV requires a 'u' register}} */
  464. cbuffer MyBuffer
  465. {
  466. float4 Element1 : packoffset(c0);
  467. float1 Element2 : packoffset(c1);
  468. float1 Element3 : packoffset(c1.y);
  469. float4 Element4 : packoffset(c10) : packoffset(c10);
  470. float4 Element5 : packoffset(c10) : MY_SEMANTIC : packoffset(c11), Element6 : packoffset(c12) : MY_SEMANTIC2; // expected-warning {{packoffset is overridden by another packoffset annotation}} fxc-pass {{}}
  471. /*verify-ast
  472. VarDecl parent cbuffer <col:3, col:10> col:10 Element5 'const float4':'const vector<float, 4>'
  473. |-ConstantPacking <col:21> packoffset(c10.x)
  474. |-SemanticDecl <col:39> "MY_SEMANTIC"
  475. `-ConstantPacking <col:53> packoffset(c11.x)
  476. VarDecl parent cbuffer <col:3, col:70> col:70 Element6 'const float4':'const vector<float, 4>'
  477. |-ConstantPacking <col:81> packoffset(c12.x)
  478. `-SemanticDecl <col:99> "MY_SEMANTIC2"
  479. */
  480. }
  481. cbuffer MyBuffer2
  482. {
  483. float4 Element7 : packoffset(C2);
  484. float1 Element8 : packoffset(C3);
  485. float1 Element9 : packoffset(C3.y);
  486. float4 Element10 : packoffset(C20) : packoffset(C20);
  487. float4 Element11 : packoffset(C20) : MY_SEMANTIC : packoffset(C21), Element12 : packoffset(C22) : MY_SEMANTIC2; // expected-warning {{packoffset is overridden by another packoffset annotation}} fxc-pass {{}}
  488. /*verify-ast
  489. VarDecl parent cbuffer <col:3, col:10> col:10 Element11 'const float4':'const vector<float, 4>'
  490. |-ConstantPacking <col:22> packoffset(c20.x)
  491. |-SemanticDecl <col:40> "MY_SEMANTIC"
  492. `-ConstantPacking <col:54> packoffset(c21.x)
  493. VarDecl parent cbuffer <col:3, col:71> col:71 Element12 'const float4':'const vector<float, 4>'
  494. |-ConstantPacking <col:83> packoffset(c22.x)
  495. `-SemanticDecl <col:101> "MY_SEMANTIC2"
  496. */
  497. }
  498. Texture2D<float4> Texture : register(t0);
  499. Texture2D<float4> Texture_ : register(t0);
  500. sampler Sampler : register(s0);
  501. cbuffer Parameters : register(b0)
  502. {
  503. float4 DiffuseColor : packoffset(c0) : register(c0);
  504. /*verify-ast
  505. VarDecl parent cbuffer <col:3, col:12> col:12 DiffuseColor 'const float4':'const vector<float, 4>'
  506. |-ConstantPacking <col:29> packoffset(c0.x)
  507. `-RegisterAssignment <col:46> register(c0)
  508. */
  509. float4 AlphaTest : packoffset(c1);
  510. float3 FogColor : packoffset(c2);
  511. float4 FogVector : packoffset(c3);
  512. float4x4 WorldViewProj : packoffset(c4);
  513. float4x4 WorldViewProj2 : packoffset; // expected-error {{expected '(' after 'packoffset'}} fxc-error {{X3000: syntax error: unexpected token ';'}}
  514. float4x4 WorldViewProj3 : packoffset(1); // expected-error {{expected identifier}} fxc-error {{X3000: syntax error: unexpected integer constant}}
  515. float4x4 WorldViewProj4 : packoffset(c4.1); // expected-error {{expected ')'}} fxc-error {{X3000: syntax error: unexpected float constant}}
  516. };
  517. cbuffer cbPerObject : register(b0)
  518. {
  519. float4 g_vObjectColor : packoffset(c0);
  520. };
  521. cbuffer cbPerFrame : register(b1)
  522. {
  523. float3 g_vLightDir : packoffset(c0);
  524. float g_fAmbient : packoffset(c0.w);
  525. };
  526. // Nesting case
  527. cbuffer OuterBuffer : register(b3) {
  528. /*verify-ast
  529. HLSLBufferDecl <col:1, line:623:1> line:607:9 cbuffer OuterBuffer
  530. |-RegisterAssignment <col:23> register(b3)
  531. |-VarDecl parent cbuffer <line:618:3, col:9> col:9 used OuterItem0 'const float'
  532. |-HLSLBufferDecl parent <line:619:3, line:621:3> line:619:11 cbuffer InnerBuffer
  533. | |-RegisterAssignment <col:25> register(b4)
  534. | `-VarDecl parent cbuffer <line:620:5, col:11> col:11 used InnerItem0 'const float'
  535. |-EmptyDecl parent cbuffer <line:621:4> col:4
  536. `-VarDecl parent cbuffer <line:622:3, col:9> col:9 used OuterItem1 'const float'
  537. */
  538. float OuterItem0;
  539. cbuffer InnerBuffer : register(b4) {
  540. float InnerItem0;
  541. };
  542. float OuterItem1;
  543. };
  544. //--------------------------------------------------------------------------------------
  545. // Textures and Samplers
  546. //--------------------------------------------------------------------------------------
  547. Texture2D g_txDiffuse : register(t0);
  548. SamplerState g_samLinear : register(s0);
  549. float2 f2() {
  550. g_txDiffuse.Sample(myVar281474976710656, float2(1, 2)); // expected-warning {{ignoring return value of function that only reads data}} fxc-pass {{}}
  551. return 0;
  552. }
  553. float4 main(float4 param4 : TEXCOORD0) : SV_Target0 {
  554. float f = OuterItem0 + OuterItem1 + InnerItem0;
  555. return g_txDiffuse.Sample(myVar_s, float2(1, f));
  556. }