@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":"lowerSortStepComputeProgram.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.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\";\nimport { validateSm50ResourceExtensions } from \"./validateExactComputeIr.js\";\n\nconst COMPONENTS = Object.freeze([ \"x\", \"y\", \"z\", \"w\" ]);\nconst DECLARATION_OPCODES = Object.freeze([\n \"dcl_global_flags\",\n \"dcl_constant_buffer\",\n \"dcl_resource\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_input\",\n \"dcl_input\",\n \"dcl_temps\",\n \"dcl_thread_group\"\n]);\nconst BODY_OPCODES = Object.freeze([\n \"ld\", \"imad\", \"iadd\", \"and\", \"iadd\", \"ishl\", \"iadd\", \"imad\",\n \"ult\", \"if\", \"iadd\", \"ld_structured\", \"ld_structured\", \"lt\", \"if\",\n \"store_structured\", \"store_structured\", \"endif\", \"endif\", \"ret\"\n]);\nconst BODY_OPERANDS_BASE_SM50 = Object.freeze([\n \"temp:0:x:0::none:default:uniform | immediate32::::#3,#3,#3,#3:none:default:uniform | resource:0:xyzw:0::none:default:uniform\",\n \"temp:0:y:0::none:default:uniform | input_thread_group_id::x:::none:default:uniform | immediate32::::#256:none:default:uniform | input_thread_id_in_group::x:::none:default:uniform\",\n \"temp:0:z:0::none:default:uniform | constant_buffer:3:x:3,0::none:default:uniform | immediate32::::#4294967295:none:default:uniform\",\n \"temp:0:z:0::none:default:uniform | temp:0:z:0::none:default:uniform | temp:0:y:0::none:default:uniform\",\n \"temp:0:y:0::none:default:uniform | temp:0:z:0::neg:default:uniform | temp:0:y:0::none:default:uniform\",\n \"temp:0:y:0::none:default:uniform | temp:0:y:0::none:default:uniform | immediate32::::#1:none:default:uniform\",\n \"temp:0:w:0::none:default:uniform | temp:0:y:0::none:default:uniform | constant_buffer:3:y:3,0::none:default:uniform\",\n \"temp:0:w:0::none:default:uniform | constant_buffer:3:z:3,0::none:default:uniform | temp:0:z:0::none:default:uniform | temp:0:w:0::none:default:uniform\",\n \"temp:0:x:0::none:default:uniform | temp:0:w:0::none:default:uniform | temp:0:x:0::none:default:uniform\",\n \"temp:0:x:0::none:default:uniform\",\n \"temp:0:x:0::none:default:uniform | temp:0:z:0::none:default:uniform | temp:0:y:0::none:default:uniform\",\n \"temp:0:yz:0::none:default:uniform | temp:0:x:0::none:default:uniform | immediate32::::#0:none:default:uniform | uav:0:xxyx:0::none:default:uniform\",\n \"temp:1:xy:1::none:default:uniform | temp:0:w:0::none:default:uniform | immediate32::::#0:none:default:uniform | uav:0:xyxx:0::none:default:uniform\",\n \"temp:1:z:1::none:default:uniform | temp:1:y:1::none:default:uniform | temp:0:z:0::none:default:uniform\",\n \"temp:1:z:1::none:default:uniform\",\n \"uav:0:xy:0::none:default:uniform | temp:0:x:0::none:default:uniform | immediate32::::#0:none:default:uniform | temp:1:xyxx:1::none:default:uniform\",\n \"uav:0:xy:0::none:default:uniform | temp:0:w:0::none:default:uniform | immediate32::::#0:none:default:uniform | temp:0:yzyy:0::none:default:uniform\",\n \"\",\n \"\",\n \"\"\n]);\nconst BODY_COMPONENT_COUNTS = Object.freeze([\n [ 4, 4, 4 ],\n [ 4, 4, 1, 4 ],\n [ 4, 4, 1 ],\n [ 4, 4, 4 ],\n [ 4, 4, 4 ],\n [ 4, 4, 1 ],\n [ 4, 4, 4 ],\n [ 4, 4, 4, 4 ],\n [ 4, 4, 4 ],\n [ 4 ],\n [ 4, 4, 4 ],\n [ 4, 4, 1, 4 ],\n [ 4, 4, 1, 4 ],\n [ 4, 4, 4 ],\n [ 4 ],\n [ 4, 4, 1, 4 ],\n [ 4, 4, 1, 4 ],\n [],\n [],\n []\n]);\nconst BODY_OPERANDS_SM50 = Object.freeze(BODY_OPERANDS_BASE_SM50.map((signature, instructionIndex) =>\n signature\n ? signature.split(\" | \").map((operand, operandIndex) =>\n `${operand}:${BODY_COMPONENT_COUNTS[instructionIndex][operandIndex]}`).join(\" | \")\n : \"\"));\nconst BODY_OPERANDS_SM51 = Object.freeze(BODY_OPERANDS_SM50.map((signature) =>\n signature\n .replaceAll(\"constant_buffer:3:\", \"constant_buffer:0:\")\n .replaceAll(\":3,0::none:default:uniform\", \":0,3,0::none:default:uniform\")\n .replaceAll(\"resource:0:xyzw:0::\", \"resource:0:xyzw:0,0::\")\n .replaceAll(\"uav:0:xxyx:0::\", \"uav:0:xxyx: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([ \"endif\" ]);\nconst BLOCK_AFTER = new Set([ \"if\", \"endif\", \"ret\" ]);\nconst CONTROL_KIND = Object.freeze({\n if: \"selection\",\n endif: \"selection\",\n ret: \"termination\"\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 ]) => [ 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-step 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-step ${context} has non-canonical index metadata`);\n }\n }\n}\n\nfunction validateCommonOperand(operand, context, allowedModifier = \"none\")\n{\n if (!operand\n || (operand.modifierName ?? \"none\") !== allowedModifier\n || (operand.minPrecisionName ?? \"default\") !== \"default\"\n || operand.nonUniform === true)\n {\n throw new Error(`WGSL sort-step ${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, registerIndex, 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 !== registerIndex\n || range.upperBound !== registerIndex\n || range.unbounded !== false\n || range.registerCount !== 1\n || range.registerSpace !== 0)\n {\n throw new Error(`WGSL sort-step ${context} requires one finite SM5.1 range`);\n }\n}\n\nfunction validateSm51Reference(operand, kind, context)\n{\n const reference = operand.resourceReference;\n if (reference?.bindingModel !== \"sm5.1-range\"\n || reference.rangeId !== 0\n || reference.nonUniform !== false)\n {\n throw new Error(`WGSL sort-step ${context} has an invalid SM5.1 resource reference`);\n }\n if (kind === \"constant-buffer\")\n {\n if (reference.absoluteIndex !== null\n || !isCanonicalIndex(reference.bufferIndex, 1, 3)\n || !isCanonicalIndex(reference.vectorOffset, 2, 0))\n {\n throw new Error(`WGSL sort-step ${context} has an invalid SM5.1 cb3 reference`);\n }\n }\n else if (!isCanonicalIndex(reference.absoluteIndex, 1, 0)\n || reference.bufferIndex !== null\n || reference.vectorOffset !== null)\n {\n throw new Error(`WGSL sort-step ${context} has an invalid SM5.1 handle reference`);\n }\n}\n\nfunction validateDeclarationOperand(operand, {\n componentCount, indices, registerIndex, selector, typeName\n}, context)\n{\n validateCommonOperand(operand, context);\n if (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-step ${context} is malformed`);\n }\n}\n\nfunction validateDeclarations(program)\n{\n const minor = program?.shaderModel?.minor;\n if (program?.format !== \"CJS_SHADER_IR\"\n || program.formatVersion !== 1\n || program.stage !== \"compute\"\n || program.shaderModel?.major !== 5\n || ![ 0, 1 ].includes(minor))\n {\n throw new TypeError(\"WGSL sort-step compute profile requires CJS SM5.0 or finite-range SM5.1 compute IR\");\n }\n if (!isSortStepComputeProfile(program))\n {\n throw new Error(\"WGSL sort-step compute declaration shape is not supported\");\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-step compute profile does not support signatures or constant tables\");\n }\n requireRefactoringAllowed(program, \"sort-step compute\");\n\n const [ global, cb, input, output, groupId, localId, temps, group ] = 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-step compute requires only the refactoring-allowed global flag\");\n }\n if (cb.data?.registerIndex !== 3\n || cb.data.sizeInVec4 !== 1\n || cb.data.accessPattern !== \"immediate_indexed\"\n || cb.operands?.length !== 1)\n {\n throw new Error(\"WGSL sort-step compute requires immediate cb3 with one vec4 row\");\n }\n validateDeclarationOperand(cb.operands[0], minor === 0\n ? { typeName: \"constant_buffer\", registerIndex: 3, componentCount: 4, selector: \"xyzw\", indices: [ 3, 1 ] }\n : { typeName: \"constant_buffer\", registerIndex: 0, componentCount: 4, selector: \"xyzw\", indices: [ 0, 3, 3 ] },\n \"cb3 declaration\");\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-step 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\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-step 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 for (const [ declaration, typeName, operandType ] of [\n [ groupId, \"input_thread_group_id\", 33 ],\n [ localId, \"input_thread_id_in_group\", 34 ]\n ])\n {\n const operand = declaration.operands?.[0];\n validateCommonOperand(operand, `${typeName} declaration`);\n if (declaration.data?.registerIndex !== null\n || declaration.data.operandType !== operandType\n || declaration.data.operandTypeName !== typeName\n || declaration.operands?.length !== 1\n || operand.typeName !== typeName\n || operand.registerIndex !== null\n || operand.componentCount !== 4\n || operand.mask !== \"x\"\n || operand.swizzle || operand.selected\n || operand.indices?.length\n || operand.immediateValues?.length)\n {\n throw new Error(`WGSL sort-step compute requires exactly ${typeName}.x`);\n }\n }\n if (temps.data?.tempCount !== 2\n || group.data?.threadGroupX !== 256\n || group.data?.threadGroupY !== 1\n || group.data?.threadGroupZ !== 1\n || temps.operands?.length\n || group.operands?.length)\n {\n throw new Error(\"WGSL sort-step compute requires two temps and dcl_thread_group 256,1,1\");\n }\n if (minor === 1)\n {\n validateSm51Range(cb.data, 3, \"cb3 declaration\");\n validateSm51Range(input.data, 0, \"t0 declaration\");\n validateSm51Range(output.data, 0, \"u0 declaration\");\n }\n else if (cb.data.bindingModel || cb.data.bindingRange\n || input.data.bindingModel || input.data.bindingRange\n || output.data.bindingModel || output.data.bindingRange)\n {\n throw new Error(\"WGSL sort-step 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-step ${context} has unexpected SM5.1 reference metadata`);\n }\n return;\n }\n if (operand.typeName === \"constant_buffer\")\n {\n validateSm51Reference(operand, \"constant-buffer\", context);\n }\n else if ([ \"resource\", \"uav\" ].includes(operand.typeName))\n {\n validateSm51Reference(operand, \"handle\", context);\n }\n else if (operand.resourceReference !== undefined && operand.resourceReference !== null)\n {\n throw new Error(`WGSL sort-step ${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 validateSm50ResourceExtensions(extensions, {\n resourceDimension: 1,\n resourceDimensionName: \"buffer\",\n structureStride: 0,\n resourceReturnTypes: [ 4, 4, 4, 4 ]\n }, `WGSL sort-step instruction ${instruction.index}`);\n }\n if (instruction.opcodeName === \"ld_structured\")\n {\n return validateSm50ResourceExtensions(extensions, {\n resourceDimension: 12,\n resourceDimensionName: \"structured_buffer\",\n structureStride: 8,\n resourceReturnTypes: [ 6, 6, 6, 6 ]\n }, `WGSL sort-step instruction ${instruction.index}`);\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-step compute requires the exact bounded body opcode, operand, and modifier sequence\");\n }\n for (const [ index, instruction ] of program.instructions.entries())\n {\n const expectedControl = CONTROL_KIND[instruction.opcodeName] || null;\n if (instruction.index !== index\n || (index > 0 && instruction.dxbcOffset <= program.instructions[index - 1].dxbcOffset)\n || instruction.controlKind !== expectedControl\n || instruction.testBoolean !== (instruction.opcodeName === \"if\" ? \"nonzero\" : null)\n || instruction.saturate\n || instruction.preciseMask !== \"\"\n || !validExtensions(program, instruction))\n {\n throw new Error(`WGSL sort-step 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 validateAnalysisMetadata(program);\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-step instruction ${instruction.index} reads undefined register data`);\n }\n }\n }\n const plans = buildSelectionPlans(program, \"sort-step compute\");\n if (plans.size !== 2\n || plans.get(9)?.kind !== \"selection\"\n || plans.get(9).hasElse\n || plans.get(9).merges.length\n || plans.get(14)?.kind !== \"selection\"\n || plans.get(14).hasElse\n || plans.get(14).merges.length)\n {\n throw new Error(\"WGSL sort-step compute requires the canonical nested no-else selections without live merges\");\n }\n}\n\nfunction validateBindings(bindings)\n{\n const expected = [\n [ \"uniform-buffer\", 3, \"cb3\", \"array<vec4<f32>, 1>\", null, \"uniform\", 16 ],\n [ \"sampled-resource\", 0, \"t0\", \"array<u32>\", null, \"read-only-storage\", 4 ],\n [ \"storage-resource\", 0, \"u0\", \"array<u32>\", 8, \"storage\", 8 ]\n ];\n if (bindings.length !== expected.length\n || expected.some(([ kind, registerIndex, symbol, type, stride, bufferType, minSize ], index) =>\n {\n const binding = bindings[index];\n return binding?.resourceKind !== kind\n || binding.registerIndex !== registerIndex\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-step compute binding layout does not match cb3/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 constantBufferRow(program, operand)\n{\n return operand.indices[program.shaderModel.minor === 0 ? 1 : 2].values[0];\n}\n\nfunction rawSourcePart(program, operand, component)\n{\n let code;\n if (operand.typeName === \"temp\")\n {\n code = `r${operand.registerIndex}.${component}`;\n }\n else if (operand.typeName === \"constant_buffer\")\n {\n code = `bitcast<u32>(cb3[${constantBufferRow(program, operand)}].${component})`;\n }\n else if (operand.typeName === \"input_thread_group_id\")\n {\n code = `workgroup_id.${component}`;\n }\n else if (operand.typeName === \"input_thread_id_in_group\")\n {\n code = `local_invocation_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-step source ${operand.typeName || \"unknown\"} cannot be materialized`);\n }\n return operand.modifierName === \"neg\" ? `(0u - ${code})` : code;\n}\n\nfunction sourceParts(program, instruction, operandIndex, active)\n{\n const operand = instruction.operands[operandIndex];\n const components = selectedComponents(operand, active);\n return components.map((component) => rawSourcePart(program, 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(program, instruction, binding)\n{\n const destination = instruction.operands[0];\n const active = Array.from(destination.mask);\n const address = sourceParts(program, instruction, 1, [ \"x\" ])[0];\n const resourceComponents = selectedComponents(instruction.operands[3], active);\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-step 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(program, instruction, binding)\n{\n const address = sourceParts(program, instruction, 1, [ \"x\" ])[0];\n const values = sourceParts(program, instruction, 3, [ \"x\", \"y\" ]);\n const recordCount = `(arrayLength(&${binding.generatedSymbol}) / 2u)`;\n const base = `((${address}) * 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(program, instruction)\n{\n const destination = instruction.operands[0];\n const active = Array.from(destination.mask);\n const source = (operandIndex) => sourceParts(program, instruction, operandIndex, active);\n let parts;\n switch (instruction.opcodeName)\n {\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 \"ult\":\n {\n const left = source(1);\n const right = source(2);\n parts = left.map((part, index) =>\n `select(0u, 0xffffffffu, ${part} < ${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 default:\n throw new Error(`WGSL sort-step ${instruction.opcodeName} instruction ${instruction.index} is not an ALU operation`);\n }\n return assignment(instruction, destination, parts);\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: 2 }, (_, 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(program, 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({ parent: current, statement });\n current = statement.statements;\n continue;\n }\n if (instruction.opcodeName === \"endif\")\n {\n if (!stack.length)\n {\n throw new Error(`WGSL sort-step endif ${instruction.index} has malformed nesting`);\n }\n current = stack.pop().parent;\n continue;\n }\n if (instruction.opcodeName === \"ret\")\n {\n if (stack.length)\n {\n throw new Error(`WGSL sort-step 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 const statement = instruction.opcodeName === \"ld\"\n ? typedLoad(instruction, typedInput)\n : instruction.opcodeName === \"ld_structured\"\n ? structuredLoad(program, instruction, output)\n : instruction.opcodeName === \"store_structured\"\n ? structuredStore(program, instruction, output)\n : aluStatement(program, instruction);\n current.push(statement);\n }\n if (stack.length)\n {\n throw new Error(\"WGSL sort-step compute contains unterminated selection nesting\");\n }\n return statements;\n}\n\n/**\n * Whether declarations select the isolated sort-step compute profile.\n * Detailed validation belongs to the selected profile and never falls through.\n *\n * @param {object} program CJS shader IR program.\n * @returns {boolean} True for the sort-step declaration family.\n */\nexport function isSortStepComputeProfile(program)\n{\n return program?.stage === \"compute\"\n && program.declarations?.length === DECLARATION_OPCODES.length\n && DECLARATION_OPCODES.every((opcodeName, index) =>\n program.declarations[index]?.opcodeName === opcodeName);\n}\n\n/**\n * Lowers the exact SM5.0/finite-SM5.1 sort-step compute profile.\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 lowerSortStepComputeProgram(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 bindings,\n statements: lowerBody(program, bindings)\n });\n}\n"],"names":["COMPONENTS","Object","freeze","DECLARATION_OPCODES","BODY_OPCODES","BODY_OPERANDS_BASE_SM50","BODY_COMPONENT_COUNTS","BODY_OPERANDS_SM50","map","signature","instructionIndex","split","operand","operandIndex","join","BODY_OPERANDS_SM51","replaceAll","BLOCK_BEFORE","Set","BLOCK_AFTER","CONTROL_KIND","if","endif","ret","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","indices","immediate","immediateValues","uint32","typeName","Number","isInteger","registerIndex","mask","swizzle","selected","modifierName","minPrecisionName","nonUniform","componentCount","instructionOperandSignature","operands","validateCanonicalIndices","context","dimension","representation","relative","validateCommonOperand","allowedModifier","isCanonicalIndex","validateSm51Range","data","range","bindingRange","bindingModel","rangeId","lowerBound","upperBound","unbounded","registerCount","registerSpace","validateSm51Reference","reference","resourceReference","absoluteIndex","bufferIndex","vectorOffset","validateDeclarationOperand","selector","some","validateDeclarations","minor","shaderModel","format","formatVersion","stage","major","includes","TypeError","isSortStepComputeProfile","signatures","input","output","patch","immediateConstantBuffer","constTables","requireRefactoringAllowed","global","cb","groupId","localId","temps","group","declarations","globalFlags","refactoringAllowed","sizeInVec4","accessPattern","resourceDimension","resourceDimensionName","sampleCount","returnType","returnTypes","returnTypeNames","structureStride","globallyCoherent","declaration","operandType","operandTypeName","tempCount","threadGroupX","threadGroupY","threadGroupZ","validateBodyReference","undefined","validExtensions","extensions","validateSm50ResourceExtensions","resourceReturnTypes","validateBody","expectedOperands","expectedControl","controlKind","testBoolean","saturate","preciseMask","Map","ref","reads","flatMap","read","refs","get","valueId","origin","plans","buildSelectionPlans","size","hasElse","merges","validateBindings","bindings","expected","symbol","type","stride","bufferType","minSize","binding","resourceKind","generatedSymbol","buffer","hasDynamicOffset","minBindingSize","uintLiteral","toString","padStart","selectedComponents","active","component","indexOf","constantBufferRow","rawSourcePart","code","sourceIndex","sourceParts","components","assignment","destination","parts","name","expression","typedLoad","address","structuredLoad","resourceComponents","wordCount","recordCount","safeRecord","inRange","word","structuredStore","base","condition","statements","aluStatement","source","addend","part","operator","iadd","and","ishl","find","lowerBody","typedInput","stack","current","statement","push","parent","pop","every","lowerSortStepComputeProgram","options","lowerBindingLayout","bindingPlan","entryPoint","builtinInputs","builtin","threadGroupSize"],"mappings":"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"}
|