@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lowerCreateHistogramsComputeProgram.js","sources":["../../../../../../../src/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js"],"sourcesContent":["import { clonePlain } from \"#utils/object\";\nimport { 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 {\n typeName,\n registerIndex,\n componentCount,\n selectionModeName,\n selector,\n immediateValues: 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 = {}) => ({\n opcodeName,\n operands: 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 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 {\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","buildBlocks","instructions","leaders","index","has","add","starts","Array","from","sort","left","right","map","start","blockIndex","end","last","kind","id","startInstruction","endInstruction","startDxbcOffset","dxbcOffset","endDxbcOffset","instructionIndices","_","offset","terminator","analysisSnapshot","program","blocks","controlFlow","instruction","dataflow","typeInfo","firstDifference","path","is","isArray","difference","keys","key","JSON","stringify","validateAnalysisMetadata","rebuilt","clonePlain","buildControlFlow","analyzeRegisterValues","resolveRegisterFlow","inferValueTypes","originalSnapshot","rebuiltSnapshot","Error","operand","selected","isCanonicalIndex","entry","dimension","value","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","entries","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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"}
1
+ {"version":3,"file":"lowerCreateHistogramsComputeProgram.js","sources":["../../../../../../../src/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js"],"sourcesContent":["import { clonePlain } from \"#utils/object\";\r\nimport { analyzeRegisterValues } from \"../ir/analyzeRegisterValues.js\";\r\nimport { buildControlFlow } from \"../ir/buildControlFlow.js\";\r\nimport { inferValueTypes } from \"../ir/inferValueTypes.js\";\r\nimport { resolveRegisterFlow } from \"../ir/resolveRegisterFlow.js\";\r\nimport { lowerBindingLayout } from \"./lowerBindingLayout.js\";\r\nimport { requireRefactoringAllowed } from \"./precisionControls.js\";\r\nimport { buildSelectionPlans } from \"./selectionPlans.js\";\r\n\r\nconst DECLARATION_OPCODES = Object.freeze([\r\n \"dcl_global_flags\",\r\n \"dcl_constant_buffer\",\r\n \"dcl_resource\",\r\n \"dcl_unordered_access_view_typed\",\r\n \"dcl_input\",\r\n \"dcl_input\",\r\n \"dcl_input\",\r\n \"dcl_temps\",\r\n \"dcl_thread_group_shared_memory_structured\",\r\n \"dcl_thread_group\"\r\n]);\r\nconst BLOCK_BEFORE = new Set([\r\n \"loop\", \"else\", \"endif\", \"endloop\", \"case\", \"default\", \"endswitch\"\r\n]);\r\nconst BLOCK_AFTER = new Set([\r\n \"if\", \"loop\", \"switch\", \"break\", \"breakc\", \"continue\", \"continuec\",\r\n \"ret\", \"retc\", \"discard\", \"else\", \"endif\", \"endloop\", \"case\", \"default\",\r\n \"endswitch\"\r\n]);\r\nconst CONTROL_KIND = Object.freeze({\r\n if: \"selection\",\r\n endif: \"selection\",\r\n ret: \"termination\"\r\n});\r\nconst SYNC_NAMES = Object.freeze([\r\n \"threads_in_group\",\r\n \"thread_group_shared_memory\"\r\n]);\r\n\r\nfunction expectedOperand(\r\n typeName,\r\n registerIndex,\r\n selectionModeName,\r\n selector = \"\",\r\n immediateValues = [],\r\n modifierName = \"none\",\r\n componentCount = 4\r\n)\r\n{\r\n return {\r\n typeName,\r\n registerIndex,\r\n componentCount,\r\n selectionModeName,\r\n selector,\r\n immediateValues: immediateValues,\r\n modifierName\r\n };\r\n}\r\n\r\nconst mask = (typeName, registerIndex, selector) =>\r\n expectedOperand(typeName, registerIndex, \"mask\", selector);\r\nconst swizzle = (typeName, registerIndex, selector, modifierName = \"none\") =>\r\n expectedOperand(\r\n typeName, registerIndex, \"swizzle\", selector, [], modifierName);\r\nconst select = (typeName, registerIndex, selector, modifierName = \"none\") =>\r\n expectedOperand(\r\n typeName, registerIndex, \"select1\", selector, [], modifierName);\r\nconst none = (typeName, registerIndex, componentCount = 0) =>\r\n expectedOperand(\r\n typeName, registerIndex, \"none\", \"\", [], \"none\", componentCount);\r\nconst immediate = (...values) => expectedOperand(\r\n \"immediate32\",\r\n null,\r\n values.length === 1 ? \"none\" : \"mask\",\r\n \"\",\r\n values,\r\n \"none\",\r\n values.length\r\n);\r\nconst body = (opcodeName, operands = [], options = {}) => ({\r\n opcodeName,\r\n operands: operands,\r\n saturate: options.saturate === true,\r\n testBoolean: options.testBoolean ?? null,\r\n resinfoReturnTypeName: options.resinfoReturnTypeName\r\n});\r\n\r\nconst BODY_SM50 = Object.freeze([\r\n body(\"resinfo\", [\r\n mask(\"temp\", 0, \"xy\"),\r\n immediate(0),\r\n swizzle(\"resource\", 0, \"xyzw\")\r\n ], { resinfoReturnTypeName: \"uint\" }),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"z\"),\r\n select(\"input_thread_id_in_group\", null, \"y\"),\r\n immediate(16),\r\n select(\"input_thread_id_in_group\", null, \"x\")\r\n ]),\r\n body(\"ult\", [\r\n mask(\"temp\", 1, \"xy\"),\r\n swizzle(\"temp\", 0, \"zzzz\"),\r\n immediate(64, 16, 0, 0)\r\n ]),\r\n body(\"if\", [ select(\"temp\", 1, \"x\") ], {\r\n testBoolean: \"nonzero\"\r\n }),\r\n body(\"store_structured\", [\r\n mask(\"thread_group_shared_memory\", 0, \"x\"),\r\n select(\"temp\", 0, \"z\"),\r\n immediate(0),\r\n immediate(0)\r\n ]),\r\n body(\"endif\"),\r\n body(\"sync\"),\r\n body(\"ult\", [\r\n mask(\"temp\", 0, \"xy\"),\r\n swizzle(\"input_thread_id\", null, \"xyxx\"),\r\n swizzle(\"temp\", 0, \"xyxx\")\r\n ]),\r\n body(\"and\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"y\"),\r\n select(\"temp\", 0, \"x\")\r\n ]),\r\n body(\"if\", [ select(\"temp\", 0, \"x\") ], {\r\n testBoolean: \"nonzero\"\r\n }),\r\n body(\"mov\", [\r\n mask(\"temp\", 2, \"xy\"),\r\n swizzle(\"input_thread_id\", null, \"xyxx\")\r\n ]),\r\n body(\"mov\", [\r\n mask(\"temp\", 2, \"zw\"),\r\n immediate(0, 0, 0, 0)\r\n ]),\r\n body(\"ld\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 2, \"xyzw\"),\r\n swizzle(\"resource\", 0, \"xywz\")\r\n ]),\r\n body(\"lt\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 0, \"xxyw\"),\r\n immediate(1025879765, 0, 1025879765, 1025879765)\r\n ]),\r\n body(\"mul\", [\r\n mask(\"temp\", 2, \"xyz\"),\r\n swizzle(\"temp\", 0, \"xywx\"),\r\n immediate(1033798545, 1033798545, 1033798545, 0)\r\n ]),\r\n body(\"add\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 0, \"xyxw\"),\r\n immediate(1029785518, 1029785518, 0, 1029785518)\r\n ]),\r\n body(\"mul\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 0, \"xyxw\"),\r\n immediate(1064478575, 1064478575, 0, 1064478575)\r\n ]),\r\n body(\"log\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 0, \"xyxw\", \"abs\")\r\n ]),\r\n body(\"mul\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 0, \"xyxw\"),\r\n immediate(1075419546, 1075419546, 0, 1075419546)\r\n ]),\r\n body(\"exp\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 0, \"xyxw\")\r\n ]),\r\n body(\"movc\", [\r\n mask(\"temp\", 0, \"xyw\"),\r\n swizzle(\"temp\", 1, \"xzxw\"),\r\n swizzle(\"temp\", 2, \"xyxz\"),\r\n swizzle(\"temp\", 0, \"xyxw\")\r\n ]),\r\n body(\"dp3\", [\r\n mask(\"temp\", 0, \"x\"),\r\n swizzle(\"temp\", 0, \"xywx\"),\r\n immediate(1046059418, 1060578420, 1033087274, 0)\r\n ]),\r\n body(\"log\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\")\r\n ]),\r\n body(\"mad\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(1060205080),\r\n select(\"constant_buffer\", 0, \"x\", \"neg\")\r\n ]),\r\n body(\"add\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"constant_buffer\", 0, \"x\", \"neg\"),\r\n select(\"constant_buffer\", 0, \"y\")\r\n ]),\r\n body(\"div\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"y\")\r\n ], { saturate: true }),\r\n body(\"mul\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(1115684864)\r\n ]),\r\n body(\"ftoi\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\")\r\n ]),\r\n body(\"imin\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(63)\r\n ]),\r\n body(\"mov\", [\r\n mask(\"temp\", 0, \"y\"),\r\n immediate(0)\r\n ]),\r\n body(\"atomic_iadd\", [\r\n none(\"thread_group_shared_memory\", 0),\r\n swizzle(\"temp\", 0, \"xyxx\"),\r\n immediate(1)\r\n ]),\r\n body(\"endif\"),\r\n body(\"sync\"),\r\n body(\"if\", [ select(\"temp\", 1, \"y\") ], {\r\n testBoolean: \"nonzero\"\r\n }),\r\n body(\"ftou\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"constant_buffer\", 0, \"z\")\r\n ]),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"input_thread_group_id\", null, \"y\"),\r\n select(\"temp\", 0, \"x\"),\r\n select(\"input_thread_group_id\", null, \"x\")\r\n ]),\r\n body(\"ishl\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(4)\r\n ]),\r\n body(\"ishl\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"input_thread_id_in_group\", null, \"x\"),\r\n immediate(2)\r\n ]),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"input_thread_id_in_group\", null, \"y\"),\r\n immediate(64),\r\n select(\"temp\", 0, \"y\")\r\n ]),\r\n body(\"iadd\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"z\")\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"x\"),\r\n select(\"temp\", 0, \"y\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"iadd\", [\r\n mask(\"temp\", 0, \"yw\"),\r\n swizzle(\"temp\", 0, \"yyyy\"),\r\n immediate(0, 1, 0, 3)\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"y\"),\r\n select(\"temp\", 0, \"y\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"temp\", 0, \"z\"),\r\n immediate(4),\r\n immediate(2)\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"z\"),\r\n select(\"temp\", 0, \"y\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"w\"),\r\n select(\"temp\", 0, \"w\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"store_uav_typed\", [\r\n mask(\"uav\", 0, \"xyzw\"),\r\n swizzle(\"temp\", 0, \"xxxx\"),\r\n swizzle(\"temp\", 1, \"xyzw\")\r\n ]),\r\n body(\"endif\"),\r\n body(\"ret\")\r\n]);\r\n\r\nconst BODY_SM51 = Object.freeze([\r\n body(\"resinfo\", [\r\n mask(\"temp\", 0, \"xy\"),\r\n immediate(0),\r\n swizzle(\"resource\", 0, \"xyzw\")\r\n ], { resinfoReturnTypeName: \"uint\" }),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"z\"),\r\n select(\"input_thread_id_in_group\", null, \"y\"),\r\n immediate(16),\r\n select(\"input_thread_id_in_group\", null, \"x\")\r\n ]),\r\n body(\"ftou\", [\r\n mask(\"temp\", 0, \"w\"),\r\n select(\"constant_buffer\", 0, \"z\")\r\n ]),\r\n body(\"ult\", [\r\n mask(\"temp\", 1, \"xy\"),\r\n swizzle(\"temp\", 0, \"zzzz\"),\r\n immediate(64, 16, 0, 0)\r\n ]),\r\n body(\"if\", [ select(\"temp\", 1, \"x\") ], {\r\n testBoolean: \"nonzero\"\r\n }),\r\n body(\"store_structured\", [\r\n mask(\"thread_group_shared_memory\", 0, \"x\"),\r\n select(\"temp\", 0, \"z\"),\r\n immediate(0),\r\n immediate(0)\r\n ]),\r\n body(\"endif\"),\r\n body(\"sync\"),\r\n body(\"ult\", [\r\n mask(\"temp\", 0, \"xy\"),\r\n swizzle(\"input_thread_id\", null, \"xyxx\"),\r\n swizzle(\"temp\", 0, \"xyxx\")\r\n ]),\r\n body(\"and\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"y\"),\r\n select(\"temp\", 0, \"x\")\r\n ]),\r\n body(\"if\", [ select(\"temp\", 0, \"x\") ], {\r\n testBoolean: \"nonzero\"\r\n }),\r\n body(\"mov\", [\r\n mask(\"temp\", 2, \"xy\"),\r\n swizzle(\"input_thread_id\", null, \"xyxx\")\r\n ]),\r\n body(\"mov\", [\r\n mask(\"temp\", 2, \"zw\"),\r\n immediate(0, 0, 0, 0)\r\n ]),\r\n body(\"ld\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 2, \"xyzw\"),\r\n swizzle(\"resource\", 0, \"xwyz\")\r\n ]),\r\n body(\"lt\", [\r\n mask(\"temp\", 2, \"xyz\"),\r\n swizzle(\"temp\", 1, \"xzwx\"),\r\n immediate(1025879765, 1025879765, 1025879765, 0)\r\n ]),\r\n body(\"mul\", [\r\n mask(\"temp\", 3, \"xyz\"),\r\n swizzle(\"temp\", 1, \"xzwx\"),\r\n immediate(1033798545, 1033798545, 1033798545, 0)\r\n ]),\r\n body(\"add\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 1, \"xxzw\"),\r\n immediate(1029785518, 0, 1029785518, 1029785518)\r\n ]),\r\n body(\"mul\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 1, \"xxzw\"),\r\n immediate(1064478575, 0, 1064478575, 1064478575)\r\n ]),\r\n body(\"log\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 1, \"xxzw\", \"abs\")\r\n ]),\r\n body(\"mul\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 1, \"xxzw\"),\r\n immediate(1075419546, 0, 1075419546, 1075419546)\r\n ]),\r\n body(\"exp\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 1, \"xxzw\")\r\n ]),\r\n body(\"movc\", [\r\n mask(\"temp\", 1, \"xzw\"),\r\n swizzle(\"temp\", 2, \"xxyz\"),\r\n swizzle(\"temp\", 3, \"xxyz\"),\r\n swizzle(\"temp\", 1, \"xxzw\")\r\n ]),\r\n body(\"dp3\", [\r\n mask(\"temp\", 0, \"x\"),\r\n swizzle(\"temp\", 1, \"xzwx\"),\r\n immediate(1046059418, 1060578420, 1033087274, 0)\r\n ]),\r\n body(\"log\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\")\r\n ]),\r\n body(\"mad\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(1060205080),\r\n select(\"constant_buffer\", 0, \"x\", \"neg\")\r\n ]),\r\n body(\"add\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"constant_buffer\", 0, \"x\", \"neg\"),\r\n select(\"constant_buffer\", 0, \"y\")\r\n ]),\r\n body(\"div\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"y\")\r\n ], { saturate: true }),\r\n body(\"mul\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(1115684864)\r\n ]),\r\n body(\"ftoi\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\")\r\n ]),\r\n body(\"imin\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(63)\r\n ]),\r\n body(\"mov\", [\r\n mask(\"temp\", 0, \"y\"),\r\n immediate(0)\r\n ]),\r\n body(\"atomic_iadd\", [\r\n none(\"thread_group_shared_memory\", 0),\r\n swizzle(\"temp\", 0, \"xyxx\"),\r\n immediate(1)\r\n ]),\r\n body(\"endif\"),\r\n body(\"sync\"),\r\n body(\"if\", [ select(\"temp\", 1, \"y\") ], {\r\n testBoolean: \"nonzero\"\r\n }),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"input_thread_group_id\", null, \"y\"),\r\n select(\"temp\", 0, \"w\"),\r\n select(\"input_thread_group_id\", null, \"x\")\r\n ]),\r\n body(\"ishl\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n immediate(4)\r\n ]),\r\n body(\"ishl\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"input_thread_id_in_group\", null, \"x\"),\r\n immediate(2)\r\n ]),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"input_thread_id_in_group\", null, \"y\"),\r\n immediate(64),\r\n select(\"temp\", 0, \"y\")\r\n ]),\r\n body(\"iadd\", [\r\n mask(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"x\"),\r\n select(\"temp\", 0, \"z\")\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"x\"),\r\n select(\"temp\", 0, \"y\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"iadd\", [\r\n mask(\"temp\", 0, \"yw\"),\r\n swizzle(\"temp\", 0, \"yyyy\"),\r\n immediate(0, 1, 0, 3)\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"y\"),\r\n select(\"temp\", 0, \"y\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"imad\", [\r\n mask(\"temp\", 0, \"y\"),\r\n select(\"temp\", 0, \"z\"),\r\n immediate(4),\r\n immediate(2)\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"z\"),\r\n select(\"temp\", 0, \"y\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"ld_structured\", [\r\n mask(\"temp\", 1, \"w\"),\r\n select(\"temp\", 0, \"w\"),\r\n immediate(0),\r\n swizzle(\"thread_group_shared_memory\", 0, \"xxxx\")\r\n ]),\r\n body(\"store_uav_typed\", [\r\n mask(\"uav\", 0, \"xyzw\"),\r\n swizzle(\"temp\", 0, \"xxxx\"),\r\n swizzle(\"temp\", 1, \"xyzw\")\r\n ]),\r\n body(\"endif\"),\r\n body(\"ret\")\r\n]);\r\n\r\nfunction buildBlocks(instructions)\r\n{\r\n const leaders = new Set([ 0 ]);\r\n for (let index = 0; index < instructions.length; index += 1)\r\n {\r\n if (BLOCK_BEFORE.has(instructions[index].opcodeName)) leaders.add(index);\r\n if (BLOCK_AFTER.has(instructions[index].opcodeName)\r\n && index + 1 < instructions.length)\r\n {\r\n leaders.add(index + 1);\r\n }\r\n }\r\n const starts = Array.from(leaders).sort((left, right) => left - right);\r\n return starts.map((start, blockIndex) =>\r\n {\r\n const end = (starts[blockIndex + 1] ?? instructions.length) - 1;\r\n const last = instructions[end];\r\n return {\r\n kind: \"basic-block\",\r\n id: `block${blockIndex}`,\r\n index: blockIndex,\r\n startInstruction: start,\r\n endInstruction: end,\r\n startDxbcOffset: instructions[start].dxbcOffset,\r\n endDxbcOffset: last.dxbcOffset,\r\n instructionIndices: Array.from(\r\n { length: end - start + 1 },\r\n (_, offset) => start + offset\r\n ),\r\n terminator: CONTROL_KIND[last.opcodeName] ? last.opcodeName : null\r\n };\r\n });\r\n}\r\n\r\nfunction analysisSnapshot(program)\r\n{\r\n return {\r\n blocks: program.blocks,\r\n controlFlow: program.controlFlow,\r\n values: program.values,\r\n instructions: program.instructions.map((instruction) => ({\r\n dataflow: instruction.dataflow,\r\n typeInfo: instruction.typeInfo\r\n }))\r\n };\r\n}\r\n\r\nfunction firstDifference(left, right, path = \"$\")\r\n{\r\n if (Object.is(left, right)) return null;\r\n if (Array.isArray(left) && Array.isArray(right))\r\n {\r\n if (left.length !== right.length)\r\n {\r\n return `${path}.length (${left.length} != ${right.length})`;\r\n }\r\n for (let index = 0; index < left.length; index += 1)\r\n {\r\n const difference = firstDifference(\r\n left[index], right[index], `${path}[${index}]`);\r\n if (difference) return difference;\r\n }\r\n return null;\r\n }\r\n if (left && right\r\n && typeof left === \"object\"\r\n && typeof right === \"object\")\r\n {\r\n const keys = Array.from(new Set([\r\n ...Object.keys(left),\r\n ...Object.keys(right)\r\n ])).sort();\r\n for (const key of keys)\r\n {\r\n const difference = firstDifference(\r\n left[key], right[key], `${path}.${key}`);\r\n if (difference) return difference;\r\n }\r\n return null;\r\n }\r\n return `${path} (${JSON.stringify(left)} != ${JSON.stringify(right)})`;\r\n}\r\n\r\nfunction validateAnalysisMetadata(program)\r\n{\r\n const rebuilt = clonePlain(program);\r\n rebuilt.instructions = rebuilt.instructions.map((instruction) =>\r\n {\r\n delete instruction.dataflow;\r\n delete instruction.typeInfo;\r\n return instruction;\r\n });\r\n rebuilt.blocks = buildBlocks(rebuilt.instructions);\r\n delete rebuilt.controlFlow;\r\n delete rebuilt.values;\r\n buildControlFlow(rebuilt);\r\n analyzeRegisterValues(rebuilt);\r\n resolveRegisterFlow(rebuilt);\r\n inferValueTypes(rebuilt);\r\n const originalSnapshot = analysisSnapshot(program);\r\n const rebuiltSnapshot = analysisSnapshot(rebuilt);\r\n if (JSON.stringify(originalSnapshot) !== JSON.stringify(rebuiltSnapshot))\r\n {\r\n const difference = firstDifference(originalSnapshot, rebuiltSnapshot);\r\n throw new Error(\r\n \"WGSL create-histograms compute CFG, SSA, or type metadata is inconsistent\"\r\n + (difference ? ` at ${difference}` : \"\")\r\n );\r\n }\r\n}\r\n\r\nfunction selector(operand)\r\n{\r\n return operand.mask || operand.swizzle || operand.selected || \"\";\r\n}\r\n\r\nfunction isCanonicalIndex(entry, dimension, value)\r\n{\r\n return entry?.dimension === dimension\r\n && entry.representation === 0\r\n && entry.relative === null\r\n && entry.values?.length === 1\r\n && entry.values[0] === value;\r\n}\r\n\r\nfunction validateCanonicalIndices(operand, expected, context)\r\n{\r\n if (operand.indices?.length !== expected.length\r\n || expected.some((value, dimension) =>\r\n !isCanonicalIndex(operand.indices[dimension], dimension, value)))\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} has non-canonical index metadata`\r\n );\r\n }\r\n}\r\n\r\nfunction validateSm51Range(data, context)\r\n{\r\n const range = data?.bindingRange;\r\n if (data?.bindingModel !== \"sm5.1-range\"\r\n || range?.bindingModel !== \"sm5.1-range\"\r\n || range.rangeId !== 0\r\n || range.lowerBound !== 0\r\n || range.upperBound !== 0\r\n || range.unbounded !== false\r\n || range.registerCount !== 1\r\n || range.registerSpace !== 0)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} requires one finite SM5.1 range`\r\n );\r\n }\r\n}\r\n\r\nfunction expectedIndices(typeName, registerIndex, minor, declaration)\r\n{\r\n if (!Number.isInteger(registerIndex)) return [];\r\n if (typeName === \"constant_buffer\")\r\n {\r\n return minor === 0\r\n ? [ registerIndex, declaration ? 1 : 0 ]\r\n : [ 0, registerIndex, declaration ? 0 : 0 ];\r\n }\r\n if ([ \"resource\", \"uav\" ].includes(typeName))\r\n {\r\n return minor === 0\r\n ? [ registerIndex ]\r\n : declaration\r\n ? [ 0, registerIndex, 0 ]\r\n : [ 0, registerIndex ];\r\n }\r\n return [ registerIndex ];\r\n}\r\n\r\nfunction validateSm51Reference(operand, context)\r\n{\r\n const reference = operand.resourceReference;\r\n if ([ \"resource\", \"uav\" ].includes(operand.typeName))\r\n {\r\n if (reference?.bindingModel !== \"sm5.1-range\"\r\n || reference.rangeId !== 0\r\n || reference.nonUniform !== false\r\n || !isCanonicalIndex(reference.absoluteIndex, 1, 0)\r\n || reference.bufferIndex !== null\r\n || reference.vectorOffset !== null)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} has an invalid SM5.1 resource reference`\r\n );\r\n }\r\n }\r\n else if (operand.typeName === \"constant_buffer\")\r\n {\r\n if (reference?.bindingModel !== \"sm5.1-range\"\r\n || reference.rangeId !== 0\r\n || reference.nonUniform !== false\r\n || reference.absoluteIndex !== null\r\n || !isCanonicalIndex(reference.bufferIndex, 1, 0)\r\n || !isCanonicalIndex(reference.vectorOffset, 2, 0))\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} has an invalid SM5.1 constant-buffer reference`\r\n );\r\n }\r\n }\r\n else if (reference !== undefined && reference !== null)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} has unexpected resource reference metadata`\r\n );\r\n }\r\n}\r\n\r\nfunction validateOperand(\r\n operand,\r\n expected,\r\n minor,\r\n context,\r\n declaration = false\r\n)\r\n{\r\n if (!operand\r\n || operand.typeName !== expected.typeName\r\n || operand.registerIndex !== expected.registerIndex\r\n || operand.componentCount !== expected.componentCount\r\n || operand.selectionModeName !== expected.selectionModeName\r\n || selector(operand) !== expected.selector\r\n || operand.modifierName !== expected.modifierName\r\n || operand.minPrecisionName !== \"default\"\r\n || operand.nonUniform !== false\r\n || operand.immediateValues?.length !== expected.immediateValues.length\r\n || expected.immediateValues.some((value, index) =>\r\n operand.immediateValues[index]?.uint32 !== value))\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} does not match the exact operand`\r\n );\r\n }\r\n validateCanonicalIndices(\r\n operand,\r\n expectedIndices(\r\n expected.typeName,\r\n expected.registerIndex,\r\n minor,\r\n declaration\r\n ),\r\n context\r\n );\r\n if (declaration)\r\n {\r\n if (operand.resourceReference !== undefined\r\n && operand.resourceReference !== null)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} has unexpected reference metadata`\r\n );\r\n }\r\n }\r\n else if (minor === 1)\r\n {\r\n validateSm51Reference(operand, context);\r\n }\r\n else if (operand.resourceReference !== undefined\r\n && operand.resourceReference !== null)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms ${context} has unexpected SM5.1 reference metadata`\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Whether declarations select the isolated create-histograms compute family.\r\n * Detailed validation is final after this selector matches.\r\n *\r\n * @param {object} program CJS shader IR program.\r\n * @returns {boolean} True for the dedicated declaration family.\r\n */\r\nexport function isCreateHistogramsComputeProfile(program)\r\n{\r\n return program?.stage === \"compute\"\r\n && program.declarations?.length === DECLARATION_OPCODES.length\r\n && program.instructions?.length === 49\r\n && DECLARATION_OPCODES.every((opcodeName, index) =>\r\n program.declarations[index]?.opcodeName === opcodeName);\r\n}\r\n\r\nfunction validateDeclarationOperand(\r\n operand,\r\n expected,\r\n minor,\r\n context\r\n)\r\n{\r\n validateOperand(operand, expected, minor, context, true);\r\n}\r\n\r\nfunction validateBuiltinDeclaration(\r\n declaration,\r\n typeName,\r\n operandType,\r\n minor\r\n)\r\n{\r\n if (declaration.data?.registerIndex !== null\r\n || declaration.data.operandType !== operandType\r\n || declaration.data.operandTypeName !== typeName\r\n || declaration.operands?.length !== 1)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms compute requires exactly ${typeName}.xy`\r\n );\r\n }\r\n validateDeclarationOperand(\r\n declaration.operands[0],\r\n mask(typeName, null, \"xy\"),\r\n minor,\r\n `${typeName} declaration`\r\n );\r\n}\r\n\r\nfunction validateDeclarations(program)\r\n{\r\n const minor = program?.shaderModel?.minor;\r\n if (program?.format !== \"CJS_SHADER_IR\"\r\n || program.formatVersion !== 1\r\n || program.stage !== \"compute\"\r\n || program.shaderModel?.major !== 5\r\n || ![ 0, 1 ].includes(minor))\r\n {\r\n throw new TypeError(\r\n \"WGSL create-histograms compute profile requires CJS SM5.0 or finite-range SM5.1 compute IR\"\r\n );\r\n }\r\n if (!isCreateHistogramsComputeProfile(program))\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute declaration shape is not supported\"\r\n );\r\n }\r\n if (program.declarations.some((declaration) =>\r\n declaration.tailTokens?.length))\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute declarations must not contain trailing payload words\"\r\n );\r\n }\r\n if ((program.signatures?.input || []).length\r\n || (program.signatures?.output || []).length\r\n || (program.signatures?.patch || []).length\r\n || program.immediateConstantBuffer\r\n || program.constTables)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute does not support signatures or constant tables\"\r\n );\r\n }\r\n requireRefactoringAllowed(program, \"create-histograms compute\");\r\n\r\n const [\r\n global,\r\n constants,\r\n input,\r\n output,\r\n groupId,\r\n localId,\r\n dispatchId,\r\n temps,\r\n shared,\r\n group\r\n ] = program.declarations;\r\n if (global.data?.globalFlags !== (1 << 11)\r\n || global.data.refactoringAllowed !== true\r\n || global.operands?.length)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires only the refactoring-allowed global flag\"\r\n );\r\n }\r\n if (constants.data?.accessPattern !== \"immediate_indexed\"\r\n || constants.data.registerIndex !== 0\r\n || constants.data.sizeInVec4 !== 1\r\n || constants.operands?.length !== 1)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires immediate one-row cb0\"\r\n );\r\n }\r\n validateDeclarationOperand(\r\n constants.operands[0],\r\n swizzle(\"constant_buffer\", 0, \"xyzw\"),\r\n minor,\r\n \"cb0 declaration\"\r\n );\r\n if (input.data?.registerIndex !== 0\r\n || input.data.resourceDimension !== 3\r\n || input.data.resourceDimensionName !== \"texture2d\"\r\n || input.data.sampleCount !== 0\r\n || input.data.returnType?.returnTypes?.length !== 4\r\n || input.data.returnType.returnTypes.some((entry) => entry !== 5)\r\n || input.data.returnType?.returnTypeNames?.length !== 4\r\n || input.data.returnType.returnTypeNames.some((entry) =>\r\n entry !== \"float\")\r\n || input.operands?.length !== 1)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires float texture2d t0\"\r\n );\r\n }\r\n validateDeclarationOperand(\r\n input.operands[0],\r\n minor === 0\r\n ? none(\"resource\", 0)\r\n : swizzle(\"resource\", 0, \"xyzw\"),\r\n minor,\r\n \"t0 declaration\"\r\n );\r\n if (output.data?.registerIndex !== 0\r\n || output.data.resourceDimension !== 1\r\n || output.data.resourceDimensionName !== \"buffer\"\r\n || output.data.globallyCoherent !== false\r\n || output.data.returnType?.returnTypes?.length !== 4\r\n || output.data.returnType.returnTypes.some((entry) => entry !== 4)\r\n || output.data.returnType?.returnTypeNames?.length !== 4\r\n || output.data.returnType.returnTypeNames.some((entry) =>\r\n entry !== \"uint\")\r\n || output.operands?.length !== 1)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires non-coherent typed uint Buffer u0\"\r\n );\r\n }\r\n validateDeclarationOperand(\r\n output.operands[0],\r\n minor === 0\r\n ? none(\"uav\", 0)\r\n : swizzle(\"uav\", 0, \"xyzw\"),\r\n minor,\r\n \"u0 declaration\"\r\n );\r\n validateBuiltinDeclaration(\r\n groupId, \"input_thread_group_id\", 33, minor);\r\n validateBuiltinDeclaration(\r\n localId, \"input_thread_id_in_group\", 34, minor);\r\n validateBuiltinDeclaration(\r\n dispatchId, \"input_thread_id\", 32, minor);\r\n if (temps.data?.tempCount !== (minor === 0 ? 3 : 4)\r\n || temps.operands?.length)\r\n {\r\n throw new Error(\r\n `WGSL create-histograms SM5.${minor} requires exactly ${minor === 0 ? \"three\" : \"four\"} temps`\r\n );\r\n }\r\n if (shared.data?.registerIndex !== 0\r\n || shared.data.structureStride !== 4\r\n || shared.data.structureCount !== 64\r\n || shared.operands?.length !== 1)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires g0 with stride 4 and 64 records\"\r\n );\r\n }\r\n validateDeclarationOperand(\r\n shared.operands[0],\r\n none(\"thread_group_shared_memory\", 0),\r\n minor,\r\n \"g0 declaration\"\r\n );\r\n if (group.data?.threadGroupX !== 16\r\n || group.data.threadGroupY !== 16\r\n || group.data.threadGroupZ !== 1\r\n || group.operands?.length)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires dcl_thread_group 16,16,1\"\r\n );\r\n }\r\n if (minor === 1)\r\n {\r\n validateSm51Range(constants.data, \"cb0 declaration\");\r\n validateSm51Range(input.data, \"t0 declaration\");\r\n validateSm51Range(output.data, \"u0 declaration\");\r\n }\r\n else if (constants.data.bindingModel || constants.data.bindingRange\r\n || input.data.bindingModel || input.data.bindingRange\r\n || output.data.bindingModel || output.data.bindingRange)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms SM5.0 declarations must use register bindings\"\r\n );\r\n }\r\n}\r\n\r\nfunction validTextureExtensions(program, instruction)\r\n{\r\n const extensions = instruction.extensions || [];\r\n if (program.shaderModel.minor === 1) return extensions.length === 0;\r\n if (![ \"resinfo\", \"ld\" ].includes(instruction.opcodeName))\r\n {\r\n return extensions.length === 0;\r\n }\r\n return extensions.length === 2\r\n && extensions[0]?.token === 2147483842\r\n && extensions[0].type === 2\r\n && extensions[0].typeName === \"resource_dimension\"\r\n && extensions[0].resourceDimension === 3\r\n && extensions[0].resourceDimensionName === \"texture2d\"\r\n && extensions[0].structureStride === 0\r\n && extensions[1]?.token === 1398083\r\n && extensions[1].type === 3\r\n && extensions[1].typeName === \"resource_return_type\"\r\n && extensions[1].resourceReturnTypes?.length === 4\r\n && extensions[1].resourceReturnTypes.every((entry) => entry === 5);\r\n}\r\n\r\nfunction validateBody(program)\r\n{\r\n const expectedBody = program.shaderModel.minor === 0\r\n ? BODY_SM50\r\n : BODY_SM51;\r\n if (program.instructions?.length !== expectedBody.length)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires the exact 49-instruction body\"\r\n );\r\n }\r\n for (const [ index, expected ] of expectedBody.entries())\r\n {\r\n const instruction = program.instructions[index];\r\n if (instruction?.opcodeName !== expected.opcodeName\r\n || instruction.operands?.length !== expected.operands.length)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires the exact backend opcode and operand schedule\"\r\n );\r\n }\r\n for (const [ operandIndex, expectedEntry ] of\r\n expected.operands.entries())\r\n {\r\n validateOperand(\r\n instruction.operands[operandIndex],\r\n expectedEntry,\r\n program.shaderModel.minor,\r\n `instruction ${index} operand ${operandIndex}`\r\n );\r\n }\r\n const sync = instruction.opcodeName === \"sync\";\r\n if (instruction.index !== index\r\n || (index > 0\r\n && instruction.dxbcOffset\r\n <= program.instructions[index - 1].dxbcOffset)\r\n || instruction.controlKind\r\n !== (CONTROL_KIND[instruction.opcodeName] || null)\r\n || instruction.testBoolean !== expected.testBoolean\r\n || instruction.saturate !== expected.saturate\r\n || instruction.preciseMask !== \"\"\r\n || instruction.tailTokens?.length\r\n || instruction.resinfoReturnTypeName\r\n !== expected.resinfoReturnTypeName\r\n || !validTextureExtensions(program, instruction)\r\n || (sync\r\n ? instruction.syncFlags !== 3\r\n || JSON.stringify(instruction.syncFlagNames)\r\n !== JSON.stringify(SYNC_NAMES)\r\n : instruction.syncFlags !== undefined\r\n || instruction.syncFlagNames !== undefined))\r\n {\r\n throw new Error(\r\n `WGSL create-histograms instruction ${index} has inconsistent envelope metadata`\r\n );\r\n }\r\n }\r\n\r\n validateAnalysisMetadata(program);\r\n const origins = program.values.reduce((counts, value) =>\r\n {\r\n counts[value.origin] = (counts[value.origin] || 0) + 1;\r\n return counts;\r\n }, {});\r\n const minor = program.shaderModel.minor;\r\n if (program.blocks.length !== 10\r\n || program.controlFlow.edgeCount !== 12\r\n || program.controlFlow.regions.length !== 3\r\n || program.controlFlow.unreachableBlockIds.length\r\n || program.values.length !== 53\r\n || origins[\"instruction-write\"] !== 37\r\n || origins[\"program-input\"] !== 6\r\n || origins[\"undefined-register\"] !== (minor === 0 ? 6 : 7)\r\n || origins[\"control-flow-merge\"] !== (minor === 0 ? 4 : 3))\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires the canonical CFG and register-value shape\"\r\n );\r\n }\r\n const values = new Map(program.values.map((value) => [ value.id, value ]));\r\n for (const instruction of program.instructions)\r\n {\r\n for (const ref of instruction.dataflow.reads.flatMap((read) =>\r\n read.refs))\r\n {\r\n if (values.get(ref.valueId)?.origin === \"undefined-register\")\r\n {\r\n throw new Error(\r\n `WGSL create-histograms instruction ${instruction.index} reads undefined register data`\r\n );\r\n }\r\n }\r\n }\r\n const starts = minor === 0 ? [ 3, 9, 33 ] : [ 4, 10, 34 ];\r\n const plans = buildSelectionPlans(program, \"create-histograms compute\");\r\n if (plans.size !== 3\r\n || starts.some((start) =>\r\n plans.get(start)?.kind !== \"selection\"\r\n || plans.get(start).hasElse\r\n || plans.get(start).merges.length))\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute requires three canonical no-else selections without live merges\"\r\n );\r\n }\r\n}\r\n\r\nfunction validateBindings(bindings)\r\n{\r\n if (bindings.length !== 3) throw new Error(\r\n \"WGSL create-histograms compute binding layout does not match cb0/t0/u0\"\r\n );\r\n const [ constants, input, output ] = bindings;\r\n if (constants.resourceKind !== \"uniform-buffer\"\r\n || constants.generatedSymbol !== \"cb0\"\r\n || constants.registerIndex !== 0\r\n || constants.registerSpace !== 0\r\n || constants.declaration !== \"var<uniform>\"\r\n || constants.type !== \"array<vec4<f32>, 1>\"\r\n || constants.buffer?.type !== \"uniform\"\r\n || constants.buffer.hasDynamicOffset !== false\r\n || constants.buffer.minBindingSize !== 16\r\n || input.resourceKind !== \"sampled-resource\"\r\n || input.generatedSymbol !== \"t0\"\r\n || input.registerIndex !== 0\r\n || input.registerSpace !== 0\r\n || input.declaration !== \"var\"\r\n || input.type !== \"texture_2d<f32>\"\r\n // Only ever loaded, so the lowering declares it unfilterable.\r\n || input.texture?.sampleType !== \"unfilterable-float\"\r\n || input.texture.viewDimension !== \"2d\"\r\n || input.texture.multisampled !== false\r\n || output.resourceKind !== \"storage-resource\"\r\n || output.generatedSymbol !== \"u0\"\r\n || output.registerIndex !== 0\r\n || output.registerSpace !== 0\r\n || output.declaration !== \"var<storage, read_write>\"\r\n || output.type !== \"array<atomic<u32>>\"\r\n || output.buffer?.type !== \"storage\"\r\n || output.buffer.hasDynamicOffset !== false\r\n || output.buffer.minBindingSize !== 4)\r\n {\r\n throw new Error(\r\n \"WGSL create-histograms compute binding layout does not match cb0/t0/u0\"\r\n );\r\n }\r\n}\r\n\r\nfunction location(program, sm50Index, sm51Index = sm50Index)\r\n{\r\n const index = program.shaderModel.minor === 0 ? sm50Index : sm51Index;\r\n return {\r\n instructionIndex: index,\r\n dxbcOffset: program.instructions[index].dxbcOffset\r\n };\r\n}\r\n\r\nfunction expression(code, type)\r\n{\r\n return { code, type };\r\n}\r\n\r\nfunction letStatement(\r\n program,\r\n sm50Index,\r\n sm51Index,\r\n name,\r\n type,\r\n code\r\n)\r\n{\r\n return {\r\n kind: \"let\",\r\n ...location(program, sm50Index, sm51Index),\r\n name,\r\n type,\r\n expression: expression(code, type)\r\n };\r\n}\r\n\r\nfunction callStatement(program, sm50Index, sm51Index, code)\r\n{\r\n return {\r\n kind: \"call\",\r\n ...location(program, sm50Index, sm51Index),\r\n expression: expression(code, \"void\")\r\n };\r\n}\r\n\r\nfunction lowerBody(program, bindings)\r\n{\r\n const constants = bindings[0].generatedSymbol;\r\n const input = bindings[1].generatedSymbol;\r\n const output = bindings[2].generatedSymbol;\r\n const textureSize = `textureDimensions(${input}, 0)`;\r\n const inBounds = \"all(dispatch_thread_id.xy < texture_size)\";\r\n const sourceRgb = [\r\n letStatement(\r\n program, 10, 11, \"safe_pixel\", \"vec2<u32>\",\r\n \"min(dispatch_thread_id.xy, texture_size - vec2<u32>(1u))\"\r\n ),\r\n letStatement(\r\n program, 12, 13, \"source_rgba\", \"vec4<f32>\",\r\n `select(vec4<f32>(), textureLoad(${input}, safe_pixel, 0), ${inBounds})`\r\n ),\r\n letStatement(\r\n program, 12, 13, \"source_rgb\", \"vec3<f32>\",\r\n \"source_rgba.xyz\"\r\n ),\r\n letStatement(\r\n program, 14, 15, \"low_rgb\", \"vec3<f32>\",\r\n \"(source_rgb * vec3<f32>(bitcast<f32>(0x3d9e8391u)))\"\r\n ),\r\n letStatement(\r\n program, 19, 20, \"high_rgb\", \"vec3<f32>\",\r\n \"exp2(log2(abs((source_rgb + vec3<f32>(bitcast<f32>(0x3d6147aeu)))\"\r\n + \" * vec3<f32>(bitcast<f32>(0x3f72a76fu))))\"\r\n + \" * vec3<f32>(bitcast<f32>(0x4019999au)))\"\r\n ),\r\n letStatement(\r\n program, 20, 21, \"linear_rgb\", \"vec3<f32>\",\r\n \"select(high_rgb, low_rgb, source_rgb\"\r\n + \" < vec3<f32>(bitcast<f32>(0x3d25aed5u)))\"\r\n ),\r\n letStatement(\r\n program, 21, 22, \"luminance\", \"f32\",\r\n \"dot(linear_rgb, vec3<f32>(\"\r\n + \"bitcast<f32>(0x3e59999au), \"\r\n + \"bitcast<f32>(0x3f372474u), \"\r\n + \"bitcast<f32>(0x3d93a92au)))\"\r\n ),\r\n letStatement(\r\n program, 23, 24, \"log_luminance\", \"f32\",\r\n `(log2(luminance) * bitcast<f32>(0x3f317218u)) - ${constants}[0u].x`\r\n ),\r\n letStatement(\r\n program, 24, 25, \"luminance_range\", \"f32\",\r\n `${constants}[0u].y - ${constants}[0u].x`\r\n ),\r\n letStatement(\r\n program, 25, 26, \"normalized_luminance\", \"f32\",\r\n \"clamp(log_luminance / luminance_range, 0.0, 1.0)\"\r\n ),\r\n letStatement(\r\n program, 28, 29, \"histogram_bin\", \"i32\",\r\n \"min(i32(normalized_luminance\"\r\n + \" * bitcast<f32>(0x42800000u)), 63)\"\r\n ),\r\n {\r\n kind: \"if\",\r\n ...location(program, 30, 31),\r\n condition: expression(\r\n \"histogram_bin >= 0 && histogram_bin < 64\", \"bool\"),\r\n statements: [\r\n callStatement(\r\n program,\r\n 30,\r\n 31,\r\n \"atomicAdd(&g0[u32(histogram_bin)], 1u)\"\r\n )\r\n ]\r\n }\r\n ];\r\n const outputStores = [ \"x\", \"y\", \"z\", \"w\" ].map((component, word) =>\r\n callStatement(\r\n program,\r\n 46,\r\n 46,\r\n `atomicStore(&${output}[(output_element * 4u) + ${word}u], histogram_words.${component})`\r\n )\r\n );\r\n return [\r\n letStatement(\r\n program, 0, 0, \"texture_size\", \"vec2<u32>\", textureSize),\r\n letStatement(\r\n program,\r\n 1,\r\n 1,\r\n \"local_index\",\r\n \"u32\",\r\n \"(local_invocation_id.y * 16u) + local_invocation_id.x\"\r\n ),\r\n // DX12 hoists this pure uniform conversion. Canonical emission hoists\r\n // the DX11 form too; validation and the documented finite/in-range\r\n // ScreenTilesX premise make the extra evaluations unobservable.\r\n letStatement(\r\n program,\r\n 34,\r\n 2,\r\n \"screen_tiles_x\",\r\n \"u32\",\r\n `u32(${constants}[0u].z)`\r\n ),\r\n letStatement(\r\n program, 2, 3, \"initialize_bin\", \"bool\", \"local_index < 64u\"),\r\n letStatement(\r\n program, 2, 3, \"write_histogram\", \"bool\", \"local_index < 16u\"),\r\n {\r\n kind: \"if\",\r\n ...location(program, 3, 4),\r\n condition: expression(\"initialize_bin\", \"bool\"),\r\n statements: [\r\n callStatement(\r\n program, 4, 5, \"atomicStore(&g0[local_index], 0u)\")\r\n ]\r\n },\r\n callStatement(program, 6, 7, \"workgroupBarrier()\"),\r\n {\r\n kind: \"if\",\r\n ...location(program, 9, 10),\r\n condition: expression(inBounds, \"bool\"),\r\n statements: sourceRgb\r\n },\r\n callStatement(program, 32, 33, \"workgroupBarrier()\"),\r\n {\r\n kind: \"if\",\r\n ...location(program, 33, 34),\r\n condition: expression(\"write_histogram\", \"bool\"),\r\n statements: [\r\n letStatement(\r\n program,\r\n 35,\r\n 35,\r\n \"group_linear\",\r\n \"u32\",\r\n \"(workgroup_id.y * screen_tiles_x) + workgroup_id.x\"\r\n ),\r\n letStatement(\r\n program,\r\n 39,\r\n 39,\r\n \"output_element\",\r\n \"u32\",\r\n \"(group_linear << 4u) + local_index\"\r\n ),\r\n letStatement(\r\n program,\r\n 38,\r\n 38,\r\n \"histogram_base\",\r\n \"u32\",\r\n \"local_index << 2u\"\r\n ),\r\n letStatement(\r\n program,\r\n 40,\r\n 40,\r\n \"histogram_words\",\r\n \"vec4<u32>\",\r\n \"vec4<u32>(\"\r\n + \"atomicLoad(&g0[histogram_base + 0u]), \"\r\n + \"atomicLoad(&g0[histogram_base + 1u]), \"\r\n + \"atomicLoad(&g0[histogram_base + 2u]), \"\r\n + \"atomicLoad(&g0[histogram_base + 3u]))\"\r\n ),\r\n {\r\n kind: \"if\",\r\n ...location(program, 46, 46),\r\n condition: expression(\r\n `output_element < (arrayLength(&${output}) / 4u)`,\r\n \"bool\"\r\n ),\r\n statements: outputStores\r\n }\r\n ]\r\n },\r\n {\r\n kind: \"return\",\r\n ...location(program, 48, 48)\r\n }\r\n ];\r\n}\r\n\r\n/**\r\n * Lowers the two exact CreateHistograms backend schedules to one canonical\r\n * 16x16 atomic histogram program.\r\n *\r\n * @param {object} program CJS shader IR program.\r\n * @param {object} [options] Exact compute-only binding options.\r\n * @returns {object} Typed compute program.\r\n */\r\nexport function lowerCreateHistogramsComputeProgram(program, options = {})\r\n{\r\n validateDeclarations(program);\r\n validateBody(program);\r\n const bindings = lowerBindingLayout(\r\n program,\r\n options.bindingPlan ?? null\r\n );\r\n validateBindings(bindings);\r\n return {\r\n kind: \"typed-shader-program\",\r\n format: \"CJS_TYPED_SHADER\",\r\n formatVersion: 1,\r\n source: program.source,\r\n stage: \"compute\",\r\n entryPoint: \"main\",\r\n builtinInputs: [\r\n {\r\n builtin: \"workgroup_id\",\r\n name: \"workgroup_id\",\r\n type: \"vec3<u32>\"\r\n },\r\n {\r\n builtin: \"local_invocation_id\",\r\n name: \"local_invocation_id\",\r\n type: \"vec3<u32>\"\r\n },\r\n {\r\n builtin: \"global_invocation_id\",\r\n name: \"dispatch_thread_id\",\r\n type: \"vec3<u32>\"\r\n }\r\n ],\r\n threadGroupSize: [ 16, 16, 1 ],\r\n workgroupVariables: [\r\n { name: \"g0\", elementType: \"atomic<u32>\", elementCount: 64 }\r\n ],\r\n bindings,\r\n statements: lowerBody(program, bindings)\r\n };\r\n}\r\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","buildBlocks","instructions","leaders","index","has","add","starts","Array","from","sort","left","right","map","start","blockIndex","end","last","kind","id","startInstruction","endInstruction","startDxbcOffset","dxbcOffset","endDxbcOffset","instructionIndices","_","offset","terminator","analysisSnapshot","program","blocks","controlFlow","instruction","dataflow","typeInfo","firstDifference","path","is","isArray","difference","keys","key","JSON","stringify","validateAnalysisMetadata","rebuilt","clonePlain","buildControlFlow","analyzeRegisterValues","resolveRegisterFlow","inferValueTypes","originalSnapshot","rebuiltSnapshot","Error","operand","selected","isCanonicalIndex","entry","dimension","value","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","entries","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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"}
@@ -1,6 +1,6 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isWebM, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VIDEO } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isWebM } from './core/helpers.js';
4
4
  import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
5
5
 
6
6
  const FORMAT_NAME = "CjsWebmFormat";
@@ -11,7 +11,7 @@ const FORMAT_NAME = "CjsWebmFormat";
11
11
  * payload with codec and duration summaries but no frame decoding.
12
12
  */
13
13
  class CjsWebmFormat extends CjsFormat {
14
- #values = DEFAULT_VALUES;
14
+ _values = DEFAULT_VALUES;
15
15
 
16
16
  /**
17
17
  * Create a reusable WebM format profile.
@@ -30,7 +30,7 @@ class CjsWebmFormat extends CjsFormat {
30
30
  * @returns {CjsWebmFormat} This format profile.
31
31
  */
32
32
  SetValues(options = {}) {
33
- this.#values = normalizeValues(this.#values, {
33
+ this._values = normalizeValues(this._values, {
34
34
  inputType: "webm",
35
35
  ...options
36
36
  }, FORMAT_NAME);
@@ -44,7 +44,7 @@ class CjsWebmFormat extends CjsFormat {
44
44
  * @returns {object} Normalized read values.
45
45
  */
46
46
  GetValues(options = {}) {
47
- return normalizeValues(this.#values, {
47
+ return normalizeValues(this._values, {
48
48
  inputType: "webm",
49
49
  ...options
50
50
  }, FORMAT_NAME);
@@ -167,14 +167,9 @@ class CjsWebmFormat extends CjsFormat {
167
167
  /**
168
168
  * Emit targets for this format (canonical frozen enum).
169
169
  */
170
- static Output = Object.freeze({
171
- VIDEO: OUTPUT_VIDEO,
172
- RAW: OUTPUT_RAW,
173
- JSON: OUTPUT_JSON
174
- });
175
- static OUTPUT_WEBM_JSON = "webmJson";
176
- static id = "webm";
177
- static mediaTypes = Object.freeze(["video"]);
170
+
171
+ static id = "CjsWebmFormat";
172
+ static mediaTypes = ["video"];
178
173
  static outputs = CjsFormat.defineOutputs({
179
174
  video: {},
180
175
  webmJson: {
@@ -187,7 +182,7 @@ class CjsWebmFormat extends CjsFormat {
187
182
  passthrough: true
188
183
  }
189
184
  });
190
- static extensions = Object.freeze([".webm"]);
185
+ static extensions = [".webm"];
191
186
  }
192
187
 
193
188
  export { CjsWebmFormat };