@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":"lowerParticleClearComputePrograms.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.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 RESET_KEY = \"Main.pass0.compute\";\nconst CLEAR_KEY = \"Main.pass1.compute\";\nconst PROOF_CLASS = \"particle-clear-r32sint-v1\";\nconst RESET_DECLARATIONS = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_unordered_access_view_typed\",\n \"dcl_thread_group\"\n]);\nconst CLEAR_DECLARATIONS = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_constant_buffer\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_unordered_access_view_typed\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_input\",\n \"dcl_temps\",\n \"dcl_thread_group\"\n]);\nconst RESET_OPCODES = Object.freeze([ \"store_uav_typed\", \"ret\" ]);\nconst CLEAR_OPCODES = Object.freeze([\n \"ushr\", \"mov\", \"loop\", \"uge\", \"breakc\", \"bfi\",\n \"store_structured\", \"store_structured\", \"imm_atomic_iadd\",\n \"store_structured\", \"iadd\", \"endloop\",\n \"if\", \"and\", \"mov\", \"loop\", \"uge\", \"breakc\",\n \"store_structured\", \"store_structured\", \"imm_atomic_iadd\",\n \"store_structured\", \"iadd\", \"endloop\", \"endif\", \"ret\"\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 loop: \"loop\",\n breakc: \"loop\",\n endloop: \"loop\",\n if: \"selection\",\n endif: \"selection\",\n ret: \"termination\"\n});\nconst proofRecords = new WeakMap();\nconst contextRecords = new WeakMap();\n\nfunction expectedOperand(\n typeName,\n registerIndex,\n componentCount,\n selectionModeName,\n selector = \"\",\n indices = [],\n immediateValues = [],\n resourceReference = null\n)\n{\n return Object.freeze({\n typeName,\n registerIndex,\n componentCount,\n selectionModeName,\n selector,\n indices: Object.freeze(indices),\n immediateValues: Object.freeze(immediateValues),\n resourceReference\n });\n}\n\nfunction registerOperand(typeName, registerIndex, selector, destination = false)\n{\n return expectedOperand(\n typeName,\n registerIndex,\n 4,\n destination ? \"mask\" : \"select1\",\n selector,\n [ registerIndex ]\n );\n}\n\nfunction temp(registerIndex, selector, destination = false)\n{\n return registerOperand(\"temp\", registerIndex, selector, destination);\n}\n\nfunction flattenedInput()\n{\n return expectedOperand(\n \"input_thread_id_in_group_flattened\",\n null,\n 4,\n \"select1\",\n \"x\"\n );\n}\n\nfunction immediate(...values)\n{\n return expectedOperand(\n \"immediate32\",\n null,\n values.length,\n values.length === 1 ? \"none\" : \"mask\",\n \"\",\n [],\n values\n );\n}\n\nfunction sm51UavReference(registerIndex)\n{\n return Object.freeze({\n bindingModel: \"sm5.1-range\",\n rangeId: registerIndex,\n nonUniform: false,\n absoluteIndex: Object.freeze({\n dimension: 1,\n representation: 0,\n values: Object.freeze([ registerIndex ]),\n relative: null\n }),\n bufferIndex: null,\n vectorOffset: null\n });\n}\n\nfunction sm51ConstantBufferReference()\n{\n return Object.freeze({\n bindingModel: \"sm5.1-range\",\n rangeId: 0,\n nonUniform: false,\n absoluteIndex: null,\n bufferIndex: Object.freeze({\n dimension: 1,\n representation: 0,\n values: Object.freeze([ 3 ]),\n relative: null\n }),\n vectorOffset: Object.freeze({\n dimension: 2,\n representation: 0,\n values: Object.freeze([ 0 ]),\n relative: null\n })\n });\n}\n\nfunction uav(registerIndex, selector, minor, destination = false, atomic = false)\n{\n return expectedOperand(\n \"uav\",\n registerIndex,\n atomic ? 0 : 4,\n atomic ? \"none\" : destination ? \"mask\" : \"select1\",\n atomic ? \"\" : selector,\n minor === 0 ? [ registerIndex ] : [ registerIndex, registerIndex ],\n [],\n minor === 0 ? null : sm51UavReference(registerIndex)\n );\n}\n\nfunction constantBuffer(minor)\n{\n return expectedOperand(\n \"constant_buffer\",\n minor === 0 ? 3 : 0,\n 4,\n \"select1\",\n \"x\",\n minor === 0 ? [ 3, 0 ] : [ 0, 3, 0 ],\n [],\n minor === 0 ? null : sm51ConstantBufferReference()\n );\n}\n\nfunction body(opcodeName, operands = [], testBoolean = null)\n{\n return Object.freeze({\n opcodeName,\n operands: Object.freeze(operands),\n testBoolean\n });\n}\n\nfunction clearBody(minor)\n{\n return Object.freeze([\n body(\"ushr\", [\n temp(0, \"x\", true),\n constantBuffer(minor),\n immediate(8)\n ]),\n body(\"mov\", [ temp(0, \"y\", true), immediate(0) ]),\n body(\"loop\"),\n body(\"uge\", [\n temp(0, \"z\", true),\n temp(0, \"y\"),\n temp(0, \"x\")\n ]),\n body(\"breakc\", [ temp(0, \"z\") ], \"nonzero\"),\n body(\"bfi\", [\n temp(0, \"z\", true),\n immediate(24),\n immediate(8),\n temp(0, \"y\"),\n flattenedInput()\n ]),\n body(\"store_structured\", [\n uav(2, \"xyzw\", minor, true),\n temp(0, \"z\"),\n immediate(0),\n immediate(0, 0, 0, 0xbf800000)\n ]),\n body(\"store_structured\", [\n uav(2, \"xyzw\", minor, true),\n temp(0, \"z\"),\n immediate(16),\n immediate(0, 0, 0, 0)\n ]),\n body(\"imm_atomic_iadd\", [\n temp(1, \"x\", true),\n uav(1, \"\", minor, false, true),\n immediate(0),\n immediate(1)\n ]),\n body(\"store_structured\", [\n uav(0, \"x\", minor, true),\n temp(1, \"x\"),\n immediate(0),\n temp(0, \"z\")\n ]),\n body(\"iadd\", [\n temp(0, \"y\", true),\n temp(0, \"y\"),\n immediate(1)\n ]),\n body(\"endloop\"),\n body(\"if\", [ flattenedInput() ], \"zero\"),\n body(\"and\", [\n temp(0, \"x\", true),\n constantBuffer(minor),\n immediate(0xffffff00)\n ]),\n body(\"mov\", [ temp(0, \"y\", true), temp(0, \"x\") ]),\n body(\"loop\"),\n body(\"uge\", [\n temp(0, \"z\", true),\n temp(0, \"y\"),\n constantBuffer(minor)\n ]),\n body(\"breakc\", [ temp(0, \"z\") ], \"nonzero\"),\n body(\"store_structured\", [\n uav(2, \"xyzw\", minor, true),\n temp(0, \"y\"),\n immediate(0),\n immediate(0, 0, 0, 0xbf800000)\n ]),\n body(\"store_structured\", [\n uav(2, \"xyzw\", minor, true),\n temp(0, \"y\"),\n immediate(16),\n immediate(0, 0, 0, 0)\n ]),\n body(\"imm_atomic_iadd\", [\n temp(1, \"x\", true),\n uav(1, \"\", minor, false, true),\n immediate(0),\n immediate(1)\n ]),\n body(\"store_structured\", [\n uav(0, \"x\", minor, true),\n temp(1, \"x\"),\n immediate(0),\n temp(0, \"y\")\n ]),\n body(\"iadd\", [\n temp(0, \"y\", true),\n temp(0, \"y\"),\n immediate(1)\n ]),\n body(\"endloop\"),\n body(\"endif\"),\n body(\"ret\")\n ]);\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, label)\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 particle ${label} 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 canonicalIndex(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 validateIndices(operand, expected, context)\n{\n if (operand.indices?.length !== expected.length\n || expected.some((value, dimension) =>\n !canonicalIndex(operand.indices[dimension], dimension, value)))\n {\n throw new Error(\n `WGSL particle ${context} has non-canonical index metadata`\n );\n }\n}\n\nfunction validateResourceReference(operand, expected, context)\n{\n const actual = operand.resourceReference ?? null;\n if (JSON.stringify(actual) !== JSON.stringify(expected))\n {\n throw new Error(\n `WGSL particle ${context} has inconsistent SM5.1 resource-reference metadata`\n );\n }\n}\n\nfunction validateOperand(operand, expected, context)\n{\n const immediateValues = (operand.immediateValues || [])\n .map((entry) => entry.uint32);\n if (operand.typeName !== expected.typeName\n || (operand.registerIndex ?? null) !== expected.registerIndex\n || operand.componentCount !== expected.componentCount\n || operand.selectionModeName !== expected.selectionModeName\n || selector(operand) !== expected.selector\n || operand.modifierName !== \"none\"\n || operand.minPrecisionName !== \"default\"\n || operand.nonUniform !== false\n || JSON.stringify(immediateValues)\n !== JSON.stringify(expected.immediateValues))\n {\n throw new Error(\n `WGSL particle ${context} does not match the exact operand shape`\n );\n }\n validateIndices(operand, expected.indices, context);\n validateResourceReference(\n operand,\n expected.resourceReference,\n context\n );\n}\n\nfunction exactOpcodeShape(program, declarations, instructions)\n{\n return program?.format === \"CJS_SHADER_IR\"\n && program.formatVersion === 1\n && program.stage === \"compute\"\n && program.shaderModel?.major === 5\n && (program.shaderModel.minor === 0 || program.shaderModel.minor === 1)\n && program.declarations?.length === declarations.length\n && declarations.every((opcode, index) =>\n program.declarations[index]?.opcodeName === opcode)\n && program.instructions?.length === instructions.length\n && instructions.every((opcode, index) =>\n program.instructions[index]?.opcodeName === opcode);\n}\n\n/**\n * Declaration-shaped selector for the effect-authorized scalar reset.\n *\n * @param {object} program CJS shader IR.\n * @returns {boolean} Whether validation must be final in the reset profile.\n */\nexport function isParticleClearResetCandidate(program)\n{\n if (!exactOpcodeShape(program, RESET_DECLARATIONS, RESET_OPCODES))\n {\n return false;\n }\n const declaration = program.declarations[1];\n const group = program.declarations[2]?.data;\n return declaration.data?.resourceDimensionName === \"buffer\"\n && declaration.data?.returnType?.returnTypeNames?.every(\n (entry) => entry === \"sint\")\n && group?.threadGroupX === 1\n && group.threadGroupY === 1\n && group.threadGroupZ === 1;\n}\n\n/**\n * Declaration/body selector for the self-proving particle initialization pass.\n *\n * @param {object} program CJS shader IR.\n * @returns {boolean} Whether the exact clear validator owns the program.\n */\nexport function isParticleClearInitializeCandidate(program)\n{\n return exactOpcodeShape(program, CLEAR_DECLARATIONS, CLEAR_OPCODES);\n}\n\nfunction validateFiniteRange(data, rangeId, binding, context)\n{\n const range = data?.bindingRange;\n if (data?.bindingModel !== \"sm5.1-range\"\n || range?.bindingModel !== \"sm5.1-range\"\n || range.rangeId !== rangeId\n || range.lowerBound !== binding\n || range.upperBound !== binding\n || range.unbounded !== false\n || range.registerCount !== 1\n || range.registerSpace !== 0)\n {\n throw new Error(\n `WGSL particle ${context} requires the exact finite SM5.1 range`\n );\n }\n}\n\nfunction validateDeclarationOperand(\n operand,\n expected,\n token,\n type,\n length,\n context\n)\n{\n validateOperand(operand, expected, context);\n if (operand.token !== token\n || operand.type !== type\n || operand.length !== length)\n {\n throw new Error(\n `WGSL particle ${context} has inconsistent raw operand framing`\n );\n }\n}\n\nfunction typedSintData(data, registerIndex)\n{\n return data?.resourceDimension === 1\n && data.resourceDimensionName === \"buffer\"\n && data.globallyCoherent === false\n && data.registerIndex === registerIndex\n && data.returnType?.token === 13107\n && JSON.stringify(data.returnType.returnTypes) === \"[3,3,3,3]\"\n && JSON.stringify(data.returnType.returnTypeNames)\n === \"[\\\"sint\\\",\\\"sint\\\",\\\"sint\\\",\\\"sint\\\"]\";\n}\n\nfunction validateBinding(\n program,\n resourceKind,\n registerIndex,\n rangeId,\n structureStride,\n typed,\n context\n)\n{\n const binding = program.bindings.find((entry) =>\n entry.resourceKind === resourceKind\n && entry.registerIndex === registerIndex);\n const range = binding?.range;\n const minor = program.shaderModel.minor;\n if (!binding\n || range?.bindingModel !== (minor === 0\n ? \"sm5.0-register\"\n : \"sm5.1-range\")\n || range.rangeId !== (minor === 0 ? null : rangeId)\n || range.lowerBound !== registerIndex\n || range.upperBound !== registerIndex\n || range.unbounded !== false\n || range.registerCount !== 1\n || range.registerSpace !== 0\n || (binding.structureStride ?? null) !== structureStride\n || (typed\n ? binding.resourceDimension !== \"buffer\"\n || binding.returnType?.token !== 13107\n || binding.returnType.returnTypeNames?.some(\n (entry) => entry !== \"sint\")\n : structureStride !== null\n && (binding.resourceDimension !== null\n || binding.returnType !== null)))\n {\n throw new Error(\n `WGSL particle ${context} has inconsistent binding metadata`\n );\n }\n}\n\nfunction validateResetDeclarations(program)\n{\n if (!isParticleClearResetCandidate(program))\n {\n throw new Error(\n \"WGSL particle counter reset requires the exact declaration and body family\"\n );\n }\n requireRefactoringAllowed(program, \"particle counter reset compute\");\n const minor = program.shaderModel.minor;\n const declaration = program.declarations[1];\n const group = program.declarations[2];\n if (!typedSintData(declaration.data, 0)\n || declaration.operands?.length !== 1\n || group.operands?.length\n || program.declarations.some((entry) => entry.tailTokens?.length))\n {\n throw new Error(\n \"WGSL particle counter reset requires one exact signed typed UAV\"\n );\n }\n const expected = expectedOperand(\n \"uav\",\n 0,\n minor === 0 ? 0 : 4,\n minor === 0 ? \"none\" : \"swizzle\",\n minor === 0 ? \"\" : \"xyzw\",\n minor === 0 ? [ 0 ] : [ 0, 0, 0 ]\n );\n validateDeclarationOperand(\n declaration.operands[0],\n expected,\n minor === 0 ? 1171456 : 3272262,\n 30,\n minor === 0 ? 2 : 4,\n \"counter-reset UAV declaration\"\n );\n if (minor === 0)\n {\n if (declaration.data.bindingModel !== undefined\n || declaration.data.bindingRange !== undefined)\n {\n throw new Error(\n \"WGSL particle counter reset SM5.0 declaration has unexpected range metadata\"\n );\n }\n }\n else validateFiniteRange(declaration.data, 0, 0, \"counter-reset UAV\");\n validateBinding(\n program,\n \"storage-resource\",\n 0,\n 0,\n null,\n true,\n \"counter-reset u0\"\n );\n if (program.bindings.length !== 1)\n {\n throw new Error(\n \"WGSL particle counter reset requires exactly one binding\"\n );\n }\n}\n\nfunction validateResetBody(program)\n{\n const minor = program.shaderModel.minor;\n const expected = [\n body(\"store_uav_typed\", [\n uav(0, \"xyzw\", minor, true),\n immediate(0, 0, 0, 0),\n immediate(0, 0, 0, 0)\n ]),\n body(\"ret\")\n ];\n for (const [ index, entry ] of expected.entries())\n {\n const instruction = program.instructions[index];\n if (instruction.index !== index\n || instruction.opcodeName !== entry.opcodeName\n || instruction.operands?.length !== entry.operands.length)\n {\n throw new Error(\n \"WGSL particle counter reset requires the exact two-instruction body\"\n );\n }\n for (const [ operandIndex, operand ] of entry.operands.entries())\n {\n validateOperand(\n instruction.operands[operandIndex],\n operand,\n `counter-reset instruction ${index} operand ${operandIndex}`\n );\n }\n if (instruction.controlKind\n !== (CONTROL_KIND[instruction.opcodeName] || null)\n || instruction.testBoolean !== null\n || instruction.saturate !== false\n || instruction.preciseMask !== \"\"\n || instruction.tailTokens?.length\n || instruction.extensionRecords?.length)\n {\n throw new Error(\n `WGSL particle counter-reset instruction ${index} has inconsistent envelope metadata`\n );\n }\n }\n validateAnalysisMetadata(program, \"counter-reset\");\n if (program.blocks.length !== 1\n || program.controlFlow.edgeCount !== 0\n || program.controlFlow.regions.length\n || program.controlFlow.unreachableBlockIds.length\n || program.values.length\n || buildSelectionPlans(program, \"particle counter reset\").size)\n {\n throw new Error(\n \"WGSL particle counter reset requires the canonical empty dataflow\"\n );\n }\n}\n\nfunction validateClearDeclarationOperand(\n declaration,\n typeName,\n registerIndex,\n minor,\n context\n)\n{\n const constantBuffer = typeName === \"constant_buffer\";\n const input = typeName === \"input_thread_id_in_group_flattened\";\n const expected = expectedOperand(\n typeName,\n input ? null : minor === 0 || !constantBuffer ? registerIndex : 0,\n input ? 0 : minor === 0 && !constantBuffer ? 0 : 4,\n input || minor === 0 && !constantBuffer ? \"none\" : \"swizzle\",\n input || minor === 0 && !constantBuffer ? \"\" : \"xyzw\",\n input\n ? []\n : constantBuffer\n ? minor === 0 ? [ 3, 1 ] : [ 0, 3, 3 ]\n : minor === 0\n ? [ registerIndex ]\n : [ registerIndex, registerIndex, registerIndex ]\n );\n const token = input\n ? 147456\n : constantBuffer\n ? minor === 0 ? 2133574 : 3182150\n : minor === 0 ? 1171456 : 3272262;\n const type = input ? 36 : constantBuffer ? 8 : 30;\n const length = input ? 1 : minor === 0 ? constantBuffer ? 3 : 2 : 4;\n validateDeclarationOperand(\n declaration.operands[0],\n expected,\n token,\n type,\n length,\n context\n );\n}\n\nfunction validateClearDeclarations(program)\n{\n if (!isParticleClearInitializeCandidate(program))\n {\n throw new Error(\n \"WGSL particle clear requires the exact declaration and 26-opcode family\"\n );\n }\n requireRefactoringAllowed(program, \"particle clear compute\");\n const minor = program.shaderModel.minor;\n if (program.declarations.some((entry) => entry.tailTokens?.length)\n || program.declarations.slice(1, 6).some((entry) =>\n entry.operands?.length !== 1)\n || program.declarations.slice(6).some((entry) =>\n entry.operands?.length))\n {\n throw new Error(\n \"WGSL particle clear declarations contain unsupported framing\"\n );\n }\n const cb = program.declarations[1];\n const dead = program.declarations[2];\n const counter = program.declarations[3];\n const particles = program.declarations[4];\n const input = program.declarations[5];\n const temps = program.declarations[6];\n const group = program.declarations[7];\n if (cb.data?.accessPattern !== \"immediate_indexed\"\n || cb.data.registerIndex !== 3\n || cb.data.sizeInVec4 !== 1\n || dead.data?.globallyCoherent !== false\n || dead.data.structureStride !== 4\n || dead.data.registerIndex !== 0\n || !typedSintData(counter.data, 1)\n || particles.data?.globallyCoherent !== false\n || particles.data.structureStride !== 32\n || particles.data.registerIndex !== 2\n || input.data?.registerIndex !== null\n || input.data.operandType !== 36\n || input.data.operandTypeName\n !== \"input_thread_id_in_group_flattened\"\n || temps.data?.tempCount !== 2\n || group.data?.threadGroupX !== 16\n || group.data.threadGroupY !== 16\n || group.data.threadGroupZ !== 1)\n {\n throw new Error(\n \"WGSL particle clear declarations do not match cb3/u0/u1/u2/local-index/temp2/16x16x1\"\n );\n }\n validateClearDeclarationOperand(\n cb, \"constant_buffer\", 3, minor, \"clear cb3 declaration\");\n validateClearDeclarationOperand(\n dead, \"uav\", 0, minor, \"clear DeadBuffer declaration\");\n validateClearDeclarationOperand(\n counter, \"uav\", 1, minor, \"clear ParticleCounters declaration\");\n validateClearDeclarationOperand(\n particles, \"uav\", 2, minor, \"clear ParticleBuffer declaration\");\n validateClearDeclarationOperand(\n input,\n \"input_thread_id_in_group_flattened\",\n null,\n minor,\n \"clear local-index declaration\"\n );\n if (minor === 0)\n {\n for (const declaration of [ cb, dead, counter, particles ])\n {\n if (declaration.data.bindingModel !== undefined\n || declaration.data.bindingRange !== undefined)\n {\n throw new Error(\n \"WGSL particle clear SM5.0 declarations have unexpected range metadata\"\n );\n }\n }\n }\n else\n {\n validateFiniteRange(cb.data, 0, 3, \"clear cb3\");\n validateFiniteRange(dead.data, 0, 0, \"clear DeadBuffer\");\n validateFiniteRange(counter.data, 1, 1, \"clear ParticleCounters\");\n validateFiniteRange(particles.data, 2, 2, \"clear ParticleBuffer\");\n }\n validateBinding(\n program, \"uniform-buffer\", 3, 0, null, false, \"clear cb3\");\n validateBinding(\n program, \"storage-resource\", 0, 0, 4, false, \"clear DeadBuffer\");\n validateBinding(\n program, \"storage-resource\", 1, 1, null, true,\n \"clear ParticleCounters\");\n validateBinding(\n program, \"storage-resource\", 2, 2, 32, false,\n \"clear ParticleBuffer\");\n if (program.bindings.length !== 4)\n {\n throw new Error(\"WGSL particle clear requires exactly four bindings\");\n }\n}\n\nfunction validateClearBody(program)\n{\n const expectedBody = clearBody(program.shaderModel.minor);\n for (const [ index, expected ] of expectedBody.entries())\n {\n const instruction = program.instructions[index];\n if (instruction?.index !== index\n || instruction.opcodeName !== expected.opcodeName\n || instruction.operands?.length !== expected.operands.length)\n {\n throw new Error(\n \"WGSL particle clear requires the exact 26-instruction schedule\"\n );\n }\n for (const [ operandIndex, operand ] of expected.operands.entries())\n {\n validateOperand(\n instruction.operands[operandIndex],\n operand,\n `clear instruction ${index} operand ${operandIndex}`\n );\n }\n if ((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 !== false\n || instruction.preciseMask !== \"\"\n || instruction.tailTokens?.length\n || instruction.extensionRecords?.length\n || instruction.syncFlags !== undefined\n || instruction.syncFlagNames !== undefined\n || instruction.resinfoReturnTypeName !== undefined)\n {\n throw new Error(\n `WGSL particle clear instruction ${index} has inconsistent envelope metadata`\n );\n }\n }\n validateAnalysisMetadata(program, \"clear\");\n const origins = program.values.reduce((counts, value) =>\n {\n counts[value.origin] = (counts[value.origin] || 0) + 1;\n return counts;\n }, {});\n if (program.blocks.length !== 13\n || program.controlFlow.edgeCount !== 15\n || program.controlFlow.regions.length !== 3\n || program.controlFlow.unreachableBlockIds.length\n || program.values.length !== 20\n || origins[\"instruction-write\"] !== 11\n || origins[\"control-flow-merge\"] !== 2\n || origins[\"program-input\"] !== 1\n || origins[\"undefined-register\"] !== 6)\n {\n throw new Error(\n \"WGSL particle clear requires the canonical CFG and SSA 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) => read.refs))\n {\n if (values.get(ref.valueId)?.origin === \"undefined-register\")\n {\n throw new Error(\n `WGSL particle clear instruction ${instruction.index} reads undefined register data`\n );\n }\n }\n }\n const plans = buildSelectionPlans(program, \"particle clear compute\");\n const first = plans.get(2);\n const selection = plans.get(12);\n const tail = plans.get(15);\n const firstMerge = first?.merges?.[0];\n const tailMerge = tail?.merges?.[0];\n if (plans.size !== 3\n || first?.kind !== \"loop\"\n || first.preheaderBlockId !== \"block0\"\n || first.backedgeBlockId !== \"block4\"\n || first.merges.length !== 1\n || firstMerge.id !== \"value41\"\n || firstMerge.type !== \"u32\"\n || firstMerge.entryIncoming?.blockId !== \"block0\"\n || firstMerge.entryIncoming?.valueId !== \"value4\"\n || firstMerge.entryIncoming?.component !== \"y\"\n || firstMerge.backedgeIncoming?.valueId !== \"value18\"\n || firstMerge.backedgeIncoming?.component !== \"y\"\n || first.exitMerges.length\n || first.exitEdges.size\n || selection?.kind !== \"selection\"\n || selection.hasElse\n || selection.merges.length\n || tail?.kind !== \"loop\"\n || tail.preheaderBlockId !== \"block6\"\n || tail.backedgeBlockId !== \"block10\"\n || tail.merges.length !== 1\n || tailMerge.id !== \"value51\"\n || tailMerge.type !== \"u32\"\n || tailMerge.entryIncoming?.blockId !== \"block6\"\n || tailMerge.entryIncoming?.valueId !== \"value24\"\n || tailMerge.entryIncoming?.component !== \"y\"\n || tailMerge.backedgeIncoming?.valueId !== \"value37\"\n || tailMerge.backedgeIncoming?.component !== \"y\"\n || tail.exitMerges.length\n || tail.exitEdges.size)\n {\n throw new Error(\n \"WGSL particle clear requires the canonical loop and selection merges\"\n );\n }\n}\n\nfunction validateResetProgram(program)\n{\n validateResetDeclarations(program);\n validateResetBody(program);\n}\n\nfunction validateClearProgram(program)\n{\n validateClearDeclarations(program);\n validateClearBody(program);\n}\n\nfunction activeStages(pass)\n{\n return (pass?.stageInputs || []).filter((stage) => stage?.m_exists);\n}\n\nfunction reflectedUavs(stage)\n{\n return Array.from(stage?.uavs || [], ([ registerIndex, resource ]) => ({\n registerIndex,\n name: resource?.name,\n type: resource?.type,\n arrayElements: resource?.arrayElements\n })).sort((left, right) => left.registerIndex - right.registerIndex);\n}\n\nfunction exactReflection(stage, expected)\n{\n const resources = Array.from(stage?.resources || []);\n return resources.length === 0\n && JSON.stringify(reflectedUavs(stage)) === JSON.stringify(expected);\n}\n\nfunction effectStages(effectDescription)\n{\n const techniques = effectDescription?.techniques;\n if (!Array.isArray(techniques)\n || techniques.length !== 1\n || techniques[0]?.name !== \"Main\"\n || !Array.isArray(techniques[0].passes)\n || techniques[0].passes.length !== 2)\n {\n return null;\n }\n const resetStages = activeStages(techniques[0].passes[0]);\n const clearStages = activeStages(techniques[0].passes[1]);\n if (resetStages.length !== 1\n || clearStages.length !== 1\n || resetStages[0].cjsShaderBytecode?.stageName !== \"compute\"\n || clearStages[0].cjsShaderBytecode?.stageName !== \"compute\")\n {\n return null;\n }\n return { reset: resetStages[0], clear: clearStages[0] };\n}\n\n/**\n * Cheap reflection/topology candidate check used before companion decoding.\n *\n * @param {object} effectDescription Resolved complete effect description.\n * @returns {boolean} Whether exact particle-clear preflight should run.\n */\nexport function isParticleClearEffectCandidate(effectDescription)\n{\n const stages = effectStages(effectDescription);\n return !!stages\n && exactReflection(stages.reset, [\n {\n registerIndex: 0,\n name: \"ParticleCounters\",\n type: 10,\n arrayElements: 1\n }\n ])\n && exactReflection(stages.clear, [\n {\n registerIndex: 0,\n name: \"DeadBuffer\",\n type: 11,\n arrayElements: 1\n },\n {\n registerIndex: 1,\n name: \"ParticleCounters\",\n type: 10,\n arrayElements: 1\n },\n {\n registerIndex: 2,\n name: \"ParticleBuffer\",\n type: 11,\n arrayElements: 1\n }\n ]);\n}\n\n/**\n * Mints per-program opaque authorization after validating the complete two-pass\n * effect, reflection identity, and both exact shader profiles.\n *\n * @param {object} effectDescription Resolved complete effect description.\n * @param {Map<string, object>} programsByKey Both companion CJS shader IRs.\n * @returns {object|null} Opaque effect context, or null for an unrelated effect.\n */\nexport function preflightParticleClearEffectProfile(\n effectDescription,\n programsByKey\n)\n{\n if (!isParticleClearEffectCandidate(effectDescription)) return null;\n if (!(programsByKey instanceof Map))\n {\n throw new TypeError(\n \"Particle-clear effect preflight requires a program map\"\n );\n }\n const reset = programsByKey.get(RESET_KEY);\n const clear = programsByKey.get(CLEAR_KEY);\n if (!reset || !clear)\n {\n throw new Error(\n \"Particle-clear effect preflight requires both exact companion programs\"\n );\n }\n validateResetProgram(reset);\n validateClearProgram(clear);\n const resetProof = Object.freeze({});\n const clearProof = Object.freeze({});\n proofRecords.set(resetProof, {\n proofClass: PROOF_CLASS,\n role: \"reset\",\n program: reset\n });\n proofRecords.set(clearProof, {\n proofClass: PROOF_CLASS,\n role: \"clear\",\n program: clear\n });\n const context = Object.freeze({});\n contextRecords.set(context, {\n proofClass: PROOF_CLASS,\n proofs: new Map([\n [ RESET_KEY, resetProof ],\n [ CLEAR_KEY, clearProof ]\n ])\n });\n return context;\n}\n\n/**\n * Returns one proof token only from a branded effect context.\n *\n * @param {object|null} context Opaque preflight result.\n * @param {string} key Canonical effect-stage key.\n * @returns {object|null} Per-program proof token.\n */\nexport function particleClearEffectProofFor(context, key)\n{\n return contextRecords.get(context)?.proofs.get(key) ?? null;\n}\n\n/**\n * Returns the stable cache class of one authentic effect context.\n *\n * @param {object|null} context Opaque preflight result.\n * @returns {string|null} Cache-key proof class.\n */\nexport function particleClearEffectProofClass(context)\n{\n return contextRecords.get(context)?.proofClass ?? null;\n}\n\nfunction assertProof(program, proof, role)\n{\n const record = proofRecords.get(proof);\n if (record?.proofClass !== PROOF_CLASS\n || record.role !== role\n || record.program !== program)\n {\n throw new Error(\n `WGSL particle ${role} requires an exact whole-effect R32_SINT companion proof`\n );\n }\n}\n\n/**\n * Resolves the only signed typed-UAV layout admitted by this compiler.\n * Pass 0 requires its whole-effect proof; pass 1 proves its width through its\n * exact returned typed atomic.\n *\n * @param {object} program CJS shader IR.\n * @param {object|null} proof Optional per-program opaque proof.\n * @returns {object|null} Narrow lowerBindingLayout policy.\n */\nexport function particleClearSignedAtomicLayoutPolicy(program, proof = null)\n{\n if (isParticleClearResetCandidate(program))\n {\n assertProof(program, proof, \"reset\");\n validateResetProgram(program);\n return {\n signedAtomicI32Identities: [ \"storage-resource:0:0\" ]\n };\n }\n if (isParticleClearInitializeCandidate(program))\n {\n validateClearProgram(program);\n if (proof !== null && proof !== undefined)\n {\n assertProof(program, proof, \"clear\");\n }\n return {\n signedAtomicI32Identities: [ \"storage-resource:0:1\" ]\n };\n }\n return null;\n}\n\nfunction validateResetBindings(bindings)\n{\n const binding = bindings[0];\n if (bindings.length !== 1\n || binding?.resourceKind !== \"storage-resource\"\n || binding.registerSpace !== 0\n || binding.registerIndex !== 0\n || binding.generatedSymbol !== \"u0\"\n || binding.declaration !== \"var<storage, read_write>\"\n || binding.type !== \"array<atomic<i32>>\"\n || binding.buffer?.type !== \"storage\"\n || binding.buffer.hasDynamicOffset !== false\n || binding.buffer.minBindingSize !== 4)\n {\n throw new Error(\n \"WGSL particle counter-reset binding layout does not match signed u0\"\n );\n }\n}\n\nfunction validateClearBindings(bindings)\n{\n const expected = [\n [\n \"uniform-buffer\", 3, \"cb3\", \"var<uniform>\",\n \"array<vec4<f32>, 1>\", null, \"uniform\", 16\n ],\n [\n \"storage-resource\", 0, \"u0\", \"var<storage, read_write>\",\n \"array<u32>\", 4, \"storage\", 4\n ],\n [\n \"storage-resource\", 1, \"u1\", \"var<storage, read_write>\",\n \"array<atomic<i32>>\", null, \"storage\", 4\n ],\n [\n \"storage-resource\", 2, \"u2\", \"var<storage, read_write>\",\n \"array<u32>\", 32, \"storage\", 32\n ]\n ];\n if (bindings.length !== expected.length\n || expected.some(([\n kind, registerIndex, symbol, declaration, type, stride,\n bufferType, minSize\n ], index) =>\n {\n const binding = bindings[index];\n return binding?.resourceKind !== kind\n || binding.registerSpace !== 0\n || binding.registerIndex !== registerIndex\n || binding.generatedSymbol !== symbol\n || binding.declaration !== declaration\n || binding.type !== type\n || (binding.structureStride ?? null) !== stride\n || binding.buffer?.type !== bufferType\n || binding.buffer.hasDynamicOffset !== false\n || binding.buffer.minBindingSize !== minSize;\n }))\n {\n throw new Error(\n \"WGSL particle clear binding layout does not match cb3/u0/u1/u2\"\n );\n }\n}\n\nfunction location(program, instructionIndex)\n{\n const instruction = program.instructions[instructionIndex];\n return {\n instructionIndex,\n dxbcOffset: instruction.dxbcOffset\n };\n}\n\nfunction expression(code, type)\n{\n return { code, type };\n}\n\nfunction letStatement(program, index, name, type, code)\n{\n return {\n kind: \"let\",\n ...location(program, index),\n name,\n type,\n expression: expression(code, type)\n };\n}\n\nfunction varStatement(program, index, name, type, code)\n{\n return {\n kind: \"var\",\n ...location(program, index),\n name,\n type,\n expression: expression(code, type)\n };\n}\n\nfunction assignment(program, index, name, type, code)\n{\n return {\n kind: \"value-assignment\",\n ...location(program, index),\n name,\n type,\n expression: expression(code, type)\n };\n}\n\nfunction call(program, index, code)\n{\n return {\n kind: \"call\",\n ...location(program, index),\n expression: expression(code, \"void\")\n };\n}\n\nfunction particleStores(program, index, particle, suffix)\n{\n const base = `${particle} * 8u`;\n return [\n {\n kind: \"if\",\n ...location(program, index),\n condition: expression(\n `${particle} < arrayLength(&u2) / 8u`,\n \"bool\"\n ),\n statements: [\n assignment(program, index, `u2[${base} + 0u]`, \"u32\", \"0u\"),\n assignment(program, index, `u2[${base} + 1u]`, \"u32\", \"0u\"),\n assignment(program, index, `u2[${base} + 2u]`, \"u32\", \"0u\"),\n assignment(\n program,\n index,\n `u2[${base} + 3u]`,\n \"u32\",\n \"0xbf800000u\"\n ),\n assignment(program, index + 1, `u2[${base} + 4u]`, \"u32\", \"0u\"),\n assignment(program, index + 1, `u2[${base} + 5u]`, \"u32\", \"0u\"),\n assignment(program, index + 1, `u2[${base} + 6u]`, \"u32\", \"0u\"),\n assignment(program, index + 1, `u2[${base} + 7u]`, \"u32\", \"0u\")\n ]\n },\n letStatement(\n program,\n index + 2,\n `old_counter_${suffix}`,\n \"i32\",\n \"atomicAdd(&u1[0u], 1i)\"\n ),\n letStatement(\n program,\n index + 2,\n `dead_index_${suffix}`,\n \"u32\",\n `bitcast<u32>(old_counter_${suffix})`\n ),\n {\n kind: \"if\",\n ...location(program, index + 3),\n condition: expression(\n `dead_index_${suffix} < arrayLength(&u0)`,\n \"bool\"\n ),\n statements: [\n assignment(\n program,\n index + 3,\n `u0[dead_index_${suffix}]`,\n \"u32\",\n particle\n )\n ]\n }\n ];\n}\n\nfunction lowerClearBody(program)\n{\n const blockParticle = \"particle_index_blocks\";\n const tailParticle = \"particle_index_tail\";\n return [\n letStatement(\n program, 0, \"count\", \"u32\", \"bitcast<u32>(cb3[0u].x)\"),\n letStatement(program, 0, \"full_blocks\", \"u32\", \"count >> 8u\"),\n varStatement(program, 1, \"block_index\", \"u32\", \"0u\"),\n {\n kind: \"loop\",\n ...location(program, 2),\n statements: [\n {\n kind: \"if\",\n ...location(program, 3),\n condition: expression(\n \"block_index >= full_blocks\",\n \"bool\"\n ),\n statements: [ {\n kind: \"break\",\n ...location(program, 4)\n } ]\n },\n letStatement(\n program,\n 5,\n blockParticle,\n \"u32\",\n \"insertBits(local_invocation_index, block_index, 8u, 24u)\"\n ),\n ...particleStores(program, 6, blockParticle, \"blocks\"),\n assignment(\n program,\n 10,\n \"block_index\",\n \"u32\",\n \"block_index + 1u\"\n )\n ]\n },\n {\n kind: \"if\",\n ...location(program, 12),\n condition: expression(\"local_invocation_index == 0u\", \"bool\"),\n statements: [\n letStatement(\n program,\n 13,\n \"tail_base\",\n \"u32\",\n \"count & 0xffffff00u\"\n ),\n varStatement(\n program,\n 14,\n tailParticle,\n \"u32\",\n \"tail_base\"\n ),\n {\n kind: \"loop\",\n ...location(program, 15),\n statements: [\n {\n kind: \"if\",\n ...location(program, 16),\n condition: expression(\n `${tailParticle} >= count`,\n \"bool\"\n ),\n statements: [ {\n kind: \"break\",\n ...location(program, 17)\n } ]\n },\n ...particleStores(\n program,\n 18,\n tailParticle,\n \"tail\"\n ),\n assignment(\n program,\n 22,\n tailParticle,\n \"u32\",\n `${tailParticle} + 1u`\n )\n ]\n }\n ]\n },\n {\n kind: \"return\",\n ...location(program, 25)\n }\n ];\n}\n\n/**\n * Lowers the exact effect-authorized particle counter reset.\n *\n * @param {object} program CJS shader IR.\n * @param {object} [options] Binding plan and opaque effect proof.\n * @returns {object} Typed compute program.\n */\nexport function lowerParticleClearResetComputeProgram(program, options = {})\n{\n const policy = particleClearSignedAtomicLayoutPolicy(\n program,\n options.effectProfileProof ?? null\n );\n const bindings = lowerBindingLayout(\n program,\n options.bindingPlan ?? null,\n policy\n );\n validateResetBindings(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 threadGroupSize: [ 1, 1, 1 ],\n bindings,\n statements: [\n call(program, 0, \"atomicStore(&u0[0u], 0i)\"),\n { kind: \"return\", ...location(program, 1) }\n ]\n });\n}\n\n/**\n * Lowers the exact self-proving particle/dead-list initialization shader.\n *\n * @param {object} program CJS shader IR.\n * @param {object} [options] Optional binding plan/effect proof.\n * @returns {object} Typed compute program.\n */\nexport function lowerParticleClearInitializeComputeProgram(\n program,\n options = {}\n)\n{\n const policy = particleClearSignedAtomicLayoutPolicy(\n program,\n options.effectProfileProof ?? null\n );\n const bindings = lowerBindingLayout(\n program,\n options.bindingPlan ?? null,\n policy\n );\n validateClearBindings(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: \"local_invocation_index\",\n name: \"local_invocation_index\",\n type: \"u32\"\n }\n ],\n threadGroupSize: [ 16, 16, 1 ],\n bindings,\n statements: lowerClearBody(program)\n });\n}\n"],"names":["RESET_KEY","CLEAR_KEY","PROOF_CLASS","RESET_DECLARATIONS","Object","freeze","CLEAR_DECLARATIONS","RESET_OPCODES","CLEAR_OPCODES","BLOCK_BEFORE","Set","BLOCK_AFTER","CONTROL_KIND","loop","breakc","endloop","if","endif","ret","proofRecords","WeakMap","contextRecords","expectedOperand","typeName","registerIndex","componentCount","selectionModeName","selector","indices","immediateValues","resourceReference","registerOperand","destination","temp","flattenedInput","immediate","values","length","sm51UavReference","bindingModel","rangeId","nonUniform","absoluteIndex","dimension","representation","relative","bufferIndex","vectorOffset","sm51ConstantBufferReference","uav","minor","atomic","constantBuffer","body","opcodeName","operands","testBoolean","clearBody","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","label","rebuilt","buildControlFlow","analyzeRegisterValues","resolveRegisterFlow","inferValueTypes","originalSnapshot","rebuiltSnapshot","Error","operand","mask","swizzle","selected","canonicalIndex","validateIndices","expected","context","some","validateResourceReference","actual","validateOperand","uint32","modifierName","minPrecisionName","exactOpcodeShape","declarations","format","formatVersion","stage","shaderModel","major","every","opcode","isParticleClearResetCandidate","declaration","group","data","resourceDimensionName","returnType","returnTypeNames","threadGroupX","threadGroupY","threadGroupZ","isParticleClearInitializeCandidate","validateFiniteRange","binding","range","bindingRange","lowerBound","upperBound","unbounded","registerCount","registerSpace","validateDeclarationOperand","token","type","typedSintData","resourceDimension","globallyCoherent","returnTypes","validateBinding","resourceKind","structureStride","typed","bindings","find","validateResetDeclarations","requireRefactoringAllowed","tailTokens","undefined","validateResetBody","operandIndex","controlKind","saturate","preciseMask","extensionRecords","edgeCount","regions","unreachableBlockIds","buildSelectionPlans","size","validateClearDeclarationOperand","input","validateClearDeclarations","slice","cb","dead","counter","particles","temps","accessPattern","sizeInVec4","operandType","operandTypeName","tempCount","validateClearBody","expectedBody","syncFlags","syncFlagNames","resinfoReturnTypeName","origins","reduce","counts","origin","Map","ref","reads","flatMap","read","refs","get","valueId","plans","first","selection","tail","firstMerge","merges","tailMerge","preheaderBlockId","backedgeBlockId","entryIncoming","blockId","component","backedgeIncoming","exitMerges","exitEdges","hasElse","validateResetProgram","validateClearProgram","activeStages","pass","stageInputs","filter","m_exists","reflectedUavs","uavs","resource","name","arrayElements","exactReflection","resources","effectStages","effectDescription","techniques","passes","resetStages","clearStages","cjsShaderBytecode","stageName","reset","clear","isParticleClearEffectCandidate","stages","preflightParticleClearEffectProfile","programsByKey","TypeError","resetProof","clearProof","set","proofClass","role","proofs","particleClearEffectProofFor","assertProof","proof","record","particleClearSignedAtomicLayoutPolicy","signedAtomicI32Identities","validateResetBindings","generatedSymbol","buffer","hasDynamicOffset","minBindingSize","validateClearBindings","symbol","stride","bufferType","minSize","location","instructionIndex","expression","code","letStatement","varStatement","assignment","call","particleStores","particle","suffix","base","condition","statements","lowerClearBody","blockParticle","tailParticle","lowerParticleClearResetComputeProgram","options","policy","effectProfileProof","lowerBindingLayout","bindingPlan","source","entryPoint","threadGroupSize","lowerParticleClearInitializeComputeProgram","builtinInputs","builtin"],"mappings":"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"}