@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":"lowerSkinVerticesComputeProgram.js","sources":["../../../../../../src/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.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_structured\",\n \"dcl_resource_structured\",\n \"dcl_unordered_access_view_structured\",\n \"dcl_input\",\n \"dcl_temps\",\n \"dcl_thread_group\"\n]);\nconst BODY_OPCODES = Object.freeze([\n \"ult\", \"if\", \"imad\", \"ld_structured\", \"iadd\", \"ld_structured\",\n \"ld_structured\", \"ld_structured\", \"ine\", \"if\", \"and\", \"ubfe\", \"ushr\",\n \"imad\", \"ld_structured\", \"and\", \"ubfe\", \"ushr\", \"utof\", \"utof\", \"mul\",\n \"iadd\", \"ld_structured\", \"ld_structured\", \"ld_structured\", \"iadd\",\n \"ld_structured\", \"ld_structured\", \"ld_structured\", \"mul\", \"mul\", \"mul\",\n \"mad\", \"mad\", \"mad\", \"ld_structured\", \"ld_structured\", \"ld_structured\",\n \"mad\", \"mad\", \"mad\", \"iadd\", \"ld_structured\", \"ld_structured\",\n \"ld_structured\", \"mad\", \"mad\", \"mad\", \"else\", \"and\", \"iadd\",\n \"ld_structured\", \"ld_structured\", \"ld_structured\", \"endif\", \"mov\", \"dp4\",\n \"dp4\", \"dp4\", \"imad\", \"store_structured\", \"iadd\", \"store_structured\",\n \"store_structured\", \"endif\", \"ret\"\n]);\nconst BODY_OPERANDS = Object.freeze([\n \"temp:0:x:0: | input_thread_id::x:: | constant_buffer:3:x:3,0:\",\n \"temp:0:x:0:\",\n \"temp:0:xy:0: | input_thread_id::xxxx:: | constant_buffer:3:yyyy:3,0: | constant_buffer:3:zwzz:3,0:\",\n \"temp:1:x:1: | temp:0:x:0: | immediate32::::#0 | resource:1:xxxx:1:\",\n \"temp:0:xz:0: | temp:0:xxxx:0: | immediate32::::#1,#0,#2,#0\",\n \"temp:1:y:1: | temp:0:x:0: | immediate32::::#0 | resource:1:xxxx:1:\",\n \"temp:1:z:1: | temp:0:z:0: | immediate32::::#0 | resource:1:xxxx:1:\",\n \"temp:0:x:0: | temp:0:y:0: | immediate32::::#0 | resource:1:xxxx:1:\",\n \"temp:0:y:0: | constant_buffer:3:x:3,1: | immediate32::::#4294967295\",\n \"temp:0:y:0:\",\n \"temp:0:y:0: | temp:0:x:0: | immediate32::::#255\",\n \"temp:0:zw:0: | immediate32::::#0,#0,#8,#8 | immediate32::::#0,#0,#8,#16 | temp:0:xxxx:0:\",\n \"temp:2:x:2: | temp:0:x:0: | immediate32::::#24\",\n \"temp:2:y:2: | input_thread_id::x:: | constant_buffer:3:y:3,0: | constant_buffer:3:x:3,1:\",\n \"temp:2:y:2: | temp:2:y:2: | immediate32::::#0 | resource:1:xxxx:1:\",\n \"temp:2:z:2: | temp:2:y:2: | immediate32::::#255\",\n \"temp:3:xy:3: | immediate32::::#8,#8,#0,#0 | immediate32::::#8,#16,#0,#0 | temp:2:yyyy:2:\",\n \"temp:2:y:2: | temp:2:y:2: | immediate32::::#24\",\n \"temp:4:yz:4: | temp:3:xxyx:3:\",\n \"temp:4:xw:4: | temp:2:zzzy:2:\",\n \"temp:3:xyzw:3: | temp:4:xyzw:4: | immediate32::::#998277249,#998277249,#998277249,#998277249\",\n \"temp:0:y:0: | temp:0:y:0: | constant_buffer:3:y:3,1:\",\n \"temp:4:xyzw:4: | temp:0:y:0: | immediate32::::#0 | resource:0:xyzw:0:\",\n \"temp:5:xyzw:5: | temp:0:y:0: | immediate32::::#16 | resource:0:xyzw:0:\",\n \"temp:6:xyzw:6: | temp:0:y:0: | immediate32::::#32 | resource:0:xyzw:0:\",\n \"temp:0:yz:0: | temp:0:zzwz:0: | constant_buffer:3:yyyy:3,1:\",\n \"temp:7:xyzw:7: | temp:0:y:0: | immediate32::::#0 | resource:0:xyzw:0:\",\n \"temp:8:xyzw:8: | temp:0:y:0: | immediate32::::#16 | resource:0:xyzw:0:\",\n \"temp:9:xyzw:9: | temp:0:y:0: | immediate32::::#32 | resource:0:xyzw:0:\",\n \"temp:7:xyzw:7: | temp:3:yyyy:3: | temp:7:xyzw:7:\",\n \"temp:8:xyzw:8: | temp:3:yyyy:3: | temp:8:xyzw:8:\",\n \"temp:9:xyzw:9: | temp:3:yyyy:3: | temp:9:xyzw:9:\",\n \"temp:4:xyzw:4: | temp:4:xyzw:4: | temp:3:xxxx:3: | temp:7:xyzw:7:\",\n \"temp:5:xyzw:5: | temp:5:xyzw:5: | temp:3:xxxx:3: | temp:8:xyzw:8:\",\n \"temp:6:xyzw:6: | temp:6:xyzw:6: | temp:3:xxxx:3: | temp:9:xyzw:9:\",\n \"temp:7:xyzw:7: | temp:0:z:0: | immediate32::::#0 | resource:0:xyzw:0:\",\n \"temp:8:xyzw:8: | temp:0:z:0: | immediate32::::#16 | resource:0:xyzw:0:\",\n \"temp:9:xyzw:9: | temp:0:z:0: | immediate32::::#32 | resource:0:xyzw:0:\",\n \"temp:4:xyzw:4: | temp:7:xyzw:7: | temp:3:zzzz:3: | temp:4:xyzw:4:\",\n \"temp:5:xyzw:5: | temp:8:xyzw:8: | temp:3:zzzz:3: | temp:5:xyzw:5:\",\n \"temp:6:xyzw:6: | temp:9:xyzw:9: | temp:3:zzzz:3: | temp:6:xyzw:6:\",\n \"temp:0:y:0: | temp:2:x:2: | constant_buffer:3:y:3,1:\",\n \"temp:2:xyzw:2: | temp:0:y:0: | immediate32::::#0 | resource:0:xyzw:0:\",\n \"temp:7:xyzw:7: | temp:0:y:0: | immediate32::::#16 | resource:0:xyzw:0:\",\n \"temp:8:xyzw:8: | temp:0:y:0: | immediate32::::#32 | resource:0:xyzw:0:\",\n \"temp:2:xyzw:2: | temp:2:xyzw:2: | temp:3:wwww:3: | temp:4:xyzw:4:\",\n \"temp:4:xyzw:4: | temp:7:xyzw:7: | temp:3:wwww:3: | temp:5:xyzw:5:\",\n \"temp:3:xyzw:3: | temp:8:xyzw:8: | temp:3:wwww:3: | temp:6:xyzw:6:\",\n \"\",\n \"temp:0:x:0: | temp:0:x:0: | immediate32::::#255\",\n \"temp:0:x:0: | temp:0:x:0: | constant_buffer:3:y:3,1:\",\n \"temp:2:xyzw:2: | temp:0:x:0: | immediate32::::#0 | resource:0:xyzw:0:\",\n \"temp:4:xyzw:4: | temp:0:x:0: | immediate32::::#16 | resource:0:xyzw:0:\",\n \"temp:3:xyzw:3: | temp:0:x:0: | immediate32::::#32 | resource:0:xyzw:0:\",\n \"\",\n \"temp:1:w:1: | immediate32::::#1065353216\",\n \"temp:0:x:0: | temp:1:xyzw:1: | temp:2:xyzw:2:\",\n \"temp:0:y:0: | temp:1:xyzw:1: | temp:4:xyzw:4:\",\n \"temp:0:z:0: | temp:1:xyzw:1: | temp:3:xyzw:3:\",\n \"temp:0:w:0: | input_thread_id::x:: | immediate32::::#3 | constant_buffer:3:x:3,2:\",\n \"uav:0:x:0: | temp:0:w:0: | immediate32::::#0 | temp:0:x:0:\",\n \"temp:1:xy:1: | temp:0:wwww:0: | immediate32::::#1,#2,#0,#0\",\n \"uav:0:x:0: | temp:1:x:1: | immediate32::::#0 | temp:0:y:0:\",\n \"uav:0:x:0: | temp:1:y:1: | immediate32::::#0 | temp:0:z:0:\",\n \"\",\n \"\"\n]);\nconst BLOCK_BEFORE = new Set([ \"else\", \"endif\" ]);\nconst BLOCK_AFTER = new Set([ \"if\", \"else\", \"endif\", \"ret\" ]);\nconst CONTROL_KIND = Object.freeze({\n if: \"selection\",\n else: \"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 structured skinning compute CFG, SSA, or type metadata is inconsistent\");\n }\n}\n\nfunction validateCommonOperand(operand, instruction, operandIndex)\n{\n if (!operand\n || (operand.modifierName ?? \"none\") !== \"none\"\n || (operand.minPrecisionName ?? \"default\") !== \"default\"\n || operand.nonUniform === true)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} requires default uniform unmodified data`);\n }\n}\n\nfunction validateFixedIndex(operand, instruction, operandIndex)\n{\n const index = operand.indices?.[0];\n if (!Number.isInteger(operand.registerIndex) || operand.registerIndex < 0\n || operand.indices?.length !== 1\n || index?.relative\n || index?.values?.length !== 1\n || index.values[0] !== operand.registerIndex)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has an invalid fixed register identity`);\n }\n}\n\nfunction validateDestination(operand, instruction, operandIndex)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n validateFixedIndex(operand, instruction, operandIndex);\n if (operand.typeName !== \"temp\"\n || operand.registerIndex > 9\n || operand.componentCount !== 4\n || !/^(?:x|y|z|w|xy|xz|yz|zw|xw|xyzw)$/u.test(operand.mask)\n || operand.swizzle || operand.selected)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has an unsupported temp destination`);\n }\n return Array.from(operand.mask);\n}\n\nfunction validateScalarSource(operand, instruction, operandIndex, typeName = null)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n if (typeName && operand.typeName !== typeName)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} requires ${typeName}`);\n }\n if (!COMPONENTS.includes(operand.selected) || operand.mask || operand.swizzle)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} requires one selected scalar lane`);\n }\n if (operand.typeName === \"temp\")\n {\n validateFixedIndex(operand, instruction, operandIndex);\n if (operand.registerIndex > 9 || operand.componentCount !== 4)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has an invalid temp source`);\n }\n }\n return operand;\n}\n\nfunction immediateValues(operand, instruction, operandIndex)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n if (operand.typeName !== \"immediate32\"\n || operand.registerIndex !== null\n || operand.indices?.length\n || operand.mask || operand.swizzle || operand.selected\n || ![ 1, 4 ].includes(operand.componentCount)\n || operand.immediateValues?.length !== operand.componentCount\n || operand.immediateValues.some((value) => !Number.isInteger(value?.uint32)))\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} requires canonical immediate32 data`);\n }\n return operand.immediateValues.map((value) => value.uint32 >>> 0);\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 ].join(\":\");\n}\n\nfunction instructionOperandSignature(instruction)\n{\n return (instruction.operands || []).map(operandSignature).join(\" | \");\n}\n\nfunction validateSource(operand, instruction, operandIndex)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n if (operand.mask || (operand.selected && operand.swizzle))\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has an invalid source selector`);\n }\n if (operand.typeName === \"temp\")\n {\n validateFixedIndex(operand, instruction, operandIndex);\n if (operand.registerIndex > 9 || operand.componentCount !== 4\n || (!COMPONENTS.includes(operand.selected) && !/^[xyzw]{4}$/u.test(operand.swizzle)))\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has an invalid temp source`);\n }\n return;\n }\n if (operand.typeName === \"constant_buffer\")\n {\n const [ bufferIndex, rowIndex ] = operand.indices || [];\n if (operand.registerIndex !== 3\n || operand.componentCount !== 4\n || operand.indices?.length !== 2\n || bufferIndex?.relative || bufferIndex?.values?.length !== 1 || bufferIndex.values[0] !== 3\n || rowIndex?.relative || rowIndex?.values?.length !== 1\n || !Number.isInteger(rowIndex.values[0]) || rowIndex.values[0] < 0 || rowIndex.values[0] > 2\n || (!COMPONENTS.includes(operand.selected) && !/^[xyzw]{4}$/u.test(operand.swizzle)))\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has an invalid cb3 source`);\n }\n return;\n }\n if (operand.typeName === \"input_thread_id\")\n {\n if (operand.registerIndex !== null || operand.indices?.length || operand.componentCount !== 4\n || (!COMPONENTS.includes(operand.selected) && !/^[xyzw]{4}$/u.test(operand.swizzle))\n || Array.from(operand.selected || operand.swizzle).some((component) => component !== \"x\"))\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} may read only input_thread_id.x`);\n }\n return;\n }\n if (operand.typeName === \"immediate32\")\n {\n immediateValues(operand, instruction, operandIndex);\n return;\n }\n throw new Error(`WGSL structured skinning instruction ${instruction.index} operand ${operandIndex} has unsupported source ${operand.typeName || \"unknown\"}`);\n}\n\nfunction selectedComponents(operand, activeComponents)\n{\n if (operand.selected) return activeComponents.map(() => operand.selected);\n const swizzle = operand.swizzle || \"xyzw\";\n return activeComponents.map((component) => swizzle[COMPONENTS.indexOf(component)]);\n}\n\nfunction uintLiteral(value)\n{\n return `0x${(value >>> 0).toString(16).padStart(8, \"0\")}u`;\n}\n\nfunction sourceParts(instruction, operandIndex, activeComponents)\n{\n const operand = instruction.operands[operandIndex];\n validateSource(operand, instruction, operandIndex);\n const components = selectedComponents(operand, activeComponents);\n if (operand.typeName === \"temp\")\n {\n return components.map((component) => `r${operand.registerIndex}.${component}`);\n }\n if (operand.typeName === \"constant_buffer\")\n {\n const row = operand.indices[1].values[0];\n return components.map((component) => `bitcast<u32>(cb3[${row}].${component})`);\n }\n if (operand.typeName === \"input_thread_id\")\n {\n return components.map((component) => `dispatch_thread_id.${component}`);\n }\n const values = immediateValues(operand, instruction, operandIndex);\n return components.map((component, index) =>\n {\n const sourceIndex = values.length === 1 ? 0 : COMPONENTS.indexOf(component);\n return uintLiteral(values[sourceIndex] ?? values[index]);\n });\n}\n\nfunction rawVector(parts)\n{\n return parts.length === 1 ? parts[0] : `vec${parts.length}<u32>(${parts.join(\", \")})`;\n}\n\nfunction floatVector(parts)\n{\n const values = parts.map((part) => `bitcast<f32>(${part})`);\n return values.length === 1 ? values[0] : `vec${values.length}<f32>(${values.join(\", \")})`;\n}\n\nfunction rawFloatExpression(code, count)\n{\n return `bitcast<${count === 1 ? \"u32\" : `vec${count}<u32>`}>(${code})`;\n}\n\nfunction assignment(instruction, destination, parts)\n{\n return {\n kind: \"value-assignment\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n name: `r${destination.registerIndex}.${destination.mask}`,\n type: destination.mask.length === 1 ? \"u32\" : `vec${destination.mask.length}<u32>`,\n expression: {\n code: rawVector(parts),\n type: destination.mask.length === 1 ? \"u32\" : `vec${destination.mask.length}<u32>`\n }\n };\n}\n\nfunction bindingForHandle(bindings, kind, operand, instruction, operandIndex)\n{\n validateCommonOperand(operand, instruction, operandIndex);\n validateFixedIndex(operand, instruction, operandIndex);\n const typeName = kind === \"sampled-resource\" ? \"resource\" : \"uav\";\n if (operand.typeName !== typeName || operand.componentCount !== 4)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} has an invalid ${typeName} handle`);\n }\n const binding = bindings.find((entry) =>\n entry.resourceKind === kind\n && entry.registerIndex === operand.registerIndex\n && entry.registerSpace === 0);\n if (!binding)\n {\n throw new Error(`WGSL structured skinning instruction ${instruction.index} has an unresolved ${kind} binding`);\n }\n return binding;\n}\n\nfunction safeStructuredLoad(program, instruction, bindings)\n{\n if (instruction.operands.length !== 4)\n {\n throw new Error(`WGSL structured skinning load ${instruction.index} requires four operands`);\n }\n const destination = instruction.operands[0];\n const active = validateDestination(destination, instruction, 0);\n validateScalarSource(instruction.operands[1], instruction, 1, \"temp\");\n const address = sourceParts(instruction, 1, [ \"x\" ])[0];\n const byteOffsets = immediateValues(instruction.operands[2], instruction, 2);\n if (byteOffsets.length !== 1 || byteOffsets[0] % 4 !== 0)\n {\n throw new Error(`WGSL structured skinning load ${instruction.index} requires one immediate DWORD byte offset`);\n }\n const resource = instruction.operands[3];\n if (!/^[xyzw]{4}$/u.test(resource.swizzle) || resource.mask || resource.selected)\n {\n throw new Error(`WGSL structured skinning load ${instruction.index} requires a four-lane resource swizzle`);\n }\n const binding = bindingForHandle(bindings, \"sampled-resource\", resource, instruction, 3);\n const strideWords = binding.structureStride / 4;\n const firstWord = byteOffsets[0] / 4;\n if ((binding.registerIndex === 0 && ![ 0, 4, 8 ].includes(firstWord))\n || (binding.registerIndex === 1 && firstWord !== 0))\n {\n throw new Error(`WGSL structured skinning load ${instruction.index} uses an unexpected structured byte offset`);\n }\n const wordCount = `arrayLength(&${binding.generatedSymbol})`;\n const addressInRange = `${address} < (${wordCount} / ${strideWords}u)`;\n const resourceComponents = selectedComponents(resource, active);\n const parts = resourceComponents.map((component) =>\n {\n const word = firstWord + COMPONENTS.indexOf(component);\n if (word < 0 || word >= strideWords)\n {\n throw new Error(`WGSL structured skinning load ${instruction.index} exceeds its ${binding.structureStride}-byte stride`);\n }\n const wordAddress = `((${address}) * ${strideWords}u) + ${word}u`;\n const safeWordAddress = `min(${wordAddress}, ${wordCount} - 1u)`;\n return `select(0u, ${binding.generatedSymbol}[${safeWordAddress}], ${addressInRange})`;\n });\n return assignment(instruction, destination, parts);\n}\n\nfunction structuredStore(program, instruction, bindings)\n{\n void program;\n if (instruction.operands.length !== 4)\n {\n throw new Error(`WGSL structured skinning store ${instruction.index} requires four operands`);\n }\n const uav = instruction.operands[0];\n if (uav.mask !== \"x\" || uav.swizzle || uav.selected)\n {\n throw new Error(`WGSL structured skinning store ${instruction.index} requires the scalar x UAV mask`);\n }\n const binding = bindingForHandle(bindings, \"storage-resource\", uav, instruction, 0);\n if (binding.structureStride !== 4 || binding.type !== \"array<u32>\")\n {\n throw new Error(`WGSL structured skinning store ${instruction.index} requires a stride-4 raw-word UAV`);\n }\n validateScalarSource(instruction.operands[1], instruction, 1, \"temp\");\n const address = sourceParts(instruction, 1, [ \"x\" ])[0];\n const byteOffsets = immediateValues(instruction.operands[2], instruction, 2);\n if (byteOffsets.length !== 1 || byteOffsets[0] !== 0)\n {\n throw new Error(`WGSL structured skinning store ${instruction.index} requires byte offset zero`);\n }\n validateScalarSource(instruction.operands[3], instruction, 3, \"temp\");\n const value = sourceParts(instruction, 3, [ \"x\" ])[0];\n return {\n kind: \"if\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n condition: { code: `${address} < arrayLength(&${binding.generatedSymbol})`, type: \"bool\" },\n statements: [ {\n kind: \"call\",\n instructionIndex: instruction.index,\n dxbcOffset: instruction.dxbcOffset,\n expression: {\n code: `${binding.generatedSymbol}[${address}] = ${value}`,\n type: \"void\"\n }\n } ]\n };\n}\n\nfunction aluStatement(instruction)\n{\n const destination = instruction.operands[0];\n const active = validateDestination(destination, instruction, 0);\n const count = active.length;\n const source = (operandIndex) => sourceParts(instruction, operandIndex, active);\n let parts;\n switch (instruction.opcodeName)\n {\n case \"ult\":\n case \"ine\":\n {\n if (instruction.operands.length !== 3) break;\n const left = source(1);\n const right = source(2);\n const operator = instruction.opcodeName === \"ult\" ? \"<\" : \"!=\";\n parts = left.map((part, index) =>\n `select(0u, 0xffffffffu, ${part} ${operator} ${right[index]})`);\n break;\n }\n case \"imad\":\n {\n if (instruction.operands.length !== 4) break;\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 \"ushr\":\n {\n if (instruction.operands.length !== 3) break;\n const left = source(1);\n const right = source(2);\n const operator = { iadd: \"+\", and: \"&\", ushr: \">>\" }[instruction.opcodeName];\n parts = left.map((part, index) => `(${part} ${operator} ${right[index]})`);\n break;\n }\n case \"ubfe\":\n {\n if (instruction.operands.length !== 4) break;\n const widths = immediateValues(instruction.operands[1], instruction, 1);\n const offsets = immediateValues(instruction.operands[2], instruction, 2);\n const values = source(3);\n const lanes = selectedComponents(instruction.operands[1], active);\n parts = lanes.map((component, index) =>\n {\n const lane = COMPONENTS.indexOf(component);\n const width = widths.length === 1 ? widths[0] : widths[lane];\n const offset = offsets.length === 1 ? offsets[0] : offsets[lane];\n if (width !== 8 || ![ 8, 16 ].includes(offset))\n {\n throw new Error(`WGSL structured skinning ubfe ${instruction.index} requires the bounded 8-bit packed fields`);\n }\n return `((${values[index]} >> ${uintLiteral(offset)}) & 0x000000ffu)`;\n });\n break;\n }\n case \"utof\":\n {\n if (instruction.operands.length !== 2) break;\n parts = source(1).map((part) => `bitcast<u32>(f32(${part}))`);\n break;\n }\n case \"mul\":\n case \"mad\":\n {\n const expected = instruction.opcodeName === \"mul\" ? 3 : 4;\n if (instruction.operands.length !== expected) break;\n const left = source(1);\n const right = source(2);\n const addend = instruction.opcodeName === \"mad\" ? source(3) : null;\n parts = left.map((part, index) =>\n {\n const product = `(bitcast<f32>(${part}) * bitcast<f32>(${right[index]}))`;\n const code = addend\n ? `(${product} + bitcast<f32>(${addend[index]}))`\n : product;\n return `bitcast<u32>(${code})`;\n });\n break;\n }\n case \"mov\":\n if (instruction.operands.length === 2) parts = source(1);\n break;\n case \"dp4\":\n {\n if (instruction.operands.length !== 3 || count !== 1) break;\n const left = sourceParts(instruction, 1, COMPONENTS);\n const right = sourceParts(instruction, 2, COMPONENTS);\n parts = [ rawFloatExpression(`dot(${floatVector(left)}, ${floatVector(right)})`, 1) ];\n break;\n }\n default:\n break;\n }\n if (!parts)\n {\n throw new Error(`WGSL structured skinning ${instruction.opcodeName} instruction ${instruction.index} has an unsupported operand shape`);\n }\n return assignment(instruction, destination, parts);\n}\n\nfunction validateDeclarationOperand(declaration, typeName, registerIndex)\n{\n const operand = declaration.operands?.[0];\n validateCommonOperand(operand, { index: `declaration@${declaration.dxbcOffset}` }, 0);\n validateFixedIndex(operand, { index: `declaration@${declaration.dxbcOffset}` }, 0);\n if (declaration.operands.length !== 1\n || operand.typeName !== typeName\n || operand.registerIndex !== registerIndex\n || operand.componentCount !== 0\n || operand.mask || operand.swizzle || operand.selected)\n {\n throw new Error(`WGSL structured skinning declaration ${declaration.opcodeName} has a malformed handle`);\n }\n}\n\nfunction validateDeclarations(program)\n{\n if (program?.format !== \"CJS_SHADER_IR\" || program.formatVersion !== 1\n || program.stage !== \"compute\"\n || program.shaderModel?.major !== 5 || program.shaderModel.minor !== 0)\n {\n throw new TypeError(\"WGSL structured skinning compute profile requires CJS SM5.0 compute IR\");\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 structured skinning compute profile does not support signatures or constant tables\");\n }\n if (!isSkinVerticesComputeProfile(program))\n {\n throw new Error(\"WGSL structured skinning compute declaration shape is not supported\");\n }\n requireRefactoringAllowed(program, \"structured skinning compute\");\n const [ global, cb, bone, input, output, builtin, 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 structured skinning compute requires only the refactoring-allowed global flag\");\n }\n if (cb.data?.registerIndex !== 3 || cb.data.sizeInVec4 !== 3\n || cb.data.accessPattern !== \"immediate_indexed\")\n {\n throw new Error(\"WGSL structured skinning compute requires immediate cb3 with three vec4 rows\");\n }\n const cbOperand = cb.operands?.[0];\n validateCommonOperand(cbOperand, { index: `declaration@${cb.dxbcOffset}` }, 0);\n if (cb.operands?.length !== 1\n || cbOperand.typeName !== \"constant_buffer\"\n || cbOperand.registerIndex !== 3\n || cbOperand.componentCount !== 4\n || cbOperand.swizzle !== \"xyzw\"\n || cbOperand.mask || cbOperand.selected\n || cbOperand.indices?.length !== 2\n || cbOperand.indices.some((index) =>\n index.relative\n || index.values?.length !== 1\n || index.values[0] !== 3))\n {\n throw new Error(\"WGSL structured skinning compute requires the canonical cb3[3] declaration operand\");\n }\n for (const [ declaration, typeName, registerIndex, stride ] of [\n [ bone, \"resource\", 0, 48 ],\n [ input, \"resource\", 1, 4 ],\n [ output, \"uav\", 0, 4 ]\n ])\n {\n if (declaration.data?.registerIndex !== registerIndex\n || declaration.data.structureStride !== stride\n || (typeName === \"uav\" && declaration.data.globallyCoherent !== false))\n {\n throw new Error(`WGSL structured skinning compute requires ${typeName}${registerIndex} stride ${stride}`);\n }\n validateDeclarationOperand(declaration, typeName, registerIndex);\n }\n const inputOperand = builtin.operands?.[0];\n validateCommonOperand(inputOperand, { index: `declaration@${builtin.dxbcOffset}` }, 0);\n if (builtin.data?.operandTypeName !== \"input_thread_id\"\n || builtin.data.registerIndex !== null\n || builtin.operands?.length !== 1\n || inputOperand.typeName !== \"input_thread_id\"\n || inputOperand.componentCount !== 4\n || inputOperand.mask !== \"x\"\n || inputOperand.registerIndex !== null\n || inputOperand.indices?.length\n || inputOperand.selected || inputOperand.swizzle)\n {\n throw new Error(\"WGSL structured skinning compute requires exactly input_thread_id.x\");\n }\n if (temps.data?.tempCount !== 10\n || group.data?.threadGroupX !== 64\n || group.data?.threadGroupY !== 1\n || group.data?.threadGroupZ !== 1\n || temps.operands?.length\n || group.operands?.length)\n {\n throw new Error(\"WGSL structured skinning compute requires ten temps and dcl_thread_group 64,1,1\");\n }\n}\n\nfunction validateBindings(bindings)\n{\n const expected = [\n [ \"uniform-buffer\", 3, \"cb3\", \"array<vec4<f32>, 3>\", null, \"uniform\", 48 ],\n [ \"sampled-resource\", 0, \"t0\", \"array<u32>\", 48, \"read-only-storage\", 48 ],\n [ \"sampled-resource\", 1, \"t1\", \"array<u32>\", 4, \"read-only-storage\", 4 ],\n [ \"storage-resource\", 0, \"u0\", \"array<u32>\", 4, \"storage\", 4 ]\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 structured skinning compute binding layout does not match cb3/t0/t1/u0\");\n }\n}\n\nfunction validateBody(program)\n{\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]) !== BODY_OPERANDS[index]))\n {\n throw new Error(\"WGSL structured skinning compute requires the exact bounded body opcode and operand sequence\");\n }\n for (const [ index, instruction ] of program.instructions.entries())\n {\n const expectedControl = CONTROL_KIND[instruction.opcodeName] || null;\n const extensions = instruction.extensions || [];\n const resourceIndex = instruction.operands?.[3]?.registerIndex;\n const expectedStride = resourceIndex === 0 ? 48 : resourceIndex === 1 ? 4 : null;\n const hasValidExtensions = instruction.opcodeName === \"ld_structured\"\n ? validateSm50ResourceExtensions(extensions, {\n resourceDimension: 12,\n resourceDimensionName: \"structured_buffer\",\n structureStride: expectedStride,\n resourceReturnTypes: [ 6, 6, 6, 6 ]\n }, `WGSL structured skinning instruction ${index}`)\n : extensions.length === 0;\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 || !hasValidExtensions)\n {\n throw new Error(`WGSL structured skinning instruction ${index} has inconsistent envelope metadata`);\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 structured skinning instruction ${instruction.index} reads undefined register data`);\n }\n }\n }\n const plans = buildSelectionPlans(program, \"structured skinning compute\");\n if (plans.size !== 2\n || plans.get(1)?.kind !== \"selection\" || plans.get(1).hasElse || plans.get(1).merges.length\n || plans.get(9)?.kind !== \"selection\" || !plans.get(9).hasElse\n || plans.get(9).merges.length !== 12)\n {\n throw new Error(\"WGSL structured skinning compute requires the canonical nested selection and live merges\");\n }\n}\n\nfunction lowerBody(program, bindings)\n{\n const statements = Array.from({ length: 10 }, (_, 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 if (instruction.operands.length !== 1)\n {\n throw new Error(`WGSL structured skinning if ${instruction.index} requires one condition`);\n }\n validateScalarSource(instruction.operands[0], instruction, 0, \"temp\");\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({ parent: current, statement });\n current = statement.statements;\n continue;\n }\n if (instruction.opcodeName === \"else\")\n {\n if (instruction.operands.length || !stack.length || stack.at(-1).statement.elseStatements)\n {\n throw new Error(`WGSL structured skinning else ${instruction.index} has malformed nesting`);\n }\n stack.at(-1).statement.elseStatements = [];\n current = stack.at(-1).statement.elseStatements;\n continue;\n }\n if (instruction.opcodeName === \"endif\")\n {\n if (instruction.operands.length || !stack.length)\n {\n throw new Error(`WGSL structured skinning endif ${instruction.index} has malformed nesting`);\n }\n current = stack.pop().parent;\n continue;\n }\n if (instruction.opcodeName === \"ret\")\n {\n if (instruction.operands.length || stack.length)\n {\n throw new Error(`WGSL structured skinning 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_structured\"\n ? safeStructuredLoad(program, instruction, bindings)\n : instruction.opcodeName === \"store_structured\"\n ? structuredStore(program, instruction, bindings)\n : aluStatement(instruction);\n current.push(statement);\n }\n if (stack.length)\n {\n throw new Error(\"WGSL structured skinning compute contains unterminated selection nesting\");\n }\n return statements;\n}\n\n/**\n * Whether declarations select the isolated structured skinning compute\n * profile. Detailed declaration/body validation belongs to the selected\n * profile and never falls through to another lowerer.\n *\n * @param {object} program CJS shader IR program.\n * @returns {boolean} True for the structured skinning declaration family.\n */\nexport function isSkinVerticesComputeProfile(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 bounded structured skinning 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 lowerSkinVerticesComputeProgram(program, options = {})\n{\n validateDeclarations(program);\n validateBody(program);\n const bindings = lowerBindingLayout(program, options.bindingPlan ?? null);\n validateBindings(bindings);\n const statements = lowerBody(program, 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: \"global_invocation_id\",\n name: \"dispatch_thread_id\",\n type: \"vec3<u32>\"\n } ],\n threadGroupSize: [ 64, 1, 1 ],\n bindings,\n statements\n });\n}\n"],"names":["COMPONENTS","Object","freeze","DECLARATION_OPCODES","BODY_OPCODES","BODY_OPERANDS","BLOCK_BEFORE","Set","BLOCK_AFTER","CONTROL_KIND","if","else","endif","ret","clonePlain","value","Array","isArray","map","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","validateCommonOperand","operand","operandIndex","modifierName","minPrecisionName","nonUniform","validateFixedIndex","indices","Number","isInteger","registerIndex","relative","validateDestination","typeName","componentCount","test","mask","swizzle","selected","validateScalarSource","includes","immediateValues","some","uint32","operandSignature","join","immediate","instructionOperandSignature","operands","validateSource","bufferIndex","rowIndex","component","selectedComponents","activeComponents","indexOf","uintLiteral","toString","padStart","sourceParts","components","row","sourceIndex","rawVector","parts","floatVector","part","rawFloatExpression","code","count","assignment","destination","instructionIndex","name","type","expression","bindingForHandle","bindings","binding","find","resourceKind","registerSpace","safeStructuredLoad","active","address","byteOffsets","resource","strideWords","structureStride","firstWord","wordCount","generatedSymbol","addressInRange","resourceComponents","word","wordAddress","safeWordAddress","structuredStore","uav","condition","statements","aluStatement","source","operator","addend","iadd","and","ushr","widths","offsets","lanes","lane","width","expected","product","validateDeclarationOperand","declaration","validateDeclarations","format","formatVersion","stage","shaderModel","major","minor","TypeError","signatures","input","output","patch","immediateConstantBuffer","constTables","isSkinVerticesComputeProfile","requireRefactoringAllowed","global","cb","bone","builtin","temps","group","declarations","data","globalFlags","refactoringAllowed","sizeInVec4","accessPattern","cbOperand","stride","globallyCoherent","inputOperand","operandTypeName","tempCount","threadGroupX","threadGroupY","threadGroupZ","validateBindings","symbol","bufferType","minSize","buffer","hasDynamicOffset","minBindingSize","validateBody","expectedControl","extensions","resourceIndex","expectedStride","hasValidExtensions","validateSm50ResourceExtensions","resourceDimension","resourceDimensionName","resourceReturnTypes","controlKind","testBoolean","saturate","preciseMask","Map","ref","reads","flatMap","read","refs","get","valueId","origin","plans","buildSelectionPlans","size","hasElse","merges","lowerBody","stack","current","statement","push","parent","at","elseStatements","pop","every","lowerSkinVerticesComputeProgram","options","lowerBindingLayout","bindingPlan","entryPoint","builtinInputs","threadGroupSize"],"mappings":"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"}
|