@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":"lowerSortInnerComputeProgram.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js"],"sourcesContent":["import { analyzeRegisterValues } from \"../ir/analyzeRegisterValues.js\";\nimport { buildControlFlow } from \"../ir/buildControlFlow.js\";\nimport { inferValueTypes } from \"../ir/inferValueTypes.js\";\nimport { resolveRegisterFlow } from \"../ir/resolveRegisterFlow.js\";\nimport { lowerBindingLayout } from \"./lowerBindingLayout.js\";\nimport { requireRefactoringAllowed } from \"./precisionControls.js\";\nimport { buildSelectionPlans } from \"./selectionPlans.js\";\n\nconst COMPONENTS = Object.freeze([ \"x\", \"y\", \"z\", \"w\" ]);\nconst DECLARATION_OPCODES = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_resource\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_temps\",\n \"dcl_thread_group_shared_memory_structured\",\n \"dcl_thread_group\"\n]);\nconst BODY_OPCODES = Object.freeze([\n \"ld\", \"ishl\", \"iadd\", \"imax\", \"imin\", \"imad\", \"ilt\", \"if\", \"ilt\", \"if\",\n \"ld_structured\", \"store_structured\", \"endif\", \"iadd\", \"ilt\", \"if\", \"iadd\",\n \"ld_structured\", \"store_structured\", \"endif\", \"endif\", \"sync\", \"mov\", \"loop\",\n \"ige\", \"breakc\", \"iadd\", \"and\", \"iadd\", \"ishl\", \"iadd\", \"iadd\", \"ilt\", \"if\",\n \"iadd\", \"ld_structured\", \"ld_structured\", \"lt\", \"if\", \"store_structured\",\n \"store_structured\", \"endif\", \"endif\", \"sync\", \"ishr\", \"endloop\", \"if\", \"ilt\",\n \"if\", \"ld_structured\", \"store_structured\", \"endif\", \"iadd\", \"ilt\", \"if\", \"iadd\",\n \"ld_structured\", \"store_structured\", \"endif\", \"endif\", \"ret\"\n]);\nconst BODY_OPERANDS_SM50 = Object.freeze([\n \"temp:0:x:0::none:default:uniform:4 | immediate32::::#3,#3,#3,#3:none:default:uniform:4 | resource:0:xyzw:0::none:default:uniform:4\",\n \"temp:0:y:0::none:default:uniform:4 | input_thread_group_id::x:::none:default:uniform:4 | immediate32::::#9:none:default:uniform:1\",\n \"temp:0:y:0::none:default:uniform:4 | temp:0:y:0::neg:default:uniform:4 | temp:0:x:0::none:default:uniform:4\",\n \"temp:0:y:0::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1\",\n \"temp:0:y:0::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4 | immediate32::::#512:none:default:uniform:1\",\n \"temp:0:z:0::none:default:uniform:4 | input_thread_group_id::x:::none:default:uniform:4 | immediate32::::#512:none:default:uniform:1 | input_thread_id_in_group::x:::none:default:uniform:4\",\n \"temp:0:x:0::none:default:uniform:4 | temp:0:z:0::none:default:uniform:4 | temp:0:x:0::none:default:uniform:4\",\n \"temp:0:x:0::none:default:uniform:4\",\n \"temp:0:w:0::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4\",\n \"temp:0:w:0::none:default:uniform:4\",\n \"temp:1:xy:1::none:default:uniform:4 | temp:0:z:0::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | uav:0:xyxx:0::none:default:uniform:4\",\n \"thread_group_shared_memory:0:xy:0::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:1:xyxx:1::none:default:uniform:4\",\n \"\",\n \"temp:0:w:0::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4 | immediate32::::#256:none:default:uniform:1\",\n \"temp:1:x:1::none:default:uniform:4 | temp:0:w:0::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4\",\n \"temp:1:x:1::none:default:uniform:4\",\n \"temp:1:x:1::none:default:uniform:4 | temp:0:z:0::none:default:uniform:4 | immediate32::::#256:none:default:uniform:1\",\n \"temp:1:xy:1::none:default:uniform:4 | temp:1:x:1::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | uav:0:xyxx:0::none:default:uniform:4\",\n \"thread_group_shared_memory:0:xy:0::none:default:uniform:4 | temp:0:w:0::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:1:xyxx:1::none:default:uniform:4\",\n \"\",\n \"\",\n \"\",\n \"temp:0:w:0::none:default:uniform:4 | immediate32::::#256:none:default:uniform:1\",\n \"\",\n \"temp:1:x:1::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:0:w:0::none:default:uniform:4\",\n \"temp:1:x:1::none:default:uniform:4\",\n \"temp:1:x:1::none:default:uniform:4 | temp:0:w:0::none:default:uniform:4 | immediate32::::#4294967295:none:default:uniform:1\",\n \"temp:1:x:1::none:default:uniform:4 | temp:1:x:1::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4\",\n \"temp:1:y:1::none:default:uniform:4 | temp:1:x:1::neg:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4\",\n \"temp:1:y:1::none:default:uniform:4 | temp:1:y:1::none:default:uniform:4 | immediate32::::#1:none:default:uniform:1\",\n \"temp:1:z:1::none:default:uniform:4 | temp:0:w:0::none:default:uniform:4 | temp:1:y:1::none:default:uniform:4\",\n \"temp:1:z:1::none:default:uniform:4 | temp:1:x:1::none:default:uniform:4 | temp:1:z:1::none:default:uniform:4\",\n \"temp:1:w:1::none:default:uniform:4 | temp:1:z:1::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4\",\n \"temp:1:w:1::none:default:uniform:4\",\n \"temp:1:x:1::none:default:uniform:4 | temp:1:x:1::none:default:uniform:4 | temp:1:y:1::none:default:uniform:4\",\n \"temp:1:yw:1::none:default:uniform:4 | temp:1:x:1::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | thread_group_shared_memory:0:xxxy:0::none:default:uniform:4\",\n \"temp:2:xy:2::none:default:uniform:4 | temp:1:z:1::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | thread_group_shared_memory:0:xyxx:0::none:default:uniform:4\",\n \"temp:2:z:2::none:default:uniform:4 | temp:2:y:2::none:default:uniform:4 | temp:1:w:1::none:default:uniform:4\",\n \"temp:2:z:2::none:default:uniform:4\",\n \"thread_group_shared_memory:0:xy:0::none:default:uniform:4 | temp:1:x:1::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:2:xyxx:2::none:default:uniform:4\",\n \"thread_group_shared_memory:0:xy:0::none:default:uniform:4 | temp:1:z:1::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:1:ywyy:1::none:default:uniform:4\",\n \"\",\n \"\",\n \"\",\n \"temp:0:w:0::none:default:uniform:4 | temp:0:w:0::none:default:uniform:4 | immediate32::::#1:none:default:uniform:1\",\n \"\",\n \"temp:0:x:0::none:default:uniform:4\",\n \"temp:0:x:0::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4\",\n \"temp:0:x:0::none:default:uniform:4\",\n \"temp:0:xw:0::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | thread_group_shared_memory:0:xxxy:0::none:default:uniform:4\",\n \"uav:0:xy:0::none:default:uniform:4 | temp:0:z:0::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:0:xwxx:0::none:default:uniform:4\",\n \"\",\n \"temp:0:x:0::none:default:uniform:4 | input_thread_id_in_group_flattened::x:::none:default:uniform:4 | immediate32::::#256:none:default:uniform:1\",\n \"temp:0:y:0::none:default:uniform:4 | temp:0:x:0::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4\",\n \"temp:0:y:0::none:default:uniform:4\",\n \"temp:0:y:0::none:default:uniform:4 | temp:0:z:0::none:default:uniform:4 | immediate32::::#256:none:default:uniform:1\",\n \"temp:0:xz:0::none:default:uniform:4 | temp:0:x:0::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | thread_group_shared_memory:0:xxyx:0::none:default:uniform:4\",\n \"uav:0:xy:0::none:default:uniform:4 | temp:0:y:0::none:default:uniform:4 | immediate32::::#0:none:default:uniform:1 | temp:0:xzxx:0::none:default:uniform:4\",\n \"\",\n \"\",\n \"\"\n]);\nconst BODY_OPERANDS_SM51 = Object.freeze(BODY_OPERANDS_SM50.map((signature) =>\n signature\n .replaceAll(\"resource:0:xyzw:0::\", \"resource:0:xyzw:0,0::\")\n .replaceAll(\"uav:0:xyxx:0::\", \"uav:0:xyxx:0,0::\")\n .replaceAll(\"uav:0:xy:0::\", \"uav:0:xy:0,0::\")));\nconst BLOCK_BEFORE = new Set([ \"loop\", \"else\", \"endif\", \"endloop\", \"case\", \"default\", \"endswitch\" ]);\nconst BLOCK_AFTER = new Set([\n \"if\", \"loop\", \"switch\", \"break\", \"breakc\", \"continue\", \"continuec\",\n \"ret\", \"retc\", \"discard\", \"else\", \"endif\", \"endloop\", \"case\", \"default\", \"endswitch\"\n]);\nconst CONTROL_KIND = Object.freeze({\n if: \"selection\",\n endif: \"selection\",\n loop: \"loop\",\n breakc: \"loop\",\n endloop: \"loop\",\n ret: \"termination\"\n});\nconst SELECTION_STARTS = Object.freeze([ 7, 9, 15, 33, 38, 46, 48, 54 ]);\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 ]) => [ key, clonePlain(entry) ]));\n }\n return value;\n}\n\nfunction deepFreeze(value)\n{\n if (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n for (const entry of Object.values(value)) deepFreeze(entry);\n return Object.freeze(value);\n}\n\nfunction buildBlocks(instructions)\n{\n const leaders = new Set([ 0 ]);\n for (let index = 0; index < instructions.length; index += 1)\n {\n if (BLOCK_BEFORE.has(instructions[index].opcodeName)) leaders.add(index);\n if (BLOCK_AFTER.has(instructions[index].opcodeName) && index + 1 < instructions.length)\n {\n leaders.add(index + 1);\n }\n }\n const starts = Array.from(leaders).sort((left, right) => left - right);\n return starts.map((start, blockIndex) =>\n {\n const end = (starts[blockIndex + 1] ?? instructions.length) - 1;\n const last = instructions[end];\n return {\n kind: \"basic-block\",\n id: `block${blockIndex}`,\n index: blockIndex,\n startInstruction: start,\n endInstruction: end,\n startDxbcOffset: instructions[start].dxbcOffset,\n endDxbcOffset: last.dxbcOffset,\n instructionIndices: Array.from({ length: end - start + 1 }, (_, offset) => start + offset),\n terminator: CONTROL_KIND[last.opcodeName] ? last.opcodeName : null\n };\n });\n}\n\nfunction analysisSnapshot(program)\n{\n return {\n blocks: program.blocks,\n controlFlow: program.controlFlow,\n values: program.values,\n instructions: program.instructions.map((instruction) => ({\n dataflow: instruction.dataflow,\n typeInfo: instruction.typeInfo\n }))\n };\n}\n\nfunction validateAnalysisMetadata(program)\n{\n const rebuilt = clonePlain(program);\n rebuilt.instructions = rebuilt.instructions.map((instruction) =>\n {\n delete instruction.dataflow;\n delete instruction.typeInfo;\n return instruction;\n });\n rebuilt.blocks = buildBlocks(rebuilt.instructions);\n delete rebuilt.controlFlow;\n delete rebuilt.values;\n buildControlFlow(rebuilt);\n analyzeRegisterValues(rebuilt);\n resolveRegisterFlow(rebuilt);\n inferValueTypes(rebuilt);\n if (JSON.stringify(analysisSnapshot(program)) !== JSON.stringify(analysisSnapshot(rebuilt)))\n {\n throw new Error(\"WGSL sort-inner compute CFG, SSA, or type metadata is inconsistent\");\n }\n}\n\nfunction operandSignature(operand)\n{\n const index = (operand.indices || [])\n .map((entry) => entry.values?.join(\":\") || \"?\")\n .join(\",\");\n const immediate = (operand.immediateValues || [])\n .map((entry) => `#${entry.uint32 >>> 0}`)\n .join(\",\");\n return [\n operand.typeName,\n Number.isInteger(operand.registerIndex) ? operand.registerIndex : \"\",\n operand.mask || operand.swizzle || operand.selected || \"\",\n index,\n immediate,\n operand.modifierName ?? \"none\",\n operand.minPrecisionName ?? \"default\",\n operand.nonUniform === true ? \"nonuniform\" : \"uniform\",\n Number.isInteger(operand.componentCount) ? operand.componentCount : \"\"\n ].join(\":\");\n}\n\nfunction instructionOperandSignature(instruction)\n{\n return (instruction.operands || []).map(operandSignature).join(\" | \");\n}\n\nfunction validateCanonicalIndices(operand, context)\n{\n for (const [ index, entry ] of (operand.indices || []).entries())\n {\n if (entry?.dimension !== index\n || entry.representation !== 0\n || entry.relative !== null\n || entry.values?.length !== 1\n || !Number.isInteger(entry.values[0])\n || entry.values[0] < 0)\n {\n throw new Error(`WGSL sort-inner ${context} has non-canonical index metadata`);\n }\n }\n}\n\nfunction validateCommonOperand(operand, context)\n{\n if (!operand\n || ![ \"none\", \"neg\" ].includes(operand.modifierName ?? \"none\")\n || (operand.minPrecisionName ?? \"default\") !== \"default\"\n || operand.nonUniform === true)\n {\n throw new Error(`WGSL sort-inner ${context} has unsupported operand modifiers`);\n }\n validateCanonicalIndices(operand, context);\n}\n\nfunction isCanonicalIndex(entry, dimension, value)\n{\n return entry?.dimension === dimension\n && entry.representation === 0\n && entry.relative === null\n && entry.values?.length === 1\n && entry.values[0] === value;\n}\n\nfunction validateSm51Range(data, context)\n{\n const range = data?.bindingRange;\n if (data?.bindingModel !== \"sm5.1-range\"\n || range?.bindingModel !== \"sm5.1-range\"\n || range.rangeId !== 0\n || range.lowerBound !== 0\n || range.upperBound !== 0\n || range.unbounded !== false\n || range.registerCount !== 1\n || range.registerSpace !== 0)\n {\n throw new Error(`WGSL sort-inner ${context} requires one finite SM5.1 range`);\n }\n}\n\nfunction validateDeclarationOperand(operand, {\n componentCount, indices, registerIndex, selector, typeName\n}, context)\n{\n validateCommonOperand(operand, context);\n if ((operand.modifierName ?? \"none\") !== \"none\"\n || operand.typeName !== typeName\n || operand.registerIndex !== registerIndex\n || operand.componentCount !== componentCount\n || (operand.mask || operand.swizzle || operand.selected || \"\") !== selector\n || operand.indices?.length !== indices.length\n || indices.some((value, index) => operand.indices[index].values[0] !== value)\n || operand.immediateValues?.length)\n {\n throw new Error(`WGSL sort-inner ${context} is malformed`);\n }\n}\n\nfunction validateBuiltinDeclaration(declaration, typeName, operandType, componentCount, selector)\n{\n const operand = declaration.operands?.[0];\n validateDeclarationOperand(operand, {\n typeName,\n registerIndex: null,\n componentCount,\n selector,\n indices: []\n }, `${typeName} declaration`);\n if (declaration.data?.registerIndex !== null\n || declaration.data.operandType !== operandType\n || declaration.data.operandTypeName !== typeName\n || declaration.operands.length !== 1)\n {\n throw new Error(`WGSL sort-inner compute requires exactly ${typeName}${selector ? `.${selector}` : \"\"}`);\n }\n}\n\n/**\n * Whether declarations select the isolated sort-inner compute profile.\n * Once selected, all detailed validation errors are final.\n *\n * @param {object} program CJS shader IR program.\n * @returns {boolean} True for the sort-inner declaration family.\n */\nexport function isSortInnerComputeProfile(program)\n{\n return program?.stage === \"compute\"\n && program.declarations?.length === DECLARATION_OPCODES.length\n && program.instructions?.length === BODY_OPCODES.length\n && DECLARATION_OPCODES.every((opcodeName, index) =>\n program.declarations[index]?.opcodeName === opcodeName);\n}\n\nfunction validateDeclarations(program)\n{\n const minor = program?.shaderModel?.minor;\n if (program?.format !== \"CJS_SHADER_IR\"\n || program.formatVersion !== 1\n || program.stage !== \"compute\"\n || program.shaderModel?.major !== 5\n || ![ 0, 1 ].includes(minor))\n {\n throw new TypeError(\"WGSL sort-inner compute profile requires CJS SM5.0 or finite-range SM5.1 compute IR\");\n }\n if (!isSortInnerComputeProfile(program))\n {\n throw new Error(\"WGSL sort-inner compute declaration shape is not supported\");\n }\n if (program.declarations.some((declaration) => declaration.tailTokens?.length))\n {\n throw new Error(\"WGSL sort-inner compute declarations must not contain trailing payload words\");\n }\n if ((program.signatures?.input || []).length\n || (program.signatures?.output || []).length\n || (program.signatures?.patch || []).length\n || program.immediateConstantBuffer\n || program.constTables)\n {\n throw new Error(\"WGSL sort-inner compute profile does not support signatures or constant tables\");\n }\n requireRefactoringAllowed(program, \"sort-inner compute\");\n\n const [ global, input, output, flattenedId, groupId, localId, temps, shared, group ] =\n program.declarations;\n if (global.data?.globalFlags !== (1 << 11)\n || global.data.refactoringAllowed !== true\n || global.operands?.length)\n {\n throw new Error(\"WGSL sort-inner compute requires only the refactoring-allowed global flag\");\n }\n if (input.data?.registerIndex !== 0\n || input.data.resourceDimension !== 1\n || input.data.resourceDimensionName !== \"buffer\"\n || input.data.sampleCount !== 0\n || input.data.returnType?.returnTypes?.length !== 4\n || input.data.returnType.returnTypes.some((entry) => entry !== 4)\n || input.data.returnType?.returnTypeNames?.length !== 4\n || input.data.returnType.returnTypeNames.some((entry) => entry !== \"uint\")\n || input.operands?.length !== 1)\n {\n throw new Error(\"WGSL sort-inner compute requires typed uint Buffer t0\");\n }\n validateDeclarationOperand(input.operands[0], minor === 0\n ? { typeName: \"resource\", registerIndex: 0, componentCount: 0, selector: \"\", indices: [ 0 ] }\n : { typeName: \"resource\", registerIndex: 0, componentCount: 4, selector: \"xyzw\", indices: [ 0, 0, 0 ] },\n \"t0 declaration\");\n if (output.data?.registerIndex !== 0\n || output.data.structureStride !== 8\n || output.data.globallyCoherent !== false\n || output.operands?.length !== 1)\n {\n throw new Error(\"WGSL sort-inner compute requires noncoherent stride-8 structured UAV u0\");\n }\n validateDeclarationOperand(output.operands[0], minor === 0\n ? { typeName: \"uav\", registerIndex: 0, componentCount: 0, selector: \"\", indices: [ 0 ] }\n : { typeName: \"uav\", registerIndex: 0, componentCount: 4, selector: \"xyzw\", indices: [ 0, 0, 0 ] },\n \"u0 declaration\");\n\n validateBuiltinDeclaration(flattenedId, \"input_thread_id_in_group_flattened\", 36, 0, \"\");\n validateBuiltinDeclaration(groupId, \"input_thread_group_id\", 33, 4, \"x\");\n validateBuiltinDeclaration(localId, \"input_thread_id_in_group\", 34, 4, \"x\");\n if (temps.data?.tempCount !== 3 || temps.operands?.length)\n {\n throw new Error(\"WGSL sort-inner compute requires exactly three temps\");\n }\n if (shared.data?.registerIndex !== 0\n || shared.data.structureStride !== 8\n || shared.data.structureCount !== 512\n || shared.operands?.length !== 1)\n {\n throw new Error(\"WGSL sort-inner compute requires g0 with stride 8 and 512 records\");\n }\n validateDeclarationOperand(shared.operands[0], {\n typeName: \"thread_group_shared_memory\",\n registerIndex: 0,\n componentCount: 0,\n selector: \"\",\n indices: [ 0 ]\n }, \"g0 declaration\");\n if (group.data?.threadGroupX !== 256\n || group.data?.threadGroupY !== 1\n || group.data?.threadGroupZ !== 1\n || group.operands?.length)\n {\n throw new Error(\"WGSL sort-inner compute requires dcl_thread_group 256,1,1\");\n }\n if (minor === 1)\n {\n validateSm51Range(input.data, \"t0 declaration\");\n validateSm51Range(output.data, \"u0 declaration\");\n }\n else if (input.data.bindingModel || input.data.bindingRange\n || output.data.bindingModel || output.data.bindingRange)\n {\n throw new Error(\"WGSL sort-inner SM5.0 declarations must use register bindings\");\n }\n}\n\nfunction validateBodyReference(program, instruction, operand, operandIndex)\n{\n const context = `instruction ${instruction.index} operand ${operandIndex}`;\n validateCanonicalIndices(operand, context);\n if (program.shaderModel.minor === 0)\n {\n if (operand.resourceReference !== undefined && operand.resourceReference !== null)\n {\n throw new Error(`WGSL sort-inner ${context} has unexpected SM5.1 reference metadata`);\n }\n return;\n }\n if ([ \"resource\", \"uav\" ].includes(operand.typeName))\n {\n const reference = operand.resourceReference;\n if (reference?.bindingModel !== \"sm5.1-range\"\n || reference.rangeId !== 0\n || reference.nonUniform !== false\n || !isCanonicalIndex(reference.absoluteIndex, 1, 0)\n || reference.bufferIndex !== null\n || reference.vectorOffset !== null)\n {\n throw new Error(`WGSL sort-inner ${context} has an invalid SM5.1 resource reference`);\n }\n }\n else if (operand.resourceReference !== undefined && operand.resourceReference !== null)\n {\n throw new Error(`WGSL sort-inner ${context} has unexpected resource reference metadata`);\n }\n}\n\nfunction validExtensions(program, instruction)\n{\n const extensions = instruction.extensions || [];\n if (program.shaderModel.minor === 1) return extensions.length === 0;\n if (instruction.opcodeName === \"ld\")\n {\n return extensions.length === 2\n && extensions[0]?.token === 2147483714\n && extensions[0].type === 2\n && extensions[0]?.typeName === \"resource_dimension\"\n && extensions[0].resourceDimension === 1\n && extensions[0].resourceDimensionName === \"buffer\"\n && extensions[0].structureStride === 0\n && extensions[1]?.token === 1118467\n && extensions[1].type === 3\n && extensions[1]?.typeName === \"resource_return_type\"\n && extensions[1].resourceReturnTypes?.length === 4\n && extensions[1].resourceReturnTypes.every((entry) => entry === 4);\n }\n if (instruction.opcodeName === \"ld_structured\"\n && instruction.operands?.[3]?.typeName === \"uav\")\n {\n return extensions.length === 2\n && extensions[0]?.token === 2147500802\n && extensions[0].type === 2\n && extensions[0]?.typeName === \"resource_dimension\"\n && extensions[0].resourceDimension === 12\n && extensions[0].resourceDimensionName === \"structured_buffer\"\n && extensions[0].structureStride === 8\n && extensions[1]?.token === 1677699\n && extensions[1].type === 3\n && extensions[1]?.typeName === \"resource_return_type\"\n && extensions[1].resourceReturnTypes?.length === 4\n && extensions[1].resourceReturnTypes.every((entry) => entry === 6);\n }\n return extensions.length === 0;\n}\n\nfunction validateBody(program)\n{\n const expectedOperands = program.shaderModel.minor === 0\n ? BODY_OPERANDS_SM50\n : BODY_OPERANDS_SM51;\n if (program.instructions?.length !== BODY_OPCODES.length\n || BODY_OPCODES.some((opcodeName, index) =>\n program.instructions[index]?.opcodeName !== opcodeName\n || instructionOperandSignature(program.instructions[index]) !== expectedOperands[index]))\n {\n throw new Error(\"WGSL sort-inner compute requires the exact bounded body opcode, operand, and modifier sequence\");\n }\n for (const [ index, instruction ] of program.instructions.entries())\n {\n const conditional = [ \"if\", \"breakc\" ].includes(instruction.opcodeName);\n if (instruction.index !== index\n || (index > 0 && instruction.dxbcOffset <= program.instructions[index - 1].dxbcOffset)\n || instruction.controlKind !== (CONTROL_KIND[instruction.opcodeName] || null)\n || instruction.testBoolean !== (conditional ? \"nonzero\" : null)\n || instruction.saturate\n || instruction.preciseMask !== \"\"\n || instruction.tailTokens?.length\n || !validExtensions(program, instruction)\n || (instruction.opcodeName === \"sync\"\n && (instruction.syncFlags !== 3\n || JSON.stringify(instruction.syncFlagNames) !==\n JSON.stringify([ \"threads_in_group\", \"thread_group_shared_memory\" ]))))\n {\n throw new Error(`WGSL sort-inner instruction ${index} has inconsistent envelope metadata`);\n }\n for (const [ operandIndex, operand ] of instruction.operands.entries())\n {\n validateBodyReference(program, instruction, operand, operandIndex);\n }\n }\n\n validateAnalysisMetadata(program);\n const originCounts = program.values.reduce((counts, value) =>\n {\n counts[value.origin] = (counts[value.origin] || 0) + 1;\n return counts;\n }, {});\n if (program.blocks.length !== 27\n || program.controlFlow.edgeCount !== 35\n || program.controlFlow.regions.length !== 9\n || program.values.length !== 56\n || originCounts[\"instruction-write\"] !== 33\n || originCounts[\"undefined-register\"] !== 8\n || originCounts[\"program-input\"] !== 3\n || originCounts[\"control-flow-merge\"] !== 12)\n {\n throw new Error(\"WGSL sort-inner compute requires the canonical CFG and register-value shape\");\n }\n const values = new Map(program.values.map((value) => [ value.id, value ]));\n for (const instruction of program.instructions)\n {\n for (const ref of instruction.dataflow.reads.flatMap((read) => read.refs))\n {\n if (values.get(ref.valueId)?.origin === \"undefined-register\")\n {\n throw new Error(`WGSL sort-inner instruction ${instruction.index} reads undefined register data`);\n }\n }\n }\n\n const plans = buildSelectionPlans(program, \"sort-inner compute\");\n if (plans.size !== 9\n || SELECTION_STARTS.some((start) =>\n plans.get(start)?.kind !== \"selection\"\n || plans.get(start).hasElse\n || plans.get(start).merges.length))\n {\n throw new Error(\"WGSL sort-inner compute requires the canonical no-else selections\");\n }\n const loop = plans.get(23);\n const merge = loop?.merges?.[0];\n const entry = values.get(merge?.entryIncoming?.valueId);\n const backedge = values.get(merge?.backedgeIncoming?.valueId);\n const loopReadInstructions = program.instructions\n .filter((instruction) => instruction.dataflow.reads.some((read) =>\n read.refs.some((ref) => ref.valueId === \"value123\")))\n .map((instruction) => instruction.index);\n const deadExitMerge = values.get(\"value166\");\n if (loop?.kind !== \"loop\"\n || loop.merges.length !== 1\n || merge.id !== \"value123\"\n || merge.type !== \"i32\"\n || values.get(\"value123\")?.register !== \"temp[0]\"\n || values.get(\"value123\")?.writeMask !== \"w\"\n || values.get(\"value123\")?.blockId !== \"block9\"\n || merge.entryIncoming.valueId !== \"value41\"\n || entry?.origin !== \"instruction-write\"\n || entry.instructionIndex !== 22\n || merge.backedgeIncoming.valueId !== \"value80\"\n || backedge?.origin !== \"instruction-write\"\n || backedge.instructionIndex !== 44\n || JSON.stringify(loopReadInstructions) !== JSON.stringify([ 24, 26, 30, 44 ])\n || deadExitMerge?.origin !== \"control-flow-merge\"\n || deadExitMerge.register !== \"temp[0]\"\n || deadExitMerge.writeMask !== \"w\"\n || program.instructions.some((instruction) => instruction.dataflow.reads.some((read) =>\n read.refs.some((ref) => ref.valueId === \"value166\")))\n || loop.exitMerges.length\n || loop.exitEdges.size)\n {\n throw new Error(\"WGSL sort-inner compute requires the canonical scalar stride loop merge\");\n }\n}\n\nfunction validateBindings(bindings)\n{\n const expected = [\n [ \"sampled-resource\", \"t0\", \"array<u32>\", null, \"read-only-storage\", 4 ],\n [ \"storage-resource\", \"u0\", \"array<u32>\", 8, \"storage\", 8 ]\n ];\n if (bindings.length !== expected.length\n || expected.some(([ kind, symbol, type, stride, bufferType, minSize ], index) =>\n {\n const binding = bindings[index];\n return binding?.resourceKind !== kind\n || binding.registerIndex !== 0\n || binding.registerSpace !== 0\n || binding.generatedSymbol !== symbol\n || binding.type !== type\n || (binding.structureStride ?? null) !== stride\n || binding.buffer?.type !== bufferType\n || binding.buffer.hasDynamicOffset !== false\n || binding.buffer.minBindingSize !== minSize;\n }))\n {\n throw new Error(\"WGSL sort-inner compute binding layout does not match t0/u0\");\n }\n}\n\nfunction uintLiteral(value)\n{\n return `0x${(value >>> 0).toString(16).padStart(8, \"0\")}u`;\n}\n\nfunction selectedComponents(operand, active)\n{\n if (operand.selected) return active.map(() => operand.selected);\n const swizzle = operand.swizzle || \"xyzw\";\n return active.map((component) => swizzle[COMPONENTS.indexOf(component)]);\n}\n\nfunction rawSourcePart(instruction, operand, component)\n{\n let code;\n if (operand.typeName === \"temp\")\n {\n const loopStrideRead = operand.registerIndex === 0\n && component === \"w\"\n && [ 24, 26, 30, 44 ].includes(instruction.index);\n code = loopStrideRead ? \"stride\" : `r${operand.registerIndex}.${component}`;\n }\n else if ([ \"input_thread_id_in_group\", \"input_thread_id_in_group_flattened\" ]\n .includes(operand.typeName))\n {\n code = `local_invocation_id.${component}`;\n }\n else if (operand.typeName === \"input_thread_group_id\")\n {\n code = `workgroup_id.${component}`;\n }\n else if (operand.typeName === \"immediate32\")\n {\n const sourceIndex = operand.immediateValues.length === 1\n ? 0\n : COMPONENTS.indexOf(component);\n code = uintLiteral(operand.immediateValues[sourceIndex].uint32);\n }\n else\n {\n throw new Error(`WGSL sort-inner source ${operand.typeName || \"unknown\"} cannot be materialized`);\n }\n return operand.modifierName === \"neg\" ? `(0u - ${code})` : code;\n}\n\nfunction sourceParts(instruction, operandIndex, active)\n{\n const operand = instruction.operands[operandIndex];\n return selectedComponents(operand, active)\n .map((component) => rawSourcePart(instruction, operand, component));\n}\n\nfunction assignment(instruction, destination, parts)\n{\n const type = destination.mask.length === 1\n ? \"u32\"\n : `vec${destination.mask.length}<u32>`;\n return {\n kind: \"value-assignment\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n name: `r${destination.registerIndex}.${destination.mask}`,\n type,\n expression: {\n code: parts.length === 1 ? parts[0] : `${type}(${parts.join(\", \")})`,\n type\n }\n };\n}\n\nfunction typedLoad(instruction, binding)\n{\n const address = uintLiteral(instruction.operands[1].immediateValues[0].uint32);\n const length = `arrayLength(&${binding.generatedSymbol})`;\n return assignment(instruction, instruction.operands[0], [\n `select(0u, ${binding.generatedSymbol}[min(${address}, ${length} - 1u)], ${address} < ${length})`\n ]);\n}\n\nfunction structuredLoad(instruction, binding)\n{\n const destination = instruction.operands[0];\n const active = Array.from(destination.mask);\n const address = sourceParts(instruction, 1, [ \"x\" ])[0];\n const resource = instruction.operands[3];\n const resourceComponents = selectedComponents(resource, active);\n if (resource.typeName === \"thread_group_shared_memory\")\n {\n const parts = resourceComponents.map((component) =>\n `g0[((${address}) * 2u) + ${COMPONENTS.indexOf(component)}u]`);\n return assignment(instruction, destination, parts);\n }\n const wordCount = `arrayLength(&${binding.generatedSymbol})`;\n const recordCount = `(${wordCount} / 2u)`;\n const safeRecord = `min(${address}, ${recordCount} - 1u)`;\n const inRange = `${address} < ${recordCount}`;\n const parts = resourceComponents.map((component) =>\n {\n const word = COMPONENTS.indexOf(component);\n if (word > 1)\n {\n throw new Error(`WGSL sort-inner structured load ${instruction.index} exceeds its two-word record`);\n }\n return `select(0u, ${binding.generatedSymbol}[((${safeRecord}) * 2u) + ${word}u], ${inRange})`;\n });\n return assignment(instruction, destination, parts);\n}\n\nfunction structuredStore(instruction, binding)\n{\n const destination = instruction.operands[0];\n const address = sourceParts(instruction, 1, [ \"x\" ])[0];\n const values = sourceParts(instruction, 3, [ \"x\", \"y\" ]);\n const base = `((${address}) * 2u)`;\n if (destination.typeName === \"thread_group_shared_memory\")\n {\n return values.map((value, word) => ({\n kind: \"call\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n expression: {\n code: `g0[${base} + ${word}u] = ${value}`,\n type: \"void\"\n }\n }));\n }\n const recordCount = `(arrayLength(&${binding.generatedSymbol}) / 2u)`;\n return [ {\n kind: \"if\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n condition: { code: `${address} < ${recordCount}`, type: \"bool\" },\n statements: values.map((value, word) => ({\n kind: \"call\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n expression: {\n code: `${binding.generatedSymbol}[${base} + ${word}u] = ${value}`,\n type: \"void\"\n }\n }))\n } ];\n}\n\nfunction aluStatement(instruction)\n{\n const destination = instruction.operands[0];\n const active = Array.from(destination.mask);\n const source = (operandIndex) => sourceParts(instruction, operandIndex, active);\n if (instruction.index === 24)\n {\n const left = source(1)[0];\n const right = source(2)[0];\n return {\n kind: \"let\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n name: \"stride_done\",\n type: \"bool\",\n expression: {\n code: `bitcast<i32>(${left}) >= bitcast<i32>(${right})`,\n type: \"bool\"\n }\n };\n }\n let parts;\n switch (instruction.opcodeName)\n {\n case \"mov\":\n parts = source(1);\n break;\n case \"imad\":\n {\n const left = source(1);\n const right = source(2);\n const addend = source(3);\n parts = left.map((part, index) => `((${part} * ${right[index]}) + ${addend[index]})`);\n break;\n }\n case \"iadd\":\n case \"and\":\n case \"ishl\":\n {\n const left = source(1);\n const right = source(2);\n const operator = { iadd: \"+\", and: \"&\", ishl: \"<<\" }[instruction.opcodeName];\n parts = left.map((part, index) => `(${part} ${operator} ${right[index]})`);\n break;\n }\n case \"imax\":\n case \"imin\":\n {\n const left = source(1);\n const right = source(2);\n const intrinsic = instruction.opcodeName === \"imax\" ? \"max\" : \"min\";\n parts = left.map((part, index) =>\n `bitcast<u32>(${intrinsic}(bitcast<i32>(${part}), bitcast<i32>(${right[index]})))`);\n break;\n }\n case \"ilt\":\n case \"ige\":\n {\n const left = source(1);\n const right = source(2);\n const operator = instruction.opcodeName === \"ilt\" ? \"<\" : \">=\";\n parts = left.map((part, index) =>\n `select(0u, 0xffffffffu, bitcast<i32>(${part}) ${operator} bitcast<i32>(${right[index]}))`);\n break;\n }\n case \"lt\":\n {\n const left = source(1);\n const right = source(2);\n parts = left.map((part, index) =>\n `select(0u, 0xffffffffu, bitcast<f32>(${part}) < bitcast<f32>(${right[index]}))`);\n break;\n }\n case \"ishr\":\n {\n const left = source(1);\n const right = source(2);\n parts = left.map((part, index) =>\n `bitcast<u32>(bitcast<i32>(${part}) >> ${right[index]})`);\n break;\n }\n default:\n throw new Error(`WGSL sort-inner ${instruction.opcodeName} instruction ${instruction.index} is not an ALU operation`);\n }\n const statement = assignment(instruction, destination, parts);\n if (instruction.index === 22)\n {\n return {\n kind: \"var\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n name: \"stride\",\n type: \"u32\",\n expression: statement.expression\n };\n }\n if (instruction.index === 44)\n {\n return { ...statement, name: \"stride\" };\n }\n return statement;\n}\n\nfunction binding(bindings, resourceKind)\n{\n return bindings.find((entry) =>\n entry.resourceKind === resourceKind\n && entry.registerIndex === 0\n && entry.registerSpace === 0);\n}\n\nfunction lowerBody(program, bindings)\n{\n const typedInput = binding(bindings, \"sampled-resource\");\n const output = binding(bindings, \"storage-resource\");\n const statements = Array.from({ length: 3 }, (_, registerIndex) => ({\n kind: \"var\",\n name: `r${registerIndex}`,\n type: \"vec4<u32>\",\n expression: { code: \"vec4<u32>(0u)\", type: \"vec4<u32>\" }\n }));\n const stack = [];\n let current = statements;\n for (const instruction of program.instructions)\n {\n if (instruction.opcodeName === \"if\")\n {\n const condition = sourceParts(instruction, 0, [ \"x\" ])[0];\n const statement = {\n kind: \"if\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n condition: { code: `${condition} != 0u`, type: \"bool\" },\n statements: []\n };\n current.push(statement);\n stack.push({ kind: \"if\", parent: current });\n current = statement.statements;\n continue;\n }\n if (instruction.opcodeName === \"endif\")\n {\n const owner = stack.pop();\n if (owner?.kind !== \"if\")\n {\n throw new Error(`WGSL sort-inner endif ${instruction.index} has malformed nesting`);\n }\n current = owner.parent;\n continue;\n }\n if (instruction.opcodeName === \"loop\")\n {\n const statement = {\n kind: \"loop\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n statements: []\n };\n current.push(statement);\n stack.push({ kind: \"loop\", parent: current });\n current = statement.statements;\n continue;\n }\n if (instruction.opcodeName === \"endloop\")\n {\n const owner = stack.pop();\n if (owner?.kind !== \"loop\")\n {\n throw new Error(`WGSL sort-inner endloop ${instruction.index} has malformed nesting`);\n }\n current = owner.parent;\n continue;\n }\n if (instruction.opcodeName === \"breakc\")\n {\n current.push({\n kind: \"if\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n condition: { code: \"stride_done\", type: \"bool\" },\n statements: [ {\n kind: \"break\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset\n } ]\n });\n continue;\n }\n if (instruction.opcodeName === \"sync\")\n {\n current.push({\n kind: \"call\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n expression: { code: \"workgroupBarrier()\", type: \"void\" }\n });\n continue;\n }\n if (instruction.opcodeName === \"ret\")\n {\n if (stack.length)\n {\n throw new Error(`WGSL sort-inner return ${instruction.index} has malformed nesting`);\n }\n current.push({\n kind: \"return\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset\n });\n continue;\n }\n\n if (instruction.opcodeName === \"ld\")\n {\n current.push(typedLoad(instruction, typedInput));\n }\n else if (instruction.opcodeName === \"ld_structured\")\n {\n current.push(structuredLoad(instruction, output));\n }\n else if (instruction.opcodeName === \"store_structured\")\n {\n current.push(...structuredStore(instruction, output));\n }\n else\n {\n current.push(aluStatement(instruction));\n }\n }\n if (stack.length)\n {\n throw new Error(\"WGSL sort-inner compute contains unterminated control-flow nesting\");\n }\n return statements;\n}\n\n/**\n * Lowers the exact SM5.0/finite-SM5.1 sort-inner bitonic-merge profile.\n *\n * Correct shared-memory initialization retains the source shader's external\n * orchestration premise: N <= 33,553,920 and workgroup_id.x within\n * ceil(max(N, 1) / 512). Those dispatch facts are not encoded in shader IR;\n * callers outside that domain inherit the source program's undefined behavior.\n *\n * @param {object} program CJS shader IR program.\n * @param {object} [options] Exact compute-only binding options.\n * @returns {object} Typed compute program.\n */\nexport function lowerSortInnerComputeProgram(program, options = {})\n{\n validateDeclarations(program);\n validateBody(program);\n const bindings = lowerBindingLayout(program, options.bindingPlan ?? null);\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 { builtin: \"workgroup_id\", name: \"workgroup_id\", type: \"vec3<u32>\" },\n { builtin: \"local_invocation_id\", name: \"local_invocation_id\", type: \"vec3<u32>\" }\n ],\n threadGroupSize: [ 256, 1, 1 ],\n workgroupVariables: [\n { name: \"g0\", elementType: \"u32\", elementCount: 1024 }\n ],\n bindings,\n statements: lowerBody(program, bindings)\n });\n}\n"],"names":["COMPONENTS","Object","freeze","DECLARATION_OPCODES","BODY_OPCODES","BODY_OPERANDS_SM50","BODY_OPERANDS_SM51","map","signature","replaceAll","BLOCK_BEFORE","Set","BLOCK_AFTER","CONTROL_KIND","if","endif","loop","breakc","endloop","ret","SELECTION_STARTS","clonePlain","value","Array","isArray","fromEntries","entries","key","entry","deepFreeze","isFrozen","values","buildBlocks","instructions","leaders","index","length","has","opcodeName","add","starts","from","sort","left","right","start","blockIndex","end","last","kind","id","startInstruction","endInstruction","startDxbcOffset","dxbcOffset","endDxbcOffset","instructionIndices","_","offset","terminator","analysisSnapshot","program","blocks","controlFlow","instruction","dataflow","typeInfo","validateAnalysisMetadata","rebuilt","buildControlFlow","analyzeRegisterValues","resolveRegisterFlow","inferValueTypes","JSON","stringify","Error","operandSignature","operand","indices","join","immediate","immediateValues","uint32","typeName","Number","isInteger","registerIndex","mask","swizzle","selected","modifierName","minPrecisionName","nonUniform","componentCount","instructionOperandSignature","operands","validateCanonicalIndices","context","dimension","representation","relative","validateCommonOperand","includes","isCanonicalIndex","validateSm51Range","data","range","bindingRange","bindingModel","rangeId","lowerBound","upperBound","unbounded","registerCount","registerSpace","validateDeclarationOperand","selector","some","validateBuiltinDeclaration","declaration","operandType","operandTypeName","isSortInnerComputeProfile","stage","declarations","every","validateDeclarations","minor","shaderModel","format","formatVersion","major","TypeError","tailTokens","signatures","input","output","patch","immediateConstantBuffer","constTables","requireRefactoringAllowed","global","flattenedId","groupId","localId","temps","shared","group","globalFlags","refactoringAllowed","resourceDimension","resourceDimensionName","sampleCount","returnType","returnTypes","returnTypeNames","structureStride","globallyCoherent","tempCount","structureCount","threadGroupX","threadGroupY","threadGroupZ","validateBodyReference","operandIndex","resourceReference","undefined","reference","absoluteIndex","bufferIndex","vectorOffset","validExtensions","extensions","token","type","resourceReturnTypes","validateBody","expectedOperands","conditional","controlKind","testBoolean","saturate","preciseMask","syncFlags","syncFlagNames","originCounts","reduce","counts","origin","edgeCount","regions","Map","ref","reads","flatMap","read","refs","get","valueId","plans","buildSelectionPlans","size","hasElse","merges","merge","entryIncoming","backedge","backedgeIncoming","loopReadInstructions","filter","deadExitMerge","register","writeMask","blockId","instructionIndex","exitMerges","exitEdges","validateBindings","bindings","expected","symbol","stride","bufferType","minSize","binding","resourceKind","generatedSymbol","buffer","hasDynamicOffset","minBindingSize","uintLiteral","toString","padStart","selectedComponents","active","component","indexOf","rawSourcePart","code","loopStrideRead","sourceIndex","sourceParts","assignment","destination","parts","name","expression","typedLoad","address","structuredLoad","resource","resourceComponents","wordCount","recordCount","safeRecord","inRange","word","structuredStore","base","condition","statements","aluStatement","source","addend","part","operator","iadd","and","ishl","intrinsic","statement","find","lowerBody","typedInput","stack","current","push","parent","owner","pop","lowerSortInnerComputeProgram","options","lowerBindingLayout","bindingPlan","entryPoint","builtinInputs","builtin","threadGroupSize","workgroupVariables","elementType","elementCount"],"mappings":"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"}
|