@carbonenginejs/runtime-resource 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/format/effect/effectPermutationGraph.js +257 -0
- package/dist/format/effect/effectPermutationGraph.js.map +1 -0
- package/dist/format/effect/effectReflectionPackage.js +636 -0
- package/dist/format/effect/effectReflectionPackage.js.map +1 -0
- package/dist/format/effect/sha256.js +114 -0
- package/dist/format/effect/sha256.js.map +1 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
- package/dist/formats/dxbc/core/DxbcReader.js +266 -0
- package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
- package/dist/formats/dxbc/core/container.js +169 -0
- package/dist/formats/dxbc/core/container.js.map +1 -0
- package/dist/formats/dxbc/core/decoder.js +789 -0
- package/dist/formats/dxbc/core/decoder.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -0
- package/dist/formats/dxbc/core/errors.js.map +1 -0
- package/dist/formats/dxbc/core/helpers.js +220 -0
- package/dist/formats/dxbc/core/helpers.js.map +1 -0
- package/dist/formats/dxbc/core/opcodes.js +45 -0
- package/dist/formats/dxbc/core/opcodes.js.map +1 -0
- package/dist/formats/dxbc/core/program.js +91 -0
- package/dist/formats/dxbc/core/program.js.map +1 -0
- package/dist/formats/dxbc/core/signature.js +172 -0
- package/dist/formats/dxbc/core/signature.js.map +1 -0
- package/dist/formats/dxbc/index.js +2 -0
- package/dist/formats/dxbc/index.js.map +1 -0
- package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
- package/dist/formats/hlsl/core/HlslReader.js +266 -0
- package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
- package/dist/formats/hlsl/core/analysis.js +51 -0
- package/dist/formats/hlsl/core/analysis.js.map +1 -0
- package/dist/formats/hlsl/core/helpers.js +270 -0
- package/dist/formats/hlsl/core/helpers.js.map +1 -0
- package/dist/formats/hlsl/core/json.js +284 -0
- package/dist/formats/hlsl/core/json.js.map +1 -0
- package/dist/formats/hlsl/core/metadata.js +327 -0
- package/dist/formats/hlsl/core/metadata.js.map +1 -0
- package/dist/formats/hlsl/core/portableReflection.js +848 -0
- package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
- package/dist/formats/hlsl/core/render-states.js +280 -0
- package/dist/formats/hlsl/core/render-states.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
- package/dist/formats/hlsl/index.js +2 -0
- package/dist/formats/hlsl/index.js.map +1 -0
- package/dist/formats/hlsl/portable.js +2 -0
- package/dist/formats/hlsl/portable.js.map +1 -0
- package/dist/formats/index.js +4 -0
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/webgl/CjsWebglFormat.js +221 -0
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
- package/dist/formats/webgl/core/cewg/binary.js +101 -0
- package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
- package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
- package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +789 -0
- package/dist/formats/webgl/core/effectPackage.js.map +1 -0
- package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
- package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgl/core/errors.js +27 -0
- package/dist/formats/webgl/core/errors.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +306 -0
- package/dist/formats/webgl/core/helpers.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -0
- package/dist/formats/webgl/index.js.map +1 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
- package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgpu/core/errors.js +20 -0
- package/dist/formats/webgpu/core/errors.js.map +1 -0
- package/dist/formats/webgpu/core/helpers.js +448 -0
- package/dist/formats/webgpu/core/helpers.js.map +1 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffect.js +300 -0
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
- package/dist/formats/webgpu/core/packageMetadata.js +8 -0
- package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
- package/dist/formats/webgpu/core/schema.js +4 -0
- package/dist/formats/webgpu/core/schema.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
- package/dist/formats/webgpu/index.js +2 -0
- package/dist/formats/webgpu/index.js.map +1 -0
- package/dist/resource/shader/Tr2EffectRes.js +159 -150
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialArea.js +23 -28
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialMesh.js +21 -27
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialRes.js +24 -29
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
- package/dist/resource/shader/Tr2Shader.js +45 -39
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/Tr2ShaderPermutation.js +30 -32
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +113 -78
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +17 -23
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +23 -29
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +44 -40
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +82 -86
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +55 -61
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +49 -45
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +25 -30
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +30 -32
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +21 -26
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/docs/formats/README.md +4 -0
- package/docs/formats/provenance.md +11 -3
- package/docs/reference/classes/formats.md +440 -0
- package/format-notices/dxbc/LICENSE +21 -0
- package/format-notices/dxbc/NOTICE +20 -0
- package/format-notices/hlsl/LICENSE +21 -0
- package/format-notices/hlsl/NOTICE +25 -0
- package/format-notices/webgl/LICENSE +21 -0
- package/format-notices/webgl/NOTICE +35 -0
- package/format-notices/webgpu/LICENSE +21 -0
- package/format-notices/webgpu/NOTICE +31 -0
- package/package.json +6 -1
- package/dist/resource/shader/portableValidation.js +0 -461
- package/dist/resource/shader/portableValidation.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowerParticleEmitComputeProgram.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js"],"sourcesContent":["import { analyzeRegisterValues } from \"../ir/analyzeRegisterValues.js\";\nimport { buildControlFlow } from \"../ir/buildControlFlow.js\";\nimport { inferValueTypes } from \"../ir/inferValueTypes.js\";\nimport { resolveRegisterFlow } from \"../ir/resolveRegisterFlow.js\";\nimport { lowerBindingLayout } from \"./lowerBindingLayout.js\";\nimport {\n particleEmitSemanticDigest\n} from \"./particleEmitSemanticDigest.js\";\nimport { requireRefactoringAllowed } from \"./precisionControls.js\";\nimport { buildSelectionPlans } from \"./selectionPlans.js\";\n\nconst DECLARATION_OPCODES = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_constant_buffer\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_unordered_access_view_typed\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_temps\",\n \"dcl_thread_group_shared_memory_raw\",\n \"dcl_thread_group\"\n]);\nconst OPCODES_SM50 = Object.freeze([\n \"if\", \"imul\", \"store_raw\", \"store_raw\", \"store_raw\", \"store_raw\",\n \"store_raw\", \"store_raw\", \"store_raw\", \"endif\", \"sync\", \"ld_raw\",\n \"ushr\", \"iadd\", \"xor\", \"ushr\", \"xor\", \"imul\", \"ushr\", \"xor\",\n \"imul\", \"ushr\", \"xor\", \"imad\", \"ld_raw\", \"ld_raw\", \"add\",\n \"ld_raw\", \"ge\", \"movc\", \"add\", \"ld_raw\", \"ld_raw\", \"add\",\n \"ld_raw\", \"mov\", \"add\", \"ld_raw\", \"add\", \"mov\", \"mov\", \"mov\",\n \"loop\", \"uge\", \"breakc\", \"imm_atomic_iadd\", \"iadd\", \"ige\", \"if\",\n \"ishl\", \"xor\", \"ushr\", \"xor\", \"ishl\", \"xor\", \"utof\", \"mul\",\n \"mad\", \"dp3\", \"rsq\", \"mul\", \"ishl\", \"xor\", \"ushr\", \"xor\",\n \"ishl\", \"xor\", \"utof\", \"mul\", \"ishl\", \"xor\", \"ushr\", \"xor\",\n \"ishl\", \"xor\", \"utof\", \"ishl\", \"xor\", \"ushr\", \"xor\", \"ishl\",\n \"xor\", \"mad\", \"mul\", \"sincos\", \"mul\", \"sincos\", \"mul\", \"mul\",\n \"mul\", \"mul\", \"mul\", \"mad\", \"mul\", \"mad\", \"mul\", \"mad\", \"mad\",\n \"mad\", \"mad\", \"mad\", \"mad\", \"mad\", \"lt\", \"movc\", \"mul\", \"mad\",\n \"dp3\", \"rsq\", \"mul\", \"mul\", \"mad\", \"mul\", \"mad\", \"mad\",\n \"ld_structured\", \"mad\", \"mad\", \"ishl\", \"xor\", \"ushr\", \"xor\",\n \"ishl\", \"xor\", \"utof\", \"mul\", \"mad\", \"mad\", \"mad\", \"ishl\",\n \"xor\", \"ushr\", \"xor\", \"ishl\", \"xor\", \"bfi\", \"store_structured\",\n \"store_structured\", \"else\", \"break\", \"endif\", \"iadd\", \"endloop\", \"ret\"\n]);\nconst OPCODES_SM51 = Object.freeze([\n \"if\", \"imul\", \"store_raw\", \"store_raw\", \"store_raw\", \"store_raw\",\n \"store_raw\", \"store_raw\", \"store_raw\", \"endif\", \"sync\", \"ld_raw\",\n \"ushr\", \"iadd\", \"xor\", \"ushr\", \"xor\", \"imul\", \"ushr\", \"xor\",\n \"imul\", \"ushr\", \"xor\", \"imad\", \"ld_raw\", \"ld_raw\", \"ld_raw\",\n \"add\", \"ld_raw\", \"ge\", \"mov\", \"mov\", \"mov\", \"loop\", \"uge\",\n \"breakc\", \"imm_atomic_iadd\", \"iadd\", \"ige\", \"if\", \"ishl\", \"xor\",\n \"ushr\", \"xor\", \"ishl\", \"xor\", \"utof\", \"mul\", \"mad\", \"dp3\",\n \"rsq\", \"mul\", \"ishl\", \"xor\", \"ushr\", \"xor\", \"ishl\", \"xor\",\n \"utof\", \"mul\", \"ishl\", \"xor\", \"ushr\", \"xor\", \"ishl\", \"xor\",\n \"utof\", \"ishl\", \"xor\", \"ushr\", \"xor\", \"ishl\", \"xor\", \"if\",\n \"mov\", \"else\", \"mov\", \"endif\", \"add\", \"mad\", \"mul\", \"sincos\",\n \"mul\", \"sincos\", \"mul\", \"mul\", \"mul\", \"mul\", \"mul\", \"mad\",\n \"mul\", \"mad\", \"mul\", \"mad\", \"mad\", \"mad\", \"mad\", \"mad\", \"mad\",\n \"mad\", \"lt\", \"movc\", \"mul\", \"mad\", \"dp3\", \"rsq\", \"mul\", \"mul\",\n \"mad\", \"mul\", \"mad\", \"mad\", \"ld_structured\", \"ld_raw\", \"ld_raw\",\n \"add\", \"mad\", \"mad\", \"ld_raw\", \"ld_raw\", \"ishl\", \"xor\", \"ushr\",\n \"xor\", \"ishl\", \"xor\", \"utof\", \"mul\", \"add\", \"mad\", \"ld_raw\",\n \"add\", \"mad\", \"mad\", \"ishl\", \"xor\", \"ushr\", \"xor\", \"ishl\",\n \"xor\", \"bfi\", \"store_structured\", \"store_structured\", \"else\", \"break\",\n \"endif\", \"iadd\", \"endloop\", \"ret\"\n]);\nconst PARTICLE_EMIT_SEMANTIC_DIGESTS = Object.freeze({\n 0: \"34136a691e74b7b0dabda66147d71bb6d663e962e300aaddda453e26cbcd8190\",\n 1: \"70a206cc8d2c0cbfb44ad7ce1ae96bb1c5d90787ea63b5ae6bcefd4e50917dd1\"\n});\n\nfunction deepFreeze(value)\n{\n if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n for (const entry of Object.values(value)) deepFreeze(entry);\n return Object.freeze(value);\n}\n\nfunction ownData(value, key)\n{\n const descriptor = value && typeof value === \"object\"\n ? Object.getOwnPropertyDescriptor(value, key)\n : null;\n if (!descriptor) return { missing: key };\n if (!Object.hasOwn(descriptor, \"value\")) return { accessor: key };\n return descriptor.value;\n}\n\nfunction exactRecordEqual(actual, expected)\n{\n if (Object.is(actual, expected)) return true;\n if (!actual || !expected\n || typeof actual !== \"object\"\n || typeof expected !== \"object\"\n || Object.getPrototypeOf(actual) !== Object.getPrototypeOf(expected))\n {\n return false;\n }\n const actualKeys = Reflect.ownKeys(actual);\n const expectedKeys = Reflect.ownKeys(expected);\n if (actualKeys.some((key) => typeof key !== \"string\")\n || expectedKeys.some((key) => typeof key !== \"string\"))\n {\n return false;\n }\n actualKeys.sort();\n expectedKeys.sort();\n if (actualKeys.length !== expectedKeys.length\n || actualKeys.some((key, index) => key !== expectedKeys[index]))\n {\n return false;\n }\n return actualKeys.every((key) =>\n {\n const actualDescriptor = Object.getOwnPropertyDescriptor(actual, key);\n const expectedDescriptor = Object.getOwnPropertyDescriptor(\n expected, key);\n const actualHasValue = Object.hasOwn(actualDescriptor, \"value\");\n return actualHasValue\n && Object.hasOwn(expectedDescriptor, \"value\")\n && exactRecordEqual(\n actualDescriptor.value, expectedDescriptor.value);\n });\n}\n\nfunction clonePlain(value)\n{\n if (Array.isArray(value)) return value.map(clonePlain);\n if (value && typeof value === \"object\")\n {\n return Object.fromEntries(Object.entries(value).map(([ key, entry ]) =>\n [ key, clonePlain(entry) ]));\n }\n return value;\n}\n\nfunction buildBlocks(instructions)\n{\n const before = new Set([\n \"loop\", \"else\", \"endif\", \"endloop\", \"case\", \"default\", \"endswitch\"\n ]);\n const after = new Set([\n \"if\", \"loop\", \"switch\", \"break\", \"breakc\", \"continue\", \"continuec\",\n \"ret\", \"retc\", \"discard\", \"else\", \"endif\", \"endloop\", \"case\",\n \"default\", \"endswitch\"\n ]);\n const control = {\n loop: \"loop\", breakc: \"loop\", break: \"loop\", endloop: \"loop\",\n if: \"selection\", else: \"selection\", endif: \"selection\",\n ret: \"termination\"\n };\n const leaders = new Set([ 0 ]);\n instructions.forEach((instruction, index) =>\n {\n if (before.has(instruction.opcodeName)) leaders.add(index);\n if (after.has(instruction.opcodeName) && index + 1 < instructions.length)\n {\n leaders.add(index + 1);\n }\n });\n const starts = Array.from(leaders).sort((left, right) => left - right);\n return starts.map((start, blockIndex) =>\n {\n const end = (starts[blockIndex + 1] ?? instructions.length) - 1;\n return {\n kind: \"basic-block\",\n id: `block${blockIndex}`,\n index: blockIndex,\n startInstruction: start,\n endInstruction: end,\n startDxbcOffset: instructions[start].dxbcOffset,\n endDxbcOffset: instructions[end].dxbcOffset,\n instructionIndices: Array.from(\n { length: end - start + 1 }, (_, offset) => start + offset),\n terminator: control[instructions[end].opcodeName]\n ? instructions[end].opcodeName\n : null\n };\n });\n}\n\nfunction analysisSnapshot(program)\n{\n return {\n blocks: program.blocks,\n controlFlow: program.controlFlow,\n values: program.values,\n instructions: program.instructions.map((instruction) => ({\n dataflow: instruction.dataflow,\n typeInfo: instruction.typeInfo\n }))\n };\n}\n\nfunction firstDifference(left, right, path = \"$\")\n{\n if (Object.is(left, right)) return null;\n if (Array.isArray(left) && Array.isArray(right))\n {\n if (left.length !== right.length)\n {\n return `${path}.length (${left.length} != ${right.length})`;\n }\n for (let index = 0; index < left.length; index += 1)\n {\n const difference = firstDifference(\n left[index], right[index], `${path}[${index}]`);\n if (difference) return difference;\n }\n return null;\n }\n if (left && right\n && typeof left === \"object\"\n && typeof right === \"object\")\n {\n const keys = Array.from(new Set([\n ...Object.keys(left), ...Object.keys(right)\n ])).sort();\n for (const key of keys)\n {\n const difference = firstDifference(\n left[key], right[key], `${path}.${key}`);\n if (difference) return difference;\n }\n return null;\n }\n return `${path} (${JSON.stringify(left)} != ${JSON.stringify(right)})`;\n}\n\nfunction validateAnalysis(program)\n{\n const rebuilt = clonePlain(program);\n rebuilt.instructions = rebuilt.instructions.map((instruction) =>\n {\n delete instruction.dataflow;\n delete instruction.typeInfo;\n return instruction;\n });\n rebuilt.blocks = buildBlocks(rebuilt.instructions);\n delete rebuilt.controlFlow;\n delete rebuilt.values;\n buildControlFlow(rebuilt);\n analyzeRegisterValues(rebuilt);\n resolveRegisterFlow(rebuilt);\n inferValueTypes(rebuilt);\n if (JSON.stringify(analysisSnapshot(program))\n !== JSON.stringify(analysisSnapshot(rebuilt)))\n {\n const difference = firstDifference(\n analysisSnapshot(program), analysisSnapshot(rebuilt));\n throw new Error(\n \"WGSL particle emit CFG, SSA, or type metadata is inconsistent\"\n + (difference ? ` at ${difference}` : \"\")\n );\n }\n const plans = buildSelectionPlans(program, \"particle emit compute\");\n if (plans.size !== 3\n || plans.get(0)?.kind !== \"selection\"\n || plans.get(0).hasElse\n || plans.get(0).merges.length\n || plans.get(42)?.kind !== \"loop\"\n || plans.get(42).merges.length !== 2\n || plans.get(42).exitMerges.length\n || plans.get(48)?.kind !== \"selection\"\n || !plans.get(48).hasElse\n || plans.get(48).merges.length)\n {\n throw new Error(\n \"WGSL particle emit requires the exact initialization, loop, and atomic-result selection plan\"\n );\n }\n}\n\n/**\n * Declaration-family selector for the particle emit shader.\n *\n * @param {object} program CJS shader IR.\n * @returns {boolean} Whether particle-emit validation owns this program.\n */\nexport function isParticleEmitComputeCandidate(program)\n{\n if (program?.kind !== \"shader-program\"\n || program.format !== \"CJS_SHADER_IR\"\n || program.formatVersion !== 1\n || program.stage !== \"compute\"\n || program.programType !== 5\n || program.shaderModel?.major !== 5\n || ![ 0, 1 ].includes(program.shaderModel.minor)\n || program.declarations?.length !== DECLARATION_OPCODES.length\n || DECLARATION_OPCODES.some((opcode, index) =>\n program.declarations[index]?.opcodeName !== opcode))\n {\n return false;\n }\n const [ , constants, particle, counter, dead, flattened, groupId,\n localId, temps, shared, group ] = program.declarations;\n const familyMatches =\n constants.data?.registerIndex === 3\n && constants.data?.sizeInVec4 === 4096\n && particle.data?.structureStride === 32\n && counter.data?.resourceDimensionName === \"buffer\"\n && counter.data?.returnType?.returnTypeNames?.every(\n (entry) => entry === \"sint\")\n && dead.data?.structureStride === 4\n && flattened.data?.operandTypeName\n === \"input_thread_id_in_group_flattened\"\n && groupId.data?.operandTypeName === \"input_thread_group_id\"\n && localId.data?.operandTypeName === \"input_thread_id_in_group\"\n && temps.data?.tempCount === (program.shaderModel.minor ? 11 : 14)\n && shared.data?.byteCount === 112\n && group.data?.threadGroupX === 16\n && group.data.threadGroupY === 16\n && group.data.threadGroupZ === 1;\n if (!familyMatches) return false;\n try\n {\n return particleEmitSemanticDigest(program)\n === PARTICLE_EMIT_SEMANTIC_DIGESTS[program.shaderModel.minor];\n }\n catch\n {\n return false;\n }\n}\n\n/**\n * Resolves the signed typed-UAV layout owned by the particle-emit profile.\n * Admission is self-proving: the exact declaration family and semantic digest\n * checked by `isParticleEmitComputeCandidate` are the whole proof, so binding\n * plans and the lowerer share one identity source instead of duplicating an\n * unvalidated list.\n *\n * @param {object} program CJS shader IR.\n * @returns {object|null} Narrow lowerBindingLayout policy.\n */\nexport function particleEmitSignedAtomicLayoutPolicy(program)\n{\n if (!isParticleEmitComputeCandidate(program)) return null;\n return {\n signedAtomicI32Identities: [ \"storage-resource:0:1\" ]\n };\n}\n\nfunction validateProgram(program)\n{\n if (!isParticleEmitComputeCandidate(program))\n {\n throw new Error(\n \"WGSL particle emit requires the exact declaration family\"\n );\n }\n const expectedOpcodes = program.shaderModel.minor === 0\n ? OPCODES_SM50\n : OPCODES_SM51;\n if (program.instructions?.length !== expectedOpcodes.length\n || expectedOpcodes.some((opcode, index) =>\n program.instructions[index]?.opcodeName !== opcode))\n {\n throw new Error(\n \"WGSL particle emit requires the exact backend instruction schedule\"\n );\n }\n if (program.shaderModel.minor === 1)\n {\n throw new Error(\n \"WGSL particle emit SM5.1 is comparison-only; only the literal SM5.0 schedule may emit WGSL\"\n );\n }\n requireRefactoringAllowed(program, \"particle emit compute\");\n const identity = {\n kind: ownData(program, \"kind\"),\n format: ownData(program, \"format\"),\n formatVersion: ownData(program, \"formatVersion\"),\n stage: ownData(program, \"stage\"),\n programType: ownData(program, \"programType\"),\n shaderModel: ownData(program, \"shaderModel\")\n };\n if (!exactRecordEqual(identity, {\n kind: \"shader-program\",\n format: \"CJS_SHADER_IR\",\n formatVersion: 1,\n stage: \"compute\",\n programType: 5,\n shaderModel: { major: 5, minor: 0 }\n }))\n {\n throw new Error(\n \"WGSL particle emit requires exact own SM5.0 program identity fields\"\n );\n }\n if (!exactRecordEqual(ownData(program, \"signatures\"), {\n input: [],\n output: [],\n patch: []\n })\n || ownData(program, \"immediateConstantBuffer\") !== null\n || ownData(program, \"constTables\") !== null)\n {\n throw new Error(\n \"WGSL particle emit requires exact dense empty signatures and null constant tables\"\n );\n }\n const instructions = ownData(program, \"instructions\");\n if (!Array.isArray(instructions) || instructions.length !== 144\n || instructions.some((instruction, index) =>\n instruction?.kind !== \"instruction\"\n || !Number.isInteger(instruction.opcode)\n || instruction.opcodeName !== OPCODES_SM50[index]))\n {\n throw new Error(\n \"WGSL particle emit requires exact instruction kind, numeric opcode, and opcode name fields\"\n );\n }\n validateAnalysis(program);\n}\n\nfunction validateBindings(bindings)\n{\n const expected = [\n [ \"uniform-buffer\", \"cb3\", \"var<uniform>\",\n \"array<vec4<f32>, 4096>\", \"uniform\", 65536, null ],\n [ \"storage-resource\", \"u0\", \"var<storage, read_write>\",\n \"array<u32>\", \"storage\", 32, 32 ],\n [ \"storage-resource\", \"u1\", \"var<storage, read_write>\",\n \"array<atomic<i32>>\", \"storage\", 4, null ],\n [ \"storage-resource\", \"u2\", \"var<storage, read_write>\",\n \"array<u32>\", \"storage\", 4, 4 ]\n ];\n if (bindings.length !== expected.length\n || expected.some((entry, index) =>\n {\n const binding = bindings[index];\n return binding?.resourceKind !== entry[0]\n || binding.generatedSymbol !== entry[1]\n || binding.registerIndex !== [ 3, 0, 1, 2 ][index]\n || binding.registerSpace !== 0\n || binding.rangeId !== null\n || binding.group !== 0\n || binding.binding !== index\n || binding.visibility !== \"compute\"\n || binding.declaration !== entry[2]\n || binding.type !== entry[3]\n || binding.buffer?.type !== entry[4]\n || binding.buffer.hasDynamicOffset !== false\n || binding.buffer.minBindingSize !== entry[5]\n || (binding.structureStride ?? null) !== entry[6];\n }))\n {\n throw new Error(\n \"WGSL particle emit requires the exact cb3/u0/u1/u2 layout\"\n );\n }\n}\n\nfunction location(instruction)\n{\n return {\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset\n };\n}\n\nfunction expression(code, type)\n{\n return { code, type };\n}\n\nfunction call(instruction, code)\n{\n return {\n kind: \"call\",\n ...location(instruction),\n expression: expression(code, \"void\")\n };\n}\n\nfunction assign(instruction, name, code)\n{\n return {\n kind: \"value-assignment\",\n ...location(instruction),\n name,\n expression: expression(code, \"u32\")\n };\n}\n\nfunction immediate(bits)\n{\n return `0x${(bits >>> 0).toString(16).padStart(8, \"0\")}u`;\n}\n\nfunction valueWidth(operand, requested)\n{\n if (requested) return requested;\n if (operand.selected) return 1;\n if (operand.swizzle) return operand.swizzle.length;\n if (operand.immediateValues?.length) return operand.immediateValues.length;\n return 1;\n}\n\nfunction vector(type, width, values)\n{\n if (width === 1) return values[0];\n return `vec${width}<${type}>(${values.join(\", \")})`;\n}\n\nfunction rawSource(operand, requestedWidth)\n{\n const width = valueWidth(operand, requestedWidth);\n if (operand.typeName === \"temp\")\n {\n const selector = operand.selected || operand.swizzle;\n const components = selector\n ? Array.from({ length: width }, (_, index) =>\n selector[Math.min(index, selector.length - 1)])\n : [ \"x\", \"y\", \"z\", \"w\" ].slice(0, width);\n if (width === 1) return `r${operand.registerIndex}.${components[0]}`;\n return `r${operand.registerIndex}.${components.join(\"\")}`;\n }\n if (operand.typeName === \"immediate32\")\n {\n const bits = operand.immediateValues.map((entry) =>\n immediate(entry.uint32));\n const values = Array.from({ length: width }, (_, index) =>\n bits[Math.min(index, bits.length - 1)]);\n return vector(\"u32\", width, values);\n }\n if (operand.typeName === \"input_thread_id_in_group_flattened\")\n {\n return width === 1\n ? \"local_index\"\n : `vec${width}<u32>(local_index)`;\n }\n if (operand.typeName === \"input_thread_group_id\")\n {\n const component = operand.selected || \"x\";\n return width === 1\n ? `workgroup_id.${component}`\n : `vec${width}<u32>(workgroup_id.${component})`;\n }\n if (operand.typeName === \"input_thread_id_in_group\")\n {\n const component = operand.selected || \"x\";\n return width === 1\n ? `local_invocation_id.${component}`\n : `vec${width}<u32>(local_invocation_id.${component})`;\n }\n throw new Error(\n `WGSL particle emit cannot translate source ${operand.typeName}`\n );\n}\n\nfunction typedSource(operand, type, width)\n{\n const raw = rawSource(operand, width);\n const shape = width === 1 ? type : `vec${width}<${type}>`;\n let code = type === \"u32\" ? raw : `bitcast<${shape}>(${raw})`;\n if (operand.modifierName === \"neg\") code = `(-${code})`;\n else if (operand.modifierName === \"abs\") code = `abs(${code})`;\n return code;\n}\n\nfunction bitsCode(code, type, width)\n{\n if (type === \"u32\" || type === \"bitpattern32\") return code;\n const shape = width === 1 ? \"u32\" : `vec${width}<u32>`;\n return `bitcast<${shape}>(${code})`;\n}\n\nfunction destination(instruction, operandIndex, code, type)\n{\n const operand = instruction.operands[operandIndex];\n const mask = operand.mask;\n const width = mask.length;\n return assign(\n instruction,\n `r${operand.registerIndex}.${mask}`,\n bitsCode(code, type, width)\n );\n}\n\nfunction comparison(instruction, type, operator)\n{\n const destinationOperand = instruction.operands[0];\n const width = destinationOperand.mask.length;\n const left = typedSource(instruction.operands[1], type, width);\n const right = typedSource(instruction.operands[2], type, width);\n const zero = width === 1 ? \"0u\" : `vec${width}<u32>(0u)`;\n const ones = width === 1\n ? \"0xffffffffu\"\n : `vec${width}<u32>(0xffffffffu)`;\n return destination(\n instruction, 0, `select(${zero}, ${ones}, ${left} ${operator} ${right})`,\n \"u32\"\n );\n}\n\nfunction translateArithmetic(instruction)\n{\n const op = instruction.opcodeName;\n const destinationIndex = op === \"imul\" ? 1 : 0;\n const destinationOperand = instruction.operands[destinationIndex];\n const width = destinationOperand.mask.length;\n const sourceStart = op === \"imul\" ? 2 : 1;\n if (op === \"mov\")\n {\n return [ destination(\n instruction, 0, rawSource(instruction.operands[1], width),\n \"bitpattern32\") ];\n }\n if (op === \"xor\")\n {\n return [ destination(\n instruction, 0,\n `(${typedSource(instruction.operands[1], \"u32\", width)} ^ `\n + `${typedSource(instruction.operands[2], \"u32\", width)})`,\n \"u32\") ];\n }\n if (op === \"ushr\")\n {\n return [ destination(\n instruction, 0,\n `(${typedSource(instruction.operands[1], \"u32\", width)} >> `\n + `${typedSource(instruction.operands[2], \"u32\", width)})`,\n \"u32\") ];\n }\n if (op === \"ishl\")\n {\n return [ destination(\n instruction, 0,\n `(${typedSource(instruction.operands[1], \"i32\", width)} << `\n + `${typedSource(instruction.operands[2], \"u32\", width)})`,\n \"i32\") ];\n }\n if (op === \"iadd\" || op === \"imul\" || op === \"imad\")\n {\n const sources = instruction.operands.slice(sourceStart).map(\n (operand) => typedSource(operand, \"i32\", width));\n const code = op === \"imad\"\n ? `((${sources[0]} * ${sources[1]}) + ${sources[2]})`\n : `(${sources[0]} ${op === \"iadd\" ? \"+\" : \"*\"} ${sources[1]})`;\n return [ destination(\n instruction, destinationIndex, code, \"i32\") ];\n }\n if (op === \"utof\")\n {\n const type = width === 1 ? \"f32\" : `vec${width}<f32>`;\n return [ destination(\n instruction, 0,\n `${type}(${typedSource(instruction.operands[1], \"u32\", width)})`,\n \"f32\") ];\n }\n if (op === \"uge\") return [ comparison(instruction, \"u32\", \">=\") ];\n if (op === \"ige\") return [ comparison(instruction, \"i32\", \">=\") ];\n if (op === \"ge\") return [ comparison(instruction, \"f32\", \">=\") ];\n if (op === \"lt\") return [ comparison(instruction, \"f32\", \"<\") ];\n if ([ \"add\", \"mul\", \"mad\" ].includes(op))\n {\n const sources = instruction.operands.slice(1).map(\n (operand) => typedSource(operand, \"f32\", width));\n const code = op === \"mad\"\n ? `((${sources[0]} * ${sources[1]}) + ${sources[2]})`\n : `(${sources[0]} ${op === \"add\" ? \"+\" : \"*\"} ${sources[1]})`;\n return [ destination(instruction, 0, code, \"f32\") ];\n }\n if (op === \"dp3\")\n {\n const code = `dot(${typedSource(\n instruction.operands[1], \"f32\", 3)}, ${typedSource(\n instruction.operands[2], \"f32\", 3)})`;\n return [ destination(instruction, 0, code, \"f32\") ];\n }\n if (op === \"rsq\")\n {\n return [ destination(\n instruction, 0,\n `inverseSqrt(${typedSource(\n instruction.operands[1], \"f32\", width)})`,\n \"f32\") ];\n }\n if (op === \"movc\")\n {\n const condition = typedSource(\n instruction.operands[1], \"u32\", width);\n const zero = width === 1 ? \"0u\" : `vec${width}<u32>(0u)`;\n const whenTrue = typedSource(\n instruction.operands[2], \"f32\", width);\n const whenFalse = typedSource(\n instruction.operands[3], \"f32\", width);\n return [ destination(\n instruction, 0,\n `select(${whenFalse}, ${whenTrue}, ${condition} != ${zero})`,\n \"f32\") ];\n }\n if (op === \"sincos\")\n {\n const width = instruction.operands[0].mask.length;\n const source = typedSource(instruction.operands[2], \"f32\", width);\n return [\n destination(instruction, 0, `sin(${source})`, \"f32\"),\n destination(instruction, 1, `cos(${source})`, \"f32\")\n ];\n }\n throw new Error(`WGSL particle emit cannot translate ${op}`);\n}\n\nfunction translateRawLoad(instruction)\n{\n const destinationOperand = instruction.operands[0];\n const width = destinationOperand.mask.length;\n const byteOffset = instruction.operands[1].immediateValues[0].uint32;\n const firstWord = byteOffset / 4;\n const words = Array.from(\n { length: width }, (_, index) => `g0[${firstWord + index}u]`);\n return [ destination(\n instruction, 0, vector(\"u32\", width, words), \"u32\") ];\n}\n\nfunction translateInstruction(program, index, bindings)\n{\n const instruction = program.instructions[index];\n if (instruction.opcodeName === \"ld_raw\")\n {\n return translateRawLoad(instruction);\n }\n if (instruction.opcodeName === \"imm_atomic_iadd\")\n {\n return [ destination(\n instruction, 0,\n `atomicAdd(&${bindings[2].generatedSymbol}[0u], -1i)`,\n \"i32\") ];\n }\n if (instruction.opcodeName === \"ld_structured\")\n {\n const dead = bindings[3].generatedSymbol;\n return [\n {\n kind: \"let\",\n ...location(instruction),\n name: \"dead_length\",\n type: \"u32\",\n expression: expression(`arrayLength(&${dead})`, \"u32\")\n },\n {\n kind: \"let\",\n ...location(instruction),\n name: \"dead_safe_index\",\n type: \"u32\",\n expression: expression(\n \"min(r7.y, dead_length - 1u)\", \"u32\")\n },\n assign(\n instruction,\n \"r7.y\",\n `select(0u, ${dead}[dead_safe_index], r7.y < dead_length)`)\n ];\n }\n if (instruction.opcodeName === \"bfi\")\n {\n return [ assign(\n instruction, \"r9.w\",\n \"((r7.x & 0x0000ffffu) | (r1.x << 16u))\") ];\n }\n return translateArithmetic(instruction);\n}\n\nfunction initializeShared(program, constants)\n{\n const first = program.instructions[0];\n const body = [ translateInstruction(program, 1, [])[0] ];\n for (let row = 1; row <= 7; row += 1)\n {\n const instruction = program.instructions[row + 1];\n body.push({\n kind: \"let\",\n ...location(instruction),\n name: `cb_row_${row}`,\n type: \"u32\",\n expression: expression(`(r0.x + ${row}u)`, \"u32\")\n });\n body.push({\n kind: \"let\",\n ...location(instruction),\n name: `cb_value_${row}`,\n type: \"vec4<f32>\",\n expression: expression(\n `select(vec4<f32>(), ${constants}[min(cb_row_${row}, 4095u)], cb_row_${row} < 4096u)`,\n \"vec4<f32>\"\n )\n });\n const components = row === 7 ? [ \"x\" ] : [ \"x\", \"y\", \"z\", \"w\" ];\n const firstWord = (row - 1) * 4;\n components.forEach((component, index) =>\n {\n body.push(assign(\n instruction,\n `g0[${firstWord + index}u]`,\n `bitcast<u32>(cb_value_${row}.${component})`\n ));\n });\n }\n return {\n kind: \"if\",\n ...location(first),\n condition: expression(\"local_index == 0u\", \"bool\"),\n statements: body\n };\n}\n\nfunction recordStores(program, particle)\n{\n const first = program.instructions[136];\n const second = program.instructions[137];\n const words = [\n ...[ \"x\", \"y\", \"z\", \"w\" ].map((component, index) =>\n assign(first, `u0[(record_word_base + ${index}u)]`, `r8.${component}`)),\n ...[ \"x\", \"y\", \"z\", \"w\" ].map((component, index) =>\n assign(second, `u0[(record_word_base + ${index + 4}u)]`, `r9.${component}`))\n ];\n return {\n kind: \"if\",\n ...location(first),\n condition: expression(\n `r7.y < (arrayLength(&${particle}) / 8u)`, \"bool\"),\n statements: [ {\n kind: \"let\",\n ...location(first),\n name: \"record_word_base\",\n type: \"u32\",\n expression: expression(\"(r7.y * 8u)\", \"u32\")\n }, ...words ]\n };\n}\n\nfunction lowerBody(program, bindings)\n{\n const statements = [\n ...Array.from({ length: 14 }, (_, index) => ({\n kind: \"var\",\n name: `r${index}`,\n type: \"vec4<u32>\",\n expression: expression(\"vec4<u32>(0u)\", \"vec4<u32>\")\n })),\n {\n kind: \"let\",\n name: \"local_index\",\n type: \"u32\",\n expression: expression(\n \"((local_invocation_id.y * 16u) + local_invocation_id.x)\",\n \"u32\"\n )\n },\n initializeShared(program, bindings[0].generatedSymbol),\n call(program.instructions[10], \"workgroupBarrier()\")\n ];\n for (let index = 11; index <= 41; index += 1)\n {\n statements.push(...translateInstruction(program, index, bindings));\n }\n const loopStatements = [\n ...translateInstruction(program, 43, bindings),\n {\n kind: \"if\",\n ...location(program.instructions[44]),\n condition: expression(\"r7.y != 0u\", \"bool\"),\n statements: [ {\n kind: \"break\",\n ...location(program.instructions[44])\n } ]\n },\n ...translateInstruction(program, 45, bindings),\n ...translateInstruction(program, 46, bindings),\n ...translateInstruction(program, 47, bindings)\n ];\n const successful = [];\n for (let index = 49; index <= 135; index += 1)\n {\n successful.push(...translateInstruction(program, index, bindings));\n }\n successful.push(recordStores(\n program, bindings[1].generatedSymbol));\n loopStatements.push({\n kind: \"if\",\n ...location(program.instructions[48]),\n condition: expression(\"r7.z != 0u\", \"bool\"),\n statements: successful,\n elseStatements: [ {\n kind: \"break\",\n ...location(program.instructions[139])\n } ]\n });\n loopStatements.push(...translateInstruction(program, 141, bindings));\n statements.push({\n kind: \"loop\",\n ...location(program.instructions[42]),\n statements: loopStatements\n });\n statements.push({\n kind: \"return\",\n ...location(program.instructions[143])\n });\n return statements;\n}\n\n/**\n * Lowers the one audited SM5.0 particle-emit schedule.\n *\n * @param {object} program Frozen CJS shader IR.\n * @param {object} [options] Optional exact compute binding plan.\n * @returns {object} Frozen typed compute program.\n */\nexport function lowerParticleEmitComputeProgram(program, options = {})\n{\n validateProgram(program);\n const bindings = lowerBindingLayout(\n program,\n options.bindingPlan ?? null,\n particleEmitSignedAtomicLayoutPolicy(program)\n );\n validateBindings(bindings);\n return deepFreeze({\n kind: \"typed-shader-program\",\n format: \"CJS_TYPED_SHADER\",\n formatVersion: 1,\n source: program.source,\n stage: \"compute\",\n entryPoint: \"main\",\n builtinInputs: [\n {\n builtin: \"workgroup_id\",\n name: \"workgroup_id\",\n type: \"vec3<u32>\"\n },\n {\n builtin: \"local_invocation_id\",\n name: \"local_invocation_id\",\n type: \"vec3<u32>\"\n }\n ],\n threadGroupSize: [ 16, 16, 1 ],\n workgroupVariables: [\n { name: \"g0\", elementType: \"u32\", elementCount: 28 }\n ],\n bindings,\n statements: lowerBody(program, bindings)\n });\n}\n"],"names":["DECLARATION_OPCODES","Object","freeze","OPCODES_SM50","OPCODES_SM51","PARTICLE_EMIT_SEMANTIC_DIGESTS","deepFreeze","value","isFrozen","entry","values","ownData","key","descriptor","getOwnPropertyDescriptor","missing","hasOwn","accessor","exactRecordEqual","actual","expected","is","getPrototypeOf","actualKeys","Reflect","ownKeys","expectedKeys","some","sort","length","index","every","actualDescriptor","expectedDescriptor","actualHasValue","clonePlain","Array","isArray","map","fromEntries","entries","buildBlocks","instructions","before","Set","after","control","loop","breakc","break","endloop","if","else","endif","ret","leaders","forEach","instruction","has","opcodeName","add","starts","from","left","right","start","blockIndex","end","kind","id","startInstruction","endInstruction","startDxbcOffset","dxbcOffset","endDxbcOffset","instructionIndices","_","offset","terminator","analysisSnapshot","program","blocks","controlFlow","dataflow","typeInfo","firstDifference","path","difference","keys","JSON","stringify","validateAnalysis","rebuilt","buildControlFlow","analyzeRegisterValues","resolveRegisterFlow","inferValueTypes","Error","plans","buildSelectionPlans","size","get","hasElse","merges","exitMerges","isParticleEmitComputeCandidate","format","formatVersion","stage","programType","shaderModel","major","includes","minor","declarations","opcode","constants","particle","counter","dead","flattened","groupId","localId","temps","shared","group","familyMatches","data","registerIndex","sizeInVec4","structureStride","resourceDimensionName","returnType","returnTypeNames","operandTypeName","tempCount","byteCount","threadGroupX","threadGroupY","threadGroupZ","particleEmitSemanticDigest","particleEmitSignedAtomicLayoutPolicy","signedAtomicI32Identities","validateProgram","expectedOpcodes","requireRefactoringAllowed","identity","input","output","patch","Number","isInteger","validateBindings","bindings","binding","resourceKind","generatedSymbol","registerSpace","rangeId","visibility","declaration","type","buffer","hasDynamicOffset","minBindingSize","location","instructionIndex","expression","code","call","assign","name","immediate","bits","toString","padStart","valueWidth","operand","requested","selected","swizzle","immediateValues","vector","width","join","rawSource","requestedWidth","typeName","selector","components","Math","min","slice","uint32","component","typedSource","raw","shape","modifierName","bitsCode","destination","operandIndex","operands","mask","comparison","operator","destinationOperand","zero","ones","translateArithmetic","op","destinationIndex","sourceStart","sources","condition","whenTrue","whenFalse","source","translateRawLoad","byteOffset","firstWord","words","translateInstruction","initializeShared","first","body","row","push","statements","recordStores","second","lowerBody","loopStatements","successful","elseStatements","lowerParticleEmitComputeProgram","options","lowerBindingLayout","bindingPlan","entryPoint","builtinInputs","builtin","threadGroupSize","workgroupVariables","elementType","elementCount"],"mappings":"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"}
|