@carbonenginejs/runtime-resource 0.12.2 → 0.13.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 -108
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3494
- package/dist/CjsResMan.js.map +1 -1
- 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 +408 -361
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -0
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js.map +1 -0
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -427
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -955
- package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -0
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -0
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -0
- package/dist/format/effect/effectBodyInventory.js.map +1 -0
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- package/dist/format/effect/effectPermutationGraph.js.map +1 -1
- 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 -292
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- 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 -156
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/busNodes.js +252 -0
- package/dist/formats/bnk/core/busNodes.js.map +1 -0
- package/dist/formats/bnk/core/effectNodes.js +147 -0
- package/dist/formats/bnk/core/effectNodes.js.map +1 -0
- package/dist/formats/bnk/core/eventAction.js +416 -305
- package/dist/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/formats/bnk/core/globalSettings.js +215 -0
- package/dist/formats/bnk/core/globalSettings.js.map +1 -0
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -480
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +533 -509
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/nodeBase.js +553 -532
- package/dist/formats/bnk/core/nodeBase.js.map +1 -1
- 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 +862 -862
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -142
- 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/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 +290 -290
- package/dist/formats/gltf/core/helpers.js +307 -307
- 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 +254 -254
- 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 -781
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -0
- package/dist/formats/hlsl/core/detailMapFamily.js.map +1 -0
- 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 -0
- package/dist/formats/hlsl/core/localLightFamily.js.map +1 -0
- 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 -314
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -742
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -1
- 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 -31
- package/dist/formats/index.js.map +1 -1
- 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 +253 -253
- package/dist/formats/obj/core/helpers.js +573 -573
- 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 -0
- package/dist/formats/pickle/CjsPickleFormat.js.map +1 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -0
- package/dist/formats/pickle/index.js +2 -0
- package/dist/formats/pickle/index.js.map +1 -0
- 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 -68
- package/dist/formats/red/core/redGraph.js.map +1 -1
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -365
- package/dist/formats/stl/core/helpers.js +261 -261
- 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 -221
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -0
- package/dist/formats/webgl/core/buildGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +900 -792
- package/dist/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/errors.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2678
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -428
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -0
- package/dist/formats/webgl/core/glsl/packedLightFixups.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -0
- package/dist/formats/webgl/core/glslBackendBlock.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js.map +1 -0
- package/dist/formats/webgl/core/{cewgCompleteness.js → glslEffectCompleteness.js} +85 -81
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +167 -306
- package/dist/formats/webgl/core/helpers.js.map +1 -1
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -0
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js +303 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -197
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -1
- package/dist/formats/webgpu/core/{cewgpu/CewgpuContainer.js → carbonWebgpu/CarbonWebgpuContainer.js} +354 -368
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +289 -289
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/errors.js.map +1 -1
- package/dist/formats/webgpu/core/helpers.js +443 -443
- package/dist/formats/webgpu/core/helpers.js.map +1 -1
- 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 -385
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -1
- 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/buildResourceTransformPlan.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +320 -320
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- 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/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +400 -402
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +196 -170
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -62
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsLoadingObject.js +19 -0
- package/dist/resource/CjsLoadingObject.js.map +1 -0
- package/dist/resource/CjsResource.js +801 -797
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/ResourceHandlerMode.js +14 -0
- package/dist/resource/ResourceHandlerMode.js.map +1 -0
- 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 -52
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -431
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- 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 -261
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -135
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -109
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -147
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -105
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -86
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -241
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -68
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -111
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -0
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -0
- package/dist/resource/shader/reflection/shaderStage.js +22 -0
- package/dist/resource/shader/reflection/shaderStage.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -77
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- 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 -87
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/worker/CjsResManWorker.js +218 -217
- package/dist/worker/CjsResManWorker.js.map +1 -1
- package/dist/worker/CjsResManWorkerLoader.js +437 -434
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -109
- package/docs/concepts/resource-lifecycle.md +226 -225
- package/docs/concepts/shader-resource-model.md +111 -114
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -136
- package/docs/formats/carbon-effect-container.md +553 -452
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +77 -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 +65 -67
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -62
- package/docs/formats/hlsl/guides/reading-effects.md +64 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -66
- package/docs/formats/hlsl/reference/api.md +92 -98
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -100
- package/docs/formats/pickle.md +82 -0
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -57
- package/docs/formats/webgl/architecture.md +69 -70
- 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 -871
- 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 -96
- package/docs/formats/webgpu/formats/{cewgpu.md → carbon-webgpu.md} +215 -216
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -191
- package/docs/formats/webgpu/reference/api.md +196 -197
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1543
- package/docs/formats/wwise.md +146 -85
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -206
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -952
- 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 -110
- 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 -135
- 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
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +0 -372
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +0 -1
- package/dist/format/effect/effectReflectionPackage.js +0 -636
- package/dist/format/effect/effectReflectionPackage.js.map +0 -1
- package/dist/formats/hlsl/core/HlslReader.js +0 -16
- package/dist/formats/hlsl/core/HlslReader.js.map +0 -1
- package/dist/formats/hlsl/core/portableReflection.js +0 -848
- package/dist/formats/hlsl/core/portableReflection.js.map +0 -1
- package/dist/formats/hlsl/portable.js +0 -2
- package/dist/formats/hlsl/portable.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackage.js +0 -340
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +0 -104
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +0 -1
- package/dist/formats/webgl/core/cewg/binary.js +0 -19
- package/dist/formats/webgl/core/cewg/binary.js.map +0 -1
- package/dist/formats/webgl/core/cewgCompleteness.js.map +0 -1
- package/dist/formats/webgl/core/effectPackageValidation.js +0 -331
- package/dist/formats/webgl/core/effectPackageValidation.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +0 -1
- package/dist/resource/shader/portable.js +0 -33
- package/dist/resource/shader/portable.js.map +0 -1
- package/docs/formats/hlsl/reference/portable-reflection.md +0 -141
- package/docs/formats/webgl/effect-reflection.md +0 -127
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
# WebGPU format documentation
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/webgpu`
|
|
5
|
-
Audience: Shader-tool authors, engine integrators, and maintainers
|
|
6
|
-
Summary: Explains the Carbon-record
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
`@carbonenginejs/runtime-resource/formats/webgpu` reads and builds WebGPU
|
|
11
|
-
effect containers and converts supported compiled-effect stages into WGSL. It
|
|
12
|
-
owns effect analysis, DXBC-to-intermediate-representation lowering, WGSL
|
|
13
|
-
emission, pass-global binding planning, and the WebGPU backend block carried by
|
|
14
|
-
Carbon version-15 records.
|
|
15
|
-
|
|
16
|
-
Unsupported requested shader semantics fail explicitly instead of producing a
|
|
17
|
-
partially translated selected pass. `BuildEffect` preserves every permutation
|
|
18
|
-
row and representable non-program description/reflection fields in the Carbon
|
|
19
|
-
container. Non-dynamic sampler names are unrecoverable and stage order is
|
|
20
|
-
canonicalized. Source-stage DXBC is replaced by WGSL or an empty program slot.
|
|
21
|
-
Selected mode writes WGSL only for the resolved body's requested passes; all
|
|
22
|
-
mode attempts every distinct body after the resolved body passes the initial
|
|
23
|
-
translation gate. Backend and runtime completeness remain broader gates.
|
|
24
|
-
|
|
25
|
-
## Use this package when
|
|
26
|
-
|
|
27
|
-
Use the WebGPU format subpath when you need to:
|
|
28
|
-
|
|
29
|
-
- inspect or build a `.
|
|
30
|
-
- analyze caller-supplied compiled effect bytes;
|
|
31
|
-
- lower supported DXBC vertex and fragment programs to WGSL;
|
|
32
|
-
- build one collision-free WebGPU binding layout across a complete pass; or
|
|
33
|
-
- translate selected or all distinct version-15 effect bodies while preserving
|
|
34
|
-
permutation topology and representable non-program reflection fields.
|
|
35
|
-
|
|
36
|
-
Use `@carbonenginejs/runtime-resource/formats/hlsl` directly for effect metadata without WGSL
|
|
37
|
-
conversion, and `@carbonenginejs/runtime-resource/formats/dxbc` directly for standalone DXBC
|
|
38
|
-
inspection. GPU device, shader-module, bind-group, and pipeline realization
|
|
39
|
-
belong in `@carbonenginejs/engine-webgpu`.
|
|
40
|
-
|
|
41
|
-
## Where it fits
|
|
42
|
-
|
|
43
|
-
```text
|
|
44
|
-
compiled effect bytes
|
|
45
|
-
|
|
|
46
|
-
+---- formats/hlsl ---- effect and binding metadata
|
|
47
|
-
|
|
|
48
|
-
+---- formats/dxbc ---- decoded shader programs
|
|
49
|
-
| |
|
|
50
|
-
+------------------------------+
|
|
51
|
-
|
|
|
52
|
-
v
|
|
53
|
-
formats/webgpu
|
|
54
|
-
analysis + WGSL + Carbon records
|
|
55
|
-
|
|
|
56
|
-
v
|
|
57
|
-
engine-webgpu
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
The package is browser-safe at its public source boundary. Repository-only
|
|
61
|
-
commands may adapt filesystem input for development, but the core conversion
|
|
62
|
-
path accepts bytes and does not depend on Node filesystem APIs or native
|
|
63
|
-
executables.
|
|
64
|
-
|
|
65
|
-
## Start here
|
|
66
|
-
|
|
67
|
-
```js
|
|
68
|
-
import { CjsWebgpuFormat } from "@carbonenginejs/runtime-resource/formats/webgpu";
|
|
69
|
-
|
|
70
|
-
const summary = CjsWebgpuFormat.inspect(packageBytes);
|
|
71
|
-
const packageData = CjsWebgpuFormat.read(packageBytes);
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
For compiled-effect conversion, continue with the
|
|
75
|
-
[effect packaging guide](guides/effect-packaging.md).
|
|
76
|
-
|
|
77
|
-
## Documentation map
|
|
78
|
-
|
|
79
|
-
- [Architecture and boundaries](architecture.md)
|
|
80
|
-
- [Effect packaging guide](guides/effect-packaging.md)
|
|
81
|
-
- [Public API reference](reference/api.md)
|
|
82
|
-
- [
|
|
83
|
-
- [WGSL compatibility](reference/wgsl-compatibility.md)
|
|
84
|
-
- [Class-purpose catalog](reference/classes/README.md)
|
|
1
|
+
# WebGPU format documentation
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/webgpu`
|
|
5
|
+
Audience: Shader-tool authors, engine integrators, and maintainers
|
|
6
|
+
Summary: Explains the Carbon-record Carbon WebGPU format, compiled-effect conversion API, and bounded DXBC-to-WGSL compiler.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
`@carbonenginejs/runtime-resource/formats/webgpu` reads and builds WebGPU
|
|
11
|
+
effect containers and converts supported compiled-effect stages into WGSL. It
|
|
12
|
+
owns effect analysis, DXBC-to-intermediate-representation lowering, WGSL
|
|
13
|
+
emission, pass-global binding planning, and the WebGPU backend block carried by
|
|
14
|
+
Carbon version-15 records.
|
|
15
|
+
|
|
16
|
+
Unsupported requested shader semantics fail explicitly instead of producing a
|
|
17
|
+
partially translated selected pass. `BuildEffect` preserves every permutation
|
|
18
|
+
row and representable non-program description/reflection fields in the Carbon
|
|
19
|
+
container. Non-dynamic sampler names are unrecoverable and stage order is
|
|
20
|
+
canonicalized. Source-stage DXBC is replaced by WGSL or an empty program slot.
|
|
21
|
+
Selected mode writes WGSL only for the resolved body's requested passes; all
|
|
22
|
+
mode attempts every distinct body after the resolved body passes the initial
|
|
23
|
+
translation gate. Backend and runtime completeness remain broader gates.
|
|
24
|
+
|
|
25
|
+
## Use this package when
|
|
26
|
+
|
|
27
|
+
Use the WebGPU format subpath when you need to:
|
|
28
|
+
|
|
29
|
+
- inspect or build a `.carbonwebgpu` package;
|
|
30
|
+
- analyze caller-supplied compiled effect bytes;
|
|
31
|
+
- lower supported DXBC vertex and fragment programs to WGSL;
|
|
32
|
+
- build one collision-free WebGPU binding layout across a complete pass; or
|
|
33
|
+
- translate selected or all distinct version-15 effect bodies while preserving
|
|
34
|
+
permutation topology and representable non-program reflection fields.
|
|
35
|
+
|
|
36
|
+
Use `@carbonenginejs/runtime-resource/formats/hlsl` directly for effect metadata without WGSL
|
|
37
|
+
conversion, and `@carbonenginejs/runtime-resource/formats/dxbc` directly for standalone DXBC
|
|
38
|
+
inspection. GPU device, shader-module, bind-group, and pipeline realization
|
|
39
|
+
belong in `@carbonenginejs/engine-webgpu`.
|
|
40
|
+
|
|
41
|
+
## Where it fits
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
compiled effect bytes
|
|
45
|
+
|
|
|
46
|
+
+---- formats/hlsl ---- effect and binding metadata
|
|
47
|
+
|
|
|
48
|
+
+---- formats/dxbc ---- decoded shader programs
|
|
49
|
+
| |
|
|
50
|
+
+------------------------------+
|
|
51
|
+
|
|
|
52
|
+
v
|
|
53
|
+
formats/webgpu
|
|
54
|
+
analysis + WGSL + Carbon records
|
|
55
|
+
|
|
|
56
|
+
v
|
|
57
|
+
engine-webgpu
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The package is browser-safe at its public source boundary. Repository-only
|
|
61
|
+
commands may adapt filesystem input for development, but the core conversion
|
|
62
|
+
path accepts bytes and does not depend on Node filesystem APIs or native
|
|
63
|
+
executables.
|
|
64
|
+
|
|
65
|
+
## Start here
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
import { CjsWebgpuFormat } from "@carbonenginejs/runtime-resource/formats/webgpu";
|
|
69
|
+
|
|
70
|
+
const summary = CjsWebgpuFormat.inspect(packageBytes);
|
|
71
|
+
const packageData = CjsWebgpuFormat.read(packageBytes);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
For compiled-effect conversion, continue with the
|
|
75
|
+
[effect packaging guide](guides/effect-packaging.md).
|
|
76
|
+
|
|
77
|
+
## Documentation map
|
|
78
|
+
|
|
79
|
+
- [Architecture and boundaries](architecture.md)
|
|
80
|
+
- [Effect packaging guide](guides/effect-packaging.md)
|
|
81
|
+
- [Public API reference](reference/api.md)
|
|
82
|
+
- [Carbon WebGPU package format](formats/carbon-webgpu.md)
|
|
83
|
+
- [WGSL compatibility](reference/wgsl-compatibility.md)
|
|
84
|
+
- [Class-purpose catalog](reference/classes/README.md)
|
|
@@ -1,96 +1,95 @@
|
|
|
1
|
-
# Architecture and boundaries
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/webgpu`
|
|
5
|
-
Audience: Shader-tool authors, engine integrators, and maintainers
|
|
6
|
-
Summary: Defines the package's compiler, container, dependency, and engine boundaries.
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
The WebGPU format subpath is the transformation and package layer between
|
|
11
|
-
compiled Carbon effects and WebGPU engine realization. It converts supported
|
|
12
|
-
shader programs into WGSL and writes Carbon version-15 effect records without
|
|
13
|
-
creating live GPU objects.
|
|
14
|
-
|
|
15
|
-
## Dependency direction
|
|
16
|
-
|
|
17
|
-
```text
|
|
18
|
-
@carbonenginejs/runtime-resource/formats/hlsl
|
|
19
|
-
|
|
|
20
|
-
+---- effect selection and binding metadata
|
|
21
|
-
|
|
|
22
|
-
v
|
|
23
|
-
@carbonenginejs/runtime-resource/formats/webgpu <---- @carbonenginejs/runtime-resource/formats/dxbc
|
|
24
|
-
| decoded DXBC
|
|
25
|
-
|
|
|
26
|
-
+----
|
|
27
|
-
|
|
|
28
|
-
v
|
|
29
|
-
@carbonenginejs/engine-webgpu
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Node build tools may call the public byte-oriented API, but the format package
|
|
33
|
-
does not import the toolchain. Dependency direction remains tools to formats,
|
|
34
|
-
then package data to the engine.
|
|
35
|
-
|
|
36
|
-
## Owned responsibilities
|
|
37
|
-
|
|
38
|
-
- Reading, inspecting, and building Carbon-record
|
|
39
|
-
- Resolving one compiled-effect permutation and complete pass.
|
|
40
|
-
- Preserving every source permutation row and representable non-program
|
|
41
|
-
description field; non-dynamic sampler names are unrecoverable and stage
|
|
42
|
-
order is canonicalized.
|
|
43
|
-
Stored-body identity is exact emitted-description-byte identity; it does not
|
|
44
|
-
promise to retain the source alias partition after programs are replaced.
|
|
45
|
-
- Writing WGSL to program slots and bind-group/transform data to the optional
|
|
46
|
-
per-pass backend block.
|
|
47
|
-
- Normalizing effect, stage, binding, and decoded DXBC analysis.
|
|
48
|
-
- Building validated shader intermediate representation and structured control
|
|
49
|
-
flow.
|
|
50
|
-
- Lowering the supported vertex and fragment profiles to WGSL.
|
|
51
|
-
- Allocating a pass-global binding plan with explicit stage scope.
|
|
52
|
-
- Assembling emitted shaders and layouts into a portable WGSL set.
|
|
53
|
-
- Rejecting unsupported or ambiguous semantics with explicit diagnostics.
|
|
54
|
-
|
|
55
|
-
## Ownership elsewhere
|
|
56
|
-
|
|
57
|
-
- `@carbonenginejs/runtime-resource/formats/hlsl` owns compiled-effect parsing, permutation resolution,
|
|
58
|
-
unique-body enumeration, binding-manifest interpretation
|
|
59
|
-
|
|
60
|
-
- `@carbonenginejs/
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
- `
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
The
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
- [
|
|
95
|
-
- [
|
|
96
|
-
- [Public API reference](reference/api.md)
|
|
1
|
+
# Architecture and boundaries
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/webgpu`
|
|
5
|
+
Audience: Shader-tool authors, engine integrators, and maintainers
|
|
6
|
+
Summary: Defines the package's compiler, container, dependency, and engine boundaries.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
The WebGPU format subpath is the transformation and package layer between
|
|
11
|
+
compiled Carbon effects and WebGPU engine realization. It converts supported
|
|
12
|
+
shader programs into WGSL and writes Carbon version-15 effect records without
|
|
13
|
+
creating live GPU objects.
|
|
14
|
+
|
|
15
|
+
## Dependency direction
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
@carbonenginejs/runtime-resource/formats/hlsl
|
|
19
|
+
|
|
|
20
|
+
+---- effect selection and binding metadata
|
|
21
|
+
|
|
|
22
|
+
v
|
|
23
|
+
@carbonenginejs/runtime-resource/formats/webgpu <---- @carbonenginejs/runtime-resource/formats/dxbc
|
|
24
|
+
| decoded DXBC
|
|
25
|
+
|
|
|
26
|
+
+---- Carbon WebGPU bytes, analysis, WGSL, canonical layouts
|
|
27
|
+
|
|
|
28
|
+
v
|
|
29
|
+
@carbonenginejs/engine-webgpu
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Node build tools may call the public byte-oriented API, but the format package
|
|
33
|
+
does not import the toolchain. Dependency direction remains tools to formats,
|
|
34
|
+
then package data to the engine.
|
|
35
|
+
|
|
36
|
+
## Owned responsibilities
|
|
37
|
+
|
|
38
|
+
- Reading, inspecting, and building Carbon-record Carbon WebGPU containers.
|
|
39
|
+
- Resolving one compiled-effect permutation and complete pass.
|
|
40
|
+
- Preserving every source permutation row and representable non-program
|
|
41
|
+
description field; non-dynamic sampler names are unrecoverable and stage
|
|
42
|
+
order is canonicalized.
|
|
43
|
+
Stored-body identity is exact emitted-description-byte identity; it does not
|
|
44
|
+
promise to retain the source alias partition after programs are replaced.
|
|
45
|
+
- Writing WGSL to program slots and bind-group/transform data to the optional
|
|
46
|
+
per-pass backend block.
|
|
47
|
+
- Normalizing effect, stage, binding, and decoded DXBC analysis.
|
|
48
|
+
- Building validated shader intermediate representation and structured control
|
|
49
|
+
flow.
|
|
50
|
+
- Lowering the supported vertex and fragment profiles to WGSL.
|
|
51
|
+
- Allocating a pass-global binding plan with explicit stage scope.
|
|
52
|
+
- Assembling emitted shaders and layouts into a portable WGSL set.
|
|
53
|
+
- Rejecting unsupported or ambiguous semantics with explicit diagnostics.
|
|
54
|
+
|
|
55
|
+
## Ownership elsewhere
|
|
56
|
+
|
|
57
|
+
- `@carbonenginejs/runtime-resource/formats/hlsl` owns compiled-effect parsing, permutation resolution,
|
|
58
|
+
unique-body enumeration, and binding-manifest interpretation.
|
|
59
|
+
- `@carbonenginejs/runtime-resource/formats/dxbc` owns DXBC container and instruction decoding.
|
|
60
|
+
- `@carbonenginejs/engine-webgpu` owns `GPUDevice`, shader-module compilation, bind groups,
|
|
61
|
+
pipelines, resource realization, device loss, and draw execution.
|
|
62
|
+
- Node tooling owns indexed input acquisition, filesystem adapters, caching,
|
|
63
|
+
build reports, and optional native comparison.
|
|
64
|
+
- `runtime-resource` owns effect-resource lifecycle, permutation selection,
|
|
65
|
+
canonical device-free `Tr2Shader` hydration, and shader caching.
|
|
66
|
+
- `runtime-trinity` owns authored effect/material facades, parameters, options,
|
|
67
|
+
sampler overrides, and scene references.
|
|
68
|
+
|
|
69
|
+
## Browser and Node boundary
|
|
70
|
+
|
|
71
|
+
The public class accepts `ArrayBuffer`, typed-array, and compatible byte views.
|
|
72
|
+
Its source does not read files, inspect processes, or invoke native programs.
|
|
73
|
+
This allows applications to fetch or select bytes and build Carbon WebGPU data in a
|
|
74
|
+
browser.
|
|
75
|
+
|
|
76
|
+
The repository's command-line scripts are development adapters over the same
|
|
77
|
+
public operations. They are not a second compiler contract.
|
|
78
|
+
|
|
79
|
+
## Shader target
|
|
80
|
+
|
|
81
|
+
The general translation target is DX11 SM5.0 vertex and fragment bytecode.
|
|
82
|
+
The compiler also admits a finite, frozen set of exact bounded compute
|
|
83
|
+
profiles. DX12 SM5.1 input is useful for differential analysis where
|
|
84
|
+
supported, but DX12-only bindless resource ranges are not part of the current
|
|
85
|
+
translation target.
|
|
86
|
+
|
|
87
|
+
Geometry, hull, and domain stages, plus compute programs outside the admitted
|
|
88
|
+
profiles, are not emitted. The exact supported and adapted boundaries are
|
|
89
|
+
listed in [WGSL compatibility](reference/wgsl-compatibility.md).
|
|
90
|
+
|
|
91
|
+
## Related documentation
|
|
92
|
+
|
|
93
|
+
- [Package documentation](README.md)
|
|
94
|
+
- [Carbon WebGPU package format](formats/carbon-webgpu.md)
|
|
95
|
+
- [Public API reference](reference/api.md)
|