hlsl.intrinsics.negative.comp 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. float ComputeShaderFunctionS(float inF0, float inF1, float inF2, int inI0)
  2. {
  3. uint out_u1;
  4. // AllMemoryBarrier(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
  5. // AllMemoryBarrierWithGroupSync(); // invalid in fragment stage TODO: parser currently crashes on empty arg list
  6. // asdouble(inF0, inF1); // expected error: only integer inputs
  7. // CheckAccessFullyMapped(3.0); // expected error: only valid on integers
  8. // clip(inF0); // expected error: only valid in pixel stage
  9. // countbits(inF0); // expected error: only integer inputs
  10. // cross(inF0, inF1); // expected error: only on float3 inputs
  11. // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
  12. // ddx(inF0); // expected error: only valid in pixel stage
  13. // ddx_coarse(inF0); // expected error: only valid in pixel stage
  14. // ddx_fine(inF0); // expected error: only valid in pixel stage
  15. // ddy(inF0); // expected error: only valid in pixel stage
  16. // ddy_coarse(inF0); // expected error: only valid in pixel stage
  17. // ddy_fine(inF0); // expected error: only valid in pixel stage
  18. // determinant(inF0); // expected error: only valid on mats
  19. // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant
  20. // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant
  21. // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant
  22. // f16tof32(inF0); // expected error: only integer inputs
  23. // firstbithigh(inF0); // expected error: only integer inputs
  24. // firstbitlow(inF0); // expected error: only integer inputs
  25. // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
  26. // fwidth(inF0); // expected error: only valid in pixel stage
  27. // InterlockedAdd(gs_ua, gs_ub); // expected error: only valid in pixel stage
  28. // InterlockedAdd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
  29. // InterlockedAnd(gs_ua, gs_ub); // expected error: only valid in pixel stage
  30. // InterlockedAnd(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
  31. // InterlockedCompareExchange(gs_ua, gs_ub, gs_uc, out_u1); // expected error: only valid in pixel stage
  32. // InterlockedExchange(gs_ua, gs_ub, out_u1);// expected error: only valid in pixel stage
  33. // InterlockedMax(gs_ua, gs_ub); // expected error: only valid in pixel stage
  34. // InterlockedMax(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
  35. // InterlockedMin(gs_ua, gs_ub); // expected error: only valid in pixel stage
  36. // InterlockedMin(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
  37. // InterlockedOr(gs_ua, gs_ub); // expected error: only valid in pixel stage
  38. // InterlockedOr(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
  39. // InterlockedXor(gs_ua, gs_ub); // expected error: only valid in pixel stage
  40. // InterlockedXor(gs_ua, gs_ub, out_u1); // expected error: only valid in pixel stage
  41. // length(inF0); // expect error: invalid on scalars
  42. // msad4(inF0, float2(0), float4(0)); // expected error: only integer inputs
  43. // normalize(inF0); // expect error: invalid on scalars
  44. // reflect(inF0, inF1); // expect error: invalid on scalars
  45. // refract(inF0, inF1, inF2); // expect error: invalid on scalars
  46. // refract(float2(0), float2(0), float2(0)); // expected error: last parameter only scalar
  47. // reversebits(inF0); // expected error: only integer inputs
  48. // transpose(inF0); // expect error: only valid on mats
  49. // TODO: texture intrinsics, when we can declare samplers.
  50. return 0.0;
  51. }
  52. float1 ComputeShaderFunction1(float1 inF0, float1 inF1, float1 inF2, int1 inI0)
  53. {
  54. // TODO: ... add when float1 prototypes are generated
  55. // GetRenderTargetSamplePosition(inF0); // expected error: only integer inputs
  56. return 0.0;
  57. }
  58. float2 ComputeShaderFunction2(float2 inF0, float2 inF1, float2 inF2, int2 inI0)
  59. {
  60. uint2 out_u2;
  61. // asdouble(inF0, inF1); // expected error: only integer inputs
  62. // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
  63. // countbits(inF0); // expected error: only integer inputs
  64. // cross(inF0, inF1); // expected error: only on float3 inputs
  65. // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
  66. // ddx(inF0); // only valid in pixel stage
  67. // ddx_coarse(inF0); // only valid in pixel stage
  68. // ddx_fine(inF0); // only valid in pixel stage
  69. // ddy(inF0); // only valid in pixel stage
  70. // ddy_coarse(inF0); // only valid in pixel stage
  71. // ddy_fine(inF0); // only valid in pixel stage
  72. // determinant(inF0); // expect error: only valid on mats
  73. // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant
  74. // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant
  75. // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant
  76. // f16tof32(inF0); // expected error: only integer inputs
  77. // firstbithigh(inF0); // expected error: only integer inputs
  78. // firstbitlow(inF0); // expected error: only integer inputs
  79. // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
  80. // fwidth(inF0); // expected error: only valid in pixel stage
  81. // InterlockedAdd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
  82. // InterlockedAdd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
  83. // InterlockedAnd(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
  84. // InterlockedAnd(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
  85. // InterlockedCompareExchange(gs_ua2, gs_ub2, gs_uc2, out_u2); // expected error: only valid in pixel stage
  86. // InterlockedExchange(gs_ua2, gs_ub2, out_u2);// expected error: only valid in pixel stage
  87. // InterlockedMax(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
  88. // InterlockedMax(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
  89. // InterlockedMin(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
  90. // InterlockedMin(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
  91. // InterlockedOr(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
  92. // InterlockedOr(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
  93. // InterlockedXor(gs_ua2, gs_ub2); // expected error: only valid in pixel stage
  94. // InterlockedXor(gs_ua2, gs_ub2, out_u2); // expected error: only valid in pixel stage
  95. // noise(inF0); // expected error: only valid in pixel stage
  96. // reversebits(inF0); // expected error: only integer inputs
  97. // transpose(inF0); // expect error: only valid on mats
  98. // TODO: texture intrinsics, when we can declare samplers.
  99. return float2(1,2);
  100. }
  101. float3 ComputeShaderFunction3(float3 inF0, float3 inF1, float3 inF2, int3 inI0)
  102. {
  103. uint3 out_u3;
  104. // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
  105. // countbits(inF0); // expected error: only integer inputs
  106. // ddx(inF0); // only valid in pixel stage
  107. // ddx_coarse(inF0); // only valid in pixel stage
  108. // ddx_fine(inF0); // only valid in pixel stage
  109. // ddy(inF0); // only valid in pixel stage
  110. // ddy_coarse(inF0); // only valid in pixel stage
  111. // ddy_fine(inF0); // only valid in pixel stage
  112. // D3DCOLORtoUBYTE4(inF0); // expected error: only on float4 inputs
  113. // determinant(inF0); // expect error: only valid on mats
  114. // EvaluateAttributeAtCentroid(inF0); // expected error: only interpolant
  115. // EvaluateAttributeAtSample(inF0, 2); // expected error: only interpolant
  116. // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only interpolant
  117. // f16tof32(inF0); // expected error: only integer inputs
  118. // firstbithigh(inF0); // expected error: only integer inputs
  119. // firstbitlow(inF0); // expected error: only integer inputs
  120. // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
  121. // fwidth(inF0); // expected error: only valid in pixel stage
  122. // InterlockedAdd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
  123. // InterlockedAdd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  124. // InterlockedAnd(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
  125. // InterlockedAnd(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  126. // InterlockedCompareExchange(gs_ua3, gs_ub3, gs_uc3, out_u3); // expected error: only valid in pixel stage
  127. // InterlockedExchange(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  128. // InterlockedMax(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
  129. // InterlockedMax(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  130. // InterlockedMin(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
  131. // InterlockedMin(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  132. // InterlockedOr(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
  133. // InterlockedOr(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  134. // InterlockedXor(gs_ua3, gs_ub3); // expected error: only valid in pixel stage
  135. // InterlockedXor(gs_ua3, gs_ub3, out_u3); // expected error: only valid in pixel stage
  136. // noise(inF0); // expected error: only valid in pixel stage
  137. // reversebits(inF0); // expected error: only integer inputs
  138. // transpose(inF0); // expect error: only valid on mats
  139. // TODO: texture intrinsics, when we can declare samplers.
  140. return float3(1,2,3);
  141. }
  142. float4 ComputeShaderFunction(float4 inF0, float4 inF1, float4 inF2, int4 inI0)
  143. {
  144. uint4 out_u4;
  145. // CheckAccessFullyMapped(inF0); // expect error: only valid on scalars
  146. // countbits(inF0); // expected error: only integer inputs
  147. // cross(inF0, inF1); // expected error: only on float3 inputs
  148. // determinant(inF0); // expect error: only valid on mats
  149. // ddx(inF0); // only valid in pixel stage
  150. // ddx_coarse(inF0); // only valid in pixel stage
  151. // ddx_fine(inF0); // only valid in pixel stage
  152. // ddy(inF0); // only valid in pixel stage
  153. // ddy_coarse(inF0); // only valid in pixel stage
  154. // ddy_fine(inF0); // only valid in pixel stage
  155. // EvaluateAttributeAtCentroid(inF0); // expected error: only valid in pixel stage
  156. // EvaluateAttributeAtSample(inF0, 2); // expected error: only valid in pixel stage
  157. // EvaluateAttributeSnapped(inF0, int2(2)); // expected error: only valid in pixel stage
  158. // f16tof32(inF0); // expected error: only integer inputs
  159. // firstbithigh(inF0); // expected error: only integer inputs
  160. // firstbitlow(inF0); // expected error: only integer inputs
  161. // fma(inF0, inF1, inF2); // TODO: this might auto-promote: need to check against FXC
  162. // fwidth(inF0); // expected error: only valid in pixel stage
  163. // InterlockedAdd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
  164. // InterlockedAdd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  165. // InterlockedAnd(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
  166. // InterlockedAnd(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  167. // InterlockedCompareExchange(gs_ua4, gs_ub4, gs_uc4, out_u4); // expected error: only valid in pixel stage
  168. // InterlockedExchange(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  169. // InterlockedMax(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
  170. // InterlockedMax(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  171. // InterlockedMin(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
  172. // InterlockedMin(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  173. // InterlockedOr(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
  174. // InterlockedOr(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  175. // InterlockedXor(gs_ua4, gs_ub4); // expected error: only valid in pixel stage
  176. // InterlockedXor(gs_ua4, gs_ub4, out_u4); // expected error: only valid in pixel stage
  177. // noise(inF0); // expected error: only valid in pixel stage
  178. // reversebits(inF0); // expected error: only integer inputs
  179. // transpose(inF0); // expect error: only valid on mats
  180. // TODO: texture intrinsics, when we can declare samplers.
  181. return float4(1,2,3,4);
  182. }