tess-fixed-input-array-builtin-array.invalid.asm.tesc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. ; SPIR-V
  2. ; Version: 1.0
  3. ; Generator: Khronos Glslang Reference Front End; 2
  4. ; Bound: 162
  5. ; Schema: 0
  6. OpCapability Tessellation
  7. %1 = OpExtInstImport "GLSL.std.450"
  8. OpMemoryModel Logical GLSL450
  9. OpEntryPoint TessellationControl %hs_main "main" %p_pos %p_1 %i_1 %_entryPointOutput_pos %_entryPointOutput %_patchConstantOutput_EdgeTess %_patchConstantOutput_InsideTess
  10. OpExecutionMode %hs_main OutputVertices 3
  11. OpExecutionMode %hs_main Triangles
  12. OpExecutionMode %hs_main SpacingFractionalOdd
  13. OpExecutionMode %hs_main VertexOrderCw
  14. OpSource HLSL 500
  15. OpName %hs_main "hs_main"
  16. OpName %VertexOutput "VertexOutput"
  17. OpMemberName %VertexOutput 0 "pos"
  18. OpMemberName %VertexOutput 1 "uv"
  19. OpName %HSOut "HSOut"
  20. OpMemberName %HSOut 0 "pos"
  21. OpMemberName %HSOut 1 "uv"
  22. OpName %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ "@hs_main(struct-VertexOutput-vf4-vf21[3];u1;"
  23. OpName %p "p"
  24. OpName %i "i"
  25. OpName %HSConstantOut "HSConstantOut"
  26. OpMemberName %HSConstantOut 0 "EdgeTess"
  27. OpMemberName %HSConstantOut 1 "InsideTess"
  28. OpName %PatchHS_struct_VertexOutput_vf4_vf21_3__ "PatchHS(struct-VertexOutput-vf4-vf21[3];"
  29. OpName %patch "patch"
  30. OpName %output "output"
  31. OpName %p_0 "p"
  32. OpName %p_pos "p.pos"
  33. OpName %VertexOutput_0 "VertexOutput"
  34. OpMemberName %VertexOutput_0 0 "uv"
  35. OpName %p_1 "p"
  36. OpName %i_0 "i"
  37. OpName %i_1 "i"
  38. OpName %flattenTemp "flattenTemp"
  39. OpName %param "param"
  40. OpName %param_0 "param"
  41. OpName %_entryPointOutput_pos "@entryPointOutput.pos"
  42. OpName %HSOut_0 "HSOut"
  43. OpMemberName %HSOut_0 0 "uv"
  44. OpName %_entryPointOutput "@entryPointOutput"
  45. OpName %_patchConstantResult "@patchConstantResult"
  46. OpName %param_1 "param"
  47. OpName %_patchConstantOutput_EdgeTess "@patchConstantOutput.EdgeTess"
  48. OpName %_patchConstantOutput_InsideTess "@patchConstantOutput.InsideTess"
  49. OpName %output_0 "output"
  50. OpDecorate %p_pos BuiltIn Position
  51. OpDecorate %p_1 Location 0
  52. OpDecorate %i_1 BuiltIn InvocationId
  53. OpDecorate %_entryPointOutput_pos BuiltIn Position
  54. OpDecorate %_entryPointOutput Location 0
  55. OpDecorate %_patchConstantOutput_EdgeTess Patch
  56. OpDecorate %_patchConstantOutput_EdgeTess BuiltIn TessLevelOuter
  57. OpDecorate %_patchConstantOutput_InsideTess Patch
  58. OpDecorate %_patchConstantOutput_InsideTess BuiltIn TessLevelInner
  59. %void = OpTypeVoid
  60. %3 = OpTypeFunction %void
  61. %float = OpTypeFloat 32
  62. %v4float = OpTypeVector %float 4
  63. %v2float = OpTypeVector %float 2
  64. %VertexOutput = OpTypeStruct %v4float %v2float
  65. %uint = OpTypeInt 32 0
  66. %uint_3 = OpConstant %uint 3
  67. %_arr_VertexOutput_uint_3 = OpTypeArray %VertexOutput %uint_3
  68. %_ptr_Function__arr_VertexOutput_uint_3 = OpTypePointer Function %_arr_VertexOutput_uint_3
  69. %_ptr_Function_uint = OpTypePointer Function %uint
  70. %HSOut = OpTypeStruct %v4float %v2float
  71. %16 = OpTypeFunction %HSOut %_ptr_Function__arr_VertexOutput_uint_3 %_ptr_Function_uint
  72. %_arr_float_uint_3 = OpTypeArray %float %uint_3
  73. %HSConstantOut = OpTypeStruct %_arr_float_uint_3 %float
  74. %23 = OpTypeFunction %HSConstantOut %_ptr_Function__arr_VertexOutput_uint_3
  75. %_ptr_Function_HSOut = OpTypePointer Function %HSOut
  76. %int = OpTypeInt 32 1
  77. %int_0 = OpConstant %int 0
  78. %_ptr_Function_v4float = OpTypePointer Function %v4float
  79. %int_1 = OpConstant %int 1
  80. %_ptr_Function_v2float = OpTypePointer Function %v2float
  81. %_arr_v4float_uint_3 = OpTypeArray %v4float %uint_3
  82. %_ptr_Input__arr_v4float_uint_3 = OpTypePointer Input %_arr_v4float_uint_3
  83. %p_pos = OpVariable %_ptr_Input__arr_v4float_uint_3 Input
  84. %_ptr_Input_v4float = OpTypePointer Input %v4float
  85. %VertexOutput_0 = OpTypeStruct %v2float
  86. %_arr_VertexOutput_0_uint_3 = OpTypeArray %VertexOutput_0 %uint_3
  87. %_ptr_Input__arr_VertexOutput_0_uint_3 = OpTypePointer Input %_arr_VertexOutput_0_uint_3
  88. %p_1 = OpVariable %_ptr_Input__arr_VertexOutput_0_uint_3 Input
  89. %_ptr_Input_v2float = OpTypePointer Input %v2float
  90. %int_2 = OpConstant %int 2
  91. %_ptr_Input_uint = OpTypePointer Input %uint
  92. %i_1 = OpVariable %_ptr_Input_uint Input
  93. %_ptr_Output__arr_v4float_uint_3 = OpTypePointer Output %_arr_v4float_uint_3
  94. %_entryPointOutput_pos = OpVariable %_ptr_Output__arr_v4float_uint_3 Output
  95. %_ptr_Output_v4float = OpTypePointer Output %v4float
  96. %HSOut_0 = OpTypeStruct %v2float
  97. %_arr_HSOut_0_uint_3 = OpTypeArray %HSOut_0 %uint_3
  98. %_ptr_Output__arr_HSOut_0_uint_3 = OpTypePointer Output %_arr_HSOut_0_uint_3
  99. %_entryPointOutput = OpVariable %_ptr_Output__arr_HSOut_0_uint_3 Output
  100. %_ptr_Output_v2float = OpTypePointer Output %v2float
  101. %uint_2 = OpConstant %uint 2
  102. %uint_1 = OpConstant %uint 1
  103. %uint_0 = OpConstant %uint 0
  104. %bool = OpTypeBool
  105. %_ptr_Function_HSConstantOut = OpTypePointer Function %HSConstantOut
  106. %uint_4 = OpConstant %uint 4
  107. %_arr_float_uint_4 = OpTypeArray %float %uint_4
  108. %_ptr_Output__arr_float_uint_4 = OpTypePointer Output %_arr_float_uint_4
  109. %_patchConstantOutput_EdgeTess = OpVariable %_ptr_Output__arr_float_uint_4 Output
  110. %_ptr_Function_float = OpTypePointer Function %float
  111. %_ptr_Output_float = OpTypePointer Output %float
  112. %_arr_float_uint_2 = OpTypeArray %float %uint_2
  113. %_ptr_Output__arr_float_uint_2 = OpTypePointer Output %_arr_float_uint_2
  114. %_patchConstantOutput_InsideTess = OpVariable %_ptr_Output__arr_float_uint_2 Output
  115. %float_1 = OpConstant %float 1
  116. %hs_main = OpFunction %void None %3
  117. %5 = OpLabel
  118. %p_0 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function
  119. %i_0 = OpVariable %_ptr_Function_uint Function
  120. %flattenTemp = OpVariable %_ptr_Function_HSOut Function
  121. %param = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function
  122. %param_0 = OpVariable %_ptr_Function_uint Function
  123. %_patchConstantResult = OpVariable %_ptr_Function_HSConstantOut Function
  124. %param_1 = OpVariable %_ptr_Function__arr_VertexOutput_uint_3 Function
  125. %50 = OpAccessChain %_ptr_Input_v4float %p_pos %int_0
  126. %51 = OpLoad %v4float %50
  127. %52 = OpAccessChain %_ptr_Function_v4float %p_0 %int_0 %int_0
  128. OpStore %52 %51
  129. %58 = OpAccessChain %_ptr_Input_v2float %p_1 %int_0 %int_0
  130. %59 = OpLoad %v2float %58
  131. %60 = OpAccessChain %_ptr_Function_v2float %p_0 %int_0 %int_1
  132. OpStore %60 %59
  133. %61 = OpAccessChain %_ptr_Input_v4float %p_pos %int_1
  134. %62 = OpLoad %v4float %61
  135. %63 = OpAccessChain %_ptr_Function_v4float %p_0 %int_1 %int_0
  136. OpStore %63 %62
  137. %64 = OpAccessChain %_ptr_Input_v2float %p_1 %int_1 %int_0
  138. %65 = OpLoad %v2float %64
  139. %66 = OpAccessChain %_ptr_Function_v2float %p_0 %int_1 %int_1
  140. OpStore %66 %65
  141. %68 = OpAccessChain %_ptr_Input_v4float %p_pos %int_2
  142. %69 = OpLoad %v4float %68
  143. %70 = OpAccessChain %_ptr_Function_v4float %p_0 %int_2 %int_0
  144. OpStore %70 %69
  145. %71 = OpAccessChain %_ptr_Input_v2float %p_1 %int_2 %int_0
  146. %72 = OpLoad %v2float %71
  147. %73 = OpAccessChain %_ptr_Function_v2float %p_0 %int_2 %int_1
  148. OpStore %73 %72
  149. %77 = OpLoad %uint %i_1
  150. OpStore %i_0 %77
  151. %80 = OpLoad %_arr_VertexOutput_uint_3 %p_0
  152. OpStore %param %80
  153. %82 = OpLoad %uint %i_0
  154. OpStore %param_0 %82
  155. %83 = OpFunctionCall %HSOut %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ %param %param_0
  156. OpStore %flattenTemp %83
  157. %86 = OpAccessChain %_ptr_Function_v4float %flattenTemp %int_0
  158. %87 = OpLoad %v4float %86
  159. %94 = OpLoad %uint %i_1
  160. %89 = OpAccessChain %_ptr_Output_v4float %_entryPointOutput_pos %94
  161. OpStore %89 %87
  162. %95 = OpAccessChain %_ptr_Function_v2float %flattenTemp %int_1
  163. %96 = OpLoad %v2float %95
  164. %98 = OpAccessChain %_ptr_Output_v2float %_entryPointOutput %94 %int_0
  165. OpStore %98 %96
  166. OpControlBarrier %uint_2 %uint_1 %uint_0
  167. %102 = OpLoad %uint %i_1
  168. %104 = OpIEqual %bool %102 %int_0
  169. OpSelectionMerge %106 None
  170. OpBranchConditional %104 %105 %106
  171. %105 = OpLabel
  172. %110 = OpLoad %_arr_VertexOutput_uint_3 %p_0
  173. OpStore %param_1 %110
  174. %111 = OpFunctionCall %HSConstantOut %PatchHS_struct_VertexOutput_vf4_vf21_3__ %param_1
  175. OpStore %_patchConstantResult %111
  176. %117 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_0
  177. %118 = OpLoad %float %117
  178. %120 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_0
  179. OpStore %120 %118
  180. %121 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_1
  181. %122 = OpLoad %float %121
  182. %123 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_1
  183. OpStore %123 %122
  184. %124 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_0 %int_2
  185. %125 = OpLoad %float %124
  186. %126 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_EdgeTess %int_2
  187. OpStore %126 %125
  188. %130 = OpAccessChain %_ptr_Function_float %_patchConstantResult %int_1
  189. %131 = OpLoad %float %130
  190. %132 = OpAccessChain %_ptr_Output_float %_patchConstantOutput_InsideTess %int_0
  191. OpStore %132 %131
  192. OpBranch %106
  193. %106 = OpLabel
  194. OpReturn
  195. OpFunctionEnd
  196. %_hs_main_struct_VertexOutput_vf4_vf21_3__u1_ = OpFunction %HSOut None %16
  197. %p = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3
  198. %i = OpFunctionParameter %_ptr_Function_uint
  199. %20 = OpLabel
  200. %output = OpVariable %_ptr_Function_HSOut Function
  201. %31 = OpLoad %uint %i
  202. %33 = OpAccessChain %_ptr_Function_v4float %p %31 %int_0
  203. %34 = OpLoad %v4float %33
  204. %35 = OpAccessChain %_ptr_Function_v4float %output %int_0
  205. OpStore %35 %34
  206. %37 = OpLoad %uint %i
  207. %39 = OpAccessChain %_ptr_Function_v2float %p %37 %int_1
  208. %40 = OpLoad %v2float %39
  209. %41 = OpAccessChain %_ptr_Function_v2float %output %int_1
  210. OpStore %41 %40
  211. %42 = OpLoad %HSOut %output
  212. OpReturnValue %42
  213. OpFunctionEnd
  214. %PatchHS_struct_VertexOutput_vf4_vf21_3__ = OpFunction %HSConstantOut None %23
  215. %patch = OpFunctionParameter %_ptr_Function__arr_VertexOutput_uint_3
  216. %26 = OpLabel
  217. %output_0 = OpVariable %_ptr_Function_HSConstantOut Function
  218. %135 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1
  219. %136 = OpLoad %v2float %135
  220. %137 = OpCompositeConstruct %v2float %float_1 %float_1
  221. %138 = OpFAdd %v2float %137 %136
  222. %139 = OpCompositeExtract %float %138 0
  223. %140 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_0
  224. OpStore %140 %139
  225. %141 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1
  226. %142 = OpLoad %v2float %141
  227. %143 = OpCompositeConstruct %v2float %float_1 %float_1
  228. %144 = OpFAdd %v2float %143 %142
  229. %145 = OpCompositeExtract %float %144 0
  230. %146 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_1
  231. OpStore %146 %145
  232. %147 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1
  233. %148 = OpLoad %v2float %147
  234. %149 = OpCompositeConstruct %v2float %float_1 %float_1
  235. %150 = OpFAdd %v2float %149 %148
  236. %151 = OpCompositeExtract %float %150 0
  237. %152 = OpAccessChain %_ptr_Function_float %output_0 %int_0 %int_2
  238. OpStore %152 %151
  239. %153 = OpAccessChain %_ptr_Function_v2float %patch %int_0 %int_1
  240. %154 = OpLoad %v2float %153
  241. %155 = OpCompositeConstruct %v2float %float_1 %float_1
  242. %156 = OpFAdd %v2float %155 %154
  243. %157 = OpCompositeExtract %float %156 0
  244. %158 = OpAccessChain %_ptr_Function_float %output_0 %int_1
  245. OpStore %158 %157
  246. %159 = OpLoad %HSConstantOut %output_0
  247. OpReturnValue %159
  248. OpFunctionEnd