@carbonenginejs/runtime-resource 0.13.0 → 0.14.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/LICENSE +21 -21
- package/NOTICE +32 -32
- package/README.md +129 -129
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3858
- package/dist/CjsResManFetchProvider.js +94 -94
- package/dist/CjsResManWorkQueue.js +301 -301
- package/dist/_virtual/_rollupPluginBabelHelpers.js +150 -150
- package/dist/format/CjsBlueReader.js +358 -358
- package/dist/format/CjsByteReader.js +310 -310
- package/dist/format/CjsByteWriter.js +242 -242
- package/dist/format/CjsFormat.js +223 -223
- package/dist/format/CjsFormatError.js +41 -41
- package/dist/format/CjsReader.js +22 -22
- package/dist/format/CjsResourceProbe.js +279 -279
- package/dist/format/CjsStringTable.js +268 -268
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js +265 -265
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -182
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -321
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -1147
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -197
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -146
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- package/dist/format/effect/sha256.js +114 -114
- package/dist/format/index.js +11 -11
- package/dist/format/payloadContract.js +193 -193
- package/dist/formats/black/CjsBlackFormat.js +310 -310
- package/dist/formats/black/core/CjsBlackBinaryReader.js +260 -260
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +448 -448
- package/dist/formats/black/core/CjsBlackReader.js +764 -764
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +540 -540
- package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +199 -199
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +175 -175
- package/dist/formats/bnk/core/busNodes.js +252 -252
- package/dist/formats/bnk/core/effectNodes.js +147 -147
- package/dist/formats/bnk/core/eventAction.js +416 -416
- package/dist/formats/bnk/core/globalSettings.js +215 -215
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -512
- package/dist/formats/bnk/core/musicNodes.js +540 -540
- package/dist/formats/bnk/core/nodeBase.js +553 -553
- package/dist/formats/bnk/core/sfxNodes.js +632 -632
- package/dist/formats/bnk/core/soundbanksInfo.js +209 -209
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +194 -194
- package/dist/formats/cmf/core/buffers.js +237 -237
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +318 -318
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +374 -374
- package/dist/formats/cmf/core/shared.js +277 -277
- package/dist/formats/cmf/core/writer.js +571 -571
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +200 -200
- package/dist/formats/dds/core/bc6h.js +298 -298
- package/dist/formats/dds/core/bc7.js +272 -272
- package/dist/formats/dds/core/helpers.js +901 -862
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +187 -142
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/formats/dxbc/core/DxbcReader.js +266 -266
- package/dist/formats/dxbc/core/container.js +169 -169
- package/dist/formats/dxbc/core/decoder.js +789 -789
- package/dist/formats/dxbc/core/disassemble.js +240 -0
- package/dist/formats/dxbc/core/disassemble.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -19
- package/dist/formats/dxbc/core/helpers.js +220 -220
- package/dist/formats/dxbc/core/opcodes.js +45 -45
- package/dist/formats/dxbc/core/program.js +91 -91
- package/dist/formats/dxbc/core/signature.js +172 -172
- package/dist/formats/dxbc/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3932 -3932
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +142 -142
- package/dist/formats/flac/core/helpers.js +315 -315
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +141 -141
- package/dist/formats/gif/core/helpers.js +380 -380
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +252 -290
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +287 -307
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +679 -679
- package/dist/formats/gltf/core/targets.js +173 -173
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +289 -289
- package/dist/formats/gr2/core/bitknit2.js +282 -282
- package/dist/formats/gr2/core/curves.js +1047 -1047
- package/dist/formats/gr2/core/gsf.js +72 -72
- package/dist/formats/gr2/core/helpers.js +352 -352
- package/dist/formats/gr2/core/json.js +622 -622
- package/dist/formats/gr2/core/oodle1.js +388 -388
- package/dist/formats/gr2/core/tangents.js +48 -48
- package/dist/formats/gr2/core/targets.js +361 -361
- package/dist/formats/gr2/index.js +2 -2
- package/dist/formats/hlsl/CjsHlslFormat.js +233 -254
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -15
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -19
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -130
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -37
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -94
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -44
- package/dist/formats/hlsl/core/analysis.js +51 -51
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +850 -850
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -128
- package/dist/formats/hlsl/core/helpers.js +270 -270
- package/dist/formats/hlsl/core/json.js +284 -284
- package/dist/formats/hlsl/core/localLightFamily.js +133 -133
- package/dist/formats/hlsl/core/metadata.js +327 -327
- package/dist/formats/hlsl/core/render-states.js +280 -280
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -43
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +320 -320
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +423 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -62
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -52
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -38
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -50
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -86
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -31
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -42
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -55
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -29
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -220
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -30
- package/dist/formats/hlsl/index.js +3 -3
- package/dist/formats/index.js +33 -33
- package/dist/formats/jpeg/CjsJpegFormat.js +212 -212
- package/dist/formats/jpeg/core/helpers.js +402 -402
- package/dist/formats/jpeg/core/jpeg.js +480 -480
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +197 -197
- package/dist/formats/mp3/core/helpers.js +375 -375
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +197 -197
- package/dist/formats/mp4/core/helpers.js +484 -484
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +232 -253
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/obj/core/helpers.js +553 -573
- package/dist/formats/obj/core/helpers.js.map +1 -1
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +143 -143
- package/dist/formats/ogg/core/helpers.js +410 -410
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +1017 -1017
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/pickle/CjsPickleFormat.js +214 -214
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -551
- package/dist/formats/pickle/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +201 -201
- package/dist/formats/png/core/helpers.js +635 -635
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +263 -263
- package/dist/formats/red/core/CjsRedReader.js +246 -246
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +158 -158
- package/dist/formats/red/core/redGraph.js +71 -71
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +320 -365
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +241 -261
- package/dist/formats/stl/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +642 -642
- package/dist/formats/stl/core/targets.js +173 -173
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +197 -197
- package/dist/formats/tga/core/helpers.js +493 -493
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +198 -198
- package/dist/formats/wav/core/helpers.js +365 -365
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webgl/CjsWebglFormat.js +199 -199
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -70
- package/dist/formats/webgl/core/effectPackage.js +900 -900
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2820
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -486
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -98
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -552
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -243
- package/dist/formats/webgl/core/glslEffectCompleteness.js +85 -85
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -1
- package/dist/formats/webgl/core/helpers.js +167 -167
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -122
- package/dist/formats/webgl/core/readGlslEffectContainer.js +202 -256
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -89
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js +354 -354
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +306 -306
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/helpers.js +443 -443
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +212 -212
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -220
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -137
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +449 -449
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -494
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -177
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -61
- package/dist/formats/webgpu/core/packageEffect.js +381 -381
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- package/dist/formats/webgpu/core/packageMetadata.js +17 -17
- package/dist/formats/webgpu/core/schema.js +4 -4
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +263 -263
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +325 -325
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -356
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -77
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -451
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +735 -735
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -457
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -1572
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -659
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -734
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -583
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -621
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -824
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -697
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -559
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -1328
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -110
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -55
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +717 -717
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -78
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -196
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -37
- package/dist/formats/webgpu/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +197 -197
- package/dist/formats/webm/core/helpers.js +572 -572
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +140 -140
- package/dist/formats/webp/core/helpers.js +237 -237
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +250 -250
- package/dist/formats/wem/core/bitStream.js +261 -261
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +437 -437
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +134 -134
- package/dist/formats/yaml/core/CjsYamlReader.js +400 -400
- package/dist/formats/yaml/core/helpers.js +196 -196
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -64
- package/dist/resource/CjsLoadingObject.js +19 -19
- package/dist/resource/CjsResource.js +801 -801
- package/dist/resource/ResourceHandlerMode.js +14 -14
- package/dist/resource/Tr2LightProfileRes.js +32 -32
- package/dist/resource/audio/AudioGeometryResData.js +47 -47
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -86
- package/dist/resource/audio/CjsAudioRes.js +213 -213
- package/dist/resource/audio/index.js +4 -4
- package/dist/resource/geometry/MeshDecalData.js +37 -37
- package/dist/resource/geometry/MeshDecalLodData.js +34 -34
- package/dist/resource/geometry/TriGeometryRes.js +675 -675
- package/dist/resource/geometry/TriGeometryResAreaData.js +59 -59
- package/dist/resource/geometry/TriGeometryResJointData.js +38 -38
- package/dist/resource/geometry/TriGeometryResLodData.js +88 -88
- package/dist/resource/geometry/TriGeometryResMeshData.js +63 -63
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +34 -34
- package/dist/resource/geometry/TriJointBinding.js +38 -38
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resource/geometry/TriRtGeometryConstants.js +88 -88
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +31 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +36 -36
- package/dist/resource/geometry/granny/TriGrannyRes.js +35 -35
- package/dist/resource/geometry/granny/enums.js +10 -10
- package/dist/resource/geometry/granny/index.js +6 -6
- package/dist/resource/geometry/index.js +17 -17
- package/dist/resource/index.js +54 -54
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -336
- package/dist/resource/shader/Tr2MaterialArea.js +31 -31
- package/dist/resource/shader/Tr2MaterialMesh.js +27 -27
- package/dist/resource/shader/Tr2MaterialRes.js +31 -31
- package/dist/resource/shader/Tr2Shader.js +283 -283
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -143
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -114
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -168
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -125
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -120
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -372
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -78
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -168
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -159
- package/dist/resource/shader/reflection/shaderStage.js +22 -22
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -135
- package/dist/resource/texture/CjsTextureArrayRes.js +472 -472
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js +179 -179
- package/dist/resource/texture/Tr2ImageRes.js +120 -120
- package/dist/resource/texture/Tr2TextureLodManager.js +82 -82
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resource/texture/Tr2TexturePackChannel.js +37 -37
- package/dist/resource/texture/Tr2TexturePipeline.js +54 -54
- package/dist/resource/texture/Tr2TexturePipelineParams.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +22 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resource/texture/TriTextureRes.js +359 -359
- package/dist/resource/texture/index.js +15 -15
- package/dist/resource/texture/texturePipelineBehavior.js +308 -308
- package/dist/worker/CjsResManMainThreadLoader.js +89 -89
- package/dist/worker/CjsResManWorker.js +218 -218
- package/dist/worker/CjsResManWorkerLoader.js +437 -437
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -118
- package/docs/concepts/resource-lifecycle.md +226 -226
- package/docs/concepts/shader-resource-model.md +111 -111
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -138
- package/docs/formats/carbon-effect-container.md +553 -553
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +105 -77
- package/docs/formats/dxbc/reference/classes/README.md +9 -9
- package/docs/formats/dxbc/reference/decoded-output.md +122 -122
- package/docs/formats/gr2.md +160 -160
- package/docs/formats/hlsl/README.md +54 -54
- package/docs/formats/hlsl/architecture.md +66 -65
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -60
- package/docs/formats/hlsl/guides/reading-effects.md +68 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -61
- package/docs/formats/hlsl/reference/api.md +91 -92
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -97
- package/docs/formats/pickle.md +82 -82
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -115
- package/docs/formats/webgl/architecture.md +69 -69
- package/docs/formats/webgl/carbon-constant-layouts.md +326 -326
- package/docs/formats/webgl/decl-io.md +1234 -1234
- package/docs/formats/webgl/memory-structured.md +890 -890
- package/docs/formats/webgl/reference/classes/README.md +9 -9
- package/docs/formats/webgl/texture-sample.md +964 -964
- package/docs/formats/webgpu/README.md +84 -84
- package/docs/formats/webgpu/architecture.md +95 -95
- package/docs/formats/webgpu/formats/carbon-webgpu.md +215 -215
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -189
- package/docs/formats/webgpu/reference/api.md +196 -196
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1546
- package/docs/formats/wwise.md +146 -146
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -216
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -944
- package/docs/reference/classes/resources.md +456 -456
- package/docs/reference/classes/texture.md +26 -26
- package/docs/reference/events.md +117 -117
- package/docs/reference/motherlode-cache.md +275 -275
- package/docs/reference/queues.md +194 -194
- package/docs/reference/reload.md +107 -107
- package/docs/reference/texture-arrays.md +113 -113
- package/docs/reference/texture-pipeline.md +53 -53
- package/docs/reference/workers.md +142 -142
- package/docs/roadmap.md +150 -150
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +21 -21
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/dxbc/LICENSE +21 -21
- package/format-notices/dxbc/NOTICE +20 -20
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/gr2/LICENSE +21 -21
- package/format-notices/gr2/NOTICE +60 -60
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -93
- package/format-notices/hlsl/LICENSE +21 -21
- package/format-notices/hlsl/NOTICE +25 -25
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webgl/LICENSE +21 -21
- package/format-notices/webgl/NOTICE +35 -35
- package/format-notices/webgpu/LICENSE +21 -21
- package/format-notices/webgpu/NOTICE +31 -31
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +63 -63
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Text disassembly of a decoded DXBC token stream.
|
|
3
|
+
*
|
|
4
|
+
* A translated shader can only be judged against what the bytecode actually
|
|
5
|
+
* says. Reading the emitted GLSL or WGSL beside the original HLSL proves
|
|
6
|
+
* nothing, because the compiler that produced the bytecode already rewrote the
|
|
7
|
+
* program; and the emitters cannot be their own oracle. This module turns the
|
|
8
|
+
* decoder's instruction records back into assembly text so a translation can be
|
|
9
|
+
* checked instruction by instruction against its own input.
|
|
10
|
+
*
|
|
11
|
+
* The output follows Microsoft's shader-assembly conventions closely enough to
|
|
12
|
+
* read beside published DXBC listings, but it is a rendering of this decoder's
|
|
13
|
+
* records, not a reimplementation of any disassembler. Every field printed here
|
|
14
|
+
* comes from `DxbcInstructionDecoder`.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
const OPERAND_PREFIXES = Object.freeze({
|
|
18
|
+
temp: "r",
|
|
19
|
+
input: "v",
|
|
20
|
+
output: "o",
|
|
21
|
+
indexable_temp: "x",
|
|
22
|
+
immediate32: "l",
|
|
23
|
+
immediate64: "d",
|
|
24
|
+
sampler: "s",
|
|
25
|
+
resource: "t",
|
|
26
|
+
constant_buffer: "cb",
|
|
27
|
+
immediate_constant_buffer: "icb",
|
|
28
|
+
label: "label",
|
|
29
|
+
uav: "u",
|
|
30
|
+
thread_group_shared_memory: "g",
|
|
31
|
+
output_depth: "oDepth",
|
|
32
|
+
null: "null",
|
|
33
|
+
rasterizer: "rasterizer",
|
|
34
|
+
output_coverage: "oMask",
|
|
35
|
+
input_coverage_mask: "vCoverage",
|
|
36
|
+
input_primitive_id: "vPrim",
|
|
37
|
+
input_thread_id: "vThreadID",
|
|
38
|
+
input_thread_group_id: "vThreadGroupID",
|
|
39
|
+
input_thread_id_in_group: "vThreadIDInGroup",
|
|
40
|
+
input_thread_id_in_group_flattened: "vThreadIDInGroupFlattened",
|
|
41
|
+
input_domain_point: "vDomain",
|
|
42
|
+
input_control_point: "vicp",
|
|
43
|
+
output_control_point: "vocp",
|
|
44
|
+
input_patch_constant: "vpc",
|
|
45
|
+
output_depth_greater_equal: "oDepthGE",
|
|
46
|
+
output_depth_less_equal: "oDepthLE"
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Registers whose name already stands alone: printing an index would invent a
|
|
51
|
+
* dimension the encoding does not have.
|
|
52
|
+
*/
|
|
53
|
+
const UNINDEXED_OPERANDS = new Set(["null", "rasterizer", "output_depth", "output_depth_greater_equal", "output_depth_less_equal", "output_coverage", "input_coverage_mask", "input_primitive_id", "input_thread_id", "input_thread_group_id", "input_thread_id_in_group", "input_thread_id_in_group_flattened", "input_domain_point"]);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Formats one immediate component.
|
|
57
|
+
*
|
|
58
|
+
* Integer-typed opcodes carry their operands as the same 32 bits a float
|
|
59
|
+
* opcode would, so both readings are printed when they disagree meaningfully.
|
|
60
|
+
* A bare float is enough when the integer reading is small and matches.
|
|
61
|
+
*
|
|
62
|
+
* @param {object} value Decoded immediate with `uint32` and `float32`.
|
|
63
|
+
* @returns {string} Printable component.
|
|
64
|
+
*/
|
|
65
|
+
function formatImmediateComponent(value) {
|
|
66
|
+
if (!value || typeof value !== "object") {
|
|
67
|
+
return String(value);
|
|
68
|
+
}
|
|
69
|
+
const {
|
|
70
|
+
uint32,
|
|
71
|
+
float32
|
|
72
|
+
} = value;
|
|
73
|
+
if (!Number.isFinite(float32)) {
|
|
74
|
+
return `0x${(uint32 >>> 0).toString(16).padStart(8, "0")}`;
|
|
75
|
+
}
|
|
76
|
+
if (Number.isInteger(float32) && Math.abs(float32) < 1e7) {
|
|
77
|
+
return float32.toFixed(1);
|
|
78
|
+
}
|
|
79
|
+
return String(float32);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Formats an operand index chain, including relative (indexed) addressing.
|
|
84
|
+
*
|
|
85
|
+
* @param {object} operand Decoded operand.
|
|
86
|
+
* @returns {string} Printable index chain.
|
|
87
|
+
*/
|
|
88
|
+
function formatIndices(operand) {
|
|
89
|
+
const indices = operand.indices ?? [];
|
|
90
|
+
if (!indices.length || UNINDEXED_OPERANDS.has(operand.typeName)) {
|
|
91
|
+
return "";
|
|
92
|
+
}
|
|
93
|
+
return indices.map(index => {
|
|
94
|
+
const literal = index.values?.[0] ?? 0;
|
|
95
|
+
if (index.relative) {
|
|
96
|
+
// eslint-disable-next-line no-use-before-define
|
|
97
|
+
const inner = formatOperand(index.relative);
|
|
98
|
+
return literal ? `[${inner} + ${literal}]` : `[${inner}]`;
|
|
99
|
+
}
|
|
100
|
+
return `[${literal}]`;
|
|
101
|
+
}).join("");
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Formats the component selection suffix for an operand.
|
|
106
|
+
*
|
|
107
|
+
* A masked destination and a swizzled source print differently, and a
|
|
108
|
+
* single-component selection prints as one letter. Getting this wrong is the
|
|
109
|
+
* whole reason a translation review needs the listing, so it is printed
|
|
110
|
+
* exactly as encoded rather than normalized.
|
|
111
|
+
*
|
|
112
|
+
* @param {object} operand Decoded operand.
|
|
113
|
+
* @returns {string} Printable suffix, including the leading dot.
|
|
114
|
+
*/
|
|
115
|
+
function formatSelection(operand) {
|
|
116
|
+
if (operand.selectionModeName === "mask") {
|
|
117
|
+
return operand.mask ? `.${operand.mask}` : "";
|
|
118
|
+
}
|
|
119
|
+
if (operand.selectionModeName === "swizzle") {
|
|
120
|
+
return operand.swizzle ? `.${operand.swizzle}` : "";
|
|
121
|
+
}
|
|
122
|
+
return operand.selected ? `.${operand.selected}` : "";
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Formats one decoded operand.
|
|
127
|
+
*
|
|
128
|
+
* @param {object} operand Decoded operand.
|
|
129
|
+
* @returns {string} Printable operand.
|
|
130
|
+
*/
|
|
131
|
+
function formatOperand(operand) {
|
|
132
|
+
if (!operand) {
|
|
133
|
+
return "<null>";
|
|
134
|
+
}
|
|
135
|
+
if (operand.typeName === "immediate32" || operand.typeName === "immediate64") {
|
|
136
|
+
const components = (operand.immediateValues ?? []).map(formatImmediateComponent);
|
|
137
|
+
return `l(${components.join(", ")})`;
|
|
138
|
+
}
|
|
139
|
+
const prefix = OPERAND_PREFIXES[operand.typeName] ?? operand.typeName;
|
|
140
|
+
let text = `${prefix}${formatIndices(operand)}${formatSelection(operand)}`;
|
|
141
|
+
if (operand.minPrecisionName && operand.minPrecisionName !== "default") {
|
|
142
|
+
text = `${text} {${operand.minPrecisionName}}`;
|
|
143
|
+
}
|
|
144
|
+
if (operand.nonUniform) {
|
|
145
|
+
text = `${text} {nonuniform}`;
|
|
146
|
+
}
|
|
147
|
+
switch (operand.modifierName) {
|
|
148
|
+
case "neg":
|
|
149
|
+
return `-${text}`;
|
|
150
|
+
case "abs":
|
|
151
|
+
return `|${text}|`;
|
|
152
|
+
case "absneg":
|
|
153
|
+
return `-|${text}|`;
|
|
154
|
+
default:
|
|
155
|
+
return text;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Formats the trailing detail a declaration carries outside its operands.
|
|
161
|
+
*
|
|
162
|
+
* @param {object} instruction Decoded declaration instruction.
|
|
163
|
+
* @returns {string} Printable suffix, or an empty string.
|
|
164
|
+
*/
|
|
165
|
+
function formatDeclarationDetail(instruction) {
|
|
166
|
+
const declaration = instruction.declaration;
|
|
167
|
+
if (!declaration) {
|
|
168
|
+
return "";
|
|
169
|
+
}
|
|
170
|
+
const parts = [];
|
|
171
|
+
for (const [key, value] of Object.entries(declaration)) {
|
|
172
|
+
if (value === null || value === undefined || key === "registerIndex") {
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (typeof value === "object") {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
parts.push(`${key}=${value}`);
|
|
179
|
+
}
|
|
180
|
+
return parts.length ? ` ; ${parts.join(" ")}` : "";
|
|
181
|
+
}
|
|
182
|
+
const OPENS_BLOCK = new Set(["if", "else", "loop", "switch", "case", "default"]);
|
|
183
|
+
const CLOSES_BLOCK = new Set(["endif", "else", "endloop", "endswitch", "case", "default"]);
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Disassembles a decoded DXBC instruction stream to assembly text.
|
|
187
|
+
*
|
|
188
|
+
* Accepts either the raw decoder (`emit: "raw"` gives `result.decoder`) or the
|
|
189
|
+
* JSON form of the same record, because the two share field names.
|
|
190
|
+
*
|
|
191
|
+
* @param {object} decoder Decoder record with an `instructions` array.
|
|
192
|
+
* @param {object} [options] Listing options.
|
|
193
|
+
* @param {boolean} [options.declarations] Include declarations. Default true.
|
|
194
|
+
* @param {boolean} [options.numbers] Prefix executable instructions with their
|
|
195
|
+
* index. Default true. The numbering counts executable instructions only,
|
|
196
|
+
* so it matches the order a translation walks them in.
|
|
197
|
+
* @param {boolean} [options.indent] Indent control-flow bodies. Default true.
|
|
198
|
+
* @returns {string} Assembly listing.
|
|
199
|
+
*/
|
|
200
|
+
function disassembleInstructions(decoder, options = {}) {
|
|
201
|
+
const instructions = decoder?.instructions ?? [];
|
|
202
|
+
const showDeclarations = options.declarations !== false;
|
|
203
|
+
const showNumbers = options.numbers !== false;
|
|
204
|
+
const indentBodies = options.indent !== false;
|
|
205
|
+
const lines = [];
|
|
206
|
+
let index = 0;
|
|
207
|
+
let depth = 0;
|
|
208
|
+
for (const instruction of instructions) {
|
|
209
|
+
const name = instruction.opcodeName ?? `opcode_${instruction.opcode}`;
|
|
210
|
+
if (instruction.isDeclaration) {
|
|
211
|
+
if (showDeclarations) {
|
|
212
|
+
const operands = (instruction.operands ?? []).map(formatOperand).join(", ");
|
|
213
|
+
lines.push(`${" ".repeat(showNumbers ? 6 : 0)}${name}${operands ? ` ${operands}` : ""}` + formatDeclarationDetail(instruction));
|
|
214
|
+
}
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
if (instruction.customData) {
|
|
218
|
+
const className = instruction.customData.dataClassName ?? "custom_data";
|
|
219
|
+
lines.push(`${" ".repeat(showNumbers ? 6 : 0)}${className}`);
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (indentBodies && CLOSES_BLOCK.has(name)) {
|
|
223
|
+
depth = Math.max(0, depth - 1);
|
|
224
|
+
}
|
|
225
|
+
const operands = (instruction.operands ?? []).map(formatOperand).join(", ");
|
|
226
|
+
const modifiers = instruction.saturate ? "_sat" : "";
|
|
227
|
+
const precise = instruction.preciseMask ? ` {precise ${instruction.preciseMask}}` : "";
|
|
228
|
+
const prefix = showNumbers ? `${String(index).padStart(4)}: ` : "";
|
|
229
|
+
const pad = indentBodies ? " ".repeat(depth) : "";
|
|
230
|
+
lines.push(`${prefix}${pad}${name}${modifiers}${operands ? ` ${operands}` : ""}${precise}`);
|
|
231
|
+
index++;
|
|
232
|
+
if (indentBodies && OPENS_BLOCK.has(name)) {
|
|
233
|
+
depth++;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return lines.join("\n");
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export { disassembleInstructions, formatOperand };
|
|
240
|
+
//# sourceMappingURL=disassemble.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disassemble.js","sources":["../../../../../src/formats/dxbc/core/disassemble.js"],"sourcesContent":["/**\n * Text disassembly of a decoded DXBC token stream.\n *\n * A translated shader can only be judged against what the bytecode actually\n * says. Reading the emitted GLSL or WGSL beside the original HLSL proves\n * nothing, because the compiler that produced the bytecode already rewrote the\n * program; and the emitters cannot be their own oracle. This module turns the\n * decoder's instruction records back into assembly text so a translation can be\n * checked instruction by instruction against its own input.\n *\n * The output follows Microsoft's shader-assembly conventions closely enough to\n * read beside published DXBC listings, but it is a rendering of this decoder's\n * records, not a reimplementation of any disassembler. Every field printed here\n * comes from `DxbcInstructionDecoder`.\n */\n\nconst OPERAND_PREFIXES = Object.freeze({\n temp: \"r\",\n input: \"v\",\n output: \"o\",\n indexable_temp: \"x\",\n immediate32: \"l\",\n immediate64: \"d\",\n sampler: \"s\",\n resource: \"t\",\n constant_buffer: \"cb\",\n immediate_constant_buffer: \"icb\",\n label: \"label\",\n uav: \"u\",\n thread_group_shared_memory: \"g\",\n output_depth: \"oDepth\",\n null: \"null\",\n rasterizer: \"rasterizer\",\n output_coverage: \"oMask\",\n input_coverage_mask: \"vCoverage\",\n input_primitive_id: \"vPrim\",\n input_thread_id: \"vThreadID\",\n input_thread_group_id: \"vThreadGroupID\",\n input_thread_id_in_group: \"vThreadIDInGroup\",\n input_thread_id_in_group_flattened: \"vThreadIDInGroupFlattened\",\n input_domain_point: \"vDomain\",\n input_control_point: \"vicp\",\n output_control_point: \"vocp\",\n input_patch_constant: \"vpc\",\n output_depth_greater_equal: \"oDepthGE\",\n output_depth_less_equal: \"oDepthLE\"\n});\n\n/**\n * Registers whose name already stands alone: printing an index would invent a\n * dimension the encoding does not have.\n */\nconst UNINDEXED_OPERANDS = new Set([\n \"null\", \"rasterizer\", \"output_depth\", \"output_depth_greater_equal\",\n \"output_depth_less_equal\", \"output_coverage\", \"input_coverage_mask\",\n \"input_primitive_id\", \"input_thread_id\", \"input_thread_group_id\",\n \"input_thread_id_in_group\", \"input_thread_id_in_group_flattened\",\n \"input_domain_point\"\n]);\n\n/**\n * Formats one immediate component.\n *\n * Integer-typed opcodes carry their operands as the same 32 bits a float\n * opcode would, so both readings are printed when they disagree meaningfully.\n * A bare float is enough when the integer reading is small and matches.\n *\n * @param {object} value Decoded immediate with `uint32` and `float32`.\n * @returns {string} Printable component.\n */\nfunction formatImmediateComponent(value)\n{\n if (!value || typeof value !== \"object\")\n {\n return String(value);\n }\n\n const { uint32, float32 } = value;\n\n if (!Number.isFinite(float32))\n {\n return `0x${(uint32 >>> 0).toString(16).padStart(8, \"0\")}`;\n }\n\n if (Number.isInteger(float32) && Math.abs(float32) < 1e7)\n {\n return float32.toFixed(1);\n }\n\n return String(float32);\n}\n\n/**\n * Formats an operand index chain, including relative (indexed) addressing.\n *\n * @param {object} operand Decoded operand.\n * @returns {string} Printable index chain.\n */\nfunction formatIndices(operand)\n{\n const indices = operand.indices ?? [];\n\n if (!indices.length || UNINDEXED_OPERANDS.has(operand.typeName))\n {\n return \"\";\n }\n\n return indices.map((index) =>\n {\n const literal = index.values?.[0] ?? 0;\n\n if (index.relative)\n {\n // eslint-disable-next-line no-use-before-define\n const inner = formatOperand(index.relative);\n\n return literal ? `[${inner} + ${literal}]` : `[${inner}]`;\n }\n\n return `[${literal}]`;\n }).join(\"\");\n}\n\n/**\n * Formats the component selection suffix for an operand.\n *\n * A masked destination and a swizzled source print differently, and a\n * single-component selection prints as one letter. Getting this wrong is the\n * whole reason a translation review needs the listing, so it is printed\n * exactly as encoded rather than normalized.\n *\n * @param {object} operand Decoded operand.\n * @returns {string} Printable suffix, including the leading dot.\n */\nfunction formatSelection(operand)\n{\n if (operand.selectionModeName === \"mask\")\n {\n return operand.mask ? `.${operand.mask}` : \"\";\n }\n\n if (operand.selectionModeName === \"swizzle\")\n {\n return operand.swizzle ? `.${operand.swizzle}` : \"\";\n }\n\n return operand.selected ? `.${operand.selected}` : \"\";\n}\n\n/**\n * Formats one decoded operand.\n *\n * @param {object} operand Decoded operand.\n * @returns {string} Printable operand.\n */\nexport function formatOperand(operand)\n{\n if (!operand)\n {\n return \"<null>\";\n }\n\n if (operand.typeName === \"immediate32\" || operand.typeName === \"immediate64\")\n {\n const components = (operand.immediateValues ?? []).map(formatImmediateComponent);\n\n return `l(${components.join(\", \")})`;\n }\n\n const prefix = OPERAND_PREFIXES[operand.typeName] ?? operand.typeName;\n let text = `${prefix}${formatIndices(operand)}${formatSelection(operand)}`;\n\n if (operand.minPrecisionName && operand.minPrecisionName !== \"default\")\n {\n text = `${text} {${operand.minPrecisionName}}`;\n }\n\n if (operand.nonUniform)\n {\n text = `${text} {nonuniform}`;\n }\n\n switch (operand.modifierName)\n {\n case \"neg\":\n return `-${text}`;\n\n case \"abs\":\n return `|${text}|`;\n\n case \"absneg\":\n return `-|${text}|`;\n\n default:\n return text;\n }\n}\n\n/**\n * Formats the trailing detail a declaration carries outside its operands.\n *\n * @param {object} instruction Decoded declaration instruction.\n * @returns {string} Printable suffix, or an empty string.\n */\nfunction formatDeclarationDetail(instruction)\n{\n const declaration = instruction.declaration;\n\n if (!declaration)\n {\n return \"\";\n }\n\n const parts = [];\n\n for (const [ key, value ] of Object.entries(declaration))\n {\n if (value === null || value === undefined || key === \"registerIndex\")\n {\n continue;\n }\n\n if (typeof value === \"object\")\n {\n continue;\n }\n\n parts.push(`${key}=${value}`);\n }\n\n return parts.length ? ` ; ${parts.join(\" \")}` : \"\";\n}\n\nconst OPENS_BLOCK = new Set([ \"if\", \"else\", \"loop\", \"switch\", \"case\", \"default\" ]);\nconst CLOSES_BLOCK = new Set([ \"endif\", \"else\", \"endloop\", \"endswitch\", \"case\", \"default\" ]);\n\n/**\n * Disassembles a decoded DXBC instruction stream to assembly text.\n *\n * Accepts either the raw decoder (`emit: \"raw\"` gives `result.decoder`) or the\n * JSON form of the same record, because the two share field names.\n *\n * @param {object} decoder Decoder record with an `instructions` array.\n * @param {object} [options] Listing options.\n * @param {boolean} [options.declarations] Include declarations. Default true.\n * @param {boolean} [options.numbers] Prefix executable instructions with their\n * index. Default true. The numbering counts executable instructions only,\n * so it matches the order a translation walks them in.\n * @param {boolean} [options.indent] Indent control-flow bodies. Default true.\n * @returns {string} Assembly listing.\n */\nexport function disassembleInstructions(decoder, options = {})\n{\n const instructions = decoder?.instructions ?? [];\n const showDeclarations = options.declarations !== false;\n const showNumbers = options.numbers !== false;\n const indentBodies = options.indent !== false;\n const lines = [];\n let index = 0;\n let depth = 0;\n\n for (const instruction of instructions)\n {\n const name = instruction.opcodeName ?? `opcode_${instruction.opcode}`;\n\n if (instruction.isDeclaration)\n {\n if (showDeclarations)\n {\n const operands = (instruction.operands ?? []).map(formatOperand).join(\", \");\n\n lines.push(`${\" \".repeat(showNumbers ? 6 : 0)}${name}${operands ? ` ${operands}` : \"\"}`\n + formatDeclarationDetail(instruction));\n }\n\n continue;\n }\n\n if (instruction.customData)\n {\n const className = instruction.customData.dataClassName ?? \"custom_data\";\n\n lines.push(`${\" \".repeat(showNumbers ? 6 : 0)}${className}`);\n continue;\n }\n\n if (indentBodies && CLOSES_BLOCK.has(name))\n {\n depth = Math.max(0, depth - 1);\n }\n\n const operands = (instruction.operands ?? []).map(formatOperand).join(\", \");\n const modifiers = instruction.saturate ? \"_sat\" : \"\";\n const precise = instruction.preciseMask ? ` {precise ${instruction.preciseMask}}` : \"\";\n const prefix = showNumbers ? `${String(index).padStart(4)}: ` : \"\";\n const pad = indentBodies ? \" \".repeat(depth) : \"\";\n\n lines.push(`${prefix}${pad}${name}${modifiers}${operands ? ` ${operands}` : \"\"}${precise}`);\n index++;\n\n if (indentBodies && OPENS_BLOCK.has(name))\n {\n depth++;\n }\n }\n\n return lines.join(\"\\n\");\n}\n\nexport default disassembleInstructions;\n"],"names":["OPERAND_PREFIXES","Object","freeze","temp","input","output","indexable_temp","immediate32","immediate64","sampler","resource","constant_buffer","immediate_constant_buffer","label","uav","thread_group_shared_memory","output_depth","null","rasterizer","output_coverage","input_coverage_mask","input_primitive_id","input_thread_id","input_thread_group_id","input_thread_id_in_group","input_thread_id_in_group_flattened","input_domain_point","input_control_point","output_control_point","input_patch_constant","output_depth_greater_equal","output_depth_less_equal","UNINDEXED_OPERANDS","Set","formatImmediateComponent","value","String","uint32","float32","Number","isFinite","toString","padStart","isInteger","Math","abs","toFixed","formatIndices","operand","indices","length","has","typeName","map","index","literal","values","relative","inner","formatOperand","join","formatSelection","selectionModeName","mask","swizzle","selected","components","immediateValues","prefix","text","minPrecisionName","nonUniform","modifierName","formatDeclarationDetail","instruction","declaration","parts","key","entries","undefined","push","OPENS_BLOCK","CLOSES_BLOCK","disassembleInstructions","decoder","options","instructions","showDeclarations","declarations","showNumbers","numbers","indentBodies","indent","lines","depth","name","opcodeName","opcode","isDeclaration","operands","repeat","customData","className","dataClassName","max","modifiers","saturate","precise","preciseMask","pad"],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Error raised when DirectX shader bytecode cannot be decoded safely.
|
|
3
|
-
*/
|
|
4
|
-
class DxbcReadError extends Error {
|
|
5
|
-
/**
|
|
6
|
-
* Creates a bytecode-read error with structured location details.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} message Human-readable failure reason.
|
|
9
|
-
* @param {object} [details] Extra reader state such as source, offset, or size.
|
|
10
|
-
*/
|
|
11
|
-
constructor(message, details = {}) {
|
|
12
|
-
super(message);
|
|
13
|
-
this.name = "DxbcReadError";
|
|
14
|
-
this.details = details;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { DxbcReadError };
|
|
19
|
-
//# sourceMappingURL=errors.js.map
|
|
1
|
+
/**
|
|
2
|
+
* Error raised when DirectX shader bytecode cannot be decoded safely.
|
|
3
|
+
*/
|
|
4
|
+
class DxbcReadError extends Error {
|
|
5
|
+
/**
|
|
6
|
+
* Creates a bytecode-read error with structured location details.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} message Human-readable failure reason.
|
|
9
|
+
* @param {object} [details] Extra reader state such as source, offset, or size.
|
|
10
|
+
*/
|
|
11
|
+
constructor(message, details = {}) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.name = "DxbcReadError";
|
|
14
|
+
this.details = details;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { DxbcReadError };
|
|
19
|
+
//# sourceMappingURL=errors.js.map
|