@carbonenginejs/runtime-resource 0.11.1 → 0.12.1

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 (211) hide show
  1. package/dist/CjsResMan.js +4 -4
  2. package/dist/CjsResMan.js.map +1 -1
  3. package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -4
  4. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  5. package/dist/format/CjsByteReader.js +310 -0
  6. package/dist/format/CjsByteReader.js.map +1 -0
  7. package/dist/format/CjsByteWriter.js +242 -0
  8. package/dist/format/CjsByteWriter.js.map +1 -0
  9. package/dist/format/CjsFormatError.js +41 -0
  10. package/dist/format/CjsFormatError.js.map +1 -0
  11. package/dist/format/CjsStringTable.js +268 -0
  12. package/dist/format/CjsStringTable.js.map +1 -0
  13. package/dist/format/carbonEffect/CjsCarbonEffectReader.js +361 -0
  14. package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -0
  15. package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -0
  16. package/dist/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -0
  17. package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +372 -0
  18. package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +1 -0
  19. package/dist/format/carbonEffect/carbonEffectBackendBlock.js +427 -0
  20. package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -0
  21. package/dist/format/carbonEffect/carbonEffectRecords.js +955 -0
  22. package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -0
  23. package/dist/format/compareUtf8.js +36 -0
  24. package/dist/format/compareUtf8.js.map +1 -0
  25. package/dist/format/index.js +11 -0
  26. package/dist/format/index.js.map +1 -0
  27. package/dist/formats/bnk/CjsBnkFormat.js +18 -2
  28. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  29. package/dist/formats/bnk/core/eventAction.js +305 -0
  30. package/dist/formats/bnk/core/eventAction.js.map +1 -0
  31. package/dist/formats/bnk/core/graph.js +3 -6
  32. package/dist/formats/bnk/core/graph.js.map +1 -1
  33. package/dist/formats/bnk/core/helpers.js +62 -11
  34. package/dist/formats/bnk/core/helpers.js.map +1 -1
  35. package/dist/formats/bnk/core/nodeBase.js +532 -0
  36. package/dist/formats/bnk/core/nodeBase.js.map +1 -0
  37. package/dist/formats/bnk/core/sfxNodes.js +632 -0
  38. package/dist/formats/bnk/core/sfxNodes.js.map +1 -0
  39. package/dist/formats/bnk/core/soundbanksInfo.js +59 -51
  40. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  41. package/dist/formats/gr2/CjsGr2Format.js +256 -13
  42. package/dist/formats/gr2/CjsGr2Format.js.map +1 -1
  43. package/dist/formats/gr2/core/helpers.js +15 -15
  44. package/dist/formats/gr2/core/helpers.js.map +1 -1
  45. package/dist/formats/gr2/core/json.js +1 -1
  46. package/dist/formats/gr2/core/json.js.map +1 -1
  47. package/dist/formats/gr2/core/targets.js +1 -1
  48. package/dist/formats/gr2/core/targets.js.map +1 -1
  49. package/dist/formats/gr2/index.js +0 -1
  50. package/dist/formats/gr2/index.js.map +1 -1
  51. package/dist/formats/hlsl/core/HlslReader.js +7 -257
  52. package/dist/formats/hlsl/core/HlslReader.js.map +1 -1
  53. package/dist/formats/hlsl/core/analysis.js +1 -1
  54. package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +781 -0
  55. package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -0
  56. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +21 -1
  57. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
  58. package/dist/formats/hlsl/index.js +1 -0
  59. package/dist/formats/hlsl/index.js.map +1 -1
  60. package/dist/formats/index.js +3 -6
  61. package/dist/formats/index.js.map +1 -1
  62. package/dist/formats/webgl/core/cewg/CewgPackage.js +2 -1
  63. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -1
  64. package/dist/formats/webgl/core/cewg/binary.js +11 -93
  65. package/dist/formats/webgl/core/cewg/binary.js.map +1 -1
  66. package/dist/formats/webgl/core/effectPackage.js +4 -1
  67. package/dist/formats/webgl/core/effectPackage.js.map +1 -1
  68. package/dist/formats/webgl/core/errors.js +3 -3
  69. package/dist/formats/webgl/core/errors.js.map +1 -1
  70. package/dist/formats/webgpu/CjsWebgpuFormat.js +4 -23
  71. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  72. package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +197 -0
  73. package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -0
  74. package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js +368 -0
  75. package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +1 -0
  76. package/dist/formats/webgpu/core/cewgpu/containerViews.js +355 -0
  77. package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +1 -0
  78. package/dist/formats/webgpu/core/cewgpu/validateContainer.js +90 -0
  79. package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +1 -0
  80. package/dist/formats/webgpu/core/effectBackendBodySet.js +21 -20
  81. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
  82. package/dist/formats/webgpu/core/helpers.js +87 -92
  83. package/dist/formats/webgpu/core/helpers.js.map +1 -1
  84. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +14 -13
  85. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -1
  86. package/dist/formats/webgpu/core/ir/inferValueTypes.js +10 -8
  87. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -1
  88. package/dist/formats/webgpu/core/packageEffect.js +94 -9
  89. package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
  90. package/dist/formats/webgpu/core/packageMetadata.js +10 -1
  91. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -1
  92. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +17 -15
  93. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -1
  94. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +13 -12
  95. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -1
  96. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +9 -8
  97. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  98. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +23 -22
  99. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -1
  100. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +46 -44
  101. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -1
  102. package/dist/resource/CjsResource.js +700 -684
  103. package/dist/resource/CjsResource.js.map +1 -1
  104. package/dist/resource/Tr2LightProfileRes.js +18 -27
  105. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  106. package/dist/resource/audio/CjsAudioBufferRes.js +2 -2
  107. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -1
  108. package/dist/resource/audio/CjsAudioRes.js +2 -2
  109. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  110. package/dist/resource/geometry/TriGeometryRes.js +605 -586
  111. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  112. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +21 -30
  113. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -1
  114. package/dist/resource/geometry/granny/TriGrannyRes.js +21 -30
  115. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -1
  116. package/dist/resource/shader/Tr2EffectRes.js +9 -7
  117. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  118. package/dist/resource/shader/Tr2MaterialArea.js +5 -3
  119. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  120. package/dist/resource/shader/Tr2MaterialMesh.js +4 -2
  121. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  122. package/dist/resource/shader/Tr2MaterialRes.js +5 -3
  123. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  124. package/dist/resource/shader/Tr2Shader.js +26 -21
  125. package/dist/resource/shader/Tr2Shader.js.map +1 -1
  126. package/dist/resource/shader/Tr2ShaderPermutation.js +8 -6
  127. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
  128. package/dist/resource/shader/reflection/Tr2EffectDefine.js +5 -3
  129. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
  130. package/dist/resource/shader/reflection/Tr2EffectDescription.js +5 -3
  131. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  132. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +17 -15
  133. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  134. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +11 -9
  135. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  136. package/dist/resource/shader/reflection/Tr2EffectResource.js +8 -6
  137. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  138. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +15 -13
  139. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  140. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +7 -5
  141. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  142. package/dist/resource/shader/reflection/Tr2Pass.js +11 -9
  143. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  144. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +8 -6
  145. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  146. package/dist/resource/texture/CjsTextureArrayRes.js +400 -411
  147. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  148. package/dist/resource/texture/Tr2ImageRes.js +99 -95
  149. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  150. package/dist/resource/texture/TriTextureRes.js +312 -273
  151. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  152. package/docs/README.md +13 -1
  153. package/docs/architecture.md +3 -3
  154. package/docs/concepts/resource-lifecycle.md +9 -2
  155. package/docs/concepts/shader-resource-model.md +114 -0
  156. package/docs/concepts/writing-an-engine-adapter.md +115 -0
  157. package/docs/formats/README.md +24 -1
  158. package/docs/formats/carbon-effect-container.md +452 -0
  159. package/docs/formats/dxbc/README.md +68 -0
  160. package/docs/formats/dxbc/architecture.md +80 -0
  161. package/docs/formats/dxbc/reference/api.md +77 -0
  162. package/docs/formats/dxbc/reference/classes/README.md +9 -0
  163. package/docs/formats/dxbc/reference/decoded-output.md +122 -0
  164. package/docs/formats/gr2.md +3 -4
  165. package/docs/formats/hlsl/README.md +54 -0
  166. package/docs/formats/hlsl/architecture.md +67 -0
  167. package/docs/formats/hlsl/guides/hydrating-json-output.md +62 -0
  168. package/docs/formats/hlsl/guides/reading-effects.md +64 -0
  169. package/docs/formats/hlsl/reference/advanced-analysis.md +66 -0
  170. package/docs/formats/hlsl/reference/api.md +98 -0
  171. package/docs/formats/hlsl/reference/classes/README.md +11 -0
  172. package/docs/formats/hlsl/reference/json-graph.md +100 -0
  173. package/docs/formats/hlsl/reference/portable-reflection.md +141 -0
  174. package/docs/formats/provenance.md +32 -17
  175. package/docs/formats/webgl/README.md +57 -0
  176. package/docs/formats/webgl/architecture.md +70 -0
  177. package/docs/formats/webgl/carbon-constant-layouts.md +326 -0
  178. package/docs/formats/webgl/decl-io.md +1234 -0
  179. package/docs/formats/webgl/effect-reflection.md +127 -0
  180. package/docs/formats/webgl/memory-structured.md +871 -0
  181. package/docs/formats/webgl/reference/classes/README.md +9 -0
  182. package/docs/formats/webgl/texture-sample.md +964 -0
  183. package/docs/formats/webgpu/README.md +84 -0
  184. package/docs/formats/webgpu/architecture.md +96 -0
  185. package/docs/formats/webgpu/formats/cewgpu.md +216 -0
  186. package/docs/formats/webgpu/guides/effect-packaging.md +191 -0
  187. package/docs/formats/webgpu/reference/api.md +197 -0
  188. package/docs/formats/webgpu/reference/classes/README.md +9 -0
  189. package/docs/formats/webgpu/reference/wgsl-compatibility.md +1543 -0
  190. package/docs/formats/wwise.md +45 -4
  191. package/docs/reference/classes/core.md +80 -0
  192. package/docs/reference/classes/formats.md +24 -34
  193. package/docs/reference/events.md +25 -0
  194. package/docs/reference/motherlode-cache.md +22 -8
  195. package/docs/reference/workers.md +5 -5
  196. package/docs/roadmap.md +61 -41
  197. package/format-notices/bnk/NOTICE +5 -4
  198. package/format-notices/webgl/NOTICE +1 -1
  199. package/package.json +2 -1
  200. package/dist/formats/gr2/core/CjsFormatGr2.js +0 -273
  201. package/dist/formats/gr2/core/CjsFormatGr2.js.map +0 -1
  202. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +0 -415
  203. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +0 -1
  204. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +0 -100
  205. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +0 -1
  206. package/dist/formats/webgpu/core/cewgpu/binary.js +0 -93
  207. package/dist/formats/webgpu/core/cewgpu/binary.js.map +0 -1
  208. package/dist/formats/webgpu/core/cewgpu/tags.js +0 -17
  209. package/dist/formats/webgpu/core/cewgpu/tags.js.map +0 -1
  210. package/dist/formats/webgpu/core/effectPackageValidation.js +0 -1078
  211. package/dist/formats/webgpu/core/effectPackageValidation.js.map +0 -1
@@ -1,7 +1,10 @@
1
1
  import { EFFECT_INFO_VERSION } from './effectPackageValidation.js';
2
2
  import { CjsHlslFormat } from '../../hlsl/CjsHlslFormat.js';
3
- import { HlslEffectBindingManifest } from '../../hlsl/core/tr2/shader/HlslEffectBindingManifest.js';
4
3
  import { HlslRenderContextEnum, hlslShaderStageName } from '../../hlsl/core/tr2/HlslRenderContextEnum.js';
4
+ import '../../../format/CjsByteReader.js';
5
+ import '@carbonenginejs/runtime-utils/bytes';
6
+ import '../../hlsl/core/tr2/shader/HlslEffectResource.js';
7
+ import { HlslEffectBindingManifest } from '../../hlsl/core/tr2/shader/HlslEffectBindingManifest.js';
5
8
  import { buildEffectPermutationGraph, EFFECT_PERMUTATION_GRAPH_VERSION, EFFECT_PERMUTATION_GRAPH_FORMAT, EFFECT_PERMUTATION_GRAPH_CHUNK } from '../../../format/effect/effectPermutationGraph.js';
6
9
  import { buildCompleteEffectReflection, EFFECT_REFLECTION_CHUNK, EFFECT_REFLECTION_BLOB_CHUNK } from '../../../format/effect/effectReflectionPackage.js';
7
10
  import { buildPackage, inspectWithValues, emitGlslWithOptions } from './helpers.js';
@@ -1 +1 @@
1
- {"version":3,"file":"effectPackage.js","sources":["../../../../../src/formats/webgl/core/effectPackage.js"],"sourcesContent":["import { EFFECT_INFO_VERSION } from \"./effectPackageValidation.js\";\nimport { CjsHlslFormat } from \"../../hlsl/index.js\";\nimport { HlslEffectBindingManifest } from \"../../hlsl/core/tr2/shader/HlslEffectBindingManifest.js\";\nimport { HlslRenderContextEnum, hlslShaderStageName } from \"../../hlsl/core/tr2/HlslRenderContextEnum.js\";\n\nimport {\n buildEffectPermutationGraph,\n EFFECT_PERMUTATION_GRAPH_CHUNK,\n EFFECT_PERMUTATION_GRAPH_FORMAT,\n EFFECT_PERMUTATION_GRAPH_VERSION\n} from \"../../../format/effect/effectPermutationGraph.js\";\nimport {\n buildCompleteEffectReflection,\n EFFECT_REFLECTION_BLOB_CHUNK,\n EFFECT_REFLECTION_CHUNK\n} from \"../../../format/effect/effectReflectionPackage.js\";\nimport { buildPackage, emitGlslWithOptions, inspectWithValues } from \"./helpers.js\";\nimport { sha256Bytes, sha256Utf8 } from \"../../../format/effect/sha256.js\";\n\nconst PACKAGE_VERSION = \"0.11.1\";\n\n/**\n * Builds a complete CEWG package from compiled Tr2 effect bytes.\n *\n * This browser-safe path owns whole-effect selection, stage translation,\n * package assembly, and structural qualification. Filesystem and native-tool\n * concerns remain in Node callers.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.\n * @param {object} [options] Selection, provenance, and emitter policy.\n * @returns {object} Package bytes plus inspection and qualification records.\n */\nexport function buildEffectPackage(input, options = {})\n{\n const values = normalizeOptions(input, options);\n const effectRes = CjsHlslFormat.read(values.sourceBytes, {\n emit: CjsHlslFormat.OUTPUT_RAW,\n source: values.source\n });\n\n if (!effectRes.IsGood())\n {\n throw effectRes.loadError || new Error(\"Tr2EffectRes failed to load input\");\n }\n\n const sourceIdentity = normalizeSourceIdentity(values);\n // One INFO version means one contract, and that contract requires complete\n // source reflection, which only version-15 input can supply.\n if (effectRes.m_version !== 15)\n {\n throw new Error(\n \"Effect package requires a version-15 compiled effect, got version \"\n + (effectRes.m_version ?? \"unknown\")\n );\n }\n\n const permutationGraph = buildEffectPermutationGraph(effectRes);\n const reflectionPackage = effectRes.m_version === 15\n ? buildCompleteEffectReflection(\n effectRes,\n permutationGraph,\n {\n sourceIdentity,\n sourcePath: values.source\n }\n )\n : null;\n const variants = buildExportVariants(effectRes, values.allPermutations);\n const bodyMap = new Map();\n const stageMap = new Map();\n const shaderMap = new Map();\n\n for (const variant of variants)\n {\n if (bodyMap.has(variant.bodyKey))\n {\n continue;\n }\n\n const shader = effectRes.GetShader(toShaderOptions(variant.options));\n\n if (!shader)\n {\n bodyMap.set(variant.bodyKey, {\n key: variant.bodyKey,\n bodyOffset: variant.bodyOffset,\n bodySize: variant.bodySize,\n firstVariantKey: variant.key,\n error: \"Tr2EffectRes.GetShader returned null\",\n manifest: null,\n stages: []\n });\n continue;\n }\n\n const effectDescription = shader.GetEffectDescription();\n const manifest = HlslEffectBindingManifest.fromEffectDescription(effectDescription);\n const collection = collectStages(effectDescription, values.selection);\n const body = {\n key: variant.bodyKey,\n bodyOffset: variant.bodyOffset,\n bodySize: variant.bodySize,\n firstVariantKey: variant.key,\n error: collection.errors.length ? collection.errors.join(\"; \") : null,\n manifest: manifest.toJSON(),\n stages: []\n };\n\n for (const stage of collection.stages)\n {\n const stageKey = `${variant.bodyKey}.${stage.key}`;\n const shaderKey = `shader_${stageKey}`;\n const contract = buildStageContract(stage);\n const stageRecord = {\n key: stageKey,\n bodyKey: variant.bodyKey,\n localKey: stage.key,\n techniqueName: stage.techniqueName,\n passIndex: stage.passIndex,\n stageType: stage.stageType,\n stageName: stage.stageName,\n shaderHandle: stage.shaderHandle,\n shaderSize: stage.bytecode.shaderSize,\n stringTableOffset: stage.bytecode.stringTableOffset,\n shaderKey,\n contract\n };\n\n stageMap.set(stageKey, stageRecord);\n body.stages.push(stageKey);\n shaderMap.set(shaderKey, {\n key: shaderKey,\n firstStageKey: stageKey,\n firstBodyKey: variant.bodyKey,\n stageName: stage.stageName,\n shaderSize: stage.bytecode.shaderSize,\n stringTableOffset: stage.bytecode.stringTableOffset,\n bytes: stage.bytecode.bytes,\n contracts: [ {\n stageKey,\n techniqueName: stage.techniqueName,\n passIndex: stage.passIndex,\n stageName: stage.stageName,\n contract\n } ]\n });\n }\n\n bodyMap.set(variant.bodyKey, body);\n }\n\n translateStages(shaderMap, stageMap, values);\n\n const bodies = Array.from(bodyMap.values());\n const stages = Array.from(stageMap.values());\n const translatedShaders = Array.from(shaderMap.values()).map((record) =>\n {\n const { bytes, emit, ...output } = record;\n\n output.primaryContract = mergeShaderContracts(output.contracts);\n return output;\n });\n const failedShaders = translatedShaders.filter((record) =>\n !record.hlsl2webgl?.ok && !record.excluded);\n const excludedShaders = translatedShaders.filter((record) => record.excluded);\n const failedBodies = bodies.filter((body) => body.error);\n const rasterCompleteness = inspectRasterCompleteness(stages, translatedShaders);\n const availableShaderCount = translatedShaders.filter((record) =>\n record.hlsl2webgl?.ok && record.source).length;\n const info = {\n format: \"CEWG\",\n formatVersion: EFFECT_INFO_VERSION,\n packageKind: values.allPermutations\n ? \"tr2-effect-webgl-permutations\"\n : \"tr2-effect-webgl\",\n targetBackend: \"webgl\",\n backendPackage: \"@carbonenginejs/runtime-resource/formats/webgl\",\n backendPackageVersion: PACKAGE_VERSION,\n generatedAt: values.generatedAt,\n sourcePath: values.source,\n outputPath: values.outputPath,\n sourceByteLength: sourceIdentity.byteLength,\n sourceMd5: sourceIdentity.md5,\n sourceSha256: sourceIdentity.sha256,\n sourceIdentity,\n translator: \"dxbc-js-emitter\",\n translatorVersion: PACKAGE_VERSION,\n language: \"es300\",\n flags: null,\n selection: values.selection,\n permutationMode: values.allPermutations ? \"all\" : \"selected\",\n defaultPermutationIndex: defaultPermutationIndex(effectRes.m_permutations),\n sourceEffectVersion: effectRes.m_version,\n ...(reflectionPackage ? {\n sourceBodyCoverage: \"all-unique\",\n backendBodyCoverage: values.allPermutations ? \"all\" : \"selected\",\n backendProgramCoverage: selectionCoversWholeEffect(values.selection)\n ? \"all-stages\"\n : \"filtered\"\n } : {}),\n permutationCount: variants.length,\n uniqueBodyCount: bodies.length,\n sourcePermutationCount: permutationGraph.variants.length,\n sourceUniqueBodyCount: permutationGraph.bodies.length,\n permutationGraph: {\n chunk: EFFECT_PERMUTATION_GRAPH_CHUNK,\n format: EFFECT_PERMUTATION_GRAPH_FORMAT,\n formatVersion: EFFECT_PERMUTATION_GRAPH_VERSION,\n sha256: sha256Utf8(`${JSON.stringify(permutationGraph)}\\n`),\n permutationCount: permutationGraph.variants.length,\n uniqueBodyCount: permutationGraph.bodies.length\n },\n ...(reflectionPackage\n ? { effectReflection: reflectionPackage.pointer }\n : {}),\n bodyStageCount: stages.length,\n uniqueShaderCount: translatedShaders.length,\n translatedShaderCount: translatedShaders.length - failedShaders.length - excludedShaders.length,\n excludedShaderCount: excludedShaders.length,\n failedShaderCount: failedShaders.length,\n failedBodyCount: failedBodies.length,\n expectedRasterPassCount: rasterCompleteness.expectedPassCount,\n completeRasterPassCount: rasterCompleteness.completePassCount,\n incompleteRasterPassCount: rasterCompleteness.incompletePasses.length,\n availableShaderCount,\n allowFailures: values.allowFailures,\n completeness: {\n packageValid: true,\n sourceComplete: reflectionPackage !== null,\n backendComplete: false,\n runtimeComplete: false\n }\n };\n const metadata = {\n generatedAt: values.generatedAt,\n sourcePath: values.source,\n effectResource: effectRes.toJSON(),\n permutations: effectRes.GetPermutationDescription(),\n variants,\n bodies: bodies.map((body) => ({\n key: body.key,\n bodyOffset: body.bodyOffset,\n bodySize: body.bodySize,\n firstVariantKey: body.firstVariantKey,\n error: body.error,\n manifest: body.manifest\n }))\n };\n const glsl = {\n format: \"CEWG_GLSL_SET\",\n formatVersion: 1,\n language: \"es300\",\n permutationMode: info.permutationMode,\n selection: values.selection,\n variants: variants.map((variant) => ({\n key: variant.key,\n permutationIndex: variant.permutationIndex,\n bodyKey: variant.bodyKey\n })),\n bodies: bodies.map((body) => ({\n key: body.key,\n error: body.error,\n stages: body.stages\n })),\n stages,\n shaders: translatedShaders\n };\n const qualification = qualifyEffectPackage({\n info,\n metadata,\n glsl,\n failedShaders,\n excludedShaders,\n failedBodies,\n rasterCompleteness,\n availableShaderCount\n });\n if (!qualification.ok && !values.allowFailures)\n {\n throw new Error(\n `CEWG target is incomplete; output was not built. ${qualification.errors.join(\"; \")}`\n );\n }\n\n const chunks = [\n [ \"INFO\", info ],\n [ \"META\", metadata ],\n [ EFFECT_PERMUTATION_GRAPH_CHUNK, permutationGraph ],\n ...(reflectionPackage\n ? [\n [ EFFECT_REFLECTION_CHUNK, reflectionPackage.reflection ],\n [ EFFECT_REFLECTION_BLOB_CHUNK, reflectionPackage.blobBytes ]\n ]\n : []),\n [ \"GLSL\", glsl ]\n ];\n\n if (values.includeSourceEffect)\n {\n chunks.push([ \"TR2E\", values.sourceBytes ]);\n }\n\n const bytes = buildPackage(chunks);\n const inspection = inspectWithValues(bytes, {\n emit: \"json\",\n source: values.source\n });\n\n return Object.freeze({\n bytes,\n info: Object.freeze(info),\n metadata: Object.freeze(metadata),\n permutationGraph,\n reflection: reflectionPackage?.reflection ?? null,\n reflectionBlobs: reflectionPackage?.blobBytes ?? null,\n glsl: Object.freeze(glsl),\n inspection: Object.freeze(inspection),\n qualification: Object.freeze(qualification)\n });\n}\n\nfunction normalizeOptions(input, options)\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(\"CEWG effect options must be an object\");\n }\n\n const sourceBytes = toBytes(input);\n const source = String(options.source ?? \"memory\").trim() || \"memory\";\n const selection = Object.freeze({\n technique: options.technique === undefined || options.technique === null\n ? null\n : String(options.technique),\n pass: options.pass === undefined || options.pass === null ? null : Number(options.pass),\n stage: options.stage === undefined || options.stage === null\n ? null\n : String(options.stage).toLowerCase()\n });\n\n if (selection.pass !== null\n && (!Number.isSafeInteger(selection.pass) || selection.pass < 0))\n {\n throw new TypeError(\"CEWG effect pass must be a non-negative integer or null\");\n }\n\n if (selection.stage !== null\n && ![ \"vertex\", \"pixel\", \"compute\" ].includes(selection.stage))\n {\n throw new TypeError(`Unsupported CEWG effect stage: ${selection.stage}`);\n }\n\n if (options.emitterOptions !== undefined\n && (!options.emitterOptions || typeof options.emitterOptions !== \"object\"\n || Array.isArray(options.emitterOptions)))\n {\n throw new TypeError(\"CEWG emitterOptions must be an object\");\n }\n\n return {\n sourceBytes,\n source,\n outputPath: normalizeOptionalString(options.outputPath, \"CEWG outputPath\"),\n sourceIdentity: options.sourceIdentity ?? null,\n generatedAt: options.generatedAt === undefined || options.generatedAt === null\n ? null\n : new Date(options.generatedAt).toISOString(),\n allPermutations: options.allPermutations !== false,\n allowFailures: options.allowFailures === true,\n includeSourceEffect: options.includeSourceEffect === true,\n selection,\n emitterOptions: { ...(options.emitterOptions ?? {}) }\n };\n}\n\nfunction normalizeOptionalString(value, name)\n{\n if (value === undefined || value === null)\n {\n return null;\n }\n\n const result = String(value).trim();\n\n if (!result)\n {\n throw new TypeError(`${name} must be a non-empty string or null`);\n }\n\n return result;\n}\n\nfunction selectionCoversWholeEffect(selection)\n{\n return selection.technique === null\n && selection.pass === null\n && selection.stage === null;\n}\n\nfunction toBytes(input)\n{\n if (input instanceof Uint8Array)\n {\n return input;\n }\n\n if (input instanceof ArrayBuffer)\n {\n return new Uint8Array(input);\n }\n\n if (ArrayBuffer.isView(input))\n {\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n }\n\n throw new TypeError(\"CEWG effect input must be Uint8Array, ArrayBuffer, or ArrayBufferView bytes\");\n}\n\nfunction defaultPermutationIndex(permutations)\n{\n let multiplier = 1;\n let index = 0;\n\n for (const permutation of permutations)\n {\n index += (permutation.defaultOption || 0) * multiplier;\n multiplier *= permutation.options.length || 1;\n }\n\n return index;\n}\n\nfunction bodyKey(record)\n{\n return `body_${record.offset}_${record.size}`;\n}\n\nfunction decodePermutationOptions(permutations, permutationIndex)\n{\n let remaining = permutationIndex;\n\n return permutations.map((permutation) =>\n {\n const optionCount = permutation.options.length || 1;\n const optionIndex = optionCount ? remaining % optionCount : 0;\n\n remaining = Math.floor(remaining / optionCount);\n return {\n name: permutation.name,\n value: permutation.options[optionIndex] || \"\",\n optionIndex,\n defaultOption: permutation.defaultOption\n };\n });\n}\n\nfunction toShaderOptions(options)\n{\n return options.map((option) => ({ name: option.name, value: option.value }));\n}\n\nfunction buildExportVariants(effectRes, allPermutations)\n{\n if (allPermutations)\n {\n return effectRes.m_offsets.map((record, variantIndex) =>\n {\n const permutationIndex = Number.isInteger(record.index)\n ? record.index\n : variantIndex;\n\n return {\n key: `variant_${permutationIndex}`,\n variantIndex,\n permutationIndex,\n tableIndex: variantIndex,\n bodyKey: bodyKey(record),\n bodyOffset: record.offset,\n bodySize: record.size,\n options: decodePermutationOptions(\n effectRes.m_permutations,\n permutationIndex\n ),\n tableIndexMatchesPermutationIndex:\n variantIndex === permutationIndex\n };\n });\n }\n\n const permutationIndex = defaultPermutationIndex(effectRes.m_permutations);\n const record = effectRes.m_offsets[permutationIndex];\n\n if (!record)\n {\n throw new Error(`Default permutation index ${permutationIndex} is not present`);\n }\n\n return [ {\n key: `variant_${permutationIndex}`,\n variantIndex: permutationIndex,\n permutationIndex,\n tableIndex: permutationIndex,\n bodyKey: bodyKey(record),\n bodyOffset: record.offset,\n bodySize: record.size,\n options: decodePermutationOptions(effectRes.m_permutations, permutationIndex),\n tableIndexMatchesPermutationIndex: Number.isInteger(record.index)\n ? record.index === permutationIndex\n : true\n } ];\n}\n\nfunction collectStages(effectDescription, selection)\n{\n const stages = [];\n const errors = [];\n\n for (const technique of effectDescription.techniques ?? [])\n {\n if (selection.technique && technique.name !== selection.technique)\n {\n continue;\n }\n\n if (!selection.stage && !Number.isInteger(selection.pass)\n && technique.passes.length === 0)\n {\n errors.push(`${technique.name} declares no passes`);\n }\n\n for (let passIndex = 0; passIndex < technique.passes.length; passIndex++)\n {\n if (Number.isInteger(selection.pass) && passIndex !== selection.pass)\n {\n continue;\n }\n\n const pass = technique.passes[passIndex];\n let declaredStageCount = 0;\n\n for (let stageType = 0;\n stageType < HlslRenderContextEnum.SHADER_TYPE_COUNT;\n stageType++)\n {\n const stageInput = pass.stageInputs[stageType];\n\n if (!stageInput?.m_exists)\n {\n continue;\n }\n\n declaredStageCount++;\n const stageName = hlslShaderStageName(stageType);\n\n if (selection.stage && stageName !== selection.stage)\n {\n continue;\n }\n\n if (!stageInput.cjsShaderBytecode)\n {\n errors.push(\n `${technique.name}.pass${passIndex}.${stageName} declares shader handle `\n + `${stageInput.m_shader ?? \"unknown\"} but has no shader bytecode`\n );\n continue;\n }\n\n stages.push({\n key: `${technique.name}.pass${passIndex}.${stageName}`,\n techniqueName: technique.name,\n passIndex,\n stageType,\n stageName,\n shaderHandle: stageInput.m_shader,\n bytecode: stageInput.cjsShaderBytecode,\n pipelineInputs: cloneJson(stageInput.signature?.pipelineInputs ?? []),\n registers: cloneJson(stageInput.signature?.registers ?? []),\n resources: mapToJson(stageInput.resources),\n samplers: mapToJson(stageInput.samplers),\n uavs: mapToJson(stageInput.uavs),\n constants: cloneJson(stageInput.constants ?? [])\n });\n }\n\n if (!selection.stage && declaredStageCount === 0)\n {\n errors.push(`${technique.name}.pass${passIndex} declares no shader stages`);\n }\n }\n }\n\n return { stages, errors };\n}\n\nfunction translateStages(shaderMap, stageMap, values)\n{\n const emitInto = (record, pairVaryings) =>\n {\n try\n {\n const result = emitGlslWithOptions(record.bytes, {\n ...values.emitterOptions,\n source: `${values.source}#${record.firstStageKey}`,\n ...(pairVaryings?.length ? { pairVaryings } : {})\n });\n const stageInterface = normalizeBitangentStageInterface(\n result,\n record\n );\n\n record.emit = {\n ...result,\n source: stageInterface.source,\n inputs: stageInterface.inputs\n };\n record.source = stageInterface.source;\n record.bindings = result.bindings;\n record.stageInputs = stageInterface.inputs;\n record.stageOutputs = result.outputs;\n record.emitWarnings = result.warnings;\n record.translator = \"dxbc-js-emitter\";\n record.hlsl2webgl = { ok: true, mode: \"js-emitter\" };\n\n if (result.stageName === \"compute\")\n {\n record.computeFragment = result.computeFragment;\n }\n\n const issue = validateStageSourceShape(record);\n\n if (issue)\n {\n record.hlsl2webgl = { ok: false, validationError: issue };\n record.source = null;\n }\n }\n catch (error)\n {\n const message = error?.message || String(error);\n\n record.hlsl2webgl = {\n ok: false,\n error: message,\n details: error?.details ?? null\n };\n\n if (/not supported|No GLSL lowering|unimplementable/iu.test(message))\n {\n record.excluded = {\n reason: message,\n ...(error?.details?.opcodeName\n ? { opcodeName: error.details.opcodeName }\n : {}),\n ...(error?.details?.dimensionName\n ? { dimensionName: error.details.dimensionName }\n : {})\n };\n }\n }\n };\n\n for (const record of shaderMap.values())\n {\n if (record.stageName !== \"vertex\")\n {\n emitInto(record, null);\n }\n }\n\n const pixelVaryingsByPass = new Map();\n\n for (const stage of stageMap.values())\n {\n if (stage.stageName !== \"pixel\")\n {\n continue;\n }\n\n const record = shaderMap.get(stage.shaderKey);\n\n if (!record?.emit)\n {\n continue;\n }\n\n pixelVaryingsByPass.set(\n `${stage.bodyKey}|${stage.techniqueName}|${stage.passIndex}`,\n record.emit.inputs\n .filter((input) => typeof input.name === \"string\"\n && input.name.startsWith(\"vs_r\"))\n .map((input) => input.register)\n .sort((left, right) => left - right)\n );\n }\n\n for (const stage of stageMap.values())\n {\n if (stage.stageName !== \"vertex\")\n {\n continue;\n }\n\n const record = shaderMap.get(stage.shaderKey);\n const varyings = pixelVaryingsByPass.get(\n `${stage.bodyKey}|${stage.techniqueName}|${stage.passIndex}`\n ) ?? [];\n\n if (record)\n {\n record.pairVaryings = varyings;\n emitInto(record, varyings);\n }\n }\n}\n\nfunction cloneJson(value)\n{\n if (value === undefined || value === null)\n {\n return value;\n }\n\n return JSON.parse(JSON.stringify(value));\n}\n\nfunction mapToJson(map)\n{\n if (!(map instanceof Map))\n {\n return [];\n }\n\n return Array.from(map.entries()).map(([ registerIndex, value ]) => ({\n registerIndex,\n ...cloneJson(value)\n }));\n}\n\nfunction buildStageContract(stage)\n{\n const pipelineInputs = cloneJson(stage.pipelineInputs ?? []);\n const inputSemantics = pipelineInputs.map((input) => ({\n semantic: `${input.usageName || `USAGE_${input.usage}`}${input.usageIndex || \"\"}`,\n usage: input.usage,\n usageName: input.usageName,\n usageIndex: input.usageIndex,\n registerIndex: input.registerIndex,\n usedMask: input.usedMask,\n type: input.type,\n dimension: input.dimension\n }));\n const inputNames = new Set(inputSemantics.map((input) => input.usageName));\n const hasNormal = inputNames.has(\"NORMAL\");\n const hasTangent = inputNames.has(\"TANGENT\");\n const hasBinormal = inputNames.has(\"BINORMAL\") || inputNames.has(\"BITANGENT\");\n const hasBlendIndices = inputNames.has(\"BLENDINDICES\")\n || inputNames.has(\"BLENDINDICE\");\n let tangentContract = \"none\";\n\n if (hasNormal && hasTangent && hasBinormal)\n {\n tangentContract = \"split_tbn\";\n }\n else if (!hasNormal && hasTangent)\n {\n tangentContract = \"packed_tangent_or_tangent_only\";\n }\n else if (hasNormal || hasTangent || hasBinormal)\n {\n tangentContract = \"partial_tbn\";\n }\n\n const resources = cloneJson(stage.resources ?? []);\n const samplers = cloneJson(stage.samplers ?? []);\n const uavs = cloneJson(stage.uavs ?? []);\n const constants = cloneJson(stage.constants ?? []);\n const resourceNames = resources.map((entry) => entry.name).filter(Boolean);\n\n return {\n stageName: stage.stageName,\n stageType: stage.stageType,\n vertex: stage.stageName === \"vertex\" ? {\n inputs: inputSemantics,\n tangentContract,\n requiresSplitTbn: tangentContract === \"split_tbn\",\n requiresPackedTangent: tangentContract === \"packed_tangent_or_tangent_only\",\n requiresSkinning: hasBlendIndices || resourceNames.includes(\"BoneTransforms\"),\n hasBlendIndices\n } : null,\n texturePacking: classifyTexturePacking(resourceNames),\n constantBuffers: (stage.registers ?? [])\n .filter((entry) => entry.registerType === 0)\n .map((entry) => ({\n registerIndex: entry.registerIndex,\n registerSpace: entry.registerSpace,\n registerCount: entry.registerCount,\n arrayCount: entry.arrayCount,\n dynamic: Boolean(entry.dynamic)\n })),\n resources,\n samplers,\n uavs,\n constants\n };\n}\n\nfunction classifyTexturePacking(names)\n{\n const values = new Set(names);\n\n if ([ \"NoMap\", \"PmdgMap\", \"ArMap\" ].some((name) => values.has(name)))\n {\n return \"packed_textures\";\n }\n\n if ([ \"NormalMap\", \"RoughnessMap\", \"MaterialMap\", \"AlbedoMap\",\n \"AoMap\", \"PaintMaskMap\" ].some((name) => values.has(name)))\n {\n return \"unpacked_textures\";\n }\n\n return \"unknown\";\n}\n\nfunction mergeShaderContracts(contracts)\n{\n const first = contracts?.[0]?.contract ?? null;\n\n if (!first)\n {\n return null;\n }\n\n return {\n stageName: first.stageName,\n stageType: first.stageType,\n vertex: first.vertex ? cloneJson(first.vertex) : null,\n texturePacking: first.texturePacking,\n constantBuffers: cloneJson(first.constantBuffers ?? []),\n resourceNames: (first.resources ?? []).map((entry) => entry.name).filter(Boolean),\n samplerNames: (first.samplers ?? []).map((entry) => entry.name).filter(Boolean),\n sharedByStageCount: contracts.length\n };\n}\n\nfunction normalizeBitangentStageInterface(result, shaderRecord)\n{\n if (shaderRecord?.stageName !== \"vertex\")\n {\n return {\n source: result.source,\n inputs: result.inputs\n };\n }\n\n const bitangentRegisters = new Set((shaderRecord.contracts ?? [])\n .flatMap((entry) => entry.contract?.vertex?.inputs ?? [])\n .filter((input) => input.usageName === \"BITANGENT\")\n .map((input) => input.registerIndex));\n let source = result.source;\n const inputs = result.inputs.map((input) =>\n {\n if (!bitangentRegisters.has(input.register)\n || input.semanticName !== \"BINORMAL\")\n {\n return input;\n }\n const name = `in_BITANGENT${input.semanticIndex}`;\n source = source.replaceAll(input.name, name);\n return {\n ...input,\n name,\n semanticName: \"BITANGENT\"\n };\n });\n return { source, inputs };\n}\n\nfunction validateStageSourceShape(record)\n{\n const source = record?.source ?? \"\";\n\n if (!source)\n {\n return null;\n }\n\n const hasVertexOutput = /\\bgl_Position\\b/u.test(source);\n const hasVertexInterface = /\\bin\\s+(?:lowp|mediump|highp)?\\s*\\w+\\s+attr\\d+\\b/u.test(source)\n || /\\bout\\s+(?:lowp|mediump|highp)?\\s*\\w+\\s+vs_TEXCOORD\\d+\\b/u.test(source)\n || /\\bin_[A-Z]+[0-9]+\\b/u.test(source);\n const hasFragmentOutput = /\\bout\\s+(?:lowp|mediump|highp)?\\s*vec4\\s+SV_Target\\d+\\b/u.test(source)\n || /\\bgl_FragColor\\b/u.test(source);\n\n if (record.stageName === \"vertex\" && !hasVertexOutput)\n {\n return \"vertex stage source does not write gl_Position\";\n }\n\n if (record.stageName === \"pixel\"\n && (hasVertexOutput || hasVertexInterface) && !hasFragmentOutput)\n {\n return \"pixel stage source looks like vertex GLSL\";\n }\n\n if (record.stageName === \"compute\" && !/\\bcewgUav\\d+(_s\\d+)?\\b/u.test(source))\n {\n return \"compute stage source does not write any cewgUav output\";\n }\n\n return null;\n}\n\nfunction inspectRasterCompleteness(stages, shaders)\n{\n const shaderMap = new Map(shaders.map((shader) => [ shader.key, shader ]));\n const groups = new Map();\n\n for (const stage of stages)\n {\n if (![ \"vertex\", \"pixel\" ].includes(stage.stageName))\n {\n continue;\n }\n\n const key = `${stage.bodyKey}:${stage.techniqueName}:${stage.passIndex}`;\n const group = groups.get(key) ?? {\n key,\n bodyKey: stage.bodyKey,\n techniqueName: stage.techniqueName,\n passIndex: stage.passIndex,\n vertex: null,\n pixel: null,\n duplicateStages: []\n };\n\n if (group[stage.stageName])\n {\n group.duplicateStages.push(stage.stageName);\n }\n\n group[stage.stageName] = stage;\n groups.set(key, group);\n }\n\n const incompletePasses = [];\n let completePassCount = 0;\n\n for (const group of groups.values())\n {\n const missingStages = [];\n const unavailableStages = [];\n\n for (const stageName of [ \"vertex\", \"pixel\" ])\n {\n const stage = group[stageName];\n\n if (!stage)\n {\n missingStages.push(stageName);\n continue;\n }\n\n const shader = shaderMap.get(stage.shaderKey);\n\n if (!shader?.hlsl2webgl?.ok || !shader.source)\n {\n unavailableStages.push({\n stageName,\n stageKey: stage.key,\n shaderKey: stage.shaderKey,\n reason: shader?.hlsl2webgl?.validationError\n || shader?.hlsl2webgl?.error\n || shader?.excluded?.reason\n || \"translated source is unavailable\"\n });\n }\n }\n\n if (!missingStages.length && !unavailableStages.length\n && !group.duplicateStages.length)\n {\n completePassCount++;\n }\n else\n {\n incompletePasses.push({\n ...group,\n missingStages,\n unavailableStages,\n duplicateStages: [ ...new Set(group.duplicateStages) ].sort()\n });\n }\n }\n\n return {\n expectedPassCount: groups.size,\n completePassCount,\n incompletePasses\n };\n}\n\nfunction normalizeSourceIdentity(values)\n{\n const identity = values.sourceIdentity;\n\n if (identity !== null\n && (!identity || typeof identity !== \"object\" || Array.isArray(identity)))\n {\n throw new TypeError(\"CEWG sourceIdentity must be an object\");\n }\n\n const sha256 = sha256Bytes(values.sourceBytes);\n if (identity?.sha256 !== undefined && identity?.sha256 !== null\n && identity.sha256 !== sha256)\n {\n throw new Error(\n \"CEWG sourceIdentity.sha256 does not match the exact effect input bytes\"\n );\n }\n\n return Object.freeze({\n filePath: identity?.filePath ?? values.source,\n logicalPath: identity?.logicalPath ?? values.source,\n game: identity?.game ?? null,\n client: identity?.client ?? null,\n build: identity?.build === undefined || identity?.build === null\n ? null\n : String(identity.build),\n byteLength: values.sourceBytes.byteLength,\n md5: identity?.md5 ?? null,\n sha256\n });\n}\n\nfunction qualifyEffectPackage({\n info,\n metadata,\n glsl,\n failedShaders,\n excludedShaders,\n failedBodies,\n rasterCompleteness,\n availableShaderCount\n})\n{\n const errors = [];\n\n if (info.format !== \"CEWG\" || glsl.format !== \"CEWG_GLSL_SET\")\n {\n errors.push(\"invalid CEWG package envelope\");\n }\n\n if (!Array.isArray(metadata.variants) || !Array.isArray(glsl.shaders))\n {\n errors.push(\"missing CEWG graph arrays\");\n }\n\n if (failedShaders.length)\n {\n errors.push(`${failedShaders.length} shader translation(s) failed`);\n }\n\n if (excludedShaders.length)\n {\n errors.push(`${excludedShaders.length} shader translation(s) are unsupported`);\n }\n\n if (failedBodies.length)\n {\n errors.push(`${failedBodies.length} effect body/bodies failed`);\n }\n\n if (rasterCompleteness.incompletePasses.length)\n {\n errors.push(`${rasterCompleteness.incompletePasses.length} raster pass(es) are incomplete`);\n }\n\n if (!availableShaderCount)\n {\n errors.push(\"no translated shaders are available\");\n }\n\n return {\n ok: errors.length === 0,\n level: errors.length ? \"diagnostic\" : \"structural\",\n errors: Object.freeze(errors),\n incompletePasses: Object.freeze(rasterCompleteness.incompletePasses)\n };\n}\n"],"names":["PACKAGE_VERSION","buildEffectPackage","input","options","values","normalizeOptions","effectRes","CjsHlslFormat","read","sourceBytes","emit","OUTPUT_RAW","source","IsGood","loadError","Error","sourceIdentity","normalizeSourceIdentity","m_version","permutationGraph","buildEffectPermutationGraph","reflectionPackage","buildCompleteEffectReflection","sourcePath","variants","buildExportVariants","allPermutations","bodyMap","Map","stageMap","shaderMap","variant","has","bodyKey","shader","GetShader","toShaderOptions","set","key","bodyOffset","bodySize","firstVariantKey","error","manifest","stages","effectDescription","GetEffectDescription","HlslEffectBindingManifest","fromEffectDescription","collection","collectStages","selection","body","errors","length","join","toJSON","stage","stageKey","shaderKey","contract","buildStageContract","stageRecord","localKey","techniqueName","passIndex","stageType","stageName","shaderHandle","shaderSize","bytecode","stringTableOffset","push","firstStageKey","firstBodyKey","bytes","contracts","translateStages","bodies","Array","from","translatedShaders","map","record","output","primaryContract","mergeShaderContracts","failedShaders","filter","hlsl2webgl","ok","excluded","excludedShaders","failedBodies","rasterCompleteness","inspectRasterCompleteness","availableShaderCount","info","format","formatVersion","EFFECT_INFO_VERSION","packageKind","targetBackend","backendPackage","backendPackageVersion","generatedAt","outputPath","sourceByteLength","byteLength","sourceMd5","md5","sourceSha256","sha256","translator","translatorVersion","language","flags","permutationMode","defaultPermutationIndex","m_permutations","sourceEffectVersion","sourceBodyCoverage","backendBodyCoverage","backendProgramCoverage","selectionCoversWholeEffect","permutationCount","uniqueBodyCount","sourcePermutationCount","sourceUniqueBodyCount","chunk","EFFECT_PERMUTATION_GRAPH_CHUNK","EFFECT_PERMUTATION_GRAPH_FORMAT","EFFECT_PERMUTATION_GRAPH_VERSION","sha256Utf8","JSON","stringify","effectReflection","pointer","bodyStageCount","uniqueShaderCount","translatedShaderCount","excludedShaderCount","failedShaderCount","failedBodyCount","expectedRasterPassCount","expectedPassCount","completeRasterPassCount","completePassCount","incompleteRasterPassCount","incompletePasses","allowFailures","completeness","packageValid","sourceComplete","backendComplete","runtimeComplete","metadata","effectResource","permutations","GetPermutationDescription","glsl","permutationIndex","shaders","qualification","qualifyEffectPackage","chunks","EFFECT_REFLECTION_CHUNK","reflection","EFFECT_REFLECTION_BLOB_CHUNK","blobBytes","includeSourceEffect","buildPackage","inspection","inspectWithValues","Object","freeze","reflectionBlobs","isArray","TypeError","toBytes","String","trim","technique","undefined","pass","Number","toLowerCase","isSafeInteger","includes","emitterOptions","normalizeOptionalString","Date","toISOString","value","name","result","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","multiplier","index","permutation","defaultOption","offset","size","decodePermutationOptions","remaining","optionCount","optionIndex","Math","floor","option","m_offsets","variantIndex","isInteger","tableIndex","tableIndexMatchesPermutationIndex","techniques","passes","declaredStageCount","HlslRenderContextEnum","SHADER_TYPE_COUNT","stageInput","stageInputs","m_exists","hlslShaderStageName","cjsShaderBytecode","m_shader","pipelineInputs","cloneJson","signature","registers","resources","mapToJson","samplers","uavs","constants","emitInto","pairVaryings","emitGlslWithOptions","stageInterface","normalizeBitangentStageInterface","inputs","bindings","stageOutputs","outputs","emitWarnings","warnings","mode","computeFragment","issue","validateStageSourceShape","validationError","message","details","test","reason","opcodeName","dimensionName","pixelVaryingsByPass","get","startsWith","register","sort","left","right","varyings","parse","entries","registerIndex","inputSemantics","semantic","usageName","usage","usageIndex","usedMask","type","dimension","inputNames","Set","hasNormal","hasTangent","hasBinormal","hasBlendIndices","tangentContract","resourceNames","entry","Boolean","vertex","requiresSplitTbn","requiresPackedTangent","requiresSkinning","texturePacking","classifyTexturePacking","constantBuffers","registerType","registerSpace","registerCount","arrayCount","dynamic","names","some","first","samplerNames","sharedByStageCount","shaderRecord","bitangentRegisters","flatMap","semanticName","semanticIndex","replaceAll","hasVertexOutput","hasVertexInterface","hasFragmentOutput","groups","group","pixel","duplicateStages","missingStages","unavailableStages","identity","sha256Bytes","filePath","logicalPath","game","client","build","level"],"mappings":"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"}
1
+ {"version":3,"file":"effectPackage.js","sources":["../../../../../src/formats/webgl/core/effectPackage.js"],"sourcesContent":["import { EFFECT_INFO_VERSION } from \"./effectPackageValidation.js\";\nimport { CjsHlslFormat } from \"../../hlsl/index.js\";\nimport { HlslEffectBindingManifest } from \"../../hlsl/core/tr2/shader/HlslEffectBindingManifest.js\";\nimport { HlslRenderContextEnum, hlslShaderStageName } from \"../../hlsl/core/tr2/HlslRenderContextEnum.js\";\n\nimport {\n buildEffectPermutationGraph,\n EFFECT_PERMUTATION_GRAPH_CHUNK,\n EFFECT_PERMUTATION_GRAPH_FORMAT,\n EFFECT_PERMUTATION_GRAPH_VERSION\n} from \"../../../format/effect/effectPermutationGraph.js\";\nimport {\n buildCompleteEffectReflection,\n EFFECT_REFLECTION_BLOB_CHUNK,\n EFFECT_REFLECTION_CHUNK\n} from \"../../../format/effect/effectReflectionPackage.js\";\nimport { buildPackage, emitGlslWithOptions, inspectWithValues } from \"./helpers.js\";\nimport { sha256Bytes, sha256Utf8 } from \"../../../format/effect/sha256.js\";\n\nconst PACKAGE_VERSION = \"0.11.1\";\n\n/**\n * Builds a complete CEWG package from compiled Tr2 effect bytes.\n *\n * This browser-safe path owns whole-effect selection, stage translation,\n * package assembly, and structural qualification. Filesystem and native-tool\n * concerns remain in Node callers.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.\n * @param {object} [options] Selection, provenance, and emitter policy.\n * @returns {object} Package bytes plus inspection and qualification records.\n */\nexport function buildEffectPackage(input, options = {})\n{\n const values = normalizeOptions(input, options);\n const effectRes = CjsHlslFormat.read(values.sourceBytes, {\n emit: CjsHlslFormat.OUTPUT_RAW,\n source: values.source\n });\n\n if (!effectRes.IsGood())\n {\n throw effectRes.loadError || new Error(\"Tr2EffectRes failed to load input\");\n }\n\n const sourceIdentity = normalizeSourceIdentity(values);\n // One INFO version means one contract, and that contract requires complete\n // source reflection, which only version-15 input can supply.\n if (effectRes.m_version !== 15)\n {\n throw new Error(\n \"Effect package requires a version-15 compiled effect, got version \"\n + (effectRes.m_version ?? \"unknown\")\n );\n }\n\n const permutationGraph = buildEffectPermutationGraph(effectRes);\n const reflectionPackage = effectRes.m_version === 15\n ? buildCompleteEffectReflection(\n effectRes,\n permutationGraph,\n {\n sourceIdentity,\n sourcePath: values.source\n }\n )\n : null;\n const variants = buildExportVariants(effectRes, values.allPermutations);\n const bodyMap = new Map();\n const stageMap = new Map();\n const shaderMap = new Map();\n\n for (const variant of variants)\n {\n if (bodyMap.has(variant.bodyKey))\n {\n continue;\n }\n\n const shader = effectRes.GetShader(toShaderOptions(variant.options));\n\n if (!shader)\n {\n bodyMap.set(variant.bodyKey, {\n key: variant.bodyKey,\n bodyOffset: variant.bodyOffset,\n bodySize: variant.bodySize,\n firstVariantKey: variant.key,\n error: \"Tr2EffectRes.GetShader returned null\",\n manifest: null,\n stages: []\n });\n continue;\n }\n\n const effectDescription = shader.GetEffectDescription();\n const manifest = HlslEffectBindingManifest.fromEffectDescription(effectDescription);\n const collection = collectStages(effectDescription, values.selection);\n const body = {\n key: variant.bodyKey,\n bodyOffset: variant.bodyOffset,\n bodySize: variant.bodySize,\n firstVariantKey: variant.key,\n error: collection.errors.length ? collection.errors.join(\"; \") : null,\n manifest: manifest.toJSON(),\n stages: []\n };\n\n for (const stage of collection.stages)\n {\n const stageKey = `${variant.bodyKey}.${stage.key}`;\n const shaderKey = `shader_${stageKey}`;\n const contract = buildStageContract(stage);\n const stageRecord = {\n key: stageKey,\n bodyKey: variant.bodyKey,\n localKey: stage.key,\n techniqueName: stage.techniqueName,\n passIndex: stage.passIndex,\n stageType: stage.stageType,\n stageName: stage.stageName,\n shaderHandle: stage.shaderHandle,\n shaderSize: stage.bytecode.shaderSize,\n stringTableOffset: stage.bytecode.stringTableOffset,\n shaderKey,\n contract\n };\n\n stageMap.set(stageKey, stageRecord);\n body.stages.push(stageKey);\n shaderMap.set(shaderKey, {\n key: shaderKey,\n firstStageKey: stageKey,\n firstBodyKey: variant.bodyKey,\n stageName: stage.stageName,\n shaderSize: stage.bytecode.shaderSize,\n stringTableOffset: stage.bytecode.stringTableOffset,\n bytes: stage.bytecode.bytes,\n contracts: [ {\n stageKey,\n techniqueName: stage.techniqueName,\n passIndex: stage.passIndex,\n stageName: stage.stageName,\n contract\n } ]\n });\n }\n\n bodyMap.set(variant.bodyKey, body);\n }\n\n translateStages(shaderMap, stageMap, values);\n\n const bodies = Array.from(bodyMap.values());\n const stages = Array.from(stageMap.values());\n const translatedShaders = Array.from(shaderMap.values()).map((record) =>\n {\n const { bytes, emit, ...output } = record;\n\n output.primaryContract = mergeShaderContracts(output.contracts);\n return output;\n });\n const failedShaders = translatedShaders.filter((record) =>\n !record.hlsl2webgl?.ok && !record.excluded);\n const excludedShaders = translatedShaders.filter((record) => record.excluded);\n const failedBodies = bodies.filter((body) => body.error);\n const rasterCompleteness = inspectRasterCompleteness(stages, translatedShaders);\n const availableShaderCount = translatedShaders.filter((record) =>\n record.hlsl2webgl?.ok && record.source).length;\n const info = {\n format: \"CEWG\",\n formatVersion: EFFECT_INFO_VERSION,\n packageKind: values.allPermutations\n ? \"tr2-effect-webgl-permutations\"\n : \"tr2-effect-webgl\",\n targetBackend: \"webgl\",\n backendPackage: \"@carbonenginejs/runtime-resource/formats/webgl\",\n backendPackageVersion: PACKAGE_VERSION,\n generatedAt: values.generatedAt,\n sourcePath: values.source,\n outputPath: values.outputPath,\n sourceByteLength: sourceIdentity.byteLength,\n sourceMd5: sourceIdentity.md5,\n sourceSha256: sourceIdentity.sha256,\n sourceIdentity,\n translator: \"dxbc-js-emitter\",\n translatorVersion: PACKAGE_VERSION,\n language: \"es300\",\n flags: null,\n selection: values.selection,\n permutationMode: values.allPermutations ? \"all\" : \"selected\",\n defaultPermutationIndex: defaultPermutationIndex(effectRes.m_permutations),\n sourceEffectVersion: effectRes.m_version,\n ...(reflectionPackage ? {\n sourceBodyCoverage: \"all-unique\",\n backendBodyCoverage: values.allPermutations ? \"all\" : \"selected\",\n backendProgramCoverage: selectionCoversWholeEffect(values.selection)\n ? \"all-stages\"\n : \"filtered\"\n } : {}),\n permutationCount: variants.length,\n uniqueBodyCount: bodies.length,\n sourcePermutationCount: permutationGraph.variants.length,\n sourceUniqueBodyCount: permutationGraph.bodies.length,\n permutationGraph: {\n chunk: EFFECT_PERMUTATION_GRAPH_CHUNK,\n format: EFFECT_PERMUTATION_GRAPH_FORMAT,\n formatVersion: EFFECT_PERMUTATION_GRAPH_VERSION,\n sha256: sha256Utf8(`${JSON.stringify(permutationGraph)}\\n`),\n permutationCount: permutationGraph.variants.length,\n uniqueBodyCount: permutationGraph.bodies.length\n },\n ...(reflectionPackage\n ? { effectReflection: reflectionPackage.pointer }\n : {}),\n bodyStageCount: stages.length,\n uniqueShaderCount: translatedShaders.length,\n translatedShaderCount: translatedShaders.length - failedShaders.length - excludedShaders.length,\n excludedShaderCount: excludedShaders.length,\n failedShaderCount: failedShaders.length,\n failedBodyCount: failedBodies.length,\n expectedRasterPassCount: rasterCompleteness.expectedPassCount,\n completeRasterPassCount: rasterCompleteness.completePassCount,\n incompleteRasterPassCount: rasterCompleteness.incompletePasses.length,\n availableShaderCount,\n allowFailures: values.allowFailures,\n completeness: {\n packageValid: true,\n sourceComplete: reflectionPackage !== null,\n backendComplete: false,\n runtimeComplete: false\n }\n };\n const metadata = {\n generatedAt: values.generatedAt,\n sourcePath: values.source,\n effectResource: effectRes.toJSON(),\n permutations: effectRes.GetPermutationDescription(),\n variants,\n bodies: bodies.map((body) => ({\n key: body.key,\n bodyOffset: body.bodyOffset,\n bodySize: body.bodySize,\n firstVariantKey: body.firstVariantKey,\n error: body.error,\n manifest: body.manifest\n }))\n };\n const glsl = {\n format: \"CEWG_GLSL_SET\",\n formatVersion: 1,\n language: \"es300\",\n permutationMode: info.permutationMode,\n selection: values.selection,\n variants: variants.map((variant) => ({\n key: variant.key,\n permutationIndex: variant.permutationIndex,\n bodyKey: variant.bodyKey\n })),\n bodies: bodies.map((body) => ({\n key: body.key,\n error: body.error,\n stages: body.stages\n })),\n stages,\n shaders: translatedShaders\n };\n const qualification = qualifyEffectPackage({\n info,\n metadata,\n glsl,\n failedShaders,\n excludedShaders,\n failedBodies,\n rasterCompleteness,\n availableShaderCount\n });\n if (!qualification.ok && !values.allowFailures)\n {\n throw new Error(\n `CEWG target is incomplete; output was not built. ${qualification.errors.join(\"; \")}`\n );\n }\n\n const chunks = [\n [ \"INFO\", info ],\n [ \"META\", metadata ],\n [ EFFECT_PERMUTATION_GRAPH_CHUNK, permutationGraph ],\n ...(reflectionPackage\n ? [\n [ EFFECT_REFLECTION_CHUNK, reflectionPackage.reflection ],\n [ EFFECT_REFLECTION_BLOB_CHUNK, reflectionPackage.blobBytes ]\n ]\n : []),\n [ \"GLSL\", glsl ]\n ];\n\n if (values.includeSourceEffect)\n {\n chunks.push([ \"TR2E\", values.sourceBytes ]);\n }\n\n const bytes = buildPackage(chunks);\n const inspection = inspectWithValues(bytes, {\n emit: \"json\",\n source: values.source\n });\n\n return Object.freeze({\n bytes,\n info: Object.freeze(info),\n metadata: Object.freeze(metadata),\n permutationGraph,\n reflection: reflectionPackage?.reflection ?? null,\n reflectionBlobs: reflectionPackage?.blobBytes ?? null,\n glsl: Object.freeze(glsl),\n inspection: Object.freeze(inspection),\n qualification: Object.freeze(qualification)\n });\n}\n\nfunction normalizeOptions(input, options)\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(\"CEWG effect options must be an object\");\n }\n\n const sourceBytes = toBytes(input);\n const source = String(options.source ?? \"memory\").trim() || \"memory\";\n const selection = Object.freeze({\n technique: options.technique === undefined || options.technique === null\n ? null\n : String(options.technique),\n pass: options.pass === undefined || options.pass === null ? null : Number(options.pass),\n stage: options.stage === undefined || options.stage === null\n ? null\n : String(options.stage).toLowerCase()\n });\n\n if (selection.pass !== null\n && (!Number.isSafeInteger(selection.pass) || selection.pass < 0))\n {\n throw new TypeError(\"CEWG effect pass must be a non-negative integer or null\");\n }\n\n if (selection.stage !== null\n && ![ \"vertex\", \"pixel\", \"compute\" ].includes(selection.stage))\n {\n throw new TypeError(`Unsupported CEWG effect stage: ${selection.stage}`);\n }\n\n if (options.emitterOptions !== undefined\n && (!options.emitterOptions || typeof options.emitterOptions !== \"object\"\n || Array.isArray(options.emitterOptions)))\n {\n throw new TypeError(\"CEWG emitterOptions must be an object\");\n }\n\n return {\n sourceBytes,\n source,\n outputPath: normalizeOptionalString(options.outputPath, \"CEWG outputPath\"),\n sourceIdentity: options.sourceIdentity ?? null,\n generatedAt: options.generatedAt === undefined || options.generatedAt === null\n ? null\n : new Date(options.generatedAt).toISOString(),\n allPermutations: options.allPermutations !== false,\n allowFailures: options.allowFailures === true,\n includeSourceEffect: options.includeSourceEffect === true,\n selection,\n emitterOptions: { ...(options.emitterOptions ?? {}) }\n };\n}\n\nfunction normalizeOptionalString(value, name)\n{\n if (value === undefined || value === null)\n {\n return null;\n }\n\n const result = String(value).trim();\n\n if (!result)\n {\n throw new TypeError(`${name} must be a non-empty string or null`);\n }\n\n return result;\n}\n\nfunction selectionCoversWholeEffect(selection)\n{\n return selection.technique === null\n && selection.pass === null\n && selection.stage === null;\n}\n\nfunction toBytes(input)\n{\n if (input instanceof Uint8Array)\n {\n return input;\n }\n\n if (input instanceof ArrayBuffer)\n {\n return new Uint8Array(input);\n }\n\n if (ArrayBuffer.isView(input))\n {\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n }\n\n throw new TypeError(\"CEWG effect input must be Uint8Array, ArrayBuffer, or ArrayBufferView bytes\");\n}\n\nfunction defaultPermutationIndex(permutations)\n{\n let multiplier = 1;\n let index = 0;\n\n for (const permutation of permutations)\n {\n index += (permutation.defaultOption || 0) * multiplier;\n multiplier *= permutation.options.length || 1;\n }\n\n return index;\n}\n\nfunction bodyKey(record)\n{\n return `body_${record.offset}_${record.size}`;\n}\n\nfunction decodePermutationOptions(permutations, permutationIndex)\n{\n let remaining = permutationIndex;\n\n return permutations.map((permutation) =>\n {\n const optionCount = permutation.options.length || 1;\n const optionIndex = optionCount ? remaining % optionCount : 0;\n\n remaining = Math.floor(remaining / optionCount);\n return {\n name: permutation.name,\n value: permutation.options[optionIndex] || \"\",\n optionIndex,\n defaultOption: permutation.defaultOption\n };\n });\n}\n\nfunction toShaderOptions(options)\n{\n return options.map((option) => ({ name: option.name, value: option.value }));\n}\n\nfunction buildExportVariants(effectRes, allPermutations)\n{\n if (allPermutations)\n {\n return effectRes.m_offsets.map((record, variantIndex) =>\n {\n const permutationIndex = Number.isInteger(record.index)\n ? record.index\n : variantIndex;\n\n return {\n key: `variant_${permutationIndex}`,\n variantIndex,\n permutationIndex,\n tableIndex: variantIndex,\n bodyKey: bodyKey(record),\n bodyOffset: record.offset,\n bodySize: record.size,\n options: decodePermutationOptions(\n effectRes.m_permutations,\n permutationIndex\n ),\n tableIndexMatchesPermutationIndex:\n variantIndex === permutationIndex\n };\n });\n }\n\n const permutationIndex = defaultPermutationIndex(effectRes.m_permutations);\n const record = effectRes.m_offsets[permutationIndex];\n\n if (!record)\n {\n throw new Error(`Default permutation index ${permutationIndex} is not present`);\n }\n\n return [ {\n key: `variant_${permutationIndex}`,\n variantIndex: permutationIndex,\n permutationIndex,\n tableIndex: permutationIndex,\n bodyKey: bodyKey(record),\n bodyOffset: record.offset,\n bodySize: record.size,\n options: decodePermutationOptions(effectRes.m_permutations, permutationIndex),\n tableIndexMatchesPermutationIndex: Number.isInteger(record.index)\n ? record.index === permutationIndex\n : true\n } ];\n}\n\nfunction collectStages(effectDescription, selection)\n{\n const stages = [];\n const errors = [];\n\n for (const technique of effectDescription.techniques ?? [])\n {\n if (selection.technique && technique.name !== selection.technique)\n {\n continue;\n }\n\n if (!selection.stage && !Number.isInteger(selection.pass)\n && technique.passes.length === 0)\n {\n errors.push(`${technique.name} declares no passes`);\n }\n\n for (let passIndex = 0; passIndex < technique.passes.length; passIndex++)\n {\n if (Number.isInteger(selection.pass) && passIndex !== selection.pass)\n {\n continue;\n }\n\n const pass = technique.passes[passIndex];\n let declaredStageCount = 0;\n\n for (let stageType = 0;\n stageType < HlslRenderContextEnum.SHADER_TYPE_COUNT;\n stageType++)\n {\n const stageInput = pass.stageInputs[stageType];\n\n if (!stageInput?.m_exists)\n {\n continue;\n }\n\n declaredStageCount++;\n const stageName = hlslShaderStageName(stageType);\n\n if (selection.stage && stageName !== selection.stage)\n {\n continue;\n }\n\n if (!stageInput.cjsShaderBytecode)\n {\n errors.push(\n `${technique.name}.pass${passIndex}.${stageName} declares shader handle `\n + `${stageInput.m_shader ?? \"unknown\"} but has no shader bytecode`\n );\n continue;\n }\n\n stages.push({\n key: `${technique.name}.pass${passIndex}.${stageName}`,\n techniqueName: technique.name,\n passIndex,\n stageType,\n stageName,\n shaderHandle: stageInput.m_shader,\n bytecode: stageInput.cjsShaderBytecode,\n pipelineInputs: cloneJson(stageInput.signature?.pipelineInputs ?? []),\n registers: cloneJson(stageInput.signature?.registers ?? []),\n resources: mapToJson(stageInput.resources),\n samplers: mapToJson(stageInput.samplers),\n uavs: mapToJson(stageInput.uavs),\n constants: cloneJson(stageInput.constants ?? [])\n });\n }\n\n if (!selection.stage && declaredStageCount === 0)\n {\n errors.push(`${technique.name}.pass${passIndex} declares no shader stages`);\n }\n }\n }\n\n return { stages, errors };\n}\n\nfunction translateStages(shaderMap, stageMap, values)\n{\n const emitInto = (record, pairVaryings) =>\n {\n try\n {\n const result = emitGlslWithOptions(record.bytes, {\n ...values.emitterOptions,\n source: `${values.source}#${record.firstStageKey}`,\n ...(pairVaryings?.length ? { pairVaryings } : {})\n });\n const stageInterface = normalizeBitangentStageInterface(\n result,\n record\n );\n\n record.emit = {\n ...result,\n source: stageInterface.source,\n inputs: stageInterface.inputs\n };\n record.source = stageInterface.source;\n record.bindings = result.bindings;\n record.stageInputs = stageInterface.inputs;\n record.stageOutputs = result.outputs;\n record.emitWarnings = result.warnings;\n record.translator = \"dxbc-js-emitter\";\n record.hlsl2webgl = { ok: true, mode: \"js-emitter\" };\n\n if (result.stageName === \"compute\")\n {\n record.computeFragment = result.computeFragment;\n }\n\n const issue = validateStageSourceShape(record);\n\n if (issue)\n {\n record.hlsl2webgl = { ok: false, validationError: issue };\n record.source = null;\n }\n }\n catch (error)\n {\n const message = error?.message || String(error);\n\n record.hlsl2webgl = {\n ok: false,\n error: message,\n details: error?.details ?? null\n };\n\n if (/not supported|No GLSL lowering|unimplementable/iu.test(message))\n {\n record.excluded = {\n reason: message,\n ...(error?.details?.opcodeName\n ? { opcodeName: error.details.opcodeName }\n : {}),\n ...(error?.details?.dimensionName\n ? { dimensionName: error.details.dimensionName }\n : {})\n };\n }\n }\n };\n\n for (const record of shaderMap.values())\n {\n if (record.stageName !== \"vertex\")\n {\n emitInto(record, null);\n }\n }\n\n const pixelVaryingsByPass = new Map();\n\n for (const stage of stageMap.values())\n {\n if (stage.stageName !== \"pixel\")\n {\n continue;\n }\n\n const record = shaderMap.get(stage.shaderKey);\n\n if (!record?.emit)\n {\n continue;\n }\n\n pixelVaryingsByPass.set(\n `${stage.bodyKey}|${stage.techniqueName}|${stage.passIndex}`,\n record.emit.inputs\n .filter((input) => typeof input.name === \"string\"\n && input.name.startsWith(\"vs_r\"))\n .map((input) => input.register)\n .sort((left, right) => left - right)\n );\n }\n\n for (const stage of stageMap.values())\n {\n if (stage.stageName !== \"vertex\")\n {\n continue;\n }\n\n const record = shaderMap.get(stage.shaderKey);\n const varyings = pixelVaryingsByPass.get(\n `${stage.bodyKey}|${stage.techniqueName}|${stage.passIndex}`\n ) ?? [];\n\n if (record)\n {\n record.pairVaryings = varyings;\n emitInto(record, varyings);\n }\n }\n}\n\nfunction cloneJson(value)\n{\n if (value === undefined || value === null)\n {\n return value;\n }\n\n return JSON.parse(JSON.stringify(value));\n}\n\nfunction mapToJson(map)\n{\n if (!(map instanceof Map))\n {\n return [];\n }\n\n return Array.from(map.entries()).map(([ registerIndex, value ]) => ({\n registerIndex,\n ...cloneJson(value)\n }));\n}\n\nfunction buildStageContract(stage)\n{\n const pipelineInputs = cloneJson(stage.pipelineInputs ?? []);\n const inputSemantics = pipelineInputs.map((input) => ({\n semantic: `${input.usageName || `USAGE_${input.usage}`}${input.usageIndex || \"\"}`,\n usage: input.usage,\n usageName: input.usageName,\n usageIndex: input.usageIndex,\n registerIndex: input.registerIndex,\n usedMask: input.usedMask,\n type: input.type,\n dimension: input.dimension\n }));\n const inputNames = new Set(inputSemantics.map((input) => input.usageName));\n const hasNormal = inputNames.has(\"NORMAL\");\n const hasTangent = inputNames.has(\"TANGENT\");\n const hasBinormal = inputNames.has(\"BINORMAL\") || inputNames.has(\"BITANGENT\");\n const hasBlendIndices = inputNames.has(\"BLENDINDICES\")\n || inputNames.has(\"BLENDINDICE\");\n let tangentContract = \"none\";\n\n if (hasNormal && hasTangent && hasBinormal)\n {\n tangentContract = \"split_tbn\";\n }\n else if (!hasNormal && hasTangent)\n {\n tangentContract = \"packed_tangent_or_tangent_only\";\n }\n else if (hasNormal || hasTangent || hasBinormal)\n {\n tangentContract = \"partial_tbn\";\n }\n\n const resources = cloneJson(stage.resources ?? []);\n const samplers = cloneJson(stage.samplers ?? []);\n const uavs = cloneJson(stage.uavs ?? []);\n const constants = cloneJson(stage.constants ?? []);\n const resourceNames = resources.map((entry) => entry.name).filter(Boolean);\n\n return {\n stageName: stage.stageName,\n stageType: stage.stageType,\n vertex: stage.stageName === \"vertex\" ? {\n inputs: inputSemantics,\n tangentContract,\n requiresSplitTbn: tangentContract === \"split_tbn\",\n requiresPackedTangent: tangentContract === \"packed_tangent_or_tangent_only\",\n requiresSkinning: hasBlendIndices || resourceNames.includes(\"BoneTransforms\"),\n hasBlendIndices\n } : null,\n texturePacking: classifyTexturePacking(resourceNames),\n constantBuffers: (stage.registers ?? [])\n .filter((entry) => entry.registerType === 0)\n .map((entry) => ({\n registerIndex: entry.registerIndex,\n registerSpace: entry.registerSpace,\n registerCount: entry.registerCount,\n arrayCount: entry.arrayCount,\n dynamic: Boolean(entry.dynamic)\n })),\n resources,\n samplers,\n uavs,\n constants\n };\n}\n\nfunction classifyTexturePacking(names)\n{\n const values = new Set(names);\n\n if ([ \"NoMap\", \"PmdgMap\", \"ArMap\" ].some((name) => values.has(name)))\n {\n return \"packed_textures\";\n }\n\n if ([ \"NormalMap\", \"RoughnessMap\", \"MaterialMap\", \"AlbedoMap\",\n \"AoMap\", \"PaintMaskMap\" ].some((name) => values.has(name)))\n {\n return \"unpacked_textures\";\n }\n\n return \"unknown\";\n}\n\nfunction mergeShaderContracts(contracts)\n{\n const first = contracts?.[0]?.contract ?? null;\n\n if (!first)\n {\n return null;\n }\n\n return {\n stageName: first.stageName,\n stageType: first.stageType,\n vertex: first.vertex ? cloneJson(first.vertex) : null,\n texturePacking: first.texturePacking,\n constantBuffers: cloneJson(first.constantBuffers ?? []),\n resourceNames: (first.resources ?? []).map((entry) => entry.name).filter(Boolean),\n samplerNames: (first.samplers ?? []).map((entry) => entry.name).filter(Boolean),\n sharedByStageCount: contracts.length\n };\n}\n\nfunction normalizeBitangentStageInterface(result, shaderRecord)\n{\n if (shaderRecord?.stageName !== \"vertex\")\n {\n return {\n source: result.source,\n inputs: result.inputs\n };\n }\n\n const bitangentRegisters = new Set((shaderRecord.contracts ?? [])\n .flatMap((entry) => entry.contract?.vertex?.inputs ?? [])\n .filter((input) => input.usageName === \"BITANGENT\")\n .map((input) => input.registerIndex));\n let source = result.source;\n const inputs = result.inputs.map((input) =>\n {\n if (!bitangentRegisters.has(input.register)\n || input.semanticName !== \"BINORMAL\")\n {\n return input;\n }\n const name = `in_BITANGENT${input.semanticIndex}`;\n source = source.replaceAll(input.name, name);\n return {\n ...input,\n name,\n semanticName: \"BITANGENT\"\n };\n });\n return { source, inputs };\n}\n\nfunction validateStageSourceShape(record)\n{\n const source = record?.source ?? \"\";\n\n if (!source)\n {\n return null;\n }\n\n const hasVertexOutput = /\\bgl_Position\\b/u.test(source);\n const hasVertexInterface = /\\bin\\s+(?:lowp|mediump|highp)?\\s*\\w+\\s+attr\\d+\\b/u.test(source)\n || /\\bout\\s+(?:lowp|mediump|highp)?\\s*\\w+\\s+vs_TEXCOORD\\d+\\b/u.test(source)\n || /\\bin_[A-Z]+[0-9]+\\b/u.test(source);\n const hasFragmentOutput = /\\bout\\s+(?:lowp|mediump|highp)?\\s*vec4\\s+SV_Target\\d+\\b/u.test(source)\n || /\\bgl_FragColor\\b/u.test(source);\n\n if (record.stageName === \"vertex\" && !hasVertexOutput)\n {\n return \"vertex stage source does not write gl_Position\";\n }\n\n if (record.stageName === \"pixel\"\n && (hasVertexOutput || hasVertexInterface) && !hasFragmentOutput)\n {\n return \"pixel stage source looks like vertex GLSL\";\n }\n\n if (record.stageName === \"compute\" && !/\\bcewgUav\\d+(_s\\d+)?\\b/u.test(source))\n {\n return \"compute stage source does not write any cewgUav output\";\n }\n\n return null;\n}\n\nfunction inspectRasterCompleteness(stages, shaders)\n{\n const shaderMap = new Map(shaders.map((shader) => [ shader.key, shader ]));\n const groups = new Map();\n\n for (const stage of stages)\n {\n if (![ \"vertex\", \"pixel\" ].includes(stage.stageName))\n {\n continue;\n }\n\n const key = `${stage.bodyKey}:${stage.techniqueName}:${stage.passIndex}`;\n const group = groups.get(key) ?? {\n key,\n bodyKey: stage.bodyKey,\n techniqueName: stage.techniqueName,\n passIndex: stage.passIndex,\n vertex: null,\n pixel: null,\n duplicateStages: []\n };\n\n if (group[stage.stageName])\n {\n group.duplicateStages.push(stage.stageName);\n }\n\n group[stage.stageName] = stage;\n groups.set(key, group);\n }\n\n const incompletePasses = [];\n let completePassCount = 0;\n\n for (const group of groups.values())\n {\n const missingStages = [];\n const unavailableStages = [];\n\n for (const stageName of [ \"vertex\", \"pixel\" ])\n {\n const stage = group[stageName];\n\n if (!stage)\n {\n missingStages.push(stageName);\n continue;\n }\n\n const shader = shaderMap.get(stage.shaderKey);\n\n if (!shader?.hlsl2webgl?.ok || !shader.source)\n {\n unavailableStages.push({\n stageName,\n stageKey: stage.key,\n shaderKey: stage.shaderKey,\n reason: shader?.hlsl2webgl?.validationError\n || shader?.hlsl2webgl?.error\n || shader?.excluded?.reason\n || \"translated source is unavailable\"\n });\n }\n }\n\n if (!missingStages.length && !unavailableStages.length\n && !group.duplicateStages.length)\n {\n completePassCount++;\n }\n else\n {\n incompletePasses.push({\n ...group,\n missingStages,\n unavailableStages,\n duplicateStages: [ ...new Set(group.duplicateStages) ].sort()\n });\n }\n }\n\n return {\n expectedPassCount: groups.size,\n completePassCount,\n incompletePasses\n };\n}\n\nfunction normalizeSourceIdentity(values)\n{\n const identity = values.sourceIdentity;\n\n if (identity !== null\n && (!identity || typeof identity !== \"object\" || Array.isArray(identity)))\n {\n throw new TypeError(\"CEWG sourceIdentity must be an object\");\n }\n\n const sha256 = sha256Bytes(values.sourceBytes);\n if (identity?.sha256 !== undefined && identity?.sha256 !== null\n && identity.sha256 !== sha256)\n {\n throw new Error(\n \"CEWG sourceIdentity.sha256 does not match the exact effect input bytes\"\n );\n }\n\n return Object.freeze({\n filePath: identity?.filePath ?? values.source,\n logicalPath: identity?.logicalPath ?? values.source,\n game: identity?.game ?? null,\n client: identity?.client ?? null,\n build: identity?.build === undefined || identity?.build === null\n ? null\n : String(identity.build),\n byteLength: values.sourceBytes.byteLength,\n md5: identity?.md5 ?? null,\n sha256\n });\n}\n\nfunction qualifyEffectPackage({\n info,\n metadata,\n glsl,\n failedShaders,\n excludedShaders,\n failedBodies,\n rasterCompleteness,\n availableShaderCount\n})\n{\n const errors = [];\n\n if (info.format !== \"CEWG\" || glsl.format !== \"CEWG_GLSL_SET\")\n {\n errors.push(\"invalid CEWG package envelope\");\n }\n\n if (!Array.isArray(metadata.variants) || !Array.isArray(glsl.shaders))\n {\n errors.push(\"missing CEWG graph arrays\");\n }\n\n if (failedShaders.length)\n {\n errors.push(`${failedShaders.length} shader translation(s) failed`);\n }\n\n if (excludedShaders.length)\n {\n errors.push(`${excludedShaders.length} shader translation(s) are unsupported`);\n }\n\n if (failedBodies.length)\n {\n errors.push(`${failedBodies.length} effect body/bodies failed`);\n }\n\n if (rasterCompleteness.incompletePasses.length)\n {\n errors.push(`${rasterCompleteness.incompletePasses.length} raster pass(es) are incomplete`);\n }\n\n if (!availableShaderCount)\n {\n errors.push(\"no translated shaders are available\");\n }\n\n return {\n ok: errors.length === 0,\n level: errors.length ? \"diagnostic\" : \"structural\",\n errors: Object.freeze(errors),\n incompletePasses: Object.freeze(rasterCompleteness.incompletePasses)\n };\n}\n"],"names":["PACKAGE_VERSION","buildEffectPackage","input","options","values","normalizeOptions","effectRes","CjsHlslFormat","read","sourceBytes","emit","OUTPUT_RAW","source","IsGood","loadError","Error","sourceIdentity","normalizeSourceIdentity","m_version","permutationGraph","buildEffectPermutationGraph","reflectionPackage","buildCompleteEffectReflection","sourcePath","variants","buildExportVariants","allPermutations","bodyMap","Map","stageMap","shaderMap","variant","has","bodyKey","shader","GetShader","toShaderOptions","set","key","bodyOffset","bodySize","firstVariantKey","error","manifest","stages","effectDescription","GetEffectDescription","HlslEffectBindingManifest","fromEffectDescription","collection","collectStages","selection","body","errors","length","join","toJSON","stage","stageKey","shaderKey","contract","buildStageContract","stageRecord","localKey","techniqueName","passIndex","stageType","stageName","shaderHandle","shaderSize","bytecode","stringTableOffset","push","firstStageKey","firstBodyKey","bytes","contracts","translateStages","bodies","Array","from","translatedShaders","map","record","output","primaryContract","mergeShaderContracts","failedShaders","filter","hlsl2webgl","ok","excluded","excludedShaders","failedBodies","rasterCompleteness","inspectRasterCompleteness","availableShaderCount","info","format","formatVersion","EFFECT_INFO_VERSION","packageKind","targetBackend","backendPackage","backendPackageVersion","generatedAt","outputPath","sourceByteLength","byteLength","sourceMd5","md5","sourceSha256","sha256","translator","translatorVersion","language","flags","permutationMode","defaultPermutationIndex","m_permutations","sourceEffectVersion","sourceBodyCoverage","backendBodyCoverage","backendProgramCoverage","selectionCoversWholeEffect","permutationCount","uniqueBodyCount","sourcePermutationCount","sourceUniqueBodyCount","chunk","EFFECT_PERMUTATION_GRAPH_CHUNK","EFFECT_PERMUTATION_GRAPH_FORMAT","EFFECT_PERMUTATION_GRAPH_VERSION","sha256Utf8","JSON","stringify","effectReflection","pointer","bodyStageCount","uniqueShaderCount","translatedShaderCount","excludedShaderCount","failedShaderCount","failedBodyCount","expectedRasterPassCount","expectedPassCount","completeRasterPassCount","completePassCount","incompleteRasterPassCount","incompletePasses","allowFailures","completeness","packageValid","sourceComplete","backendComplete","runtimeComplete","metadata","effectResource","permutations","GetPermutationDescription","glsl","permutationIndex","shaders","qualification","qualifyEffectPackage","chunks","EFFECT_REFLECTION_CHUNK","reflection","EFFECT_REFLECTION_BLOB_CHUNK","blobBytes","includeSourceEffect","buildPackage","inspection","inspectWithValues","Object","freeze","reflectionBlobs","isArray","TypeError","toBytes","String","trim","technique","undefined","pass","Number","toLowerCase","isSafeInteger","includes","emitterOptions","normalizeOptionalString","Date","toISOString","value","name","result","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","multiplier","index","permutation","defaultOption","offset","size","decodePermutationOptions","remaining","optionCount","optionIndex","Math","floor","option","m_offsets","variantIndex","isInteger","tableIndex","tableIndexMatchesPermutationIndex","techniques","passes","declaredStageCount","HlslRenderContextEnum","SHADER_TYPE_COUNT","stageInput","stageInputs","m_exists","hlslShaderStageName","cjsShaderBytecode","m_shader","pipelineInputs","cloneJson","signature","registers","resources","mapToJson","samplers","uavs","constants","emitInto","pairVaryings","emitGlslWithOptions","stageInterface","normalizeBitangentStageInterface","inputs","bindings","stageOutputs","outputs","emitWarnings","warnings","mode","computeFragment","issue","validateStageSourceShape","validationError","message","details","test","reason","opcodeName","dimensionName","pixelVaryingsByPass","get","startsWith","register","sort","left","right","varyings","parse","entries","registerIndex","inputSemantics","semantic","usageName","usage","usageIndex","usedMask","type","dimension","inputNames","Set","hasNormal","hasTangent","hasBinormal","hasBlendIndices","tangentContract","resourceNames","entry","Boolean","vertex","requiresSplitTbn","requiresPackedTangent","requiresSkinning","texturePacking","classifyTexturePacking","constantBuffers","registerType","registerSpace","registerCount","arrayCount","dynamic","names","some","first","samplerNames","sharedByStageCount","shaderRecord","bitangentRegisters","flatMap","semanticName","semanticIndex","replaceAll","hasVertexOutput","hasVertexInterface","hasFragmentOutput","groups","group","pixel","duplicateStages","missingStages","unavailableStages","identity","sha256Bytes","filePath","logicalPath","game","client","build","level"],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  * Error raised when a CEWG package or a DXBC-to-GLSL emission cannot be
3
3
  * completed safely.
4
4
  *
5
- * This package has no dependency on `@carbonenginejs/format-dxbc`'s internal
6
- * `DxbcReadError` class (that package only exports its public `CjsDxbcFormat`
7
- * boundary). Emitter/package failures raised from this package's own code
5
+ * This format has no dependency on the sibling `formats/dxbc` internal
6
+ * `DxbcReadError` class (that format only exports its public `CjsDxbcFormat`
7
+ * boundary). Emitter/package failures raised from this format's own code
8
8
  * use this class instead, while thrown messages that document a specific
9
9
  * failure mode (see README/tests) are kept identical to their origin in
10
10
  * `hlslreader`.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sources":["../../../../../src/formats/webgl/core/errors.js"],"sourcesContent":["/**\n * Error raised when a CEWG package or a DXBC-to-GLSL emission cannot be\n * completed safely.\n *\n * This package has no dependency on `@carbonenginejs/format-dxbc`'s internal\n * `DxbcReadError` class (that package only exports its public `CjsDxbcFormat`\n * boundary). Emitter/package failures raised from this package's own code\n * use this class instead, while thrown messages that document a specific\n * failure mode (see README/tests) are kept identical to their origin in\n * `hlslreader`.\n */\nexport class WebglReadError extends Error\n{\n /**\n * Creates a read/emit error with structured location details.\n *\n * @param {string} message Human-readable failure reason.\n * @param {object} [details] Extra reader state such as source, offset, or opcode.\n */\n constructor(message, details = {})\n {\n super(message);\n this.name = \"WebglReadError\";\n this.details = details;\n }\n}\n"],"names":["WebglReadError","Error","constructor","message","details","name"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,cAAc,SAASC,KAAK,CACzC;AACI;AACJ;AACA;AACA;AACA;AACA;AACIC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,OAAO,GAAG,EAAE,EACjC;IACI,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,gBAAgB;IAC5B,IAAI,CAACD,OAAO,GAAGA,OAAO;AAC1B,EAAA;AACJ;;;;"}
1
+ {"version":3,"file":"errors.js","sources":["../../../../../src/formats/webgl/core/errors.js"],"sourcesContent":["/**\n * Error raised when a CEWG package or a DXBC-to-GLSL emission cannot be\n * completed safely.\n *\n * This format has no dependency on the sibling `formats/dxbc` internal\n * `DxbcReadError` class (that format only exports its public `CjsDxbcFormat`\n * boundary). Emitter/package failures raised from this format's own code\n * use this class instead, while thrown messages that document a specific\n * failure mode (see README/tests) are kept identical to their origin in\n * `hlslreader`.\n */\nexport class WebglReadError extends Error\n{\n /**\n * Creates a read/emit error with structured location details.\n *\n * @param {string} message Human-readable failure reason.\n * @param {object} [details] Extra reader state such as source, offset, or opcode.\n */\n constructor(message, details = {})\n {\n super(message);\n this.name = \"WebglReadError\";\n this.details = details;\n }\n}\n"],"names":["WebglReadError","Error","constructor","message","details","name"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,cAAc,SAASC,KAAK,CACzC;AACI;AACJ;AACA;AACA;AACA;AACA;AACIC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,OAAO,GAAG,EAAE,EACjC;IACI,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,gBAAgB;IAC5B,IAAI,CAACD,OAAO,GAAGA,OAAO;AAC1B,EAAA;AACJ;;;;"}
@@ -5,13 +5,14 @@ import { buildWgslBindingPlan } from './core/wgsl/buildWgslBindingPlan.js';
5
5
  import { buildWgslSet } from './core/wgsl/buildWgslSet.js';
6
6
  import { buildEffectPackage } from './core/packageEffect.js';
7
7
  import { FORMAT_WEBGPU_PACKAGE_VERSION } from './core/packageMetadata.js';
8
- import { DEFAULT_VALUES, normalizeValues, validateClassKey, validateClass, readWithValues, inspectWithValues, buildPackage, analyzeEffectWithValues, toJsonValue, isCewgpu, OUTPUT_JSON, OUTPUT_RAW, CEWGPU_FORMAT, CEWGPU_ANALYSIS_FORMAT } from './core/helpers.js';
8
+ import { DEFAULT_VALUES, normalizeValues, validateClassKey, validateClass, readWithValues, inspectWithValues, analyzeEffectWithValues, toJsonValue, isCewgpu, OUTPUT_JSON, OUTPUT_RAW, CEWGPU_FORMAT, CEWGPU_ANALYSIS_FORMAT } from './core/helpers.js';
9
9
 
10
10
  const FORMAT_NAME = "CjsWebgpuFormat";
11
11
 
12
12
  /**
13
13
  * CarbonEngineJS-facing format surface for `.cewgpu` WebGPU packages, plus an
14
- * offline effect-analysis helper built on `format-hlsl` and `format-dxbc`.
14
+ * offline effect-analysis helper built on the runtime-resource HLSL and DXBC
15
+ * format subpaths.
15
16
  *
16
17
  * The package owns read/build, normalized shader analysis, and the current
17
18
  * bounded DXBC-to-WGSL profiles. Broader shader-semantic coverage remains an
@@ -144,16 +145,6 @@ class CjsWebgpuFormat {
144
145
  return inspectWithValues(input, this.GetValues(options));
145
146
  }
146
147
 
147
- /**
148
- * Assembles a CEWGPU package from ordered chunk payloads.
149
- *
150
- * @param {Array<[string, string|object|Uint8Array|ArrayBuffer|ArrayBufferView]>} chunks Ordered package chunks.
151
- * @returns {Uint8Array} Package bytes.
152
- */
153
- Build(chunks) {
154
- return buildPackage(chunks);
155
- }
156
-
157
148
  /**
158
149
  * Analyzes one compiled effect payload into a normalized WebGPU-facing
159
150
  * document using the current profile's values.
@@ -243,7 +234,7 @@ class CjsWebgpuFormat {
243
234
  * Static payload sniff. Static methods use camelCase by convention.
244
235
  *
245
236
  * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.
246
- * @returns {boolean} True when the payload starts with the CEWGPU magic.
237
+ * @returns {boolean} True when the payload has Carbon's version-15 shape.
247
238
  */
248
239
  static isCewgpu(input) {
249
240
  return isCewgpu(input);
@@ -271,16 +262,6 @@ class CjsWebgpuFormat {
271
262
  return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));
272
263
  }
273
264
 
274
- /**
275
- * Static one-shot package build.
276
- *
277
- * @param {Array<[string, string|object|Uint8Array|ArrayBuffer|ArrayBufferView]>} chunks Ordered package chunks.
278
- * @returns {Uint8Array} Package bytes.
279
- */
280
- static build(chunks) {
281
- return buildPackage(chunks);
282
- }
283
-
284
265
  /**
285
266
  * Static one-shot effect analysis.
286
267
  *
@@ -1 +1 @@
1
- {"version":3,"file":"CjsWebgpuFormat.js","sources":["../../../../src/formats/webgpu/CjsWebgpuFormat.js"],"sourcesContent":["import { CLASS_KEYS } from \"./core/schema.js\";\nimport { lowerDxbcToIr } from \"./core/ir/lowerDxbcToIr.js\";\nimport { buildWgsl } from \"./core/wgsl/emitWgsl.js\";\nimport { buildWgslBindingPlan } from \"./core/wgsl/buildWgslBindingPlan.js\";\nimport { buildWgslSet } from \"./core/wgsl/buildWgslSet.js\";\nimport { buildEffectPackage } from \"./core/packageEffect.js\";\nimport { FORMAT_WEBGPU_PACKAGE_VERSION } from \"./core/packageMetadata.js\";\nimport {\n CEWGPU_ANALYSIS_FORMAT,\n CEWGPU_FORMAT,\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n analyzeEffectWithValues,\n buildPackage,\n inspectWithValues,\n isCewgpu,\n normalizeValues,\n readWithValues,\n toJsonValue,\n validateClass,\n validateClassKey\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWebgpuFormat\";\n\n/**\n * CarbonEngineJS-facing format surface for `.cewgpu` WebGPU packages, plus an\n * offline effect-analysis helper built on `format-hlsl` and `format-dxbc`.\n *\n * The package owns read/build, normalized shader analysis, and the current\n * bounded DXBC-to-WGSL profiles. Broader shader-semantic coverage remains an\n * explicit qualification ladder.\n */\nexport class CjsWebgpuFormat\n{\n #emit = DEFAULT_VALUES.emit;\n #source = DEFAULT_VALUES.source;\n #decodeInstructions = DEFAULT_VALUES.decodeInstructions;\n #permutation = DEFAULT_VALUES.permutation;\n #schema = DEFAULT_VALUES.schema;\n #classes = {};\n\n /**\n * Create a reusable format profile.\n *\n * @param {object} [options] Default format values.\n */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Set format values for this reusable profile.\n *\n * @param {object} [options] Values to merge into the profile.\n * @returns {CjsWebgpuFormat} This format profile.\n */\n SetValues(options = {})\n {\n const values = normalizeValues(this.GetValues(), options, CLASS_KEYS, FORMAT_NAME);\n this.#emit = values.emit;\n this.#source = values.source;\n this.#decodeInstructions = values.decodeInstructions;\n this.#permutation = values.permutation;\n this.#schema = values.schema;\n this.#classes = values.classes;\n return this;\n }\n\n /**\n * Get this profile's current values, optionally with per-call overrides.\n *\n * @param {object} [options] Optional values to merge into a copy.\n * @returns {object} A copy of the effective values.\n */\n GetValues(options = {})\n {\n return normalizeValues({\n emit: this.#emit,\n source: this.#source,\n decodeInstructions: this.#decodeInstructions,\n permutation: this.#permutation,\n schema: this.#schema,\n classes: this.#classes\n }, options, CLASS_KEYS, FORMAT_NAME);\n }\n\n /**\n * Set multiple node-class constructors for this profile.\n *\n * @param {object} [classes] Map of node class keys to constructors.\n * @returns {CjsWebgpuFormat} This format profile.\n */\n SetClasses(classes = {})\n {\n return this.SetValues({ classes });\n }\n\n /**\n * Set one node-class constructor for this profile.\n *\n * @param {string} type Node class key.\n * @param {Function|null|undefined} Class constructor to use, or nullish to delete.\n * @returns {CjsWebgpuFormat} This format profile.\n */\n SetClass(type, Class)\n {\n validateClassKey(CLASS_KEYS, type, FORMAT_NAME);\n if (Class === null || Class === undefined)\n {\n delete this.#classes[type];\n return this;\n }\n\n validateClass(CLASS_KEYS, type, Class, FORMAT_NAME);\n this.#classes = { ...this.#classes, [type]: Class };\n return this;\n }\n\n /**\n * Get a configured node-class constructor.\n *\n * @param {string} type Node class key.\n * @returns {Function|undefined} The registered constructor, if any.\n */\n GetClass(type)\n {\n validateClassKey(CLASS_KEYS, type, FORMAT_NAME);\n return this.#classes[type];\n }\n\n /**\n * Whether this format profile has a constructor registered for a node key.\n *\n * @param {string} type Node class key.\n * @returns {boolean} True when a constructor is registered.\n */\n HasClass(type)\n {\n return !!this.GetClass(type);\n }\n\n /**\n * Read a CEWGPU package with this profile's values.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Per-call value overrides.\n * @returns {object} Plain JSON data, or the raw package instance when emit is \"raw\".\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Inspect a CEWGPU package without building the full JSON shape.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Per-call value overrides.\n * @returns {object} Plain summary data.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Assembles a CEWGPU package from ordered chunk payloads.\n *\n * @param {Array<[string, string|object|Uint8Array|ArrayBuffer|ArrayBufferView]>} chunks Ordered package chunks.\n * @returns {Uint8Array} Package bytes.\n */\n Build(chunks)\n {\n return buildPackage(chunks);\n }\n\n /**\n * Analyzes one compiled effect payload into a normalized WebGPU-facing\n * document using the current profile's values.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Tr2 effect bytes.\n * @param {object} [options] Per-call value overrides.\n * @returns {object} Plain JSON-compatible analysis data.\n */\n AnalyzeEffect(input, options = {})\n {\n return analyzeEffectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Builds a CEWGPU package with complete version-15 source reflection and\n * selected-body WebGPU output from compiled Tr2 effect bytes.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.\n * @param {object} [options] Source, body-mode, permutation, and stage-selection policy.\n * @returns {object} Package bytes plus inspection and provenance documents.\n */\n BuildEffect(input, options = {})\n {\n const values = this.GetValues();\n\n return buildEffectPackage(input, {\n source: values.source,\n permutation: values.permutation,\n ...options\n });\n }\n\n /**\n * Lowers DXBC bytes or decoded instructions into the front-end shader IR.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC input.\n * @param {object} [options] IR provenance options.\n * @returns {object} Frozen shader IR program.\n */\n BuildShaderIr(input, options = {})\n {\n return lowerDxbcToIr(input, options);\n }\n\n /**\n * Emits WGSL for the currently supported typed shader slice.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC or shader IR.\n * @param {object} [options] Source/provenance options.\n * @returns {object} Frozen WGSL shader descriptor.\n */\n BuildWgsl(input, options = {})\n {\n return buildWgsl(input, options);\n }\n\n /**\n * Assign one canonical numeric binding layout across shader stages in a pass.\n * Unshared D3D tuples remain stage-scoped unless shared explicitly.\n *\n * @param {object[]} programs Complete CJS shader IR stage set for one pass.\n * @param {object} [options] Pass-level binding policy.\n * @param {string[]} [options.sharedIdentities] Compatible D3D identities\n * confirmed to represent one resource across stages.\n * @returns {object} Frozen CJS_WGSL_BINDING_PLAN document.\n */\n BuildWgslBindingPlan(programs, options = {})\n {\n return buildWgslBindingPlan(programs, options);\n }\n\n /**\n * Assembles emitted shader descriptors into a portable WGSL set.\n *\n * @param {object[]} entries Canonically keyed emitted shader descriptors.\n * @returns {object} Frozen CJS_WGSL_SET document.\n */\n BuildWgslSet(entries)\n {\n return buildWgslSet(entries);\n }\n\n /**\n * Convert format output to JSON-compatible data.\n *\n * @param {any} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Static payload sniff. Static methods use camelCase by convention.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.\n * @returns {boolean} True when the payload starts with the CEWGPU magic.\n */\n static isCewgpu(input)\n {\n return isCewgpu(input);\n }\n\n /**\n * Static one-shot read.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Format values.\n * @returns {object} Plain JSON data, or the raw package instance when emit is \"raw\".\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));\n }\n\n /**\n * Static one-shot inspection.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Format values.\n * @returns {object} Plain summary data.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));\n }\n\n /**\n * Static one-shot package build.\n *\n * @param {Array<[string, string|object|Uint8Array|ArrayBuffer|ArrayBufferView]>} chunks Ordered package chunks.\n * @returns {Uint8Array} Package bytes.\n */\n static build(chunks)\n {\n return buildPackage(chunks);\n }\n\n /**\n * Static one-shot effect analysis.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Tr2 effect bytes.\n * @param {object} [options] Format values.\n * @returns {object} Plain JSON-compatible analysis data.\n */\n static analyzeEffect(input, options = {})\n {\n return analyzeEffectWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));\n }\n\n /**\n * Static selected-body CEWGPU builder.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.\n * @param {object} [options] Source, body-mode, permutation, and stage-selection policy.\n * @returns {object} Package bytes plus inspection and provenance documents.\n */\n static buildEffect(input, options = {})\n {\n return buildEffectPackage(input, options);\n }\n\n /**\n * Static DXBC-to-front-end-IR helper.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC input.\n * @param {object} [options] IR provenance options.\n * @returns {object} Frozen shader IR program.\n */\n static buildShaderIr(input, options = {})\n {\n return lowerDxbcToIr(input, options);\n }\n\n /**\n * Static WGSL emission helper for the currently supported typed slice.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC or shader IR.\n * @param {object} [options] Source/provenance options.\n * @returns {object} Frozen WGSL shader descriptor.\n */\n static buildWgsl(input, options = {})\n {\n return buildWgsl(input, options);\n }\n\n /**\n * Static pass-global WGSL binding-plan helper. Unshared D3D tuples remain\n * stage-scoped unless listed in options.sharedIdentities.\n *\n * @param {object[]} programs Complete CJS shader IR stage set for one pass.\n * @param {object} [options] Pass-level binding policy.\n * @param {string[]} [options.sharedIdentities] Compatible D3D identities\n * confirmed to represent one resource across stages.\n * @returns {object} Frozen CJS_WGSL_BINDING_PLAN document.\n */\n static buildWgslBindingPlan(programs, options = {})\n {\n return buildWgslBindingPlan(programs, options);\n }\n\n /**\n * Static WGSL-set assembly helper.\n *\n * @param {object[]} entries Canonically keyed emitted shader descriptors.\n * @returns {object} Frozen CJS_WGSL_SET document.\n */\n static buildWgslSet(entries)\n {\n return buildWgslSet(entries);\n }\n\n /**\n * Static JSON-compatible conversion.\n *\n * @param {any} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n static OUTPUT_JSON = OUTPUT_JSON;\n static OUTPUT_RAW = OUTPUT_RAW;\n static CLASS_KEYS = CLASS_KEYS;\n static type = Object.freeze([ \"shader\" ]);\n static mediaTypes = Object.freeze([ \"shader\" ]);\n static inputTypes = Object.freeze([ \"cewgpu\" ]);\n static outputTypes = Object.freeze([ OUTPUT_JSON ]);\n static debugOutputTypes = Object.freeze([ OUTPUT_RAW ]);\n static implementationStatus = \"partial\";\n static format = CEWGPU_FORMAT;\n static analysisFormat = CEWGPU_ANALYSIS_FORMAT;\n static packageVersion = FORMAT_WEBGPU_PACKAGE_VERSION;\n}\n\nexport default CjsWebgpuFormat;\n"],"names":["FORMAT_NAME","CjsWebgpuFormat","DEFAULT_VALUES","emit","source","decodeInstructions","permutation","schema","constructor","options","SetValues","values","normalizeValues","GetValues","CLASS_KEYS","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Inspect","inspectWithValues","Build","chunks","buildPackage","AnalyzeEffect","analyzeEffectWithValues","BuildEffect","buildEffectPackage","BuildShaderIr","lowerDxbcToIr","BuildWgsl","buildWgsl","BuildWgslBindingPlan","programs","buildWgslBindingPlan","BuildWgslSet","entries","buildWgslSet","ToJSON","value","toJsonValue","isCewgpu","read","inspect","build","analyzeEffect","buildEffect","buildShaderIr","toJSON","OUTPUT_JSON","OUTPUT_RAW","Object","freeze","mediaTypes","inputTypes","outputTypes","debugOutputTypes","implementationStatus","format","CEWGPU_FORMAT","analysisFormat","CEWGPU_ANALYSIS_FORMAT","packageVersion","FORMAT_WEBGPU_PACKAGE_VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"CjsWebgpuFormat.js","sources":["../../../../src/formats/webgpu/CjsWebgpuFormat.js"],"sourcesContent":["import { CLASS_KEYS } from \"./core/schema.js\";\nimport { lowerDxbcToIr } from \"./core/ir/lowerDxbcToIr.js\";\nimport { buildWgsl } from \"./core/wgsl/emitWgsl.js\";\nimport { buildWgslBindingPlan } from \"./core/wgsl/buildWgslBindingPlan.js\";\nimport { buildWgslSet } from \"./core/wgsl/buildWgslSet.js\";\nimport { buildEffectPackage } from \"./core/packageEffect.js\";\nimport { FORMAT_WEBGPU_PACKAGE_VERSION } from \"./core/packageMetadata.js\";\nimport {\n CEWGPU_ANALYSIS_FORMAT,\n CEWGPU_FORMAT,\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n analyzeEffectWithValues,\n inspectWithValues,\n isCewgpu,\n normalizeValues,\n readWithValues,\n toJsonValue,\n validateClass,\n validateClassKey\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsWebgpuFormat\";\n\n/**\n * CarbonEngineJS-facing format surface for `.cewgpu` WebGPU packages, plus an\n * offline effect-analysis helper built on the runtime-resource HLSL and DXBC\n * format subpaths.\n *\n * The package owns read/build, normalized shader analysis, and the current\n * bounded DXBC-to-WGSL profiles. Broader shader-semantic coverage remains an\n * explicit qualification ladder.\n */\nexport class CjsWebgpuFormat\n{\n #emit = DEFAULT_VALUES.emit;\n #source = DEFAULT_VALUES.source;\n #decodeInstructions = DEFAULT_VALUES.decodeInstructions;\n #permutation = DEFAULT_VALUES.permutation;\n #schema = DEFAULT_VALUES.schema;\n #classes = {};\n\n /**\n * Create a reusable format profile.\n *\n * @param {object} [options] Default format values.\n */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Set format values for this reusable profile.\n *\n * @param {object} [options] Values to merge into the profile.\n * @returns {CjsWebgpuFormat} This format profile.\n */\n SetValues(options = {})\n {\n const values = normalizeValues(this.GetValues(), options, CLASS_KEYS, FORMAT_NAME);\n this.#emit = values.emit;\n this.#source = values.source;\n this.#decodeInstructions = values.decodeInstructions;\n this.#permutation = values.permutation;\n this.#schema = values.schema;\n this.#classes = values.classes;\n return this;\n }\n\n /**\n * Get this profile's current values, optionally with per-call overrides.\n *\n * @param {object} [options] Optional values to merge into a copy.\n * @returns {object} A copy of the effective values.\n */\n GetValues(options = {})\n {\n return normalizeValues({\n emit: this.#emit,\n source: this.#source,\n decodeInstructions: this.#decodeInstructions,\n permutation: this.#permutation,\n schema: this.#schema,\n classes: this.#classes\n }, options, CLASS_KEYS, FORMAT_NAME);\n }\n\n /**\n * Set multiple node-class constructors for this profile.\n *\n * @param {object} [classes] Map of node class keys to constructors.\n * @returns {CjsWebgpuFormat} This format profile.\n */\n SetClasses(classes = {})\n {\n return this.SetValues({ classes });\n }\n\n /**\n * Set one node-class constructor for this profile.\n *\n * @param {string} type Node class key.\n * @param {Function|null|undefined} Class constructor to use, or nullish to delete.\n * @returns {CjsWebgpuFormat} This format profile.\n */\n SetClass(type, Class)\n {\n validateClassKey(CLASS_KEYS, type, FORMAT_NAME);\n if (Class === null || Class === undefined)\n {\n delete this.#classes[type];\n return this;\n }\n\n validateClass(CLASS_KEYS, type, Class, FORMAT_NAME);\n this.#classes = { ...this.#classes, [type]: Class };\n return this;\n }\n\n /**\n * Get a configured node-class constructor.\n *\n * @param {string} type Node class key.\n * @returns {Function|undefined} The registered constructor, if any.\n */\n GetClass(type)\n {\n validateClassKey(CLASS_KEYS, type, FORMAT_NAME);\n return this.#classes[type];\n }\n\n /**\n * Whether this format profile has a constructor registered for a node key.\n *\n * @param {string} type Node class key.\n * @returns {boolean} True when a constructor is registered.\n */\n HasClass(type)\n {\n return !!this.GetClass(type);\n }\n\n /**\n * Read a CEWGPU package with this profile's values.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Per-call value overrides.\n * @returns {object} Plain JSON data, or the raw package instance when emit is \"raw\".\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Inspect a CEWGPU package without building the full JSON shape.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Per-call value overrides.\n * @returns {object} Plain summary data.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Analyzes one compiled effect payload into a normalized WebGPU-facing\n * document using the current profile's values.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Tr2 effect bytes.\n * @param {object} [options] Per-call value overrides.\n * @returns {object} Plain JSON-compatible analysis data.\n */\n AnalyzeEffect(input, options = {})\n {\n return analyzeEffectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Builds a CEWGPU package with complete version-15 source reflection and\n * selected-body WebGPU output from compiled Tr2 effect bytes.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.\n * @param {object} [options] Source, body-mode, permutation, and stage-selection policy.\n * @returns {object} Package bytes plus inspection and provenance documents.\n */\n BuildEffect(input, options = {})\n {\n const values = this.GetValues();\n\n return buildEffectPackage(input, {\n source: values.source,\n permutation: values.permutation,\n ...options\n });\n }\n\n /**\n * Lowers DXBC bytes or decoded instructions into the front-end shader IR.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC input.\n * @param {object} [options] IR provenance options.\n * @returns {object} Frozen shader IR program.\n */\n BuildShaderIr(input, options = {})\n {\n return lowerDxbcToIr(input, options);\n }\n\n /**\n * Emits WGSL for the currently supported typed shader slice.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC or shader IR.\n * @param {object} [options] Source/provenance options.\n * @returns {object} Frozen WGSL shader descriptor.\n */\n BuildWgsl(input, options = {})\n {\n return buildWgsl(input, options);\n }\n\n /**\n * Assign one canonical numeric binding layout across shader stages in a pass.\n * Unshared D3D tuples remain stage-scoped unless shared explicitly.\n *\n * @param {object[]} programs Complete CJS shader IR stage set for one pass.\n * @param {object} [options] Pass-level binding policy.\n * @param {string[]} [options.sharedIdentities] Compatible D3D identities\n * confirmed to represent one resource across stages.\n * @returns {object} Frozen CJS_WGSL_BINDING_PLAN document.\n */\n BuildWgslBindingPlan(programs, options = {})\n {\n return buildWgslBindingPlan(programs, options);\n }\n\n /**\n * Assembles emitted shader descriptors into a portable WGSL set.\n *\n * @param {object[]} entries Canonically keyed emitted shader descriptors.\n * @returns {object} Frozen CJS_WGSL_SET document.\n */\n BuildWgslSet(entries)\n {\n return buildWgslSet(entries);\n }\n\n /**\n * Convert format output to JSON-compatible data.\n *\n * @param {any} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Static payload sniff. Static methods use camelCase by convention.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.\n * @returns {boolean} True when the payload has Carbon's version-15 shape.\n */\n static isCewgpu(input)\n {\n return isCewgpu(input);\n }\n\n /**\n * Static one-shot read.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Format values.\n * @returns {object} Plain JSON data, or the raw package instance when emit is \"raw\".\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));\n }\n\n /**\n * Static one-shot inspection.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input CEWGPU package bytes.\n * @param {object} [options] Format values.\n * @returns {object} Plain summary data.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));\n }\n\n /**\n * Static one-shot effect analysis.\n *\n * @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Tr2 effect bytes.\n * @param {object} [options] Format values.\n * @returns {object} Plain JSON-compatible analysis data.\n */\n static analyzeEffect(input, options = {})\n {\n return analyzeEffectWithValues(input, normalizeValues(DEFAULT_VALUES, options, CLASS_KEYS, FORMAT_NAME));\n }\n\n /**\n * Static selected-body CEWGPU builder.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.\n * @param {object} [options] Source, body-mode, permutation, and stage-selection policy.\n * @returns {object} Package bytes plus inspection and provenance documents.\n */\n static buildEffect(input, options = {})\n {\n return buildEffectPackage(input, options);\n }\n\n /**\n * Static DXBC-to-front-end-IR helper.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC input.\n * @param {object} [options] IR provenance options.\n * @returns {object} Frozen shader IR program.\n */\n static buildShaderIr(input, options = {})\n {\n return lowerDxbcToIr(input, options);\n }\n\n /**\n * Static WGSL emission helper for the currently supported typed slice.\n *\n * @param {Uint8Array|ArrayBuffer|ArrayBufferView|object} input DXBC or shader IR.\n * @param {object} [options] Source/provenance options.\n * @returns {object} Frozen WGSL shader descriptor.\n */\n static buildWgsl(input, options = {})\n {\n return buildWgsl(input, options);\n }\n\n /**\n * Static pass-global WGSL binding-plan helper. Unshared D3D tuples remain\n * stage-scoped unless listed in options.sharedIdentities.\n *\n * @param {object[]} programs Complete CJS shader IR stage set for one pass.\n * @param {object} [options] Pass-level binding policy.\n * @param {string[]} [options.sharedIdentities] Compatible D3D identities\n * confirmed to represent one resource across stages.\n * @returns {object} Frozen CJS_WGSL_BINDING_PLAN document.\n */\n static buildWgslBindingPlan(programs, options = {})\n {\n return buildWgslBindingPlan(programs, options);\n }\n\n /**\n * Static WGSL-set assembly helper.\n *\n * @param {object[]} entries Canonically keyed emitted shader descriptors.\n * @returns {object} Frozen CJS_WGSL_SET document.\n */\n static buildWgslSet(entries)\n {\n return buildWgslSet(entries);\n }\n\n /**\n * Static JSON-compatible conversion.\n *\n * @param {any} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n static OUTPUT_JSON = OUTPUT_JSON;\n static OUTPUT_RAW = OUTPUT_RAW;\n static CLASS_KEYS = CLASS_KEYS;\n static type = Object.freeze([ \"shader\" ]);\n static mediaTypes = Object.freeze([ \"shader\" ]);\n static inputTypes = Object.freeze([ \"cewgpu\" ]);\n static outputTypes = Object.freeze([ OUTPUT_JSON ]);\n static debugOutputTypes = Object.freeze([ OUTPUT_RAW ]);\n static implementationStatus = \"partial\";\n static format = CEWGPU_FORMAT;\n static analysisFormat = CEWGPU_ANALYSIS_FORMAT;\n static packageVersion = FORMAT_WEBGPU_PACKAGE_VERSION;\n}\n\nexport default CjsWebgpuFormat;\n"],"names":["FORMAT_NAME","CjsWebgpuFormat","DEFAULT_VALUES","emit","source","decodeInstructions","permutation","schema","constructor","options","SetValues","values","normalizeValues","GetValues","CLASS_KEYS","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Inspect","inspectWithValues","AnalyzeEffect","analyzeEffectWithValues","BuildEffect","buildEffectPackage","BuildShaderIr","lowerDxbcToIr","BuildWgsl","buildWgsl","BuildWgslBindingPlan","programs","buildWgslBindingPlan","BuildWgslSet","entries","buildWgslSet","ToJSON","value","toJsonValue","isCewgpu","read","inspect","analyzeEffect","buildEffect","buildShaderIr","toJSON","OUTPUT_JSON","OUTPUT_RAW","Object","freeze","mediaTypes","inputTypes","outputTypes","debugOutputTypes","implementationStatus","format","CEWGPU_FORMAT","analysisFormat","CEWGPU_ANALYSIS_FORMAT","packageVersion","FORMAT_WEBGPU_PACKAGE_VERSION"],"mappings":";;;;;;;;;AAuBA,MAAMA,WAAW,GAAG,iBAAiB;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,CAC5B;AACI,EAAA,KAAK,GAAGC,cAAc,CAACC,IAAI;AAC3B,EAAA,OAAO,GAAGD,cAAc,CAACE,MAAM;AAC/B,EAAA,mBAAmB,GAAGF,cAAc,CAACG,kBAAkB;AACvD,EAAA,YAAY,GAAGH,cAAc,CAACI,WAAW;AACzC,EAAA,OAAO,GAAGJ,cAAc,CAACK,MAAM;EAC/B,QAAQ,GAAG,EAAE;;AAEb;AACJ;AACA;AACA;AACA;AACIC,EAAAA,WAAWA,CAACC,OAAO,GAAG,EAAE,EACxB;AACI,IAAA,IAAI,CAACC,SAAS,CAACD,OAAO,CAAC;AAC3B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACIC,EAAAA,SAASA,CAACD,OAAO,GAAG,EAAE,EACtB;AACI,IAAA,MAAME,MAAM,GAAGC,eAAe,CAAC,IAAI,CAACC,SAAS,EAAE,EAAEJ,OAAO,EAAEK,UAAU,EAAEd,WAAW,CAAC;AAClF,IAAA,IAAI,CAAC,KAAK,GAAGW,MAAM,CAACR,IAAI;AACxB,IAAA,IAAI,CAAC,OAAO,GAAGQ,MAAM,CAACP,MAAM;AAC5B,IAAA,IAAI,CAAC,mBAAmB,GAAGO,MAAM,CAACN,kBAAkB;AACpD,IAAA,IAAI,CAAC,YAAY,GAAGM,MAAM,CAACL,WAAW;AACtC,IAAA,IAAI,CAAC,OAAO,GAAGK,MAAM,CAACJ,MAAM;AAC5B,IAAA,IAAI,CAAC,QAAQ,GAAGI,MAAM,CAACI,OAAO;AAC9B,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACIF,EAAAA,SAASA,CAACJ,OAAO,GAAG,EAAE,EACtB;AACI,IAAA,OAAOG,eAAe,CAAC;AACnBT,MAAAA,IAAI,EAAE,IAAI,CAAC,KAAK;AAChBC,MAAAA,MAAM,EAAE,IAAI,CAAC,OAAO;AACpBC,MAAAA,kBAAkB,EAAE,IAAI,CAAC,mBAAmB;AAC5CC,MAAAA,WAAW,EAAE,IAAI,CAAC,YAAY;AAC9BC,MAAAA,MAAM,EAAE,IAAI,CAAC,OAAO;MACpBQ,OAAO,EAAE,IAAI,CAAC;AAClB,KAAC,EAAEN,OAAO,EAAEK,UAAU,EAAEd,WAAW,CAAC;AACxC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACIgB,EAAAA,UAAUA,CAACD,OAAO,GAAG,EAAE,EACvB;IACI,OAAO,IAAI,CAACL,SAAS,CAAC;AAAEK,MAAAA;AAAQ,KAAC,CAAC;AACtC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACIE,EAAAA,QAAQA,CAACC,IAAI,EAAEC,KAAK,EACpB;AACIC,IAAAA,gBAAgB,CAACN,UAAU,EAAEI,IAAI,EAAElB,WAAW,CAAC;AAC/C,IAAA,IAAImB,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKE,SAAS,EACzC;AACI,MAAA,OAAO,IAAI,CAAC,QAAQ,CAACH,IAAI,CAAC;AAC1B,MAAA,OAAO,IAAI;AACf,IAAA;IAEAI,aAAa,CAACR,UAAU,EAAEI,IAAI,EAAEC,KAAK,EAAEnB,WAAW,CAAC;IACnD,IAAI,CAAC,QAAQ,GAAG;MAAE,GAAG,IAAI,CAAC,QAAQ;AAAE,MAAA,CAACkB,IAAI,GAAGC;KAAO;AACnD,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACII,QAAQA,CAACL,IAAI,EACb;AACIE,IAAAA,gBAAgB,CAACN,UAAU,EAAEI,IAAI,EAAElB,WAAW,CAAC;AAC/C,IAAA,OAAO,IAAI,CAAC,QAAQ,CAACkB,IAAI,CAAC;AAC9B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACIM,QAAQA,CAACN,IAAI,EACb;AACI,IAAA,OAAO,CAAC,CAAC,IAAI,CAACK,QAAQ,CAACL,IAAI,CAAC;AAChC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACIO,EAAAA,IAAIA,CAACC,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACxB;IACI,OAAOkB,cAAc,CAACD,KAAK,EAAE,IAAI,CAACb,SAAS,CAACJ,OAAO,CAAC,CAAC;AACzD,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACImB,EAAAA,OAAOA,CAACF,KAAK,EAAEjB,OAAO,GAAG,EAAE,EAC3B;IACI,OAAOoB,iBAAiB,CAACH,KAAK,EAAE,IAAI,CAACb,SAAS,CAACJ,OAAO,CAAC,CAAC;AAC5D,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIqB,EAAAA,aAAaA,CAACJ,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACjC;IACI,OAAOsB,uBAAuB,CAACL,KAAK,EAAE,IAAI,CAACb,SAAS,CAACJ,OAAO,CAAC,CAAC;AAClE,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIuB,EAAAA,WAAWA,CAACN,KAAK,EAAEjB,OAAO,GAAG,EAAE,EAC/B;AACI,IAAA,MAAME,MAAM,GAAG,IAAI,CAACE,SAAS,EAAE;IAE/B,OAAOoB,kBAAkB,CAACP,KAAK,EAAE;MAC7BtB,MAAM,EAAEO,MAAM,CAACP,MAAM;MACrBE,WAAW,EAAEK,MAAM,CAACL,WAAW;MAC/B,GAAGG;AACP,KAAC,CAAC;AACN,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACIyB,EAAAA,aAAaA,CAACR,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACjC;AACI,IAAA,OAAO0B,aAAa,CAACT,KAAK,EAAEjB,OAAO,CAAC;AACxC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACI2B,EAAAA,SAASA,CAACV,KAAK,EAAEjB,OAAO,GAAG,EAAE,EAC7B;AACI,IAAA,OAAO4B,SAAS,CAACX,KAAK,EAAEjB,OAAO,CAAC;AACpC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI6B,EAAAA,oBAAoBA,CAACC,QAAQ,EAAE9B,OAAO,GAAG,EAAE,EAC3C;AACI,IAAA,OAAO+B,oBAAoB,CAACD,QAAQ,EAAE9B,OAAO,CAAC;AAClD,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACIgC,YAAYA,CAACC,OAAO,EACpB;IACI,OAAOC,YAAY,CAACD,OAAO,CAAC;AAChC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACIE,MAAMA,CAACC,KAAK,EACZ;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOE,QAAQA,CAACrB,KAAK,EACrB;IACI,OAAOqB,QAAQ,CAACrB,KAAK,CAAC;AAC1B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOsB,IAAIA,CAACtB,KAAK,EAAEjB,OAAO,GAAG,EAAE,EAC/B;AACI,IAAA,OAAOkB,cAAc,CAACD,KAAK,EAAEd,eAAe,CAACV,cAAc,EAAEO,OAAO,EAAEK,UAAU,EAAEd,WAAW,CAAC,CAAC;AACnG,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOiD,OAAOA,CAACvB,KAAK,EAAEjB,OAAO,GAAG,EAAE,EAClC;AACI,IAAA,OAAOoB,iBAAiB,CAACH,KAAK,EAAEd,eAAe,CAACV,cAAc,EAAEO,OAAO,EAAEK,UAAU,EAAEd,WAAW,CAAC,CAAC;AACtG,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOkD,aAAaA,CAACxB,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACxC;AACI,IAAA,OAAOsB,uBAAuB,CAACL,KAAK,EAAEd,eAAe,CAACV,cAAc,EAAEO,OAAO,EAAEK,UAAU,EAAEd,WAAW,CAAC,CAAC;AAC5G,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOmD,WAAWA,CAACzB,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACtC;AACI,IAAA,OAAOwB,kBAAkB,CAACP,KAAK,EAAEjB,OAAO,CAAC;AAC7C,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAO2C,aAAaA,CAAC1B,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACxC;AACI,IAAA,OAAO0B,aAAa,CAACT,KAAK,EAAEjB,OAAO,CAAC;AACxC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAO4B,SAASA,CAACX,KAAK,EAAEjB,OAAO,GAAG,EAAE,EACpC;AACI,IAAA,OAAO4B,SAAS,CAACX,KAAK,EAAEjB,OAAO,CAAC;AACpC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI,OAAO+B,oBAAoBA,CAACD,QAAQ,EAAE9B,OAAO,GAAG,EAAE,EAClD;AACI,IAAA,OAAO+B,oBAAoB,CAACD,QAAQ,EAAE9B,OAAO,CAAC;AAClD,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOkC,YAAYA,CAACD,OAAO,EAC3B;IACI,OAAOC,YAAY,CAACD,OAAO,CAAC;AAChC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOW,MAAMA,CAACR,KAAK,EACnB;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;EAEA,OAAOS,WAAW,GAAGA,WAAW;EAChC,OAAOC,UAAU,GAAGA,UAAU;EAC9B,OAAOzC,UAAU,GAAGA,UAAU;EAC9B,OAAOI,IAAI,GAAGsC,MAAM,CAACC,MAAM,CAAC,CAAE,QAAQ,CAAE,CAAC;EACzC,OAAOC,UAAU,GAAGF,MAAM,CAACC,MAAM,CAAC,CAAE,QAAQ,CAAE,CAAC;EAC/C,OAAOE,UAAU,GAAGH,MAAM,CAACC,MAAM,CAAC,CAAE,QAAQ,CAAE,CAAC;EAC/C,OAAOG,WAAW,GAAGJ,MAAM,CAACC,MAAM,CAAC,CAAEH,WAAW,CAAE,CAAC;EACnD,OAAOO,gBAAgB,GAAGL,MAAM,CAACC,MAAM,CAAC,CAAEF,UAAU,CAAE,CAAC;EACvD,OAAOO,oBAAoB,GAAG,SAAS;EACvC,OAAOC,MAAM,GAAGC,aAAa;EAC7B,OAAOC,cAAc,GAAGC,sBAAsB;EAC9C,OAAOC,cAAc,GAAGC,6BAA6B;AACzD;;;;"}