@carbonenginejs/runtime-resource 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/format/effect/effectPermutationGraph.js +257 -0
  2. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  3. package/dist/format/effect/effectReflectionPackage.js +636 -0
  4. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  5. package/dist/format/effect/sha256.js +114 -0
  6. package/dist/format/effect/sha256.js.map +1 -0
  7. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  8. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  9. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  10. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  11. package/dist/formats/dxbc/core/container.js +169 -0
  12. package/dist/formats/dxbc/core/container.js.map +1 -0
  13. package/dist/formats/dxbc/core/decoder.js +789 -0
  14. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  15. package/dist/formats/dxbc/core/errors.js +19 -0
  16. package/dist/formats/dxbc/core/errors.js.map +1 -0
  17. package/dist/formats/dxbc/core/helpers.js +220 -0
  18. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  19. package/dist/formats/dxbc/core/opcodes.js +45 -0
  20. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  21. package/dist/formats/dxbc/core/program.js +91 -0
  22. package/dist/formats/dxbc/core/program.js.map +1 -0
  23. package/dist/formats/dxbc/core/signature.js +172 -0
  24. package/dist/formats/dxbc/core/signature.js.map +1 -0
  25. package/dist/formats/dxbc/index.js +2 -0
  26. package/dist/formats/dxbc/index.js.map +1 -0
  27. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  28. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  29. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  30. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  31. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  32. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  33. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  34. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  35. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  36. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  37. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  38. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  39. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  40. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  41. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  42. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  43. package/dist/formats/hlsl/core/analysis.js +51 -0
  44. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  45. package/dist/formats/hlsl/core/helpers.js +270 -0
  46. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  47. package/dist/formats/hlsl/core/json.js +284 -0
  48. package/dist/formats/hlsl/core/json.js.map +1 -0
  49. package/dist/formats/hlsl/core/metadata.js +327 -0
  50. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  51. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  52. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  53. package/dist/formats/hlsl/core/render-states.js +280 -0
  54. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  55. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  56. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  57. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  58. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  59. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  60. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  61. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  62. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  63. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  64. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  65. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  66. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  67. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  68. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  69. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  70. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  71. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  72. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  73. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  74. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  75. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  76. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  77. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  78. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  79. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  80. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  81. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  82. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  83. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  84. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  85. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  86. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  87. package/dist/formats/hlsl/index.js +2 -0
  88. package/dist/formats/hlsl/index.js.map +1 -0
  89. package/dist/formats/hlsl/portable.js +2 -0
  90. package/dist/formats/hlsl/portable.js.map +1 -0
  91. package/dist/formats/index.js +4 -0
  92. package/dist/formats/index.js.map +1 -1
  93. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  94. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  95. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  96. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  97. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  98. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  99. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  100. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  101. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  102. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  103. package/dist/formats/webgl/core/effectPackage.js +789 -0
  104. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  105. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  106. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  107. package/dist/formats/webgl/core/errors.js +27 -0
  108. package/dist/formats/webgl/core/errors.js.map +1 -0
  109. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  110. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  111. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  112. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  113. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  114. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  115. package/dist/formats/webgl/core/helpers.js +306 -0
  116. package/dist/formats/webgl/core/helpers.js.map +1 -0
  117. package/dist/formats/webgl/index.js +2 -0
  118. package/dist/formats/webgl/index.js.map +1 -0
  119. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  120. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  121. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  122. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  123. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  124. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  125. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  126. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  127. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  128. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  129. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  130. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  131. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  132. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  133. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  134. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  135. package/dist/formats/webgpu/core/errors.js +20 -0
  136. package/dist/formats/webgpu/core/errors.js.map +1 -0
  137. package/dist/formats/webgpu/core/helpers.js +448 -0
  138. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  139. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  140. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  141. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  142. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  143. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  144. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  145. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  146. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  147. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  148. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  149. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  150. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  151. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  152. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  153. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  154. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  155. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  156. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  157. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  158. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  159. package/dist/formats/webgpu/core/schema.js +4 -0
  160. package/dist/formats/webgpu/core/schema.js.map +1 -0
  161. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  162. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  163. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  164. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  165. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  166. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  167. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  168. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  169. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  170. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  171. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  172. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  173. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  174. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  175. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  176. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  177. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  178. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  179. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  180. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  181. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  182. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  183. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  184. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  185. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  186. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  187. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  188. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  189. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  190. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  191. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  192. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  193. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  194. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  195. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  196. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  197. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  198. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  199. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  200. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  201. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  202. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  203. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  204. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  205. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  206. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  207. package/dist/formats/webgpu/index.js +2 -0
  208. package/dist/formats/webgpu/index.js.map +1 -0
  209. package/dist/resource/shader/Tr2EffectRes.js +159 -150
  210. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  211. package/dist/resource/shader/Tr2MaterialArea.js +23 -28
  212. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  213. package/dist/resource/shader/Tr2MaterialMesh.js +21 -27
  214. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  215. package/dist/resource/shader/Tr2MaterialRes.js +24 -29
  216. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  217. package/dist/resource/shader/Tr2Shader.js +45 -39
  218. package/dist/resource/shader/Tr2Shader.js.map +1 -1
  219. package/dist/resource/shader/Tr2ShaderPermutation.js +30 -32
  220. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
  221. package/dist/resource/shader/reflection/Tr2EffectConstant.js +113 -78
  222. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  223. package/dist/resource/shader/reflection/Tr2EffectDefine.js +17 -23
  224. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
  225. package/dist/resource/shader/reflection/Tr2EffectDescription.js +23 -29
  226. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  227. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +44 -40
  228. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  229. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +82 -86
  230. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  231. package/dist/resource/shader/reflection/Tr2EffectResource.js +55 -61
  232. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  233. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +49 -45
  234. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  235. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +25 -30
  236. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  237. package/dist/resource/shader/reflection/Tr2Pass.js +30 -32
  238. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  239. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +21 -26
  240. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  241. package/docs/formats/README.md +4 -0
  242. package/docs/formats/provenance.md +11 -3
  243. package/docs/reference/classes/formats.md +440 -0
  244. package/format-notices/dxbc/LICENSE +21 -0
  245. package/format-notices/dxbc/NOTICE +20 -0
  246. package/format-notices/hlsl/LICENSE +21 -0
  247. package/format-notices/hlsl/NOTICE +25 -0
  248. package/format-notices/webgl/LICENSE +21 -0
  249. package/format-notices/webgl/NOTICE +35 -0
  250. package/format-notices/webgpu/LICENSE +21 -0
  251. package/format-notices/webgpu/NOTICE +31 -0
  252. package/package.json +6 -1
  253. package/dist/resource/shader/portableValidation.js +0 -461
  254. package/dist/resource/shader/portableValidation.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lowerCreateHistogramsComputeProgram.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js"],"sourcesContent":["import { analyzeRegisterValues } from \"../ir/analyzeRegisterValues.js\";\nimport { buildControlFlow } from \"../ir/buildControlFlow.js\";\nimport { inferValueTypes } from \"../ir/inferValueTypes.js\";\nimport { resolveRegisterFlow } from \"../ir/resolveRegisterFlow.js\";\nimport { lowerBindingLayout } from \"./lowerBindingLayout.js\";\nimport { requireRefactoringAllowed } from \"./precisionControls.js\";\nimport { buildSelectionPlans } from \"./selectionPlans.js\";\n\nconst DECLARATION_OPCODES = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_constant_buffer\",\n \"dcl_resource\",\n \"dcl_unordered_access_view_typed\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_temps\",\n \"dcl_thread_group_shared_memory_structured\",\n \"dcl_thread_group\"\n]);\nconst BLOCK_BEFORE = new Set([\n \"loop\", \"else\", \"endif\", \"endloop\", \"case\", \"default\", \"endswitch\"\n]);\nconst BLOCK_AFTER = new Set([\n \"if\", \"loop\", \"switch\", \"break\", \"breakc\", \"continue\", \"continuec\",\n \"ret\", \"retc\", \"discard\", \"else\", \"endif\", \"endloop\", \"case\", \"default\",\n \"endswitch\"\n]);\nconst CONTROL_KIND = Object.freeze({\n if: \"selection\",\n endif: \"selection\",\n ret: \"termination\"\n});\nconst SYNC_NAMES = Object.freeze([\n \"threads_in_group\",\n \"thread_group_shared_memory\"\n]);\n\nfunction expectedOperand(\n typeName,\n registerIndex,\n selectionModeName,\n selector = \"\",\n immediateValues = [],\n modifierName = \"none\",\n componentCount = 4\n)\n{\n return Object.freeze({\n typeName,\n registerIndex,\n componentCount,\n selectionModeName,\n selector,\n immediateValues: Object.freeze(immediateValues),\n modifierName\n });\n}\n\nconst mask = (typeName, registerIndex, selector) =>\n expectedOperand(typeName, registerIndex, \"mask\", selector);\nconst swizzle = (typeName, registerIndex, selector, modifierName = \"none\") =>\n expectedOperand(\n typeName, registerIndex, \"swizzle\", selector, [], modifierName);\nconst select = (typeName, registerIndex, selector, modifierName = \"none\") =>\n expectedOperand(\n typeName, registerIndex, \"select1\", selector, [], modifierName);\nconst none = (typeName, registerIndex, componentCount = 0) =>\n expectedOperand(\n typeName, registerIndex, \"none\", \"\", [], \"none\", componentCount);\nconst immediate = (...values) => expectedOperand(\n \"immediate32\",\n null,\n values.length === 1 ? \"none\" : \"mask\",\n \"\",\n values,\n \"none\",\n values.length\n);\nconst body = (opcodeName, operands = [], options = {}) => Object.freeze({\n opcodeName,\n operands: Object.freeze(operands),\n saturate: options.saturate === true,\n testBoolean: options.testBoolean ?? null,\n resinfoReturnTypeName: options.resinfoReturnTypeName\n});\n\nconst BODY_SM50 = Object.freeze([\n body(\"resinfo\", [\n mask(\"temp\", 0, \"xy\"),\n immediate(0),\n swizzle(\"resource\", 0, \"xyzw\")\n ], { resinfoReturnTypeName: \"uint\" }),\n body(\"imad\", [\n mask(\"temp\", 0, \"z\"),\n select(\"input_thread_id_in_group\", null, \"y\"),\n immediate(16),\n select(\"input_thread_id_in_group\", null, \"x\")\n ]),\n body(\"ult\", [\n mask(\"temp\", 1, \"xy\"),\n swizzle(\"temp\", 0, \"zzzz\"),\n immediate(64, 16, 0, 0)\n ]),\n body(\"if\", [ select(\"temp\", 1, \"x\") ], {\n testBoolean: \"nonzero\"\n }),\n body(\"store_structured\", [\n mask(\"thread_group_shared_memory\", 0, \"x\"),\n select(\"temp\", 0, \"z\"),\n immediate(0),\n immediate(0)\n ]),\n body(\"endif\"),\n body(\"sync\"),\n body(\"ult\", [\n mask(\"temp\", 0, \"xy\"),\n swizzle(\"input_thread_id\", null, \"xyxx\"),\n swizzle(\"temp\", 0, \"xyxx\")\n ]),\n body(\"and\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"y\"),\n select(\"temp\", 0, \"x\")\n ]),\n body(\"if\", [ select(\"temp\", 0, \"x\") ], {\n testBoolean: \"nonzero\"\n }),\n body(\"mov\", [\n mask(\"temp\", 2, \"xy\"),\n swizzle(\"input_thread_id\", null, \"xyxx\")\n ]),\n body(\"mov\", [\n mask(\"temp\", 2, \"zw\"),\n immediate(0, 0, 0, 0)\n ]),\n body(\"ld\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 2, \"xyzw\"),\n swizzle(\"resource\", 0, \"xywz\")\n ]),\n body(\"lt\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 0, \"xxyw\"),\n immediate(1025879765, 0, 1025879765, 1025879765)\n ]),\n body(\"mul\", [\n mask(\"temp\", 2, \"xyz\"),\n swizzle(\"temp\", 0, \"xywx\"),\n immediate(1033798545, 1033798545, 1033798545, 0)\n ]),\n body(\"add\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 0, \"xyxw\"),\n immediate(1029785518, 1029785518, 0, 1029785518)\n ]),\n body(\"mul\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 0, \"xyxw\"),\n immediate(1064478575, 1064478575, 0, 1064478575)\n ]),\n body(\"log\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 0, \"xyxw\", \"abs\")\n ]),\n body(\"mul\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 0, \"xyxw\"),\n immediate(1075419546, 1075419546, 0, 1075419546)\n ]),\n body(\"exp\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 0, \"xyxw\")\n ]),\n body(\"movc\", [\n mask(\"temp\", 0, \"xyw\"),\n swizzle(\"temp\", 1, \"xzxw\"),\n swizzle(\"temp\", 2, \"xyxz\"),\n swizzle(\"temp\", 0, \"xyxw\")\n ]),\n body(\"dp3\", [\n mask(\"temp\", 0, \"x\"),\n swizzle(\"temp\", 0, \"xywx\"),\n immediate(1046059418, 1060578420, 1033087274, 0)\n ]),\n body(\"log\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\")\n ]),\n body(\"mad\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(1060205080),\n select(\"constant_buffer\", 0, \"x\", \"neg\")\n ]),\n body(\"add\", [\n mask(\"temp\", 0, \"y\"),\n select(\"constant_buffer\", 0, \"x\", \"neg\"),\n select(\"constant_buffer\", 0, \"y\")\n ]),\n body(\"div\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"y\")\n ], { saturate: true }),\n body(\"mul\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(1115684864)\n ]),\n body(\"ftoi\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\")\n ]),\n body(\"imin\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(63)\n ]),\n body(\"mov\", [\n mask(\"temp\", 0, \"y\"),\n immediate(0)\n ]),\n body(\"atomic_iadd\", [\n none(\"thread_group_shared_memory\", 0),\n swizzle(\"temp\", 0, \"xyxx\"),\n immediate(1)\n ]),\n body(\"endif\"),\n body(\"sync\"),\n body(\"if\", [ select(\"temp\", 1, \"y\") ], {\n testBoolean: \"nonzero\"\n }),\n body(\"ftou\", [\n mask(\"temp\", 0, \"x\"),\n select(\"constant_buffer\", 0, \"z\")\n ]),\n body(\"imad\", [\n mask(\"temp\", 0, \"x\"),\n select(\"input_thread_group_id\", null, \"y\"),\n select(\"temp\", 0, \"x\"),\n select(\"input_thread_group_id\", null, \"x\")\n ]),\n body(\"ishl\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(4)\n ]),\n body(\"ishl\", [\n mask(\"temp\", 0, \"y\"),\n select(\"input_thread_id_in_group\", null, \"x\"),\n immediate(2)\n ]),\n body(\"imad\", [\n mask(\"temp\", 0, \"y\"),\n select(\"input_thread_id_in_group\", null, \"y\"),\n immediate(64),\n select(\"temp\", 0, \"y\")\n ]),\n body(\"iadd\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"z\")\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"x\"),\n select(\"temp\", 0, \"y\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"iadd\", [\n mask(\"temp\", 0, \"yw\"),\n swizzle(\"temp\", 0, \"yyyy\"),\n immediate(0, 1, 0, 3)\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"y\"),\n select(\"temp\", 0, \"y\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"imad\", [\n mask(\"temp\", 0, \"y\"),\n select(\"temp\", 0, \"z\"),\n immediate(4),\n immediate(2)\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"z\"),\n select(\"temp\", 0, \"y\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"w\"),\n select(\"temp\", 0, \"w\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"store_uav_typed\", [\n mask(\"uav\", 0, \"xyzw\"),\n swizzle(\"temp\", 0, \"xxxx\"),\n swizzle(\"temp\", 1, \"xyzw\")\n ]),\n body(\"endif\"),\n body(\"ret\")\n]);\n\nconst BODY_SM51 = Object.freeze([\n body(\"resinfo\", [\n mask(\"temp\", 0, \"xy\"),\n immediate(0),\n swizzle(\"resource\", 0, \"xyzw\")\n ], { resinfoReturnTypeName: \"uint\" }),\n body(\"imad\", [\n mask(\"temp\", 0, \"z\"),\n select(\"input_thread_id_in_group\", null, \"y\"),\n immediate(16),\n select(\"input_thread_id_in_group\", null, \"x\")\n ]),\n body(\"ftou\", [\n mask(\"temp\", 0, \"w\"),\n select(\"constant_buffer\", 0, \"z\")\n ]),\n body(\"ult\", [\n mask(\"temp\", 1, \"xy\"),\n swizzle(\"temp\", 0, \"zzzz\"),\n immediate(64, 16, 0, 0)\n ]),\n body(\"if\", [ select(\"temp\", 1, \"x\") ], {\n testBoolean: \"nonzero\"\n }),\n body(\"store_structured\", [\n mask(\"thread_group_shared_memory\", 0, \"x\"),\n select(\"temp\", 0, \"z\"),\n immediate(0),\n immediate(0)\n ]),\n body(\"endif\"),\n body(\"sync\"),\n body(\"ult\", [\n mask(\"temp\", 0, \"xy\"),\n swizzle(\"input_thread_id\", null, \"xyxx\"),\n swizzle(\"temp\", 0, \"xyxx\")\n ]),\n body(\"and\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"y\"),\n select(\"temp\", 0, \"x\")\n ]),\n body(\"if\", [ select(\"temp\", 0, \"x\") ], {\n testBoolean: \"nonzero\"\n }),\n body(\"mov\", [\n mask(\"temp\", 2, \"xy\"),\n swizzle(\"input_thread_id\", null, \"xyxx\")\n ]),\n body(\"mov\", [\n mask(\"temp\", 2, \"zw\"),\n immediate(0, 0, 0, 0)\n ]),\n body(\"ld\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 2, \"xyzw\"),\n swizzle(\"resource\", 0, \"xwyz\")\n ]),\n body(\"lt\", [\n mask(\"temp\", 2, \"xyz\"),\n swizzle(\"temp\", 1, \"xzwx\"),\n immediate(1025879765, 1025879765, 1025879765, 0)\n ]),\n body(\"mul\", [\n mask(\"temp\", 3, \"xyz\"),\n swizzle(\"temp\", 1, \"xzwx\"),\n immediate(1033798545, 1033798545, 1033798545, 0)\n ]),\n body(\"add\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 1, \"xxzw\"),\n immediate(1029785518, 0, 1029785518, 1029785518)\n ]),\n body(\"mul\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 1, \"xxzw\"),\n immediate(1064478575, 0, 1064478575, 1064478575)\n ]),\n body(\"log\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 1, \"xxzw\", \"abs\")\n ]),\n body(\"mul\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 1, \"xxzw\"),\n immediate(1075419546, 0, 1075419546, 1075419546)\n ]),\n body(\"exp\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 1, \"xxzw\")\n ]),\n body(\"movc\", [\n mask(\"temp\", 1, \"xzw\"),\n swizzle(\"temp\", 2, \"xxyz\"),\n swizzle(\"temp\", 3, \"xxyz\"),\n swizzle(\"temp\", 1, \"xxzw\")\n ]),\n body(\"dp3\", [\n mask(\"temp\", 0, \"x\"),\n swizzle(\"temp\", 1, \"xzwx\"),\n immediate(1046059418, 1060578420, 1033087274, 0)\n ]),\n body(\"log\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\")\n ]),\n body(\"mad\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(1060205080),\n select(\"constant_buffer\", 0, \"x\", \"neg\")\n ]),\n body(\"add\", [\n mask(\"temp\", 0, \"y\"),\n select(\"constant_buffer\", 0, \"x\", \"neg\"),\n select(\"constant_buffer\", 0, \"y\")\n ]),\n body(\"div\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"y\")\n ], { saturate: true }),\n body(\"mul\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(1115684864)\n ]),\n body(\"ftoi\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\")\n ]),\n body(\"imin\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(63)\n ]),\n body(\"mov\", [\n mask(\"temp\", 0, \"y\"),\n immediate(0)\n ]),\n body(\"atomic_iadd\", [\n none(\"thread_group_shared_memory\", 0),\n swizzle(\"temp\", 0, \"xyxx\"),\n immediate(1)\n ]),\n body(\"endif\"),\n body(\"sync\"),\n body(\"if\", [ select(\"temp\", 1, \"y\") ], {\n testBoolean: \"nonzero\"\n }),\n body(\"imad\", [\n mask(\"temp\", 0, \"x\"),\n select(\"input_thread_group_id\", null, \"y\"),\n select(\"temp\", 0, \"w\"),\n select(\"input_thread_group_id\", null, \"x\")\n ]),\n body(\"ishl\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n immediate(4)\n ]),\n body(\"ishl\", [\n mask(\"temp\", 0, \"y\"),\n select(\"input_thread_id_in_group\", null, \"x\"),\n immediate(2)\n ]),\n body(\"imad\", [\n mask(\"temp\", 0, \"y\"),\n select(\"input_thread_id_in_group\", null, \"y\"),\n immediate(64),\n select(\"temp\", 0, \"y\")\n ]),\n body(\"iadd\", [\n mask(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"x\"),\n select(\"temp\", 0, \"z\")\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"x\"),\n select(\"temp\", 0, \"y\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"iadd\", [\n mask(\"temp\", 0, \"yw\"),\n swizzle(\"temp\", 0, \"yyyy\"),\n immediate(0, 1, 0, 3)\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"y\"),\n select(\"temp\", 0, \"y\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"imad\", [\n mask(\"temp\", 0, \"y\"),\n select(\"temp\", 0, \"z\"),\n immediate(4),\n immediate(2)\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"z\"),\n select(\"temp\", 0, \"y\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"ld_structured\", [\n mask(\"temp\", 1, \"w\"),\n select(\"temp\", 0, \"w\"),\n immediate(0),\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\n ]),\n body(\"store_uav_typed\", [\n mask(\"uav\", 0, \"xyzw\"),\n swizzle(\"temp\", 0, \"xxxx\"),\n swizzle(\"temp\", 1, \"xyzw\")\n ]),\n body(\"endif\"),\n body(\"ret\")\n]);\n\nfunction clonePlain(value)\n{\n if (Array.isArray(value)) return value.map(clonePlain);\n if (value && typeof value === \"object\")\n {\n return Object.fromEntries(\n Object.entries(value).map(([ key, entry ]) => [\n key,\n clonePlain(entry)\n ])\n );\n }\n return value;\n}\n\nfunction deepFreeze(value)\n{\n if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n for (const entry of Object.values(value)) deepFreeze(entry);\n return Object.freeze(value);\n}\n\nfunction buildBlocks(instructions)\n{\n const leaders = new Set([ 0 ]);\n for (let index = 0; index < instructions.length; index += 1)\n {\n if (BLOCK_BEFORE.has(instructions[index].opcodeName)) leaders.add(index);\n if (BLOCK_AFTER.has(instructions[index].opcodeName)\n && index + 1 < instructions.length)\n {\n leaders.add(index + 1);\n }\n }\n const starts = Array.from(leaders).sort((left, right) => left - right);\n return starts.map((start, blockIndex) =>\n {\n const end = (starts[blockIndex + 1] ?? instructions.length) - 1;\n const last = instructions[end];\n return {\n kind: \"basic-block\",\n id: `block${blockIndex}`,\n index: blockIndex,\n startInstruction: start,\n endInstruction: end,\n startDxbcOffset: instructions[start].dxbcOffset,\n endDxbcOffset: last.dxbcOffset,\n instructionIndices: Array.from(\n { length: end - start + 1 },\n (_, offset) => start + offset\n ),\n terminator: CONTROL_KIND[last.opcodeName] ? last.opcodeName : null\n };\n });\n}\n\nfunction analysisSnapshot(program)\n{\n return {\n blocks: program.blocks,\n controlFlow: program.controlFlow,\n values: program.values,\n instructions: program.instructions.map((instruction) => ({\n dataflow: instruction.dataflow,\n typeInfo: instruction.typeInfo\n }))\n };\n}\n\nfunction firstDifference(left, right, path = \"$\")\n{\n if (Object.is(left, right)) return null;\n if (Array.isArray(left) && Array.isArray(right))\n {\n if (left.length !== right.length)\n {\n return `${path}.length (${left.length} != ${right.length})`;\n }\n for (let index = 0; index < left.length; index += 1)\n {\n const difference = firstDifference(\n left[index], right[index], `${path}[${index}]`);\n if (difference) return difference;\n }\n return null;\n }\n if (left && right\n && typeof left === \"object\"\n && typeof right === \"object\")\n {\n const keys = Array.from(new Set([\n ...Object.keys(left),\n ...Object.keys(right)\n ])).sort();\n for (const key of keys)\n {\n const difference = firstDifference(\n left[key], right[key], `${path}.${key}`);\n if (difference) return difference;\n }\n return null;\n }\n return `${path} (${JSON.stringify(left)} != ${JSON.stringify(right)})`;\n}\n\nfunction validateAnalysisMetadata(program)\n{\n const rebuilt = clonePlain(program);\n rebuilt.instructions = rebuilt.instructions.map((instruction) =>\n {\n delete instruction.dataflow;\n delete instruction.typeInfo;\n return instruction;\n });\n rebuilt.blocks = buildBlocks(rebuilt.instructions);\n delete rebuilt.controlFlow;\n delete rebuilt.values;\n buildControlFlow(rebuilt);\n analyzeRegisterValues(rebuilt);\n resolveRegisterFlow(rebuilt);\n inferValueTypes(rebuilt);\n const originalSnapshot = analysisSnapshot(program);\n const rebuiltSnapshot = analysisSnapshot(rebuilt);\n if (JSON.stringify(originalSnapshot) !== JSON.stringify(rebuiltSnapshot))\n {\n const difference = firstDifference(originalSnapshot, rebuiltSnapshot);\n throw new Error(\n \"WGSL create-histograms compute CFG, SSA, or type metadata is inconsistent\"\n + (difference ? ` at ${difference}` : \"\")\n );\n }\n}\n\nfunction selector(operand)\n{\n return operand.mask || operand.swizzle || operand.selected || \"\";\n}\n\nfunction isCanonicalIndex(entry, dimension, value)\n{\n return entry?.dimension === dimension\n && entry.representation === 0\n && entry.relative === null\n && entry.values?.length === 1\n && entry.values[0] === value;\n}\n\nfunction validateCanonicalIndices(operand, expected, context)\n{\n if (operand.indices?.length !== expected.length\n || expected.some((value, dimension) =>\n !isCanonicalIndex(operand.indices[dimension], dimension, value)))\n {\n throw new Error(\n `WGSL create-histograms ${context} has non-canonical index metadata`\n );\n }\n}\n\nfunction validateSm51Range(data, context)\n{\n const range = data?.bindingRange;\n if (data?.bindingModel !== \"sm5.1-range\"\n || range?.bindingModel !== \"sm5.1-range\"\n || range.rangeId !== 0\n || range.lowerBound !== 0\n || range.upperBound !== 0\n || range.unbounded !== false\n || range.registerCount !== 1\n || range.registerSpace !== 0)\n {\n throw new Error(\n `WGSL create-histograms ${context} requires one finite SM5.1 range`\n );\n }\n}\n\nfunction expectedIndices(typeName, registerIndex, minor, declaration)\n{\n if (!Number.isInteger(registerIndex)) return [];\n if (typeName === \"constant_buffer\")\n {\n return minor === 0\n ? [ registerIndex, declaration ? 1 : 0 ]\n : [ 0, registerIndex, declaration ? 0 : 0 ];\n }\n if ([ \"resource\", \"uav\" ].includes(typeName))\n {\n return minor === 0\n ? [ registerIndex ]\n : declaration\n ? [ 0, registerIndex, 0 ]\n : [ 0, registerIndex ];\n }\n return [ registerIndex ];\n}\n\nfunction validateSm51Reference(operand, context)\n{\n const reference = operand.resourceReference;\n if ([ \"resource\", \"uav\" ].includes(operand.typeName))\n {\n if (reference?.bindingModel !== \"sm5.1-range\"\n || reference.rangeId !== 0\n || reference.nonUniform !== false\n || !isCanonicalIndex(reference.absoluteIndex, 1, 0)\n || reference.bufferIndex !== null\n || reference.vectorOffset !== null)\n {\n throw new Error(\n `WGSL create-histograms ${context} has an invalid SM5.1 resource reference`\n );\n }\n }\n else if (operand.typeName === \"constant_buffer\")\n {\n if (reference?.bindingModel !== \"sm5.1-range\"\n || reference.rangeId !== 0\n || reference.nonUniform !== false\n || reference.absoluteIndex !== null\n || !isCanonicalIndex(reference.bufferIndex, 1, 0)\n || !isCanonicalIndex(reference.vectorOffset, 2, 0))\n {\n throw new Error(\n `WGSL create-histograms ${context} has an invalid SM5.1 constant-buffer reference`\n );\n }\n }\n else if (reference !== undefined && reference !== null)\n {\n throw new Error(\n `WGSL create-histograms ${context} has unexpected resource reference metadata`\n );\n }\n}\n\nfunction validateOperand(\n operand,\n expected,\n minor,\n context,\n declaration = false\n)\n{\n if (!operand\n || operand.typeName !== expected.typeName\n || operand.registerIndex !== expected.registerIndex\n || operand.componentCount !== expected.componentCount\n || operand.selectionModeName !== expected.selectionModeName\n || selector(operand) !== expected.selector\n || operand.modifierName !== expected.modifierName\n || operand.minPrecisionName !== \"default\"\n || operand.nonUniform !== false\n || operand.immediateValues?.length !== expected.immediateValues.length\n || expected.immediateValues.some((value, index) =>\n operand.immediateValues[index]?.uint32 !== value))\n {\n throw new Error(\n `WGSL create-histograms ${context} does not match the exact operand`\n );\n }\n validateCanonicalIndices(\n operand,\n expectedIndices(\n expected.typeName,\n expected.registerIndex,\n minor,\n declaration\n ),\n context\n );\n if (declaration)\n {\n if (operand.resourceReference !== undefined\n && operand.resourceReference !== null)\n {\n throw new Error(\n `WGSL create-histograms ${context} has unexpected reference metadata`\n );\n }\n }\n else if (minor === 1)\n {\n validateSm51Reference(operand, context);\n }\n else if (operand.resourceReference !== undefined\n && operand.resourceReference !== null)\n {\n throw new Error(\n `WGSL create-histograms ${context} has unexpected SM5.1 reference metadata`\n );\n }\n}\n\n/**\n * Whether declarations select the isolated create-histograms compute family.\n * Detailed validation is final after this selector matches.\n *\n * @param {object} program CJS shader IR program.\n * @returns {boolean} True for the dedicated declaration family.\n */\nexport function isCreateHistogramsComputeProfile(program)\n{\n return program?.stage === \"compute\"\n && program.declarations?.length === DECLARATION_OPCODES.length\n && program.instructions?.length === 49\n && DECLARATION_OPCODES.every((opcodeName, index) =>\n program.declarations[index]?.opcodeName === opcodeName);\n}\n\nfunction validateDeclarationOperand(\n operand,\n expected,\n minor,\n context\n)\n{\n validateOperand(operand, expected, minor, context, true);\n}\n\nfunction validateBuiltinDeclaration(\n declaration,\n typeName,\n operandType,\n minor\n)\n{\n if (declaration.data?.registerIndex !== null\n || declaration.data.operandType !== operandType\n || declaration.data.operandTypeName !== typeName\n || declaration.operands?.length !== 1)\n {\n throw new Error(\n `WGSL create-histograms compute requires exactly ${typeName}.xy`\n );\n }\n validateDeclarationOperand(\n declaration.operands[0],\n mask(typeName, null, \"xy\"),\n minor,\n `${typeName} declaration`\n );\n}\n\nfunction validateDeclarations(program)\n{\n const minor = program?.shaderModel?.minor;\n if (program?.format !== \"CJS_SHADER_IR\"\n || program.formatVersion !== 1\n || program.stage !== \"compute\"\n || program.shaderModel?.major !== 5\n || ![ 0, 1 ].includes(minor))\n {\n throw new TypeError(\n \"WGSL create-histograms compute profile requires CJS SM5.0 or finite-range SM5.1 compute IR\"\n );\n }\n if (!isCreateHistogramsComputeProfile(program))\n {\n throw new Error(\n \"WGSL create-histograms compute declaration shape is not supported\"\n );\n }\n if (program.declarations.some((declaration) =>\n declaration.tailTokens?.length))\n {\n throw new Error(\n \"WGSL create-histograms compute declarations must not contain trailing payload words\"\n );\n }\n if ((program.signatures?.input || []).length\n || (program.signatures?.output || []).length\n || (program.signatures?.patch || []).length\n || program.immediateConstantBuffer\n || program.constTables)\n {\n throw new Error(\n \"WGSL create-histograms compute does not support signatures or constant tables\"\n );\n }\n requireRefactoringAllowed(program, \"create-histograms compute\");\n\n const [\n global,\n constants,\n input,\n output,\n groupId,\n localId,\n dispatchId,\n temps,\n shared,\n group\n ] = program.declarations;\n if (global.data?.globalFlags !== (1 << 11)\n || global.data.refactoringAllowed !== true\n || global.operands?.length)\n {\n throw new Error(\n \"WGSL create-histograms compute requires only the refactoring-allowed global flag\"\n );\n }\n if (constants.data?.accessPattern !== \"immediate_indexed\"\n || constants.data.registerIndex !== 0\n || constants.data.sizeInVec4 !== 1\n || constants.operands?.length !== 1)\n {\n throw new Error(\n \"WGSL create-histograms compute requires immediate one-row cb0\"\n );\n }\n validateDeclarationOperand(\n constants.operands[0],\n swizzle(\"constant_buffer\", 0, \"xyzw\"),\n minor,\n \"cb0 declaration\"\n );\n if (input.data?.registerIndex !== 0\n || input.data.resourceDimension !== 3\n || input.data.resourceDimensionName !== \"texture2d\"\n || input.data.sampleCount !== 0\n || input.data.returnType?.returnTypes?.length !== 4\n || input.data.returnType.returnTypes.some((entry) => entry !== 5)\n || input.data.returnType?.returnTypeNames?.length !== 4\n || input.data.returnType.returnTypeNames.some((entry) =>\n entry !== \"float\")\n || input.operands?.length !== 1)\n {\n throw new Error(\n \"WGSL create-histograms compute requires float texture2d t0\"\n );\n }\n validateDeclarationOperand(\n input.operands[0],\n minor === 0\n ? none(\"resource\", 0)\n : swizzle(\"resource\", 0, \"xyzw\"),\n minor,\n \"t0 declaration\"\n );\n if (output.data?.registerIndex !== 0\n || output.data.resourceDimension !== 1\n || output.data.resourceDimensionName !== \"buffer\"\n || output.data.globallyCoherent !== false\n || output.data.returnType?.returnTypes?.length !== 4\n || output.data.returnType.returnTypes.some((entry) => entry !== 4)\n || output.data.returnType?.returnTypeNames?.length !== 4\n || output.data.returnType.returnTypeNames.some((entry) =>\n entry !== \"uint\")\n || output.operands?.length !== 1)\n {\n throw new Error(\n \"WGSL create-histograms compute requires non-coherent typed uint Buffer u0\"\n );\n }\n validateDeclarationOperand(\n output.operands[0],\n minor === 0\n ? none(\"uav\", 0)\n : swizzle(\"uav\", 0, \"xyzw\"),\n minor,\n \"u0 declaration\"\n );\n validateBuiltinDeclaration(\n groupId, \"input_thread_group_id\", 33, minor);\n validateBuiltinDeclaration(\n localId, \"input_thread_id_in_group\", 34, minor);\n validateBuiltinDeclaration(\n dispatchId, \"input_thread_id\", 32, minor);\n if (temps.data?.tempCount !== (minor === 0 ? 3 : 4)\n || temps.operands?.length)\n {\n throw new Error(\n `WGSL create-histograms SM5.${minor} requires exactly ${minor === 0 ? \"three\" : \"four\"} temps`\n );\n }\n if (shared.data?.registerIndex !== 0\n || shared.data.structureStride !== 4\n || shared.data.structureCount !== 64\n || shared.operands?.length !== 1)\n {\n throw new Error(\n \"WGSL create-histograms compute requires g0 with stride 4 and 64 records\"\n );\n }\n validateDeclarationOperand(\n shared.operands[0],\n none(\"thread_group_shared_memory\", 0),\n minor,\n \"g0 declaration\"\n );\n if (group.data?.threadGroupX !== 16\n || group.data.threadGroupY !== 16\n || group.data.threadGroupZ !== 1\n || group.operands?.length)\n {\n throw new Error(\n \"WGSL create-histograms compute requires dcl_thread_group 16,16,1\"\n );\n }\n if (minor === 1)\n {\n validateSm51Range(constants.data, \"cb0 declaration\");\n validateSm51Range(input.data, \"t0 declaration\");\n validateSm51Range(output.data, \"u0 declaration\");\n }\n else if (constants.data.bindingModel || constants.data.bindingRange\n || input.data.bindingModel || input.data.bindingRange\n || output.data.bindingModel || output.data.bindingRange)\n {\n throw new Error(\n \"WGSL create-histograms SM5.0 declarations must use register bindings\"\n );\n }\n}\n\nfunction validTextureExtensions(program, instruction)\n{\n const extensions = instruction.extensions || [];\n if (program.shaderModel.minor === 1) return extensions.length === 0;\n if (![ \"resinfo\", \"ld\" ].includes(instruction.opcodeName))\n {\n return extensions.length === 0;\n }\n return extensions.length === 2\n && extensions[0]?.token === 2147483842\n && extensions[0].type === 2\n && extensions[0].typeName === \"resource_dimension\"\n && extensions[0].resourceDimension === 3\n && extensions[0].resourceDimensionName === \"texture2d\"\n && extensions[0].structureStride === 0\n && extensions[1]?.token === 1398083\n && extensions[1].type === 3\n && extensions[1].typeName === \"resource_return_type\"\n && extensions[1].resourceReturnTypes?.length === 4\n && extensions[1].resourceReturnTypes.every((entry) => entry === 5);\n}\n\nfunction validateBody(program)\n{\n const expectedBody = program.shaderModel.minor === 0\n ? BODY_SM50\n : BODY_SM51;\n if (program.instructions?.length !== expectedBody.length)\n {\n throw new Error(\n \"WGSL create-histograms compute requires the exact 49-instruction body\"\n );\n }\n for (const [ index, expected ] of expectedBody.entries())\n {\n const instruction = program.instructions[index];\n if (instruction?.opcodeName !== expected.opcodeName\n || instruction.operands?.length !== expected.operands.length)\n {\n throw new Error(\n \"WGSL create-histograms compute requires the exact backend opcode and operand schedule\"\n );\n }\n for (const [ operandIndex, expectedEntry ] of\n expected.operands.entries())\n {\n validateOperand(\n instruction.operands[operandIndex],\n expectedEntry,\n program.shaderModel.minor,\n `instruction ${index} operand ${operandIndex}`\n );\n }\n const sync = instruction.opcodeName === \"sync\";\n if (instruction.index !== index\n || (index > 0\n && instruction.dxbcOffset\n <= program.instructions[index - 1].dxbcOffset)\n || instruction.controlKind\n !== (CONTROL_KIND[instruction.opcodeName] || null)\n || instruction.testBoolean !== expected.testBoolean\n || instruction.saturate !== expected.saturate\n || instruction.preciseMask !== \"\"\n || instruction.tailTokens?.length\n || instruction.resinfoReturnTypeName\n !== expected.resinfoReturnTypeName\n || !validTextureExtensions(program, instruction)\n || (sync\n ? instruction.syncFlags !== 3\n || JSON.stringify(instruction.syncFlagNames)\n !== JSON.stringify(SYNC_NAMES)\n : instruction.syncFlags !== undefined\n || instruction.syncFlagNames !== undefined))\n {\n throw new Error(\n `WGSL create-histograms instruction ${index} has inconsistent envelope metadata`\n );\n }\n }\n\n validateAnalysisMetadata(program);\n const origins = program.values.reduce((counts, value) =>\n {\n counts[value.origin] = (counts[value.origin] || 0) + 1;\n return counts;\n }, {});\n const minor = program.shaderModel.minor;\n if (program.blocks.length !== 10\n || program.controlFlow.edgeCount !== 12\n || program.controlFlow.regions.length !== 3\n || program.controlFlow.unreachableBlockIds.length\n || program.values.length !== 53\n || origins[\"instruction-write\"] !== 37\n || origins[\"program-input\"] !== 6\n || origins[\"undefined-register\"] !== (minor === 0 ? 6 : 7)\n || origins[\"control-flow-merge\"] !== (minor === 0 ? 4 : 3))\n {\n throw new Error(\n \"WGSL create-histograms compute requires the canonical CFG and register-value shape\"\n );\n }\n const values = new Map(program.values.map((value) => [ value.id, value ]));\n for (const instruction of program.instructions)\n {\n for (const ref of instruction.dataflow.reads.flatMap((read) =>\n read.refs))\n {\n if (values.get(ref.valueId)?.origin === \"undefined-register\")\n {\n throw new Error(\n `WGSL create-histograms instruction ${instruction.index} reads undefined register data`\n );\n }\n }\n }\n const starts = minor === 0 ? [ 3, 9, 33 ] : [ 4, 10, 34 ];\n const plans = buildSelectionPlans(program, \"create-histograms compute\");\n if (plans.size !== 3\n || starts.some((start) =>\n plans.get(start)?.kind !== \"selection\"\n || plans.get(start).hasElse\n || plans.get(start).merges.length))\n {\n throw new Error(\n \"WGSL create-histograms compute requires three canonical no-else selections without live merges\"\n );\n }\n}\n\nfunction validateBindings(bindings)\n{\n if (bindings.length !== 3) throw new Error(\n \"WGSL create-histograms compute binding layout does not match cb0/t0/u0\"\n );\n const [ constants, input, output ] = bindings;\n if (constants.resourceKind !== \"uniform-buffer\"\n || constants.generatedSymbol !== \"cb0\"\n || constants.registerIndex !== 0\n || constants.registerSpace !== 0\n || constants.declaration !== \"var<uniform>\"\n || constants.type !== \"array<vec4<f32>, 1>\"\n || constants.buffer?.type !== \"uniform\"\n || constants.buffer.hasDynamicOffset !== false\n || constants.buffer.minBindingSize !== 16\n || input.resourceKind !== \"sampled-resource\"\n || input.generatedSymbol !== \"t0\"\n || input.registerIndex !== 0\n || input.registerSpace !== 0\n || input.declaration !== \"var\"\n || input.type !== \"texture_2d<f32>\"\n || input.texture?.sampleType !== \"float\"\n || input.texture.viewDimension !== \"2d\"\n || input.texture.multisampled !== false\n || output.resourceKind !== \"storage-resource\"\n || output.generatedSymbol !== \"u0\"\n || output.registerIndex !== 0\n || output.registerSpace !== 0\n || output.declaration !== \"var<storage, read_write>\"\n || output.type !== \"array<atomic<u32>>\"\n || output.buffer?.type !== \"storage\"\n || output.buffer.hasDynamicOffset !== false\n || output.buffer.minBindingSize !== 4)\n {\n throw new Error(\n \"WGSL create-histograms compute binding layout does not match cb0/t0/u0\"\n );\n }\n}\n\nfunction location(program, sm50Index, sm51Index = sm50Index)\n{\n const index = program.shaderModel.minor === 0 ? sm50Index : sm51Index;\n return {\n instructionIndex: index,\n dxbcOffset: program.instructions[index].dxbcOffset\n };\n}\n\nfunction expression(code, type)\n{\n return { code, type };\n}\n\nfunction letStatement(\n program,\n sm50Index,\n sm51Index,\n name,\n type,\n code\n)\n{\n return {\n kind: \"let\",\n ...location(program, sm50Index, sm51Index),\n name,\n type,\n expression: expression(code, type)\n };\n}\n\nfunction callStatement(program, sm50Index, sm51Index, code)\n{\n return {\n kind: \"call\",\n ...location(program, sm50Index, sm51Index),\n expression: expression(code, \"void\")\n };\n}\n\nfunction lowerBody(program, bindings)\n{\n const constants = bindings[0].generatedSymbol;\n const input = bindings[1].generatedSymbol;\n const output = bindings[2].generatedSymbol;\n const textureSize = `textureDimensions(${input}, 0)`;\n const inBounds = \"all(dispatch_thread_id.xy < texture_size)\";\n const sourceRgb = [\n letStatement(\n program, 10, 11, \"safe_pixel\", \"vec2<u32>\",\n \"min(dispatch_thread_id.xy, texture_size - vec2<u32>(1u))\"\n ),\n letStatement(\n program, 12, 13, \"source_rgba\", \"vec4<f32>\",\n `select(vec4<f32>(), textureLoad(${input}, safe_pixel, 0), ${inBounds})`\n ),\n letStatement(\n program, 12, 13, \"source_rgb\", \"vec3<f32>\",\n \"source_rgba.xyz\"\n ),\n letStatement(\n program, 14, 15, \"low_rgb\", \"vec3<f32>\",\n \"(source_rgb * vec3<f32>(bitcast<f32>(0x3d9e8391u)))\"\n ),\n letStatement(\n program, 19, 20, \"high_rgb\", \"vec3<f32>\",\n \"exp2(log2(abs((source_rgb + vec3<f32>(bitcast<f32>(0x3d6147aeu)))\"\n + \" * vec3<f32>(bitcast<f32>(0x3f72a76fu))))\"\n + \" * vec3<f32>(bitcast<f32>(0x4019999au)))\"\n ),\n letStatement(\n program, 20, 21, \"linear_rgb\", \"vec3<f32>\",\n \"select(high_rgb, low_rgb, source_rgb\"\n + \" < vec3<f32>(bitcast<f32>(0x3d25aed5u)))\"\n ),\n letStatement(\n program, 21, 22, \"luminance\", \"f32\",\n \"dot(linear_rgb, vec3<f32>(\"\n + \"bitcast<f32>(0x3e59999au), \"\n + \"bitcast<f32>(0x3f372474u), \"\n + \"bitcast<f32>(0x3d93a92au)))\"\n ),\n letStatement(\n program, 23, 24, \"log_luminance\", \"f32\",\n `(log2(luminance) * bitcast<f32>(0x3f317218u)) - ${constants}[0u].x`\n ),\n letStatement(\n program, 24, 25, \"luminance_range\", \"f32\",\n `${constants}[0u].y - ${constants}[0u].x`\n ),\n letStatement(\n program, 25, 26, \"normalized_luminance\", \"f32\",\n \"clamp(log_luminance / luminance_range, 0.0, 1.0)\"\n ),\n letStatement(\n program, 28, 29, \"histogram_bin\", \"i32\",\n \"min(i32(normalized_luminance\"\n + \" * bitcast<f32>(0x42800000u)), 63)\"\n ),\n {\n kind: \"if\",\n ...location(program, 30, 31),\n condition: expression(\n \"histogram_bin >= 0 && histogram_bin < 64\", \"bool\"),\n statements: [\n callStatement(\n program,\n 30,\n 31,\n \"atomicAdd(&g0[u32(histogram_bin)], 1u)\"\n )\n ]\n }\n ];\n const outputStores = [ \"x\", \"y\", \"z\", \"w\" ].map((component, word) =>\n callStatement(\n program,\n 46,\n 46,\n `atomicStore(&${output}[(output_element * 4u) + ${word}u], histogram_words.${component})`\n )\n );\n return [\n letStatement(\n program, 0, 0, \"texture_size\", \"vec2<u32>\", textureSize),\n letStatement(\n program,\n 1,\n 1,\n \"local_index\",\n \"u32\",\n \"(local_invocation_id.y * 16u) + local_invocation_id.x\"\n ),\n // DX12 hoists this pure uniform conversion. Canonical emission hoists\n // the DX11 form too; validation and the documented finite/in-range\n // ScreenTilesX premise make the extra evaluations unobservable.\n letStatement(\n program,\n 34,\n 2,\n \"screen_tiles_x\",\n \"u32\",\n `u32(${constants}[0u].z)`\n ),\n letStatement(\n program, 2, 3, \"initialize_bin\", \"bool\", \"local_index < 64u\"),\n letStatement(\n program, 2, 3, \"write_histogram\", \"bool\", \"local_index < 16u\"),\n {\n kind: \"if\",\n ...location(program, 3, 4),\n condition: expression(\"initialize_bin\", \"bool\"),\n statements: [\n callStatement(\n program, 4, 5, \"atomicStore(&g0[local_index], 0u)\")\n ]\n },\n callStatement(program, 6, 7, \"workgroupBarrier()\"),\n {\n kind: \"if\",\n ...location(program, 9, 10),\n condition: expression(inBounds, \"bool\"),\n statements: sourceRgb\n },\n callStatement(program, 32, 33, \"workgroupBarrier()\"),\n {\n kind: \"if\",\n ...location(program, 33, 34),\n condition: expression(\"write_histogram\", \"bool\"),\n statements: [\n letStatement(\n program,\n 35,\n 35,\n \"group_linear\",\n \"u32\",\n \"(workgroup_id.y * screen_tiles_x) + workgroup_id.x\"\n ),\n letStatement(\n program,\n 39,\n 39,\n \"output_element\",\n \"u32\",\n \"(group_linear << 4u) + local_index\"\n ),\n letStatement(\n program,\n 38,\n 38,\n \"histogram_base\",\n \"u32\",\n \"local_index << 2u\"\n ),\n letStatement(\n program,\n 40,\n 40,\n \"histogram_words\",\n \"vec4<u32>\",\n \"vec4<u32>(\"\n + \"atomicLoad(&g0[histogram_base + 0u]), \"\n + \"atomicLoad(&g0[histogram_base + 1u]), \"\n + \"atomicLoad(&g0[histogram_base + 2u]), \"\n + \"atomicLoad(&g0[histogram_base + 3u]))\"\n ),\n {\n kind: \"if\",\n ...location(program, 46, 46),\n condition: expression(\n `output_element < (arrayLength(&${output}) / 4u)`,\n \"bool\"\n ),\n statements: outputStores\n }\n ]\n },\n {\n kind: \"return\",\n ...location(program, 48, 48)\n }\n ];\n}\n\n/**\n * Lowers the two exact CreateHistograms backend schedules to one canonical\n * 16x16 atomic histogram program.\n *\n * @param {object} program CJS shader IR program.\n * @param {object} [options] Exact compute-only binding options.\n * @returns {object} Typed compute program.\n */\nexport function lowerCreateHistogramsComputeProgram(program, options = {})\n{\n validateDeclarations(program);\n validateBody(program);\n const bindings = lowerBindingLayout(\n program,\n options.bindingPlan ?? null\n );\n validateBindings(bindings);\n return deepFreeze({\n kind: \"typed-shader-program\",\n format: \"CJS_TYPED_SHADER\",\n formatVersion: 1,\n source: program.source,\n stage: \"compute\",\n entryPoint: \"main\",\n builtinInputs: [\n {\n builtin: \"workgroup_id\",\n name: \"workgroup_id\",\n type: \"vec3<u32>\"\n },\n {\n builtin: \"local_invocation_id\",\n name: \"local_invocation_id\",\n type: \"vec3<u32>\"\n },\n {\n builtin: \"global_invocation_id\",\n name: \"dispatch_thread_id\",\n type: \"vec3<u32>\"\n }\n ],\n threadGroupSize: [ 16, 16, 1 ],\n workgroupVariables: [\n { name: \"g0\", elementType: \"atomic<u32>\", elementCount: 64 }\n ],\n bindings,\n statements: lowerBody(program, bindings)\n });\n}\n"],"names":["DECLARATION_OPCODES","Object","freeze","BLOCK_BEFORE","Set","BLOCK_AFTER","CONTROL_KIND","if","endif","ret","SYNC_NAMES","expectedOperand","typeName","registerIndex","selectionModeName","selector","immediateValues","modifierName","componentCount","mask","swizzle","select","none","immediate","values","length","body","opcodeName","operands","options","saturate","testBoolean","resinfoReturnTypeName","BODY_SM50","BODY_SM51","clonePlain","value","Array","isArray","map","fromEntries","entries","key","entry","deepFreeze","isFrozen","buildBlocks","instructions","leaders","index","has","add","starts","from","sort","left","right","start","blockIndex","end","last","kind","id","startInstruction","endInstruction","startDxbcOffset","dxbcOffset","endDxbcOffset","instructionIndices","_","offset","terminator","analysisSnapshot","program","blocks","controlFlow","instruction","dataflow","typeInfo","firstDifference","path","is","difference","keys","JSON","stringify","validateAnalysisMetadata","rebuilt","buildControlFlow","analyzeRegisterValues","resolveRegisterFlow","inferValueTypes","originalSnapshot","rebuiltSnapshot","Error","operand","selected","isCanonicalIndex","dimension","representation","relative","validateCanonicalIndices","expected","context","indices","some","validateSm51Range","data","range","bindingRange","bindingModel","rangeId","lowerBound","upperBound","unbounded","registerCount","registerSpace","expectedIndices","minor","declaration","Number","isInteger","includes","validateSm51Reference","reference","resourceReference","nonUniform","absoluteIndex","bufferIndex","vectorOffset","undefined","validateOperand","minPrecisionName","uint32","isCreateHistogramsComputeProfile","stage","declarations","every","validateDeclarationOperand","validateBuiltinDeclaration","operandType","operandTypeName","validateDeclarations","shaderModel","format","formatVersion","major","TypeError","tailTokens","signatures","input","output","patch","immediateConstantBuffer","constTables","requireRefactoringAllowed","global","constants","groupId","localId","dispatchId","temps","shared","group","globalFlags","refactoringAllowed","accessPattern","sizeInVec4","resourceDimension","resourceDimensionName","sampleCount","returnType","returnTypes","returnTypeNames","globallyCoherent","tempCount","structureStride","structureCount","threadGroupX","threadGroupY","threadGroupZ","validTextureExtensions","extensions","token","type","resourceReturnTypes","validateBody","expectedBody","operandIndex","expectedEntry","sync","controlKind","preciseMask","syncFlags","syncFlagNames","origins","reduce","counts","origin","edgeCount","regions","unreachableBlockIds","Map","ref","reads","flatMap","read","refs","get","valueId","plans","buildSelectionPlans","size","hasElse","merges","validateBindings","bindings","resourceKind","generatedSymbol","buffer","hasDynamicOffset","minBindingSize","texture","sampleType","viewDimension","multisampled","location","sm50Index","sm51Index","instructionIndex","expression","code","letStatement","name","callStatement","lowerBody","textureSize","inBounds","sourceRgb","condition","statements","outputStores","component","word","lowerCreateHistogramsComputeProgram","lowerBindingLayout","bindingPlan","source","entryPoint","builtinInputs","builtin","threadGroupSize","workgroupVariables","elementType","elementCount"],"mappings":"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"}