@carbonenginejs/runtime-resource 0.9.2 → 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/NOTICE +3 -2
- package/README.md +47 -6
- package/dist/CjsMotherLode.js +88 -88
- package/dist/CjsMotherLode.js.map +1 -1
- package/dist/CjsResMan.js +717 -228
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResManFetchProvider.js +94 -0
- package/dist/CjsResManFetchProvider.js.map +1 -0
- package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
- package/dist/CjsResManWorkQueue.js.map +1 -0
- package/dist/format/CjsBlueReader.js +89 -0
- package/dist/format/CjsBlueReader.js.map +1 -1
- package/dist/format/CjsFormat.js +42 -16
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsReader.js +4 -0
- package/dist/format/CjsReader.js.map +1 -1
- package/dist/format/CjsResourceProbe.js +2 -0
- package/dist/format/CjsResourceProbe.js.map +1 -1
- 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/format/payloadContract.js +20 -0
- package/dist/format/payloadContract.js.map +1 -1
- package/dist/formats/black/CjsBlackFormat.js +15 -1
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
- package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
- package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/formats/black/core/CjsBlackReader.js +125 -0
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/formats/black/core/helpers.js +17 -0
- package/dist/formats/black/core/helpers.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +8 -0
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/helpers.js +20 -0
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +40 -3
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
- package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
- package/dist/formats/cmf/core/binary.js +71 -0
- package/dist/formats/cmf/core/binary.js.map +1 -1
- package/dist/formats/cmf/core/buffers.js +4 -0
- package/dist/formats/cmf/core/buffers.js.map +1 -1
- package/dist/formats/cmf/core/helpers.js +31 -0
- package/dist/formats/cmf/core/helpers.js.map +1 -1
- package/dist/formats/cmf/core/schema.js +10 -0
- package/dist/formats/cmf/core/schema.js.map +1 -1
- package/dist/formats/cmf/core/shared.js +9 -0
- package/dist/formats/cmf/core/shared.js.map +1 -1
- package/dist/formats/cmf/core/writer.js +54 -0
- package/dist/formats/cmf/core/writer.js.map +1 -1
- package/dist/formats/dds/core/bc6h.js +10 -0
- package/dist/formats/dds/core/bc6h.js.map +1 -1
- package/dist/formats/dds/core/bc7.js +16 -0
- package/dist/formats/dds/core/bc7.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +47 -0
- package/dist/formats/dds/core/helpers.js.map +1 -1
- 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/fbx/core/helpers.js +21 -0
- package/dist/formats/fbx/core/helpers.js.map +1 -1
- package/dist/formats/flac/CjsFlacFormat.js +49 -0
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +20 -0
- package/dist/formats/flac/core/helpers.js.map +1 -1
- package/dist/formats/gif/CjsGifFormat.js +49 -0
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +20 -0
- package/dist/formats/gif/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +15 -0
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/parser.js +13 -0
- package/dist/formats/gltf/core/parser.js.map +1 -1
- package/dist/formats/gltf/core/targets.js +10 -0
- package/dist/formats/gltf/core/targets.js.map +1 -1
- package/dist/formats/gr2/core/bitknit2.js +2 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -1
- package/dist/formats/gr2/core/helpers.js +20 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -1
- package/dist/formats/gr2/core/targets.js +10 -0
- package/dist/formats/gr2/core/targets.js.map +1 -1
- 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/jpeg/core/helpers.js +52 -0
- package/dist/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/formats/jpeg/core/jpeg.js +93 -0
- package/dist/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +37 -0
- package/dist/formats/mp3/core/helpers.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +35 -0
- package/dist/formats/mp4/core/helpers.js.map +1 -1
- package/dist/formats/ogg/CjsOggFormat.js +49 -0
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +23 -0
- package/dist/formats/ogg/core/helpers.js.map +1 -1
- package/dist/formats/ogg/core/vorbis.js +13 -0
- package/dist/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/formats/png/core/helpers.js +52 -0
- package/dist/formats/png/core/helpers.js.map +1 -1
- package/dist/formats/red/CjsRedFormat.js +2 -0
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/red/core/CjsRedReader.js +52 -0
- package/dist/formats/red/core/CjsRedReader.js.map +1 -1
- package/dist/formats/red/core/helpers.js +19 -0
- package/dist/formats/red/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/stl.js +8 -0
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/stl/core/targets.js +10 -0
- package/dist/formats/stl/core/targets.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +47 -0
- package/dist/formats/tga/core/helpers.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +37 -0
- package/dist/formats/wav/core/helpers.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/formats/webm/core/helpers.js +35 -0
- package/dist/formats/webm/core/helpers.js.map +1 -1
- package/dist/formats/webp/CjsWebpFormat.js +49 -0
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +23 -0
- package/dist/formats/webp/core/helpers.js.map +1 -1
- package/dist/formats/wem/CjsWemFormat.js +8 -0
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/bitStream.js +2 -0
- package/dist/formats/wem/core/bitStream.js.map +1 -1
- package/dist/formats/wem/core/helpers.js +20 -0
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/yaml/CjsYamlFormat.js +45 -0
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +10 -0
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/index.js +56 -43
- package/dist/index.js.map +1 -1
- package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
- package/dist/resource/CjsResource.js.map +1 -0
- package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
- package/dist/resource/Tr2LightProfileRes.js.map +1 -0
- package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
- package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
- package/dist/resource/audio/CjsAudioRes.js +213 -0
- package/dist/resource/audio/CjsAudioRes.js.map +1 -0
- package/dist/resource/audio/index.js +4 -0
- package/dist/resource/audio/index.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
- package/dist/resource/geometry/MeshDecalData.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
- package/dist/resource/geometry/TriGeometryRes.js +656 -0
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
- package/dist/resource/geometry/TriJointBinding.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
- package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
- package/dist/resource/geometry/granny/enums.js.map +1 -0
- package/dist/resource/geometry/granny/index.js +6 -0
- package/dist/resource/geometry/granny/index.js.map +1 -0
- package/dist/resource/geometry/index.js +17 -0
- package/dist/resource/geometry/index.js.map +1 -0
- package/dist/resource/index.js +52 -0
- package/dist/resource/index.js.map +1 -0
- package/dist/resource/resourceBoundary.js +64 -0
- package/dist/resource/resourceBoundary.js.map +1 -0
- package/dist/resource/shader/Tr2EffectRes.js +429 -0
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialArea.js +34 -0
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialRes.js +35 -0
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
- package/dist/resource/shader/Tr2Shader.js +256 -0
- package/dist/resource/shader/Tr2Shader.js.map +1 -0
- package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
- package/dist/resource/shader/index.js +17 -0
- package/dist/resource/shader/index.js.map +1 -0
- package/dist/resource/shader/portable.js +33 -0
- package/dist/resource/shader/portable.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
- package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
- package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
- package/dist/resource/texture/TriTextureRes.js.map +1 -0
- package/dist/resource/texture/index.js +15 -0
- package/dist/resource/texture/index.js.map +1 -0
- package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
- package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
- package/dist/worker/CjsResManMainThreadLoader.js +87 -0
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
- package/dist/worker/CjsResManWorker.js +217 -0
- package/dist/worker/CjsResManWorker.js.map +1 -0
- package/dist/worker/CjsResManWorkerLoader.js +434 -0
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
- package/dist/worker/protocol.js +12 -0
- package/dist/worker/protocol.js.map +1 -0
- package/docs/README.md +16 -3
- package/docs/architecture.md +39 -16
- package/docs/concepts/resource-lifecycle.md +2 -1
- package/docs/formats/README.md +8 -0
- package/docs/formats/provenance.md +11 -3
- package/docs/reference/classes/README.md +6 -4
- package/docs/reference/classes/audio.md +30 -0
- package/docs/reference/classes/core.md +31 -11
- package/docs/reference/classes/formats.md +440 -0
- package/docs/reference/classes/resources.md +151 -41
- package/docs/reference/classes/texture.md +7 -7
- package/docs/reference/motherlode-cache.md +17 -0
- package/docs/reference/queues.md +9 -1
- package/docs/reference/workers.md +135 -0
- package/docs/roadmap.md +27 -1
- 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 +13 -1
- package/dist/CjsResManQueue.js.map +0 -1
- package/dist/CjsResource.js.map +0 -1
- package/dist/CjsResourceSource.js +0 -68
- package/dist/CjsResourceSource.js.map +0 -1
- package/dist/resourcePath.js +0 -18
- package/dist/resourcePath.js.map +0 -1
- package/dist/resourceStates.js +0 -9
- package/dist/resourceStates.js.map +0 -1
- package/dist/resources/AudioGeometryResData.js.map +0 -1
- package/dist/resources/GStateBindingCallbackData.js.map +0 -1
- package/dist/resources/MeshDecalData.js.map +0 -1
- package/dist/resources/MeshDecalLodData.js.map +0 -1
- package/dist/resources/Tr2EffectRes.js +0 -71
- package/dist/resources/Tr2EffectRes.js.map +0 -1
- package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
- package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
- package/dist/resources/Tr2ImageRes.js.map +0 -1
- package/dist/resources/Tr2LightProfileRes.js.map +0 -1
- package/dist/resources/Tr2MaterialArea.js +0 -34
- package/dist/resources/Tr2MaterialArea.js.map +0 -1
- package/dist/resources/Tr2MaterialMesh.js +0 -31
- package/dist/resources/Tr2MaterialMesh.js.map +0 -1
- package/dist/resources/Tr2MaterialRes.js +0 -34
- package/dist/resources/Tr2MaterialRes.js.map +0 -1
- package/dist/resources/Tr2ShaderPermutation.js +0 -43
- package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
- package/dist/resources/Tr2TextureLodManager.js.map +0 -1
- package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
- package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
- package/dist/resources/Tr2TexturePipeline.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
- package/dist/resources/TriGeometryRes.js +0 -239
- package/dist/resources/TriGeometryRes.js.map +0 -1
- package/dist/resources/TriGeometryResAreaData.js.map +0 -1
- package/dist/resources/TriGeometryResJointData.js.map +0 -1
- package/dist/resources/TriGeometryResLodData.js.map +0 -1
- package/dist/resources/TriGeometryResMeshData.js.map +0 -1
- package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
- package/dist/resources/TriGrannyRes.js.map +0 -1
- package/dist/resources/TriJointBinding.js.map +0 -1
- package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
- package/dist/resources/TriRtGeometryConstants.js.map +0 -1
- package/dist/resources/TriTextureRes.js.map +0 -1
- package/dist/resources/enums.js.map +0 -1
- package/dist/resources/resourceBoundary.js +0 -47
- package/dist/resources/resourceBoundary.js.map +0 -1
- package/dist/resources/texturePipelineBehavior.js.map +0 -1
- package/dist/texture/CjsTextureArrayRes.js.map +0 -1
- package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effectPackageValidation.js","sources":["../../../../../src/formats/webgpu/core/effectPackageValidation.js"],"sourcesContent":["import { normalizeResourceTransformPlan } from \"./wgsl/buildResourceTransformPlan.js\";\nimport { WGSL_SET_VERSION } from \"./wgsl/buildWgslSet.js\";\n\nexport const EFFECT_INFO_VERSION = 3;\nimport {\n DXBC_WGSL_TRANSLATOR_NAME,\n FORMAT_WEBGPU_PACKAGE_NAME,\n WEBGPU_BACKEND_NAME\n} from \"./packageMetadata.js\";\nimport {\n EFFECT_PERMUTATION_GRAPH_CHUNK,\n EFFECT_PERMUTATION_GRAPH_FORMAT,\n EFFECT_PERMUTATION_GRAPH_VERSION,\n validateEffectPermutationGraph\n} from \"../../../format/effect/effectPermutationGraph.js\";\nimport {\n effectReflectionForPermutation,\n EFFECT_REFLECTION_BLOB_CHUNK,\n EFFECT_REFLECTION_CHUNK,\n EFFECT_REFLECTION_VERSION,\n validateEffectReflectionPointer\n} from \"../../../format/effect/effectReflectionPackage.js\";\nimport { sha256Bytes } from \"../../../format/effect/sha256.js\";\nimport { markEffectPackageValidated } from \"./cewgpu/CewgpuPackage.js\";\nimport {\n EFFECT_BACKEND_BODY_SET_CHUNK,\n EFFECT_BACKEND_BODY_SET_FORMAT,\n EFFECT_BACKEND_BODY_SET_VERSION\n} from \"./effectBackendBodySet.js\";\n\nconst REQUIRED_EFFECT_CHUNKS = Object.freeze([ \"INFO\", \"META\", \"ANLS\", \"WGSL\" ]);\nconst EFFECT_PACKAGE_KIND = \"tr2-effect-webgpu\";\nconst SEMANTIC_VERSION = new RegExp(\n \"^(?:0|[1-9]\\\\d*)\\\\.(?:0|[1-9]\\\\d*)\\\\.(?:0|[1-9]\\\\d*)\"\n + \"(?:-(?:(?:0|[1-9]\\\\d*)|(?:\\\\d*[A-Za-z-][0-9A-Za-z-]*))\"\n + \"(?:\\\\.(?:(?:0|[1-9]\\\\d*)|(?:\\\\d*[A-Za-z-][0-9A-Za-z-]*)))*)?\"\n + \"(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\",\n \"u\"\n);\nconst STAGE_SCHEMA = Object.freeze({\n vertex: Object.freeze({ stage: \"vertex\", stageType: 0 }),\n pixel: Object.freeze({ stage: \"fragment\", stageType: 1 }),\n compute: Object.freeze({ stage: \"compute\", stageType: 2 })\n});\nconst VISIBILITIES = new Set([ \"vertex\", \"fragment\", \"compute\" ]);\nconst BUFFER_TYPES = new Set([ \"uniform\", \"read-only-storage\", \"storage\" ]);\nconst TEXTURE_BINDING_TYPES = Object.freeze({\n \"texture_2d<f32>\": Object.freeze({\n sampleType: \"float\",\n viewDimension: \"2d\",\n multisampled: false\n }),\n \"texture_2d_array<f32>\": Object.freeze({\n sampleType: \"float\",\n viewDimension: \"2d-array\",\n multisampled: false\n }),\n \"texture_cube<f32>\": Object.freeze({\n sampleType: \"float\",\n viewDimension: \"cube\",\n multisampled: false\n }),\n \"texture_3d<f32>\": Object.freeze({\n sampleType: \"float\",\n viewDimension: \"3d\",\n multisampled: false\n })\n});\nconst SAMPLER_TYPES = new Set([ \"filtering\", \"non-filtering\", \"comparison\" ]);\nconst ANALYSIS_BINDING_KINDS = Object.freeze({\n constantBuffer: Object.freeze({ prefix: \"cb\", registerTypes: Object.freeze([ 0 ]) }),\n sampler: Object.freeze({ prefix: \"s\", registerTypes: Object.freeze([ 1 ]) }),\n resource: Object.freeze({ prefix: \"t\", registerTypes: Object.freeze([ 32, 63 ]) }),\n uav: Object.freeze({ prefix: \"u\", registerTypes: Object.freeze([ 64, 95 ]) })\n});\n\n/**\n * Parse one required JSON object chunk with package-specific diagnostics.\n *\n * @param {object} pkg Loaded CEWGPU package.\n * @param {string} tag Required chunk tag.\n * @returns {object} Parsed non-array object.\n */\nfunction requireJsonObject(pkg, tag)\n{\n if (!pkg.GetChunk(tag))\n {\n throw new Error(`CEWGPU ${EFFECT_PACKAGE_KIND} package requires ${tag}`);\n }\n\n let value;\n try\n {\n value = pkg.GetJson(tag);\n }\n catch (error)\n {\n throw new Error(`CEWGPU ${tag} must contain valid JSON: ${error.message}`);\n }\n\n if (!value || typeof value !== \"object\" || Array.isArray(value))\n {\n throw new Error(`CEWGPU ${tag} must contain a JSON object`);\n }\n\n return value;\n}\n\n/**\n * Require one closed-schema JSON object.\n *\n * @param {object} value Candidate object.\n * @param {string[]} allowed Exact field names.\n * @param {string} context Diagnostic context.\n * @returns {object} Validated object.\n */\nfunction requireExactKeys(value, allowed, context)\n{\n const keys = Object.keys(value);\n if (keys.length !== allowed.length\n || keys.some((key) => !allowed.includes(key)))\n {\n throw new Error(`${context} has unsupported or missing fields`);\n }\n return value;\n}\n\n/**\n * Compare JSON-compatible data without depending on object property order.\n *\n * @param {any} left First value.\n * @param {any} right Second value.\n * @returns {boolean} True when the values are structurally equal.\n */\nfunction jsonEqual(left, right)\n{\n if (Object.is(left, right)) return true;\n if (Array.isArray(left) || Array.isArray(right))\n {\n return Array.isArray(left)\n && Array.isArray(right)\n && left.length === right.length\n && left.every((value, index) => jsonEqual(value, right[index]));\n }\n if (!left || !right || typeof left !== \"object\" || typeof right !== \"object\")\n {\n return false;\n }\n\n const leftKeys = Object.keys(left).sort();\n const rightKeys = Object.keys(right).sort();\n return leftKeys.length === rightKeys.length\n && leftKeys.every((key, index) =>\n key === rightKeys[index] && jsonEqual(left[key], right[key]));\n}\n\n/**\n * Require an array field from one package document.\n *\n * @param {object} value Parent object.\n * @param {string} field Field name.\n * @param {string} context Document context.\n * @returns {any[]} Array field.\n */\nfunction requireArray(value, field, context)\n{\n if (!Array.isArray(value[field]))\n {\n throw new Error(`CEWGPU ${context}.${field} must be an array`);\n }\n\n return value[field];\n}\n\n/**\n * Require one non-negative safe integer.\n *\n * @param {any} value Candidate count.\n * @param {string} context Field context.\n * @returns {number} Validated count.\n */\nfunction requireCount(value, context)\n{\n if (!Number.isSafeInteger(value) || value < 0)\n {\n throw new Error(`CEWGPU ${context} must be a non-negative safe integer`);\n }\n\n return value;\n}\n\n/**\n * Require one non-empty string.\n *\n * @param {any} value Candidate value.\n * @param {string} context Field context.\n * @returns {string} Validated string.\n */\nfunction requireString(value, context)\n{\n if (typeof value !== \"string\" || !value || value !== value.trim())\n {\n throw new Error(`CEWGPU ${context} must be a non-empty string`);\n }\n\n return value;\n}\n\n/**\n * Validate selected permutation option records.\n *\n * @param {any} value Candidate option list.\n * @param {string} context Field context.\n * @returns {object[]} Validated option records.\n */\nfunction validateSelectedOptions(value, context)\n{\n const options = Array.isArray(value) ? value : null;\n const names = new Set();\n if (!options)\n {\n throw new Error(`CEWGPU ${context} must be an array`);\n }\n\n for (const [ index, option ] of options.entries())\n {\n if (!option || typeof option !== \"object\" || Array.isArray(option)\n || typeof option.name !== \"string\" || !option.name\n || typeof option.value !== \"string\" || !option.value\n || !Number.isSafeInteger(option.optionIndex) || option.optionIndex < 0\n || !Number.isSafeInteger(option.defaultOption) || option.defaultOption < 0\n || typeof option.defaultValue !== \"string\" || !option.defaultValue\n || ![ \"default\", \"local\", \"global\" ].includes(option.source)\n || (option.source === \"default\" && option.optionIndex !== option.defaultOption)\n || (option.optionIndex === option.defaultOption\n && option.value !== option.defaultValue)\n || names.has(option.name))\n {\n throw new Error(`CEWGPU ${context} option ${index} is malformed or duplicated`);\n }\n names.add(option.name);\n }\n\n return options;\n}\n\n/**\n * Validate the canonical INFO source-identity record.\n *\n * @param {any} value Candidate source identity.\n * @param {boolean} requireSha256 Whether the schema requires a strong hash.\n * @returns {object} Validated source identity.\n */\nfunction validateSourceIdentity(value, requireSha256)\n{\n if (!value || typeof value !== \"object\" || Array.isArray(value)\n || typeof value.logicalPath !== \"string\" || !value.logicalPath.trim()\n || !Number.isSafeInteger(value.byteLength) || value.byteLength < 1\n || (value.md5 !== null\n && (typeof value.md5 !== \"string\" || !/^[0-9a-f]{32}$/u.test(value.md5)))\n || (requireSha256\n ? typeof value.sha256 !== \"string\"\n || !/^[0-9a-f]{64}$/u.test(value.sha256)\n : value.sha256 !== undefined\n && value.sha256 !== null\n && (typeof value.sha256 !== \"string\"\n || !/^[0-9a-f]{64}$/u.test(value.sha256)))\n || ![ \"game\", \"client\", \"build\" ].every((field) =>\n value[field] === null\n || (typeof value[field] === \"string\" && !!value[field])))\n {\n throw new Error(\"CEWGPU INFO.sourceIdentity is malformed\");\n }\n return value;\n}\n\n/**\n * Validate an optional INFO-to-PGRF reference and its graph.\n *\n * Legacy selected-effect INFO v1/v2 packages may omit the graph. New\n * producers declare both the pointer and chunk; either without the other is\n * invalid.\n *\n * @param {object} pkg Loaded CEWGPU package.\n * @param {object} info Validated INFO document.\n * @returns {object|null} Validated graph, or null for a legacy package.\n */\n/**\n * Validate the all-body backend graph against its INFO pointer, the source\n * permutation graph, and the selected-body `WGSL` document.\n *\n * @param {object} pkg CEWGPU package reader.\n * @param {object} info INFO document.\n * @param {object|null} permutationGraph Validated PGRF document.\n * @returns {object|null} Validated backend body set, or null when absent.\n */\nfunction validateBackendBodySetReference(pkg, info, permutationGraph)\n{\n const pointer = info.backendBodySet;\n const chunk = pkg.GetChunk(EFFECT_BACKEND_BODY_SET_CHUNK);\n\n if (pointer === undefined && !chunk)\n {\n if (info.bodyMode === \"all\")\n {\n throw new Error(\n `CEWGPU body mode all requires ${EFFECT_BACKEND_BODY_SET_CHUNK}`\n );\n }\n return null;\n }\n if (info.bodyMode !== \"all\")\n {\n throw new Error(\n \"CEWGPU selected-mode packages cannot declare an all-body backend graph\"\n );\n }\n if (!pointer || typeof pointer !== \"object\" || Array.isArray(pointer) || !chunk)\n {\n throw new Error(\"CEWGPU INFO.backendBodySet is malformed\");\n }\n requireExactKeys(pointer, [\n \"chunk\",\n \"format\",\n \"formatVersion\",\n \"sha256\",\n \"bodyCount\",\n \"translatedBodyCount\",\n \"passUnitCount\"\n ], \"CEWGPU INFO.backendBodySet\");\n if (pointer.chunk !== EFFECT_BACKEND_BODY_SET_CHUNK\n || pointer.format !== EFFECT_BACKEND_BODY_SET_FORMAT\n || pointer.formatVersion !== EFFECT_BACKEND_BODY_SET_VERSION)\n {\n throw new Error(\"CEWGPU INFO.backendBodySet is malformed\");\n }\n if (typeof pointer.sha256 !== \"string\"\n || !/^[0-9a-f]{64}$/u.test(pointer.sha256)\n || sha256Bytes(chunk.bytes) !== pointer.sha256)\n {\n throw new Error(\"CEWGPU INFO backend body-set digest disagrees with WGSB\");\n }\n if (!permutationGraph)\n {\n throw new Error(\"CEWGPU all-body backend graph requires PGRF\");\n }\n\n const bodySet = requireJsonObject(pkg, EFFECT_BACKEND_BODY_SET_CHUNK);\n if (bodySet.format !== EFFECT_BACKEND_BODY_SET_FORMAT\n || bodySet.formatVersion !== EFFECT_BACKEND_BODY_SET_VERSION)\n {\n throw new Error(\"CEWGPU WGSB document is malformed\");\n }\n\n const bodies = requireArray(bodySet, \"bodies\", EFFECT_BACKEND_BODY_SET_CHUNK);\n const passUnits = requireArray(bodySet, \"passUnits\", EFFECT_BACKEND_BODY_SET_CHUNK);\n const unitKeys = new Set();\n\n for (const unit of passUnits)\n {\n if (!unit || typeof unit !== \"object\" || typeof unit.key !== \"string\" || !unit.key\n || unitKeys.has(unit.key)\n || !Array.isArray(unit.shaders) || !unit.shaders.length\n || !Array.isArray(unit.layouts) || !unit.layouts.length\n || unit.wgslSetVersion !== WGSL_SET_VERSION)\n {\n throw new Error(\n `CEWGPU WGSB translation unit ${unit?.key || \"<unknown>\"} is malformed`\n );\n }\n unitKeys.add(unit.key);\n }\n\n const graphBodyKeys = new Set(permutationGraph.bodies.map((body) => body.key));\n const seen = new Set();\n let translated = 0;\n\n for (const body of bodies)\n {\n if (!body || typeof body !== \"object\"\n || !graphBodyKeys.has(body.bodyKey)\n || seen.has(body.bodyKey)\n || ![ \"translated\", \"unsupported\" ].includes(body.status))\n {\n throw new Error(\n `CEWGPU WGSB body ${body?.bodyKey || \"<unknown>\"} does not reconcile with PGRF`\n );\n }\n seen.add(body.bodyKey);\n\n const variant = permutationGraph.variants[body.representativePermutationIndex];\n if (!variant || variant.bodyKey !== body.bodyKey)\n {\n throw new Error(\n `CEWGPU WGSB body ${body.bodyKey} has an inconsistent representative permutation`\n );\n }\n if (body.status === \"unsupported\")\n {\n if (typeof body.error !== \"string\" || !body.error\n || body.passCount !== 0 || body.passes.length)\n {\n throw new Error(\n `CEWGPU WGSB unsupported body ${body.bodyKey} must retain an explicit reason and no passes`\n );\n }\n continue;\n }\n translated++;\n if (body.error !== null || !Array.isArray(body.passes) || !body.passes.length\n || body.passCount !== body.passes.length)\n {\n throw new Error(\n `CEWGPU WGSB translated body ${body.bodyKey} is malformed`\n );\n }\n for (const pass of body.passes)\n {\n if (!pass || typeof pass.passKey !== \"string\" || !pass.passKey\n || !unitKeys.has(pass.unitKey))\n {\n throw new Error(\n `CEWGPU WGSB body ${body.bodyKey} references missing translation unit`\n );\n }\n }\n }\n\n if (seen.size !== graphBodyKeys.size)\n {\n throw new Error(\n \"CEWGPU WGSB does not cover every unique permutation-graph body\"\n );\n }\n if (requireCount(pointer.bodyCount, \"INFO.backendBodySet.bodyCount\") !== bodies.length\n || requireCount(\n pointer.translatedBodyCount,\n \"INFO.backendBodySet.translatedBodyCount\"\n ) !== translated\n || requireCount(\n pointer.passUnitCount,\n \"INFO.backendBodySet.passUnitCount\"\n ) !== passUnits.length)\n {\n throw new Error(\"CEWGPU INFO backend body-set counts disagree with WGSB\");\n }\n if (!translated)\n {\n throw new Error(\"CEWGPU WGSB requires at least one translated body\");\n }\n\n const expectedCoverage = translated === bodies.length ? \"all-unique\" : \"partial\";\n if (bodySet.coverage?.bodies !== expectedCoverage\n || info.backendBodyCoverage !== expectedCoverage)\n {\n throw new Error(\n \"CEWGPU WGSB coverage disagrees with its translated body count\"\n );\n }\n\n return bodySet;\n}\n\nfunction validatePermutationGraphReference(pkg, info)\n{\n const pointer = info.permutationGraph;\n const chunk = pkg.GetChunk(EFFECT_PERMUTATION_GRAPH_CHUNK);\n if (pointer === undefined && !chunk) return null;\n\n if (info.formatVersion !== EFFECT_INFO_VERSION\n || !pointer || typeof pointer !== \"object\" || Array.isArray(pointer))\n {\n throw new Error(\"CEWGPU INFO.permutationGraph is malformed\");\n }\n requireExactKeys(pointer, [\n \"chunk\",\n \"format\",\n \"formatVersion\",\n \"sha256\",\n \"permutationCount\",\n \"uniqueBodyCount\"\n ], \"CEWGPU INFO.permutationGraph\");\n if (pointer.chunk !== EFFECT_PERMUTATION_GRAPH_CHUNK\n || pointer.format !== EFFECT_PERMUTATION_GRAPH_FORMAT\n || pointer.formatVersion !== EFFECT_PERMUTATION_GRAPH_VERSION)\n {\n throw new Error(\"CEWGPU INFO.permutationGraph is malformed\");\n }\n if (!chunk)\n {\n throw new Error(\n `CEWGPU INFO.permutationGraph requires ${EFFECT_PERMUTATION_GRAPH_CHUNK}`\n );\n }\n if (info.formatVersion === 3\n && (typeof pointer.sha256 !== \"string\"\n || !/^[0-9a-f]{64}$/u.test(pointer.sha256)\n || sha256Bytes(chunk.bytes) !== pointer.sha256))\n {\n throw new Error(\n \"CEWGPU INFO permutation-graph digest disagrees with PGRF\"\n );\n }\n\n const graph = requireJsonObject(pkg, EFFECT_PERMUTATION_GRAPH_CHUNK);\n const counts = validateEffectPermutationGraph(graph, {\n sourceByteLength: info.sourceIdentity.byteLength\n });\n if (requireCount(\n pointer.permutationCount,\n \"INFO.permutationGraph.permutationCount\"\n ) !== counts.permutationCount\n || requireCount(\n pointer.uniqueBodyCount,\n \"INFO.permutationGraph.uniqueBodyCount\"\n ) !== counts.uniqueBodyCount)\n {\n throw new Error(\"CEWGPU INFO permutation-graph counts disagree with PGRF\");\n }\n return graph;\n}\n\n/**\n * Read an optional INFO/RFLX/RBLB reference as one indivisible legacy-aware\n * unit.\n *\n * @param {object} pkg Loaded CEWGPU package.\n * @param {object} info Validated INFO document.\n * @returns {object|null} Reflection pointer and chunks, or null when absent.\n */\nfunction readEffectReflectionReference(pkg, info)\n{\n const pointer = info.effectReflection;\n const reflectionChunk = pkg.GetChunk(EFFECT_REFLECTION_CHUNK);\n const blobChunk = pkg.GetChunk(EFFECT_REFLECTION_BLOB_CHUNK);\n if (pointer === undefined && !reflectionChunk && !blobChunk)\n {\n if (info.formatVersion === 3)\n {\n throw new Error(\"CEWGPU INFO v3 requires complete effect reflection\");\n }\n return null;\n }\n\n if (info.formatVersion !== EFFECT_INFO_VERSION || pointer === undefined)\n {\n throw new Error(\"CEWGPU INFO.effectReflection is malformed\");\n }\n if (!reflectionChunk)\n {\n throw new Error(\n `CEWGPU INFO.effectReflection requires ${EFFECT_REFLECTION_CHUNK}`\n );\n }\n if (!blobChunk)\n {\n throw new Error(\n `CEWGPU INFO.effectReflection requires ${EFFECT_REFLECTION_BLOB_CHUNK}`\n );\n }\n\n return {\n pointer,\n reflection: requireJsonObject(pkg, EFFECT_REFLECTION_CHUNK),\n reflectionBytes: reflectionChunk.bytes,\n blobBytes: blobChunk.bytes\n };\n}\n\n/**\n * Reconcile the selected-body documents with a complete permutation graph.\n *\n * @param {object} graph Validated permutation graph.\n * @param {number} bodyIndex Selected permutation index.\n * @param {object[]} selectedOptions Selected option metadata.\n */\nfunction validatePermutationGraphSelection(graph, bodyIndex, selectedOptions)\n{\n const variant = graph.variants[bodyIndex];\n if (!variant || selectedOptions.length !== graph.axes.length)\n {\n throw new Error(\"CEWGPU selected body is absent from PGRF\");\n }\n\n for (let axisIndex = 0; axisIndex < graph.axes.length; axisIndex += 1)\n {\n const axis = graph.axes[axisIndex];\n const optionIndex = variant.optionIndices[axisIndex];\n const selected = selectedOptions[axisIndex];\n if (selected.name !== axis.name\n || selected.optionIndex !== optionIndex\n || selected.value !== axis.options[optionIndex]\n || selected.defaultOption !== axis.defaultOption\n || selected.defaultValue !== axis.options[axis.defaultOption])\n {\n throw new Error(\n `CEWGPU selected option ${axisIndex} disagrees with PGRF`\n );\n }\n }\n}\n\n/**\n * Validate and collect unique ANLS pass identities.\n *\n * @param {object[]} passes ANLS pass records.\n * @returns {Set<string>} Unique pass keys.\n */\nfunction collectAnalysisPassKeys(passes)\n{\n const keys = new Set();\n const indicesByTechnique = new Map();\n for (const [ index, pass ] of passes.entries())\n {\n if (!pass || typeof pass.techniqueName !== \"string\" || !pass.techniqueName\n || !Number.isSafeInteger(pass.passIndex) || pass.passIndex < 0\n || !Number.isSafeInteger(pass.renderStates) || pass.renderStates < 0\n || !Array.isArray(pass.states)\n || pass.states.some((state) =>\n !state || typeof state !== \"object\" || Array.isArray(state)\n || !Number.isSafeInteger(state.state) || state.state < 0\n || !Number.isSafeInteger(state.value) || state.value < 0\n || state.value > 0xFFFFFFFF))\n {\n throw new Error(`CEWGPU ANLS pass ${index} has an invalid identity`);\n }\n const key = `${pass.techniqueName}.pass${pass.passIndex}`;\n if (keys.has(key))\n {\n throw new Error(`CEWGPU ANLS contains duplicate pass ${key}`);\n }\n keys.add(key);\n if (!indicesByTechnique.has(pass.techniqueName))\n {\n indicesByTechnique.set(pass.techniqueName, []);\n }\n indicesByTechnique.get(pass.techniqueName).push(pass.passIndex);\n }\n for (const [ techniqueName, indices ] of indicesByTechnique)\n {\n const ordered = indices.sort((left, right) => left - right);\n if (ordered.some((passIndex, index) => passIndex !== index))\n {\n throw new Error(`CEWGPU ANLS technique ${techniqueName} has noncontiguous passes`);\n }\n }\n return keys;\n}\n\n/**\n * Validate and collect unique canonical stage keys.\n *\n * @param {object[]} records Stage records.\n * @param {string} context Document context.\n * @returns {Set<string>} Unique stage keys.\n */\nfunction collectStageKeys(records, context)\n{\n const keys = new Set();\n\n for (const [ index, record ] of records.entries())\n {\n const schema = Object.prototype.hasOwnProperty.call(STAGE_SCHEMA, record?.stageName)\n ? STAGE_SCHEMA[record.stageName]\n : null;\n const expected = `${record?.techniqueName}.pass${record?.passIndex}.${record?.stageName}`;\n if (!record\n || typeof record.techniqueName !== \"string\" || !record.techniqueName\n || !Number.isSafeInteger(record.passIndex) || record.passIndex < 0\n || !schema || record.stageType !== schema.stageType\n || record.key !== expected)\n {\n throw new Error(`CEWGPU ${context} stage ${index} has a noncanonical key`);\n }\n if (context === \"WGSL\"\n && (record.stage !== schema.stage\n || typeof record.entryPoint !== \"string\" || !record.entryPoint\n || typeof record.code !== \"string\" || !record.code\n || !Array.isArray(record.sourceMap)\n || record.sourceMap.some((entry) =>\n !entry || typeof entry !== \"object\" || Array.isArray(entry)\n || !Number.isSafeInteger(entry.line) || entry.line < 1\n || !Number.isSafeInteger(entry.instructionIndex)\n || entry.instructionIndex < 0\n || !Number.isSafeInteger(entry.dxbcOffset) || entry.dxbcOffset < 0)\n || (record.stageName === \"compute\"\n && (!Array.isArray(record.threadGroupSize)\n || record.threadGroupSize.length !== 3\n || record.threadGroupSize.some((value) =>\n !Number.isSafeInteger(value) || value < 1)))\n || (record.stageName !== \"compute\"\n && record.threadGroupSize !== undefined\n && record.threadGroupSize !== null)))\n {\n throw new Error(`CEWGPU WGSL shader ${record.key} has invalid stage metadata`);\n }\n if (keys.has(record.key))\n {\n throw new Error(`CEWGPU ${context} contains duplicate stage key ${record.key}`);\n }\n keys.add(record.key);\n }\n\n validatePassTopologies(records, context);\n return keys;\n}\n\n/**\n * Reject mixed compute/render stage sets within one pass.\n *\n * @param {object[]} records Canonical stage records.\n * @param {string} context Document context.\n * @returns {true} True when every pass topology is representable.\n */\nfunction validatePassTopologies(records, context)\n{\n const stagesByPass = new Map();\n for (const record of records)\n {\n const passKey = `${record.techniqueName}.pass${record.passIndex}`;\n if (!stagesByPass.has(passKey)) stagesByPass.set(passKey, []);\n stagesByPass.get(passKey).push(record.stageName);\n }\n for (const [ passKey, stages ] of stagesByPass)\n {\n if (stages.includes(\"compute\")\n && (stages.length !== 1 || stages[0] !== \"compute\"))\n {\n throw new Error(`CEWGPU ${context} pass ${passKey} mixes compute and render stages`);\n }\n }\n return true;\n}\n\n/**\n * Validate and collect unique canonical pass-layout keys.\n *\n * @param {object[]} layouts WGSL layout records.\n * @returns {Set<string>} Unique layout keys.\n */\nfunction collectLayoutKeys(layouts)\n{\n const keys = new Set();\n\n for (const [ index, layout ] of layouts.entries())\n {\n const match = /^(.+)\\.pass(0|[1-9][0-9]*)$/u.exec(layout?.key);\n if (!layout || !match\n || layout.techniqueName !== match[1]\n || layout.passIndex !== Number(match[2])\n || !Number.isSafeInteger(layout.passIndex))\n {\n throw new Error(`CEWGPU WGSL layout ${index} has a noncanonical key`);\n }\n if (keys.has(layout.key))\n {\n throw new Error(`CEWGPU WGSL contains duplicate layout key ${layout.key}`);\n }\n keys.add(layout.key);\n validateBindGroups(layout, index);\n }\n\n return keys;\n}\n\n/**\n * Require each layout's bind groups and binding records to be unambiguous.\n *\n * @param {object} layout Layout record.\n * @param {number} layoutIndex Layout array index.\n * @returns {true} True when the groups are representable.\n */\nfunction validateBindGroups(layout, layoutIndex)\n{\n const groups = requireArray(layout, \"bindGroups\", `WGSL.layouts[${layoutIndex}]`);\n const groupNumbers = new Set();\n const slots = new Set();\n const scopes = new Set();\n const scopesByIdentity = new Map();\n const symbolVisibility = new Map();\n for (const [ groupIndex, group ] of groups.entries())\n {\n if (!group || !Number.isSafeInteger(group.group) || group.group < 0\n || groupNumbers.has(group.group))\n {\n throw new Error(`CEWGPU WGSL layout ${layout.key} contains an invalid or duplicate bind group`);\n }\n groupNumbers.add(group.group);\n const bindings = requireArray(\n group,\n \"bindings\",\n `WGSL.layouts[${layoutIndex}].bindGroups[${groupIndex}]`\n );\n for (const [ bindingIndex, binding ] of bindings.entries())\n {\n validateBinding(\n binding,\n group.group,\n bindingIndex,\n layout.key,\n slots,\n scopes,\n scopesByIdentity,\n symbolVisibility\n );\n }\n }\n const orderedGroups = Array.from(groupNumbers).sort((left, right) => left - right);\n if (orderedGroups.some((group, index) => group !== index))\n {\n throw new Error(`CEWGPU WGSL layout ${layout.key} bind groups must be contiguous from zero`);\n }\n\n return true;\n}\n\n/**\n * Validate one portable WGSL layout binding.\n *\n * @param {object} binding Binding record.\n * @param {number} group Owning bind-group number.\n * @param {number} index Binding index for diagnostics.\n * @param {string} layoutKey Owning layout key.\n * @param {Set<string>} slots Slots already used by the layout.\n * @param {Set<string>} scopes Physical identities already used by the layout.\n * @param {Map<string,Set<string>>} scopesByIdentity Scope forms by D3D identity.\n * @param {Map<string,Set<string>>} symbolVisibility Visibility by generated symbol.\n * @returns {true} True when the binding is structurally valid.\n */\nfunction validateBinding(\n binding,\n group,\n index,\n layoutKey,\n slots,\n scopes,\n scopesByIdentity,\n symbolVisibility\n)\n{\n const visibility = binding?.visibility;\n const expectedDescriptors = {\n \"uniform-buffer\": [ \"buffer\" ],\n \"sampled-resource\": [ \"buffer\", \"texture\" ],\n \"storage-resource\": [ \"buffer\" ],\n sampler: [ \"sampler\" ]\n }[binding?.resourceKind];\n const descriptors = [ \"buffer\", \"texture\", \"sampler\" ].filter((key) =>\n binding?.[key] !== undefined);\n const identity = `${binding?.resourceKind}:${binding?.registerSpace}:${binding?.registerIndex}`;\n const slot = `${group}:${binding?.binding}`;\n const sharedScope = binding?.scopeIdentity === identity;\n const stageScope = Array.isArray(visibility) && visibility.length === 1\n ? `${identity}@${visibility[0]}`\n : null;\n\n if (!binding || typeof binding !== \"object\" || Array.isArray(binding)\n || binding.group !== group\n || !Number.isSafeInteger(binding.binding) || binding.binding < 0\n || !Number.isSafeInteger(binding.registerSpace) || binding.registerSpace < 0\n || !Number.isSafeInteger(binding.registerIndex) || binding.registerIndex < 0\n || typeof binding.generatedSymbol !== \"string\" || !binding.generatedSymbol\n || typeof binding.type !== \"string\" || !binding.type\n || binding.identity !== identity\n || typeof binding.scopeIdentity !== \"string\" || !binding.scopeIdentity\n || !Array.isArray(visibility) || !visibility.length\n || new Set(visibility).size !== visibility.length\n || visibility.some((value) => !VISIBILITIES.has(value))\n || (sharedScope ? visibility.length < 2 : binding.scopeIdentity !== stageScope)\n || !expectedDescriptors || descriptors.length !== 1\n || !expectedDescriptors.includes(descriptors[0])\n || !binding[descriptors[0]] || typeof binding[descriptors[0]] !== \"object\"\n || !validateBindingDescriptor(binding, descriptors[0])\n || !validateTransformBinding(binding)\n || slots.has(slot) || scopes.has(binding.scopeIdentity))\n {\n throw new Error(`CEWGPU WGSL layout ${layoutKey} binding ${index} is malformed or duplicated`);\n }\n\n const priorScopes = scopesByIdentity.get(identity) ?? new Set();\n if ((sharedScope && Array.from(priorScopes).some((scope) => scope !== identity))\n || (!sharedScope && priorScopes.has(identity)))\n {\n throw new Error(`CEWGPU WGSL layout ${layoutKey} mixes shared and stage-scoped bindings`);\n }\n const priorVisibility = symbolVisibility.get(binding.generatedSymbol) ?? new Set();\n if (visibility.some((stage) => priorVisibility.has(stage)))\n {\n throw new Error(`CEWGPU WGSL layout ${layoutKey} duplicates a shader binding symbol`);\n }\n\n slots.add(slot);\n scopes.add(binding.scopeIdentity);\n priorScopes.add(binding.scopeIdentity);\n scopesByIdentity.set(identity, priorScopes);\n for (const stage of visibility) priorVisibility.add(stage);\n symbolVisibility.set(binding.generatedSymbol, priorVisibility);\n return true;\n}\n\n/**\n * Validate the WebGPU layout descriptor attached to one binding.\n *\n * @param {object} binding Binding record.\n * @param {string} descriptor Descriptor property name.\n * @returns {boolean} True when the descriptor shape matches the resource kind.\n */\nfunction validateBindingDescriptor(binding, descriptor)\n{\n const value = binding[descriptor];\n if (descriptor === \"buffer\")\n {\n const expectedType = {\n \"uniform-buffer\": \"uniform\",\n \"sampled-resource\": \"read-only-storage\",\n \"storage-resource\": \"storage\"\n }[binding.resourceKind];\n return BUFFER_TYPES.has(value.type)\n && value.type === expectedType\n && value.hasDynamicOffset === false\n && Number.isSafeInteger(value.minBindingSize)\n && value.minBindingSize > 0\n && value.minBindingSize % (value.type === \"uniform\" ? 16 : 4) === 0\n && !/^(?:sampler|texture_)/u.test(binding.type);\n }\n if (descriptor === \"texture\")\n {\n const expected = TEXTURE_BINDING_TYPES[binding.type];\n return binding.resourceKind === \"sampled-resource\"\n && !!expected\n && value.sampleType === expected.sampleType\n && value.viewDimension === expected.viewDimension\n && value.multisampled === expected.multisampled;\n }\n return descriptor === \"sampler\"\n && binding.resourceKind === \"sampler\"\n && SAMPLER_TYPES.has(value.type)\n && binding.type === (value.type === \"comparison\"\n ? \"sampler_comparison\"\n : \"sampler\");\n}\n\n/**\n * Validate optional compiler-owned resource-transform binding metadata.\n *\n * @param {object} binding Binding record.\n * @returns {boolean} True when transform fields are absent or coherent.\n */\nfunction validateTransformBinding(binding)\n{\n const hasId = Object.prototype.hasOwnProperty.call(binding, \"transformId\");\n const hasLayers = Object.prototype.hasOwnProperty.call(binding, \"arrayLayerCount\");\n if (!hasId && !hasLayers) return true;\n\n return hasId && hasLayers\n && binding.resourceKind === \"sampled-resource\"\n && typeof binding.transformId === \"string\" && !!binding.transformId\n && Number.isSafeInteger(binding.arrayLayerCount)\n && binding.arrayLayerCount >= 2\n && binding.type === \"texture_2d_array<f32>\"\n && binding.texture?.viewDimension === \"2d-array\";\n}\n\n/**\n * Compare two sets for exact membership.\n *\n * @param {Set<string>} left First set.\n * @param {Set<string>} right Second set.\n * @returns {boolean} True when both sets contain the same keys.\n */\nfunction setsEqual(left, right)\n{\n return left.size === right.size\n && Array.from(left).every((value) => right.has(value));\n}\n\n/**\n * Derive canonical pass keys from canonical shader keys.\n *\n * @param {object[]} shaders WGSL shader records.\n * @returns {Set<string>} Emitted pass keys.\n */\nfunction collectShaderPassKeys(shaders)\n{\n return new Set(shaders.map((shader) =>\n `${shader.techniqueName}.pass${shader.passIndex}`));\n}\n\n/**\n * Validate the explicit or implicit WGSL selection against emitted shaders.\n *\n * @param {object} metadata META document.\n * @param {object[]} stages All selected-body analysis stage records.\n * @param {Set<string>} shaderKeys Emitted WGSL stage keys.\n * @returns {true} True when selection coverage is exact.\n */\nfunction validateSelection(metadata, stages, shaderKeys)\n{\n const selection = metadata.wgslSelection;\n const analysisKeys = new Set(stages.map((stage) => stage.key));\n\n if (selection === undefined)\n {\n if (!setsEqual(analysisKeys, shaderKeys))\n {\n throw new Error(\"CEWGPU implicit WGSL selection does not cover every ANLS stage\");\n }\n return true;\n }\n\n if (!selection || typeof selection !== \"object\" || Array.isArray(selection)\n || selection.mode !== \"explicit\" || selection.completePasses !== true\n || typeof selection.techniqueName !== \"string\" || !selection.techniqueName\n || (selection.passIndex !== null\n && (!Number.isSafeInteger(selection.passIndex) || selection.passIndex < 0)))\n {\n throw new Error(\"CEWGPU META.wgslSelection is malformed\");\n }\n\n const requestedStageNames = requireArray(\n selection,\n \"requestedStageNames\",\n \"META.wgslSelection\"\n );\n const selectedStageKeys = requireArray(\n selection,\n \"selectedStageKeys\",\n \"META.wgslSelection\"\n );\n const selectedStages = stages.filter((stage) =>\n stage.techniqueName === selection.techniqueName\n && (selection.passIndex === null || stage.passIndex === selection.passIndex));\n const selectedNames = new Set(selectedStages.map((stage) => stage.stageName));\n const requestedNames = new Set(requestedStageNames);\n const expectedKeys = new Set(selectedStages.map((stage) => stage.key));\n if (!selectedStages.length\n || (selection.passIndex === null && requestedStageNames.length)\n || requestedStageNames.some((name) =>\n !Object.prototype.hasOwnProperty.call(STAGE_SCHEMA, name))\n || requestedNames.size !== requestedStageNames.length\n || (requestedNames.size && !setsEqual(requestedNames, selectedNames))\n || selectedStageKeys.some((key) => typeof key !== \"string\")\n || new Set(selectedStageKeys).size !== selectedStageKeys.length\n || !setsEqual(new Set(selectedStageKeys), expectedKeys)\n || !setsEqual(expectedKeys, shaderKeys))\n {\n throw new Error(\"CEWGPU explicit WGSL selection does not match its complete ANLS scope\");\n }\n\n return true;\n}\n\n/**\n * Validate selected-effect completeness flags and compact ANLS invariants.\n *\n * @param {object} info INFO document.\n * @param {object[]} stages ANLS stage records.\n * @returns {true} True when the partial-package boundary is truthful.\n */\nfunction validatePartialBoundary(info, stages, effectName)\n{\n const completeness = info.completeness;\n const sourceComplete = info.formatVersion === 3;\n if (!completeness || typeof completeness !== \"object\"\n || completeness.packageValid !== true\n || completeness.sourceComplete !== sourceComplete\n || completeness.backendComplete !== false\n || completeness.runtimeComplete !== false)\n {\n throw new Error(\n \"CEWGPU INFO.completeness is inconsistent with source/backend coverage\"\n );\n }\n const expectedBackendCoverage = info.bodyMode === \"all\"\n ? [ \"all-unique\", \"partial\" ]\n : [ \"selected\" ];\n if (sourceComplete\n && (info.sourceBodyCoverage !== \"all-unique\"\n || !expectedBackendCoverage.includes(info.backendBodyCoverage)))\n {\n throw new Error(\n \"CEWGPU INFO v3 source/backend body coverage is inconsistent\"\n );\n }\n if (!sourceComplete\n && (Object.prototype.hasOwnProperty.call(info, \"sourceBodyCoverage\")\n || Object.prototype.hasOwnProperty.call(info, \"backendBodyCoverage\")))\n {\n throw new Error(\n \"CEWGPU legacy INFO cannot declare version 3 body coverage\"\n );\n }\n\n for (const stage of stages)\n {\n const bytecode = stage.shaderBytecode;\n if (!bytecode || typeof bytecode !== \"object\" || Array.isArray(bytecode)\n || bytecode.stageType !== stage.stageType\n || bytecode.stageName !== stage.stageName\n || !Number.isSafeInteger(bytecode.shaderSize) || bytecode.shaderSize < 1\n || !Number.isSafeInteger(bytecode.stringTableOffset) || bytecode.stringTableOffset < 0\n || bytecode.effectName !== effectName\n || Object.prototype.hasOwnProperty.call(bytecode, \"bytes\")\n || !Number.isSafeInteger(stage.shaderHandle) || stage.shaderHandle < 0\n || !validateAnalysisThreadGroup(stage)\n || !Array.isArray(stage.pipelineInputs)\n || stage.pipelineInputs.some((input) => !validatePipelineInput(input))\n || !Array.isArray(stage.bindings)\n || !validateAnalysisBindings(stage.bindings, stage.stageType)\n || stage.dxbc !== null || stage.dxbcError !== null\n || stage.ir !== null || stage.irError !== null)\n {\n throw new Error(`CEWGPU ANLS stage ${stage.key} embeds transient compiler data`);\n }\n }\n\n return true;\n}\n\n/**\n * Validate one ANLS thread-group record.\n *\n * @param {object} stage ANLS stage record.\n * @returns {boolean} True when its dimensions match the stage kind.\n */\nfunction validateAnalysisThreadGroup(stage)\n{\n const size = stage.threadGroupSize;\n if (!size || typeof size !== \"object\" || Array.isArray(size)\n || ![ size.x, size.y, size.z ].every((value) =>\n Number.isSafeInteger(value) && value >= 0))\n {\n return false;\n }\n return stage.stageName !== \"compute\"\n || [ size.x, size.y, size.z ].every((value) => value >= 1);\n}\n\n/**\n * Validate one compact pipeline-input record.\n *\n * @param {object} input Pipeline-input record.\n * @returns {boolean} True when its numeric signature is representable.\n */\nfunction validatePipelineInput(input)\n{\n return !!input && typeof input === \"object\" && !Array.isArray(input)\n && typeof input.usageName === \"string\" && !!input.usageName\n && [ \"registerIndex\", \"usage\", \"usageIndex\", \"usedMask\", \"type\", \"dimension\" ]\n .every((field) => Number.isSafeInteger(input[field]) && input[field] >= 0);\n}\n\n/**\n * Validate one stage's binding records and their producer precedence.\n *\n * @param {object[]} bindings Binding records.\n * @param {number} stageType Owning Trinity stage type.\n * @returns {boolean} True when the manifest records are unambiguous.\n */\nfunction validateAnalysisBindings(bindings, stageType)\n{\n const exactIdentities = new Set();\n const byKindIndex = new Map();\n for (const binding of bindings)\n {\n if (!validateAnalysisBinding(binding, stageType)) return false;\n const exact = `${binding.kind}:${binding.registerSpace}:${binding.registerIndex}`;\n if (exactIdentities.has(exact)) return false;\n exactIdentities.add(exact);\n\n const kindIndex = `${binding.kind}:${binding.registerIndex}`;\n const records = byKindIndex.get(kindIndex) ?? [];\n records.push(binding);\n byKindIndex.set(kindIndex, records);\n }\n\n return Array.from(byKindIndex.values()).every((records) =>\n !records.some((binding) => binding.sourceTruth === \"carbon-register-map\")\n || records.length === 1);\n}\n\n/**\n * Validate one compact ANLS binding-manifest record.\n *\n * @param {object} binding Binding record.\n * @param {number} stageType Owning Trinity stage type.\n * @returns {boolean} True when its source register identity is complete.\n */\nfunction validateAnalysisBinding(binding, stageType)\n{\n if (!binding || typeof binding !== \"object\" || Array.isArray(binding)) return false;\n\n const classification = ANALYSIS_BINDING_KINDS[binding.kind];\n if (!classification) return false;\n const registerType = binding.registerType;\n const registerTypeMatches = Number.isSafeInteger(registerType)\n && (classification.registerTypes.length === 1\n ? registerType === classification.registerTypes[0]\n : registerType >= classification.registerTypes[0]\n && registerType <= classification.registerTypes[1]);\n const carbonMatchesKind = validateAnalysisCarbon(binding.kind, binding.carbon);\n const sourceShapeMatches = binding.sourceTruth === \"carbon-stage-register\"\n ? registerTypeMatches\n && (binding.kind === \"constantBuffer\"\n ? binding.heapView === false && carbonMatchesKind\n : binding.dynamic === true\n && (binding.carbon === null || carbonMatchesKind))\n : binding.sourceTruth === \"carbon-signature-sampler\"\n ? binding.kind === \"sampler\"\n && registerType === 1\n && binding.registerCount === 1\n && binding.arrayCount === 1\n && carbonMatchesKind\n : binding.sourceTruth === \"carbon-register-map\"\n && binding.kind !== \"constantBuffer\"\n && registerType === null\n && binding.registerSpace === stageType\n && binding.dynamic === true\n && carbonMatchesKind\n && (binding.kind !== \"sampler\"\n || binding.registerCount === 1)\n && (binding.kind === \"sampler\"\n || binding.registerCount === (binding.carbon.arrayElements || 1));\n\n return sourceShapeMatches\n && Number.isSafeInteger(binding.registerIndex) && binding.registerIndex >= 0\n && Number.isSafeInteger(binding.registerSpace) && binding.registerSpace >= 0\n && Number.isSafeInteger(binding.registerCount) && binding.registerCount >= 1\n && Number.isSafeInteger(binding.arrayCount) && binding.arrayCount >= 1\n && binding.registerCount === binding.arrayCount\n && binding.generatedSymbol === `${classification.prefix}${binding.registerIndex}`\n && typeof binding.dynamic === \"boolean\"\n && typeof binding.heapView === \"boolean\"\n && Array.isArray(binding.annotations)\n && (binding.metadataName === null\n || (typeof binding.metadataName === \"string\" && !!binding.metadataName));\n}\n\n/**\n * Validate the compact Carbon metadata payload for one binding class.\n *\n * @param {string} kind Binding kind.\n * @param {any} value Candidate Carbon payload.\n * @returns {boolean} True when the payload matches the producer's JSON shape.\n */\nfunction validateAnalysisCarbon(kind, value)\n{\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n if (kind === \"constantBuffer\")\n {\n return typeof value.hasLocalConstants === \"boolean\"\n && Number.isSafeInteger(value.constantValueSize)\n && value.constantValueSize >= 0\n && Array.isArray(value.constants)\n && value.constants.every((entry) =>\n !!entry && typeof entry === \"object\" && !Array.isArray(entry))\n && (value.hasLocalConstants\n ? value.constants.length > 0\n : value.constantValueSize === 0 && value.constants.length === 0);\n }\n if (kind === \"sampler\")\n {\n return (value.name === null\n || typeof value.name === \"string\")\n && validateAnalysisSampler(value.sampler);\n }\n return (value.name === null\n || typeof value.name === \"string\")\n && Number.isSafeInteger(value.type) && value.type >= 0\n && Number.isSafeInteger(value.arrayElements) && value.arrayElements >= 0\n && typeof value.isSRGB === \"boolean\"\n && typeof value.isAutoregister === \"boolean\";\n}\n\n/**\n * Validate one Carbon sampler-description snapshot.\n *\n * @param {any} value Candidate sampler description.\n * @returns {boolean} True when all authored sampler fields are present.\n */\nfunction validateAnalysisSampler(value)\n{\n return !!value && typeof value === \"object\" && !Array.isArray(value)\n && typeof value.comparison === \"boolean\"\n && (value.isDynamic === undefined || typeof value.isDynamic === \"boolean\")\n && [\n \"minFilter\",\n \"magFilter\",\n \"mipFilter\",\n \"addressU\",\n \"addressV\",\n \"addressW\",\n \"maxAnisotropy\",\n \"comparisonFunc\"\n ].every((field) => Number.isSafeInteger(value[field]) && value[field] >= 0)\n && [ \"mipLODBias\", \"minLOD\", \"maxLOD\" ].every((field) =>\n Number.isFinite(value[field]))\n && (Number.isSafeInteger(value.borderColor) && value.borderColor >= 0\n || Array.isArray(value.borderColor)\n && value.borderColor.length === 4\n && value.borderColor.every(Number.isFinite));\n}\n\n/**\n * Validate the canonical selected-effect package envelope when declared.\n *\n * Generic CEWGPU packages without `INFO.packageKind: \"tr2-effect-webgpu\"`\n * remain readable and may contain unknown chunks or raw WGSL text.\n *\n * @param {object} pkg Loaded CEWGPU package.\n * @returns {true} True when the package is generic or the effect contract passes.\n */\nexport function validateEffectPackageEnvelope(pkg)\n{\n if (!pkg.GetChunk(\"INFO\")) return true;\n\n let info;\n try\n {\n info = pkg.GetJson(\"INFO\");\n }\n catch (error)\n {\n throw new Error(`CEWGPU INFO must contain valid JSON: ${error.message}`);\n }\n if (!info || typeof info !== \"object\" || Array.isArray(info))\n {\n throw new Error(\"CEWGPU INFO must contain a JSON object\");\n }\n if (info.packageKind !== EFFECT_PACKAGE_KIND) return true;\n\n for (const tag of REQUIRED_EFFECT_CHUNKS)\n {\n if (!pkg.GetChunk(tag))\n {\n throw new Error(`CEWGPU ${EFFECT_PACKAGE_KIND} package requires ${tag}`);\n }\n }\n\n const metadata = requireJsonObject(pkg, \"META\");\n const analysis = requireJsonObject(pkg, \"ANLS\");\n const wgsl = requireJsonObject(pkg, \"WGSL\");\n\n if (info.format !== \"CEWGPU\" || info.formatVersion !== EFFECT_INFO_VERSION)\n {\n throw new Error(`CEWGPU INFO schema must be selected-effect version ${EFFECT_INFO_VERSION}`);\n }\n if (analysis.format !== \"CEWGPU_ANALYSIS\" || analysis.formatVersion !== 1)\n {\n throw new Error(\"CEWGPU ANLS schema must be CEWGPU_ANALYSIS version 1\");\n }\n if (wgsl.format !== \"CJS_WGSL_SET\" || wgsl.formatVersion !== WGSL_SET_VERSION)\n {\n throw new Error(\"CEWGPU WGSL schema must be CJS_WGSL_SET version 3\");\n }\n\n const stages = requireArray(analysis, \"stages\", \"ANLS\");\n const passes = requireArray(analysis, \"passes\", \"ANLS\");\n const shaders = requireArray(wgsl, \"shaders\", \"WGSL\");\n const layouts = requireArray(wgsl, \"layouts\", \"WGSL\");\n if (!stages.length || !shaders.length || !layouts.length)\n {\n throw new Error(\"CEWGPU selected-effect documents must contain stages, shaders, and layouts\");\n }\n\n if (requireCount(info.stageCount, \"INFO.stageCount\") !== stages.length\n || requireCount(info.selectedStageCount, \"INFO.selectedStageCount\") !== shaders.length\n || requireCount(info.shaderCount, \"INFO.shaderCount\") !== shaders.length\n || requireCount(info.layoutCount, \"INFO.layoutCount\") !== layouts.length)\n {\n throw new Error(\"CEWGPU INFO counts do not match ANLS/WGSL documents\");\n }\n\n const sourcePath = requireString(info.sourcePath, \"INFO.sourcePath\");\n if (info.formatVersion === 1 && info.translator !== DXBC_WGSL_TRANSLATOR_NAME)\n {\n throw new Error(\"CEWGPU INFO.translator must identify dxbc-js-wgsl\");\n }\n if (info.formatVersion >= 2)\n {\n if (info.targetBackend !== WEBGPU_BACKEND_NAME)\n {\n throw new Error(\"CEWGPU INFO.targetBackend must identify webgpu\");\n }\n if (info.backendPackage !== FORMAT_WEBGPU_PACKAGE_NAME\n || typeof info.backendPackageVersion !== \"string\"\n || !SEMANTIC_VERSION.test(info.backendPackageVersion))\n {\n throw new Error(\"CEWGPU INFO.backendPackage provenance is malformed\");\n }\n if (info.translator !== DXBC_WGSL_TRANSLATOR_NAME\n || typeof info.translatorVersion !== \"string\"\n || !SEMANTIC_VERSION.test(info.translatorVersion))\n {\n throw new Error(\"CEWGPU INFO.translator provenance is malformed\");\n }\n }\n validateSourceIdentity(info.sourceIdentity, info.formatVersion >= 2);\n const permutationGraph = validatePermutationGraphReference(pkg, info);\n validateBackendBodySetReference(pkg, info, permutationGraph);\n const effectReflection = readEffectReflectionReference(pkg, info);\n if (info.outputPath !== null\n && (typeof info.outputPath !== \"string\" || !info.outputPath))\n {\n throw new Error(\"CEWGPU INFO.outputPath must be a non-empty string or null\");\n }\n const effectName = requireString(metadata.effectName, \"META.effectName\");\n const bodyIndex = requireCount(metadata.bodyIndex, \"META.bodyIndex\");\n const metadataOptions = validateSelectedOptions(\n metadata.selectedOptions,\n \"META.selectedOptions\"\n );\n validateSelectedOptions(analysis.selectedOptions, \"ANLS.selectedOptions\");\n if (!Number.isSafeInteger(analysis.effectVersion)\n || analysis.effectVersion < 8 || analysis.effectVersion > 15\n || (analysis.compilerVersion !== null\n && (!Number.isSafeInteger(analysis.compilerVersion)\n || analysis.compilerVersion < 0)))\n {\n throw new Error(\"CEWGPU ANLS effect/compiler version metadata is malformed\");\n }\n requireString(metadata.sourcePath, \"META.sourcePath\");\n requireString(analysis.source, \"ANLS.source\");\n requireString(analysis.effectName, \"ANLS.effectName\");\n requireCount(analysis.bodyIndex, \"ANLS.bodyIndex\");\n if ((info.bodyMode !== \"selected\" && info.bodyMode !== \"all\")\n || metadata.bodyMode !== info.bodyMode\n || metadata.sourcePath !== sourcePath || analysis.source !== sourcePath)\n {\n throw new Error(\"CEWGPU INFO/META/ANLS source or body mode disagree\");\n }\n if (effectName !== analysis.effectName\n || bodyIndex !== analysis.bodyIndex\n || !jsonEqual(metadataOptions, analysis.selectedOptions))\n {\n throw new Error(\"CEWGPU META and ANLS effect selection disagree\");\n }\n if (permutationGraph)\n {\n validatePermutationGraphSelection(\n permutationGraph,\n bodyIndex,\n metadataOptions\n );\n }\n if (effectReflection)\n {\n if (!permutationGraph)\n {\n throw new Error(\"CEWGPU effect reflection requires PGRF\");\n }\n const reflectionCounts = validateEffectReflectionPointer(\n effectReflection.pointer,\n effectReflection.reflection,\n effectReflection.blobBytes,\n {\n permutationGraph,\n permutationIndex: bodyIndex,\n sourceIdentity: info.sourceIdentity,\n sourcePath,\n reflectionBytes: effectReflection.reflectionBytes\n }\n );\n if (info.formatVersion === 3)\n {\n if (effectReflection.pointer.formatVersion\n !== EFFECT_REFLECTION_VERSION\n || info.sourceBodyCoverage !== \"all-unique\"\n || !(info.bodyMode === \"all\"\n ? [ \"all-unique\", \"partial\" ].includes(info.backendBodyCoverage)\n : info.backendBodyCoverage === \"selected\")\n || reflectionCounts.permutationCount\n !== permutationGraph.variants.length\n || reflectionCounts.bodyCount !== permutationGraph.bodies.length)\n {\n throw new Error(\n \"CEWGPU INFO v3 source/backend body coverage is inconsistent\"\n );\n }\n }\n else if (effectReflection.pointer.formatVersion\n === EFFECT_REFLECTION_VERSION)\n {\n throw new Error(\"CEWGPU complete RFLX requires INFO version 3\");\n }\n if (effectReflection.reflection.source.effectVersion !== analysis.effectVersion\n || effectReflection.reflection.source.compilerVersion !== analysis.compilerVersion)\n {\n throw new Error(\"CEWGPU RFLX source versions disagree with ANLS\");\n }\n }\n\n const analysisPassKeys = collectAnalysisPassKeys(passes);\n const analysisKeys = collectStageKeys(stages, \"ANLS\");\n if (effectReflection)\n {\n validateReflectionAnalysis(\n effectReflectionForPermutation(\n effectReflection.reflection,\n permutationGraph,\n bodyIndex\n ),\n passes,\n stages\n );\n }\n const shaderKeys = collectStageKeys(shaders, \"WGSL\");\n if (stages.some((stage) =>\n !analysisPassKeys.has(`${stage.techniqueName}.pass${stage.passIndex}`)))\n {\n throw new Error(\"CEWGPU ANLS stage references an absent pass\");\n }\n if (Array.from(shaderKeys).some((key) => !analysisKeys.has(key)))\n {\n throw new Error(\"CEWGPU WGSL contains a shader absent from ANLS\");\n }\n\n const layoutKeys = collectLayoutKeys(layouts);\n const shaderPassKeys = collectShaderPassKeys(shaders);\n if (!setsEqual(layoutKeys, shaderPassKeys))\n {\n throw new Error(\"CEWGPU WGSL layouts do not match emitted shader passes\");\n }\n\n validateLayoutVisibility(layouts, shaders);\n validateComputeSizes(stages, shaders);\n validateSelection(metadata, stages, shaderKeys);\n validateResourceTransforms(wgsl, layoutKeys, shaderKeys, layouts);\n validatePartialBoundary(info, stages, effectName);\n markEffectPackageValidated(pkg);\n return true;\n}\n\n/**\n * Reconcile complete source reflection with compact ANLS identities.\n *\n * @param {object} reflectedEffect Selected body-local reflected effect graph.\n * @param {object[]} analysisPasses Validated ANLS pass records.\n * @param {object[]} analysisStages Validated ANLS stage records.\n * @returns {true} True when the two documents agree.\n */\nfunction validateReflectionAnalysis(\n reflectedEffect,\n analysisPasses,\n analysisStages\n)\n{\n const reflectedPasses = new Map();\n const reflectedStages = new Map();\n for (const technique of reflectedEffect.techniques)\n {\n for (const [ passIndex, pass ] of technique.passes.entries())\n {\n const passKey = `${technique.name}.pass${passIndex}`;\n if (reflectedPasses.has(passKey))\n {\n throw new Error(`CEWGPU RFLX contains duplicate pass ${passKey}`);\n }\n reflectedPasses.set(passKey, pass);\n for (const stage of pass.stages)\n {\n const stageKey = `${passKey}.${stage.stageName}`;\n if (reflectedStages.has(stageKey))\n {\n throw new Error(`CEWGPU RFLX contains duplicate stage ${stageKey}`);\n }\n reflectedStages.set(stageKey, stage);\n }\n }\n }\n\n if (reflectedPasses.size !== analysisPasses.length\n || reflectedStages.size !== analysisStages.length)\n {\n throw new Error(\"CEWGPU RFLX and ANLS pass/stage counts disagree\");\n }\n for (const pass of analysisPasses)\n {\n const key = `${pass.techniqueName}.pass${pass.passIndex}`;\n const reflected = reflectedPasses.get(key);\n if (!reflected || !jsonEqual(reflected.renderStates, pass.states))\n {\n throw new Error(`CEWGPU RFLX pass ${key} disagrees with ANLS`);\n }\n }\n for (const stage of analysisStages)\n {\n const reflected = reflectedStages.get(stage.key);\n const program = reflected?.sourceProgram;\n const signature = reflected?.input?.signature;\n if (!reflected\n || reflected.stageType !== stage.stageType\n || reflected.stageName !== stage.stageName\n || program?.kind !== \"stage\"\n || program.stageType !== stage.stageType\n || program.stageName !== stage.stageName\n || program.shaderSize !== stage.shaderBytecode?.shaderSize\n || program.stringTableOffset !== stage.shaderBytecode?.stringTableOffset\n || !jsonEqual(signature?.threadGroupSize, stage.threadGroupSize)\n || !samePipelineInputs(\n signature?.pipelineInputs,\n stage.pipelineInputs\n ))\n {\n throw new Error(`CEWGPU RFLX stage ${stage.key} disagrees with ANLS`);\n }\n }\n return true;\n}\n\n/**\n * Compare authored pipeline-input numeric fields while ignoring ANLS display\n * names.\n *\n * @param {object[]} reflected RFLX pipeline inputs.\n * @param {object[]} analysis ANLS pipeline inputs.\n * @returns {boolean} True when the ordered source fields agree.\n */\nfunction samePipelineInputs(reflected, analysis)\n{\n const fields = [\n \"usage\",\n \"registerIndex\",\n \"usageIndex\",\n \"usedMask\",\n \"type\",\n \"dimension\"\n ];\n return Array.isArray(reflected)\n && Array.isArray(analysis)\n && reflected.length === analysis.length\n && reflected.every((entry, index) =>\n fields.every((field) => entry[field] === analysis[index]?.[field]));\n}\n\n/**\n * Require binding visibility to name stages emitted by the owning pass.\n *\n * @param {object[]} layouts WGSL layout records.\n * @param {object[]} shaders WGSL shader records.\n * @returns {true} True when visibility does not claim absent stages.\n */\nfunction validateLayoutVisibility(layouts, shaders)\n{\n for (const layout of layouts)\n {\n const passStages = new Set(shaders\n .filter((shader) =>\n shader.techniqueName === layout.techniqueName\n && shader.passIndex === layout.passIndex)\n .map((shader) => shader.stage));\n for (const binding of layout.bindGroups.flatMap((group) => group.bindings))\n {\n if (binding.visibility.some((stage) => !passStages.has(stage)))\n {\n throw new Error(`CEWGPU WGSL layout ${layout.key} exposes an absent shader stage`);\n }\n }\n }\n return true;\n}\n\n/**\n * Reconcile compute thread-group metadata between ANLS and WGSL.\n *\n * @param {object[]} stages ANLS stage records.\n * @param {object[]} shaders WGSL shader records.\n * @returns {true} True when every compute size is exact.\n */\nfunction validateComputeSizes(stages, shaders)\n{\n for (const shader of shaders.filter((entry) => entry.stageName === \"compute\"))\n {\n const stage = stages.find((entry) => entry.key === shader.key);\n const size = stage?.threadGroupSize;\n if (!size || typeof size !== \"object\" || Array.isArray(size)\n || ![ size.x, size.y, size.z ].every((value) =>\n Number.isSafeInteger(value) && value >= 1)\n || !jsonEqual([ size.x, size.y, size.z ], shader.threadGroupSize))\n {\n throw new Error(`CEWGPU compute stage ${shader.key} has inconsistent thread-group metadata`);\n }\n }\n return true;\n}\n\n/**\n * Validate WGSL-set version coupling and resource-transform links.\n *\n * @param {object} wgsl WGSL document.\n * @param {Set<string>} layoutKeys Canonical emitted layout keys.\n * @param {Set<string>} shaderKeys Canonical emitted shader keys.\n * @param {object[]} layouts WGSL layout records.\n * @returns {true} True when transform metadata is coherent.\n */\nfunction validateResourceTransforms(wgsl, layoutKeys, shaderKeys, layouts)\n{\n const hasTransforms = Object.prototype.hasOwnProperty.call(wgsl, \"resourceTransforms\");\n const transformedBindings = layouts.flatMap((layout) =>\n layout.bindGroups.flatMap((group) =>\n group.bindings.filter((binding) => binding.transformId)));\n // Resource transforms are an optional payload, not a schema version: a\n // package either declares them and binds them, or declares neither.\n if (!hasTransforms)\n {\n if (transformedBindings.length)\n {\n throw new Error(\"CEWGPU WGSL transformed bindings require resource recipes\");\n }\n return true;\n }\n if (!transformedBindings.length)\n {\n throw new Error(\"CEWGPU WGSL resource transforms require transformed bindings\");\n }\n\n const plan = normalizeResourceTransformPlan({\n format: \"CJS_WGSL_RESOURCE_TRANSFORM_PLAN\",\n formatVersion: 1,\n resourceTransforms: wgsl.resourceTransforms\n });\n const transformIds = new Set(plan.resourceTransforms.map((transform) => transform.id));\n if (transformedBindings.some((binding) => !transformIds.has(binding.transformId)))\n {\n throw new Error(\"CEWGPU WGSL binding references an absent resource transform\");\n }\n for (const transform of plan.resourceTransforms)\n {\n if (!layoutKeys.has(transform.layoutKey)\n || !shaderKeys.has(`${transform.layoutKey}.pixel`))\n {\n throw new Error(`CEWGPU WGSL resource transform ${transform.id} targets an absent pass`);\n }\n const layout = layouts.find((entry) => entry.key === transform.layoutKey);\n const bindings = layout.bindGroups.flatMap((group) => group.bindings);\n const links = bindings.filter((binding) => binding.transformId === transform.id);\n if (links.length !== 1)\n {\n throw new Error(`CEWGPU WGSL resource transform ${transform.id} must link one binding`);\n }\n const binding = links[0];\n if (binding.identity !== transform.output.identity\n || binding.scopeIdentity !== transform.output.scopeIdentity\n || binding.texture?.viewDimension !== transform.output.viewDimension\n || binding.arrayLayerCount !== transform.output.layerCount)\n {\n throw new Error(`CEWGPU WGSL resource transform ${transform.id} disagrees with its binding`);\n }\n const physicalScopes = new Set(bindings.map((entry) => entry.scopeIdentity));\n if (transform.inputs.slice(1).some((input) =>\n physicalScopes.has(input.scopeIdentity)))\n {\n throw new Error(`CEWGPU WGSL resource transform ${transform.id} retains a removed input`);\n }\n }\n return true;\n}\n"],"names":["EFFECT_INFO_VERSION","REQUIRED_EFFECT_CHUNKS","Object","freeze","EFFECT_PACKAGE_KIND","SEMANTIC_VERSION","RegExp","STAGE_SCHEMA","vertex","stage","stageType","pixel","compute","VISIBILITIES","Set","BUFFER_TYPES","TEXTURE_BINDING_TYPES","sampleType","viewDimension","multisampled","SAMPLER_TYPES","ANALYSIS_BINDING_KINDS","constantBuffer","prefix","registerTypes","sampler","resource","uav","requireJsonObject","pkg","tag","GetChunk","Error","value","GetJson","error","message","Array","isArray","requireExactKeys","allowed","context","keys","length","some","key","includes","jsonEqual","left","right","is","every","index","leftKeys","sort","rightKeys","requireArray","field","requireCount","Number","isSafeInteger","requireString","trim","validateSelectedOptions","options","names","option","entries","name","optionIndex","defaultOption","defaultValue","source","has","add","validateSourceIdentity","requireSha256","logicalPath","byteLength","md5","test","sha256","undefined","validateBackendBodySetReference","info","permutationGraph","pointer","backendBodySet","chunk","EFFECT_BACKEND_BODY_SET_CHUNK","bodyMode","format","EFFECT_BACKEND_BODY_SET_FORMAT","formatVersion","EFFECT_BACKEND_BODY_SET_VERSION","sha256Bytes","bytes","bodySet","bodies","passUnits","unitKeys","unit","shaders","layouts","wgslSetVersion","WGSL_SET_VERSION","graphBodyKeys","map","body","seen","translated","bodyKey","status","variant","variants","representativePermutationIndex","passCount","passes","pass","passKey","unitKey","size","bodyCount","translatedBodyCount","passUnitCount","expectedCoverage","coverage","backendBodyCoverage","validatePermutationGraphReference","EFFECT_PERMUTATION_GRAPH_CHUNK","EFFECT_PERMUTATION_GRAPH_FORMAT","EFFECT_PERMUTATION_GRAPH_VERSION","graph","counts","validateEffectPermutationGraph","sourceByteLength","sourceIdentity","permutationCount","uniqueBodyCount","readEffectReflectionReference","effectReflection","reflectionChunk","EFFECT_REFLECTION_CHUNK","blobChunk","EFFECT_REFLECTION_BLOB_CHUNK","reflection","reflectionBytes","blobBytes","validatePermutationGraphSelection","bodyIndex","selectedOptions","axes","axisIndex","axis","optionIndices","selected","collectAnalysisPassKeys","indicesByTechnique","Map","techniqueName","passIndex","renderStates","states","state","set","get","push","indices","ordered","collectStageKeys","records","record","schema","prototype","hasOwnProperty","call","stageName","expected","entryPoint","code","sourceMap","entry","line","instructionIndex","dxbcOffset","threadGroupSize","validatePassTopologies","stagesByPass","stages","collectLayoutKeys","layout","match","exec","validateBindGroups","layoutIndex","groups","groupNumbers","slots","scopes","scopesByIdentity","symbolVisibility","groupIndex","group","bindings","bindingIndex","binding","validateBinding","orderedGroups","from","layoutKey","visibility","expectedDescriptors","resourceKind","descriptors","filter","identity","registerSpace","registerIndex","slot","sharedScope","scopeIdentity","stageScope","generatedSymbol","type","validateBindingDescriptor","validateTransformBinding","priorScopes","scope","priorVisibility","descriptor","expectedType","hasDynamicOffset","minBindingSize","hasId","hasLayers","transformId","arrayLayerCount","texture","setsEqual","collectShaderPassKeys","shader","validateSelection","metadata","shaderKeys","selection","wgslSelection","analysisKeys","mode","completePasses","requestedStageNames","selectedStageKeys","selectedStages","selectedNames","requestedNames","expectedKeys","validatePartialBoundary","effectName","completeness","sourceComplete","packageValid","backendComplete","runtimeComplete","expectedBackendCoverage","sourceBodyCoverage","bytecode","shaderBytecode","shaderSize","stringTableOffset","shaderHandle","validateAnalysisThreadGroup","pipelineInputs","input","validatePipelineInput","validateAnalysisBindings","dxbc","dxbcError","ir","irError","x","y","z","usageName","exactIdentities","byKindIndex","validateAnalysisBinding","exact","kind","kindIndex","values","sourceTruth","classification","registerType","registerTypeMatches","carbonMatchesKind","validateAnalysisCarbon","carbon","sourceShapeMatches","heapView","dynamic","registerCount","arrayCount","arrayElements","annotations","metadataName","hasLocalConstants","constantValueSize","constants","validateAnalysisSampler","isSRGB","isAutoregister","comparison","isDynamic","isFinite","borderColor","validateEffectPackageEnvelope","packageKind","analysis","wgsl","stageCount","selectedStageCount","shaderCount","layoutCount","sourcePath","translator","DXBC_WGSL_TRANSLATOR_NAME","targetBackend","WEBGPU_BACKEND_NAME","backendPackage","FORMAT_WEBGPU_PACKAGE_NAME","backendPackageVersion","translatorVersion","outputPath","metadataOptions","effectVersion","compilerVersion","reflectionCounts","validateEffectReflectionPointer","permutationIndex","EFFECT_REFLECTION_VERSION","analysisPassKeys","validateReflectionAnalysis","effectReflectionForPermutation","layoutKeys","shaderPassKeys","validateLayoutVisibility","validateComputeSizes","validateResourceTransforms","markEffectPackageValidated","reflectedEffect","analysisPasses","analysisStages","reflectedPasses","reflectedStages","technique","techniques","stageKey","reflected","program","sourceProgram","signature","samePipelineInputs","fields","passStages","bindGroups","flatMap","find","hasTransforms","transformedBindings","plan","normalizeResourceTransformPlan","resourceTransforms","transformIds","transform","id","links","output","layerCount","physicalScopes","inputs","slice"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error raised when a CEWGPU package or WebGPU analysis pass cannot be
|
|
3
|
+
* completed safely.
|
|
4
|
+
*/
|
|
5
|
+
class WebgpuReadError extends Error {
|
|
6
|
+
/**
|
|
7
|
+
* Creates a read/analysis error with structured location details.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} message Human-readable failure reason.
|
|
10
|
+
* @param {object} [details] Extra reader state such as source or offset.
|
|
11
|
+
*/
|
|
12
|
+
constructor(message, details = {}) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "WebgpuReadError";
|
|
15
|
+
this.details = details;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { WebgpuReadError };
|
|
20
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sources":["../../../../../src/formats/webgpu/core/errors.js"],"sourcesContent":["/**\n * Error raised when a CEWGPU package or WebGPU analysis pass cannot be\n * completed safely.\n */\nexport class WebgpuReadError extends Error\n{\n /**\n * Creates a read/analysis error with structured location details.\n *\n * @param {string} message Human-readable failure reason.\n * @param {object} [details] Extra reader state such as source or offset.\n */\n constructor(message, details = {})\n {\n super(message);\n this.name = \"WebgpuReadError\";\n this.details = details;\n }\n}\n"],"names":["WebgpuReadError","Error","constructor","message","details","name"],"mappings":"AAAA;AACA;AACA;AACA;AACO,MAAMA,eAAe,SAASC,KAAK,CAC1C;AACI;AACJ;AACA;AACA;AACA;AACA;AACIC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,OAAO,GAAG,EAAE,EACjC;IACI,KAAK,CAACD,OAAO,CAAC;IACd,IAAI,CAACE,IAAI,GAAG,iBAAiB;IAC7B,IAAI,CAACD,OAAO,GAAGA,OAAO;AAC1B,EAAA;AACJ;;;;"}
|