@babylonjs/core 6.33.1 → 6.34.0-alpha.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/Animations/animation.js +1 -1
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.js +2 -2
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationGroupMask.d.ts +4 -0
- package/Animations/animationGroupMask.js +4 -0
- package/Animations/animationGroupMask.js.map +1 -1
- package/Buffers/storageBuffer.d.ts +2 -1
- package/Buffers/storageBuffer.js +3 -2
- package/Buffers/storageBuffer.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +12 -9
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +28 -9
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/arcRotateCamera.js +1 -1
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/followCameraInputsManager.js +2 -1
- package/Cameras/followCameraInputsManager.js.map +1 -1
- package/Compute/computeShader.d.ts +5 -0
- package/Compute/computeShader.js +42 -32
- package/Compute/computeShader.js.map +1 -1
- package/Debug/skeletonViewer.js +2 -1
- package/Debug/skeletonViewer.js.map +1 -1
- package/Engines/Extensions/engine.alpha.js +8 -116
- package/Engines/Extensions/engine.alpha.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
- package/Engines/Extensions/engine.cubeTexture.js +11 -213
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.dynamicBuffer.js +5 -42
- package/Engines/Extensions/engine.dynamicBuffer.js.map +1 -1
- package/Engines/Extensions/engine.dynamicTexture.d.ts +1 -1
- package/Engines/Extensions/engine.dynamicTexture.js +5 -47
- package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.js +11 -341
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +6 -57
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +8 -2
- package/Engines/Extensions/engine.query.js +44 -152
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.rawTexture.d.ts +1 -1
- package/Engines/Extensions/engine.rawTexture.js +20 -361
- package/Engines/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/Extensions/engine.readTexture.js +6 -112
- package/Engines/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
- package/Engines/Extensions/engine.renderTarget.js +8 -173
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.renderTargetCube.js +4 -55
- package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
- package/Engines/Extensions/engine.storageBuffer.d.ts +2 -1
- package/Engines/Extensions/engine.storageBuffer.js.map +1 -1
- package/Engines/Extensions/engine.textureSelector.js +11 -52
- package/Engines/Extensions/engine.textureSelector.js.map +1 -1
- package/Engines/Extensions/engine.transformFeedback.js +10 -11
- package/Engines/Extensions/engine.transformFeedback.js.map +1 -1
- package/Engines/Extensions/engine.uniformBuffer.js +9 -59
- package/Engines/Extensions/engine.uniformBuffer.js.map +1 -1
- package/Engines/Extensions/engine.videoTexture.js +4 -54
- package/Engines/Extensions/engine.videoTexture.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +2 -24
- package/Engines/Extensions/engine.views.js +17 -136
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Processors/shaderCodeInliner.js +15 -14
- package/Engines/Processors/shaderCodeInliner.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js +7 -4
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js +14 -5
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +2 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +3 -2
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/engine.d.ts +31 -74
- package/Engines/engine.js +322 -773
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -1
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +1 -1
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +160 -151
- package/Engines/thinEngine.js +712 -3280
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +5 -8
- package/Engines/webgpuEngine.js +143 -112
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.d.ts +296 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js +758 -0
- package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js.map +1 -0
- package/FlowGraph/Blocks/Data/Math/index.d.ts +1 -5
- package/FlowGraph/Blocks/Data/Math/index.js +1 -5
- package/FlowGraph/Blocks/Data/Math/index.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +3 -3
- package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +3 -3
- package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.d.ts +1 -0
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +5 -0
- package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.d.ts +25 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js +22 -0
- package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.d.ts +11 -5
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +12 -6
- package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.d.ts +19 -0
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js +22 -0
- package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js.map +1 -0
- package/FlowGraph/Blocks/Data/index.d.ts +1 -0
- package/FlowGraph/Blocks/Data/index.js +1 -0
- package/FlowGraph/Blocks/Data/index.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +10 -5
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +15 -5
- package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +1 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +2 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.d.ts +1 -0
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js +3 -2
- package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +3 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +0 -5
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +2 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +3 -3
- package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js +3 -3
- package/FlowGraph/Blocks/Execution/Audio/flowGraphPlayAudioBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js +2 -2
- package/FlowGraph/Blocks/Execution/Audio/flowGraphStopAudioBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +3 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +3 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +13 -5
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +14 -12
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +2 -6
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +3 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.d.ts +16 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js +26 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +3 -3
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.d.ts +1 -6
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +4 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +2 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +4 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +3 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +6 -5
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/index.d.ts +1 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/index.js +1 -0
- package/FlowGraph/Blocks/Execution/ControlFlow/index.js.map +1 -1
- package/FlowGraph/Blocks/Execution/{flowGraphLogBlock.d.ts → flowGraphConsoleLogBlock.d.ts} +3 -2
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +29 -0
- package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -0
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.d.ts +16 -8
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +17 -10
- package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +4 -3
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +7 -6
- package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +12 -7
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +10 -9
- package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/index.d.ts +1 -2
- package/FlowGraph/Blocks/Execution/index.js +1 -3
- package/FlowGraph/Blocks/Execution/index.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +3 -1
- package/FlowGraph/flowGraph.js +6 -2
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphAsyncExecutionBlock.d.ts +6 -2
- package/FlowGraph/flowGraphAsyncExecutionBlock.js +2 -1
- package/FlowGraph/flowGraphAsyncExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphBlock.d.ts +7 -2
- package/FlowGraph/flowGraphBlock.js +21 -19
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphContext.d.ts +9 -5
- package/FlowGraph/flowGraphContext.js +7 -2
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.d.ts +4 -5
- package/FlowGraph/flowGraphCoordinator.js +12 -7
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphEventBlock.js +1 -1
- package/FlowGraph/flowGraphEventBlock.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlock.d.ts +4 -2
- package/FlowGraph/flowGraphExecutionBlock.js +25 -9
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphPath.d.ts +20 -2
- package/FlowGraph/flowGraphPath.js +27 -7
- package/FlowGraph/flowGraphPath.js.map +1 -1
- package/FlowGraph/flowGraphWithOnDoneExecutionBlock.d.ts +3 -3
- package/FlowGraph/flowGraphWithOnDoneExecutionBlock.js +3 -3
- package/FlowGraph/flowGraphWithOnDoneExecutionBlock.js.map +1 -1
- package/FlowGraph/index.d.ts +3 -0
- package/FlowGraph/index.js +3 -0
- package/FlowGraph/index.js.map +1 -1
- package/FlowGraph/serialization.js +20 -6
- package/FlowGraph/serialization.js.map +1 -1
- package/FlowGraph/typeDefinitions.d.ts +33 -0
- package/FlowGraph/typeDefinitions.js +2 -0
- package/FlowGraph/typeDefinitions.js.map +1 -0
- package/Gizmos/axisScaleGizmo.d.ts +1 -0
- package/Gizmos/axisScaleGizmo.js +12 -0
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/lightGizmo.js +2 -1
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/rotationGizmo.js +1 -1
- package/Gizmos/rotationGizmo.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/light.d.ts +15 -0
- package/Lights/light.js +18 -0
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.d.ts +18 -1
- package/Lights/shadowLight.js +34 -1
- package/Lights/shadowLight.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +2 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +3 -2
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +2 -1
- package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +2 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +3 -2
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +2 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +9 -8
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +2 -1
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/drawWrapper.js +3 -2
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.js +2 -1
- package/Materials/effect.js.map +1 -1
- package/Materials/material.js +2 -1
- package/Materials/material.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +4 -1
- package/Materials/uniformBuffer.js +5 -2
- package/Materials/uniformBuffer.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +11 -2
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/abstractMesh.js +3 -1
- package/Meshes/abstractMesh.js.map +1 -1
- package/Misc/assetsManager.js +2 -2
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/dds.d.ts +2 -0
- package/Misc/dds.js +27 -23
- package/Misc/dds.js.map +1 -1
- package/Misc/logger.d.ts +3 -3
- package/Misc/logger.js +8 -4
- package/Misc/logger.js.map +1 -1
- package/Misc/sceneSerializer.js +2 -1
- package/Misc/sceneSerializer.js.map +1 -1
- package/Navigation/Plugins/recastJSPlugin.js +2 -2
- package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.js +1 -1
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/index.d.ts +1 -0
- package/Physics/v2/index.js +1 -0
- package/Physics/v2/index.js.map +1 -1
- package/Physics/v2/ragdoll.d.ts +107 -0
- package/Physics/v2/ragdoll.js +228 -0
- package/Physics/v2/ragdoll.js.map +1 -0
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +2 -2
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +3 -2
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
- package/PostProcesses/index.d.ts +1 -1
- package/PostProcesses/index.js +1 -1
- package/PostProcesses/index.js.map +1 -1
- package/PostProcesses/passPostProcess.d.ts +1 -0
- package/PostProcesses/passPostProcess.js +6 -2
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.js +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.js +3 -2
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/Rendering/depthPeelingRenderer.js +2 -1
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +3 -2
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.js +2 -2
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRMeshDetector.d.ts +14 -2
- package/XR/features/WebXRMeshDetector.js +45 -9
- package/XR/features/WebXRMeshDetector.js.map +1 -1
- package/XR/features/WebXRWalkingLocomotion.js +1 -1
- package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
- package/XR/webXRExperienceHelper.js +2 -2
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/assetContainer.js +2 -2
- package/assetContainer.js.map +1 -1
- package/esm/Engines/Extensions/alpha/alpha.base.d.ts +34 -0
- package/esm/Engines/Extensions/alpha/alpha.base.js +2 -0
- package/esm/Engines/Extensions/alpha/alpha.base.js.map +1 -0
- package/esm/Engines/Extensions/computeShaders/computeShaders.base.d.ts +87 -0
- package/esm/Engines/Extensions/computeShaders/computeShaders.base.js +12 -0
- package/esm/Engines/Extensions/computeShaders/computeShaders.base.js.map +1 -0
- package/esm/Engines/Extensions/cubeTexture/cubeTexture.base.d.ts +79 -0
- package/esm/Engines/Extensions/cubeTexture/cubeTexture.base.js +2 -0
- package/esm/Engines/Extensions/cubeTexture/cubeTexture.base.js.map +1 -0
- package/esm/Engines/Extensions/debugging/debugging.base.d.ts +11 -0
- package/esm/Engines/Extensions/debugging/debugging.base.js +2 -0
- package/esm/Engines/Extensions/debugging/debugging.base.js.map +1 -0
- package/esm/Engines/Extensions/dynamicBuffer/dynamicBuffer.base.d.ts +20 -0
- package/esm/Engines/Extensions/dynamicBuffer/dynamicBuffer.base.js +2 -0
- package/esm/Engines/Extensions/dynamicBuffer/dynamicBuffer.base.js.map +1 -0
- package/esm/Engines/Extensions/dynamicTexture/dynamicTexture.base.d.ts +26 -0
- package/esm/Engines/Extensions/dynamicTexture/dynamicTexture.base.js +2 -0
- package/esm/Engines/Extensions/dynamicTexture/dynamicTexture.base.js.map +1 -0
- package/esm/Engines/Extensions/engine.extensions.d.ts +67 -0
- package/esm/Engines/Extensions/engine.extensions.js +49 -0
- package/esm/Engines/Extensions/engine.extensions.js.map +1 -0
- package/esm/Engines/Extensions/externalTexture/externalTexture.base.d.ts +16 -0
- package/esm/Engines/Extensions/externalTexture/externalTexture.base.js +2 -0
- package/esm/Engines/Extensions/externalTexture/externalTexture.base.js.map +1 -0
- package/esm/Engines/Extensions/multiRender/multiRender.base.d.ts +54 -0
- package/esm/Engines/Extensions/multiRender/multiRender.base.js +2 -0
- package/esm/Engines/Extensions/multiRender/multiRender.base.js.map +1 -0
- package/esm/Engines/Extensions/multiview/multiview.base.d.ts +67 -0
- package/esm/Engines/Extensions/multiview/multiview.base.js +79 -0
- package/esm/Engines/Extensions/multiview/multiview.base.js.map +1 -0
- package/esm/Engines/Extensions/query/query.base.d.ts +164 -0
- package/esm/Engines/Extensions/query/query.base.js +168 -0
- package/esm/Engines/Extensions/query/query.base.js.map +1 -0
- package/esm/Engines/Extensions/rawTexture/engine.rawTexture.base.d.ts +187 -0
- package/esm/Engines/Extensions/rawTexture/engine.rawTexture.base.js +2 -0
- package/esm/Engines/Extensions/rawTexture/engine.rawTexture.base.js.map +1 -0
- package/esm/Engines/Extensions/readTexture/readTexture.base.d.ts +9 -0
- package/esm/Engines/Extensions/readTexture/readTexture.base.js +2 -0
- package/esm/Engines/Extensions/readTexture/readTexture.base.js.map +1 -0
- package/esm/Engines/Extensions/renderTarget/renderTarget.base.d.ts +35 -0
- package/esm/Engines/Extensions/renderTarget/renderTarget.base.js +2 -0
- package/esm/Engines/Extensions/renderTarget/renderTarget.base.js.map +1 -0
- package/esm/Engines/Extensions/renderTargetCube/renderTargetCube.base.d.ts +12 -0
- package/esm/Engines/Extensions/renderTargetCube/renderTargetCube.base.js +2 -0
- package/esm/Engines/Extensions/renderTargetCube/renderTargetCube.base.js.map +1 -0
- package/esm/Engines/Extensions/storageBuffer/storageBuffer.base.d.ts +36 -0
- package/esm/Engines/Extensions/storageBuffer/storageBuffer.base.js +2 -0
- package/esm/Engines/Extensions/storageBuffer/storageBuffer.base.js.map +1 -0
- package/esm/Engines/Extensions/textureSampler/textureSampler.base.d.ts +11 -0
- package/esm/Engines/Extensions/textureSampler/textureSampler.base.js +2 -0
- package/esm/Engines/Extensions/textureSampler/textureSampler.base.js.map +1 -0
- package/esm/Engines/Extensions/textureSelector/textureSelector.base.d.ts +50 -0
- package/esm/Engines/Extensions/textureSelector/textureSelector.base.js +53 -0
- package/esm/Engines/Extensions/textureSelector/textureSelector.base.js.map +1 -0
- package/esm/Engines/Extensions/transformFeedback/engine.transformFeedback.base.d.ts +42 -0
- package/esm/Engines/Extensions/transformFeedback/engine.transformFeedback.base.js +2 -0
- package/esm/Engines/Extensions/transformFeedback/engine.transformFeedback.base.js.map +1 -0
- package/esm/Engines/Extensions/uniformBuffer/uniformBuffer.base.d.ts +48 -0
- package/esm/Engines/Extensions/uniformBuffer/uniformBuffer.base.js +2 -0
- package/esm/Engines/Extensions/uniformBuffer/uniformBuffer.base.js.map +1 -0
- package/esm/Engines/Extensions/videoTexture/videoTexture.base.d.ts +13 -0
- package/esm/Engines/Extensions/videoTexture/videoTexture.base.js +2 -0
- package/esm/Engines/Extensions/videoTexture/videoTexture.base.js.map +1 -0
- package/esm/Engines/Extensions/views/views.base.d.ts +85 -0
- package/esm/Engines/Extensions/views/views.base.js +33 -0
- package/esm/Engines/Extensions/views/views.base.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/alpha/alpha.webgl.d.ts +8 -0
- package/esm/Engines/WebGL/Extensions/alpha/alpha.webgl.js +137 -0
- package/esm/Engines/WebGL/Extensions/alpha/alpha.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/cubeTexture/cubeTexture.webgl.d.ts +11 -0
- package/esm/Engines/WebGL/Extensions/cubeTexture/cubeTexture.webgl.js +251 -0
- package/esm/Engines/WebGL/Extensions/cubeTexture/cubeTexture.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/dynamicBuffer/dynamicBuffer.webgl.d.ts +5 -0
- package/esm/Engines/WebGL/Extensions/dynamicBuffer/dynamicBuffer.webgl.js +55 -0
- package/esm/Engines/WebGL/Extensions/dynamicBuffer/dynamicBuffer.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/dynamicTexture/dynamicTexture.webgl.d.ts +5 -0
- package/esm/Engines/WebGL/Extensions/dynamicTexture/dynamicTexture.webgl.js +65 -0
- package/esm/Engines/WebGL/Extensions/dynamicTexture/dynamicTexture.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/multiRender/multiRender.webgl.d.ts +10 -0
- package/esm/Engines/WebGL/Extensions/multiRender/multiRender.webgl.js +375 -0
- package/esm/Engines/WebGL/Extensions/multiRender/multiRender.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/multiview/multiview.webgl.d.ts +6 -0
- package/esm/Engines/WebGL/Extensions/multiview/multiview.webgl.js +77 -0
- package/esm/Engines/WebGL/Extensions/multiview/multiview.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/query/query.webgl.d.ts +21 -0
- package/esm/Engines/WebGL/Extensions/query/query.webgl.js +220 -0
- package/esm/Engines/WebGL/Extensions/query/query.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/rawTexture/engine.rawTexture.webgl.d.ts +15 -0
- package/esm/Engines/WebGL/Extensions/rawTexture/engine.rawTexture.webgl.js +392 -0
- package/esm/Engines/WebGL/Extensions/rawTexture/engine.rawTexture.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/readTexture/readTexture.webgl.d.ts +17 -0
- package/esm/Engines/WebGL/Extensions/readTexture/readTexture.webgl.js +133 -0
- package/esm/Engines/WebGL/Extensions/readTexture/readTexture.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/renderTarget/renderTarget.webgl.d.ts +8 -0
- package/esm/Engines/WebGL/Extensions/renderTarget/renderTarget.webgl.js +199 -0
- package/esm/Engines/WebGL/Extensions/renderTarget/renderTarget.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/renderTargetCube/renderTargetCube.webgl.d.ts +2 -0
- package/esm/Engines/WebGL/Extensions/renderTargetCube/renderTargetCube.webgl.js +62 -0
- package/esm/Engines/WebGL/Extensions/renderTargetCube/renderTargetCube.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/textureSelector/textureSelector.webgl.d.ts +5 -0
- package/esm/Engines/WebGL/Extensions/textureSelector/textureSelector.webgl.js +28 -0
- package/esm/Engines/WebGL/Extensions/textureSelector/textureSelector.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/transformFeedback/engine.transformFeedback.webgl.d.ts +11 -0
- package/esm/Engines/WebGL/Extensions/transformFeedback/engine.transformFeedback.webgl.js +45 -0
- package/esm/Engines/WebGL/Extensions/transformFeedback/engine.transformFeedback.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/uniformBuffer/uniformBuffer.webgl.d.ts +9 -0
- package/esm/Engines/WebGL/Extensions/uniformBuffer/uniformBuffer.webgl.js +78 -0
- package/esm/Engines/WebGL/Extensions/uniformBuffer/uniformBuffer.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/videoTexture/videoTexture.webgl.d.ts +4 -0
- package/esm/Engines/WebGL/Extensions/videoTexture/videoTexture.webgl.js +67 -0
- package/esm/Engines/WebGL/Extensions/videoTexture/videoTexture.webgl.js.map +1 -0
- package/esm/Engines/WebGL/Extensions/views/views.webgl.d.ts +18 -0
- package/esm/Engines/WebGL/Extensions/views/views.webgl.js +152 -0
- package/esm/Engines/WebGL/Extensions/views/views.webgl.js.map +1 -0
- package/esm/Engines/WebGL/engine.adapterHelpers.d.ts +43 -0
- package/esm/Engines/WebGL/engine.adapterHelpers.js +107 -0
- package/esm/Engines/WebGL/engine.adapterHelpers.js.map +1 -0
- package/esm/Engines/WebGL/engine.webgl.d.ts +1030 -0
- package/esm/Engines/WebGL/engine.webgl.js +4083 -0
- package/esm/Engines/WebGL/engine.webgl.js.map +1 -0
- package/esm/Engines/WebGPU/engine.adapterHelpers.d.ts +7 -0
- package/esm/Engines/WebGPU/engine.adapterHelpers.js +20 -0
- package/esm/Engines/WebGPU/engine.adapterHelpers.js.map +1 -0
- package/esm/Engines/WebGPU/engine.webgpu.constants.d.ts +391 -0
- package/esm/Engines/WebGPU/engine.webgpu.constants.js +2 -0
- package/esm/Engines/WebGPU/engine.webgpu.constants.js.map +1 -0
- package/esm/Engines/WebGPU/engine.webgpu.d.ts +277 -0
- package/esm/Engines/WebGPU/engine.webgpu.js +1281 -0
- package/esm/Engines/WebGPU/engine.webgpu.js.map +1 -0
- package/esm/Engines/engine.adapters.d.ts +32 -0
- package/esm/Engines/engine.adapters.js +27 -0
- package/esm/Engines/engine.adapters.js.map +1 -0
- package/esm/Engines/engine.base.d.ts +807 -0
- package/esm/Engines/engine.base.js +1235 -0
- package/esm/Engines/engine.base.js.map +1 -0
- package/esm/Engines/engine.constants.d.ts +735 -0
- package/esm/Engines/engine.constants.js +3 -0
- package/esm/Engines/engine.constants.js.map +1 -0
- package/esm/Engines/engine.extendable.d.ts +180 -0
- package/esm/Engines/engine.extendable.js +477 -0
- package/esm/Engines/engine.extendable.js.map +1 -0
- package/esm/Engines/engine.interfaces.d.ts +16 -0
- package/esm/Engines/engine.interfaces.js +9 -0
- package/esm/Engines/engine.interfaces.js.map +1 -0
- package/esm/Engines/engine.static.d.ts +215 -0
- package/esm/Engines/engine.static.js +345 -0
- package/esm/Engines/engine.static.js.map +1 -0
- package/esm/Engines/engine.tools.d.ts +20 -0
- package/esm/Engines/engine.tools.js +33 -0
- package/esm/Engines/engine.tools.js.map +1 -0
- package/esm/Engines/public.d.ts +1 -0
- package/esm/Engines/public.js +2 -0
- package/esm/Engines/public.js.map +1 -0
- package/esm/Engines/runtimeEnvironment.d.ts +37 -0
- package/esm/Engines/runtimeEnvironment.js +56 -0
- package/esm/Engines/runtimeEnvironment.js.map +1 -0
- package/package.json +2 -1
- package/scene.d.ts +1 -2
- package/scene.js +1 -1
- package/scene.js.map +1 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.d.ts +0 -172
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.js +0 -235
- package/FlowGraph/Blocks/Data/Math/flowGraphMatrixBlocks.js.map +0 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.d.ts +0 -269
- package/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.js +0 -429
- package/FlowGraph/Blocks/Data/Math/flowGraphNumberMathBlocks.js.map +0 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.d.ts +0 -115
- package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.js +0 -146
- package/FlowGraph/Blocks/Data/Math/flowGraphVector2MathBlocks.js.map +0 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.d.ts +0 -155
- package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.js +0 -190
- package/FlowGraph/Blocks/Data/Math/flowGraphVector3MathBlocks.js.map +0 -1
- package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.d.ts +0 -116
- package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.js +0 -144
- package/FlowGraph/Blocks/Data/Math/flowGraphVector4MathBlocks.js.map +0 -1
- package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js +0 -27
- package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuShaderProcessor.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuShaderProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable babylonjs/available */\r\n/* eslint-disable jsdoc/require-jsdoc */\r\nimport { ShaderLanguage } from \"../../Materials/shaderLanguage\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { IShaderProcessor } from \"../Processors/iShaderProcessor\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport type { WebGPUSamplerDescription, WebGPUShaderProcessingContext, WebGPUTextureDescription, WebGPUBufferDescription } from \"./webgpuShaderProcessingContext\";\r\n\r\n/** @internal */\r\nexport abstract class WebGPUShaderProcessor implements IShaderProcessor {\r\n public static readonly AutoSamplerSuffix = \"Sampler\";\r\n public static readonly LeftOvertUBOName = \"LeftOver\";\r\n public static readonly InternalsUBOName = \"Internals\";\r\n\r\n public static UniformSizes: { [type: string]: number } = {\r\n // GLSL types\r\n bool: 1,\r\n int: 1,\r\n float: 1,\r\n vec2: 2,\r\n ivec2: 2,\r\n uvec2: 2,\r\n vec3: 3,\r\n ivec3: 3,\r\n uvec3: 3,\r\n vec4: 4,\r\n ivec4: 4,\r\n uvec4: 4,\r\n mat2: 4,\r\n mat3: 12,\r\n mat4: 16,\r\n\r\n // WGSL types\r\n i32: 1,\r\n u32: 1,\r\n f32: 1,\r\n mat2x2: 4,\r\n mat3x3: 12,\r\n mat4x4: 16,\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _SamplerFunctionByWebGLSamplerType: { [key: string]: string } = {\r\n sampler2D: \"sampler2D\",\r\n sampler2DArray: \"sampler2DArray\",\r\n sampler2DShadow: \"sampler2DShadow\",\r\n sampler2DArrayShadow: \"sampler2DArrayShadow\",\r\n samplerCube: \"samplerCube\",\r\n sampler3D: \"sampler3D\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _TextureTypeByWebGLSamplerType: { [key: string]: string } = {\r\n sampler2D: \"texture2D\",\r\n sampler2DArray: \"texture2DArray\",\r\n sampler2DShadow: \"texture2D\",\r\n sampler2DArrayShadow: \"texture2DArray\",\r\n samplerCube: \"textureCube\",\r\n samplerCubeArray: \"textureCubeArray\",\r\n sampler3D: \"texture3D\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _GpuTextureViewDimensionByWebGPUTextureType: { [key: string]: GPUTextureViewDimension } = {\r\n textureCube: WebGPUConstants.TextureViewDimension.Cube,\r\n textureCubeArray: WebGPUConstants.TextureViewDimension.CubeArray,\r\n texture2D: WebGPUConstants.TextureViewDimension.E2d,\r\n texture2DArray: WebGPUConstants.TextureViewDimension.E2dArray,\r\n texture3D: WebGPUConstants.TextureViewDimension.E3d,\r\n };\r\n\r\n // if the webgl sampler type is not listed in this array, \"sampler\" is taken by default\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _SamplerTypeByWebGLSamplerType: { [key: string]: string } = {\r\n sampler2DShadow: \"samplerShadow\",\r\n sampler2DArrayShadow: \"samplerShadow\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _IsComparisonSamplerByWebGPUSamplerType: { [key: string]: boolean } = {\r\n samplerShadow: true,\r\n samplerArrayShadow: true,\r\n sampler: false,\r\n };\r\n\r\n public shaderLanguage = ShaderLanguage.GLSL;\r\n\r\n // this object is populated only with vertex kinds known by the engine (position, uv, ...) and only if the type of the corresponding vertex buffer is an integer type)\r\n // if the type is a signed type, the value is negated\r\n public vertexBufferKindToNumberOfComponents: { [kind: string]: number } = {};\r\n\r\n protected _webgpuProcessingContext: WebGPUShaderProcessingContext;\r\n\r\n protected abstract _getArraySize(name: string, type: string, preProcessors: { [key: string]: string }): [string, string, number];\r\n protected abstract _generateLeftOverUBOCode(name: string, uniformBufferDescription: WebGPUBufferDescription): string;\r\n\r\n protected _addUniformToLeftOverUBO(name: string, uniformType: string, preProcessors: { [key: string]: string }): void {\r\n let length = 0;\r\n\r\n [name, uniformType, length] = this._getArraySize(name, uniformType, preProcessors);\r\n\r\n for (let i = 0; i < this._webgpuProcessingContext.leftOverUniforms.length; i++) {\r\n if (this._webgpuProcessingContext.leftOverUniforms[i].name === name) {\r\n return;\r\n }\r\n }\r\n\r\n this._webgpuProcessingContext.leftOverUniforms.push({\r\n name,\r\n type: uniformType,\r\n length,\r\n });\r\n }\r\n\r\n protected _buildLeftOverUBO(): string {\r\n if (!this._webgpuProcessingContext.leftOverUniforms.length) {\r\n return \"\";\r\n }\r\n const name = WebGPUShaderProcessor.LeftOvertUBOName;\r\n let availableUBO = this._webgpuProcessingContext.availableBuffers[name];\r\n if (!availableUBO) {\r\n availableUBO = {\r\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\r\n };\r\n this._webgpuProcessingContext.availableBuffers[name] = availableUBO;\r\n this._addBufferBindingDescription(name, availableUBO, WebGPUConstants.BufferBindingType.Uniform, true);\r\n this._addBufferBindingDescription(name, availableUBO, WebGPUConstants.BufferBindingType.Uniform, false);\r\n }\r\n\r\n return this._generateLeftOverUBOCode(name, availableUBO);\r\n }\r\n\r\n protected _collectBindingNames(): void {\r\n // collect all the binding names for faster processing in WebGPUCacheBindGroup\r\n for (let i = 0; i < this._webgpuProcessingContext.bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = this._webgpuProcessingContext.bindGroupLayoutEntries[i];\r\n if (setDefinition === undefined) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[i] = [];\r\n continue;\r\n }\r\n for (let j = 0; j < setDefinition.length; j++) {\r\n const entry = this._webgpuProcessingContext.bindGroupLayoutEntries[i][j];\r\n const name = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].name;\r\n const nameInArrayOfTexture = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].nameInArrayOfTexture;\r\n if (entry) {\r\n if (entry.texture || entry.externalTexture || entry.storageTexture) {\r\n this._webgpuProcessingContext.textureNames.push(nameInArrayOfTexture!);\r\n } else if (entry.sampler) {\r\n this._webgpuProcessingContext.samplerNames.push(name);\r\n } else if (entry.buffer) {\r\n this._webgpuProcessingContext.bufferNames.push(name);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected _preCreateBindGroupEntries(): void {\r\n const bindGroupEntries = this._webgpuProcessingContext.bindGroupEntries;\r\n\r\n for (let i = 0; i < this._webgpuProcessingContext.bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = this._webgpuProcessingContext.bindGroupLayoutEntries[i];\r\n\r\n const entries: GPUBindGroupEntry[] = [];\r\n for (let j = 0; j < setDefinition.length; j++) {\r\n const entry = this._webgpuProcessingContext.bindGroupLayoutEntries[i][j];\r\n\r\n if (entry.sampler || entry.texture || entry.storageTexture || entry.externalTexture) {\r\n entries.push({\r\n binding: entry.binding,\r\n resource: undefined as any,\r\n });\r\n } else if (entry.buffer) {\r\n entries.push({\r\n binding: entry.binding,\r\n resource: {\r\n buffer: undefined as any,\r\n offset: 0,\r\n size: 0,\r\n },\r\n });\r\n }\r\n }\r\n\r\n bindGroupEntries[i] = entries;\r\n }\r\n }\r\n\r\n protected _addTextureBindingDescription(\r\n name: string,\r\n textureInfo: WebGPUTextureDescription,\r\n textureIndex: number,\r\n dimension: Nullable<GPUTextureViewDimension>,\r\n format: Nullable<GPUTextureFormat>,\r\n isVertex: boolean\r\n ): void {\r\n // eslint-disable-next-line prefer-const\r\n let { groupIndex, bindingIndex } = textureInfo.textures[textureIndex];\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\r\n }\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\r\n let len;\r\n if (dimension === null) {\r\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n externalTexture: {},\r\n });\r\n } else if (format) {\r\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n storageTexture: {\r\n access: WebGPUConstants.StorageTextureAccess.WriteOnly,\r\n format,\r\n viewDimension: dimension,\r\n },\r\n });\r\n } else {\r\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n texture: {\r\n sampleType: textureInfo.sampleType,\r\n viewDimension: dimension,\r\n multisampled: false,\r\n },\r\n });\r\n }\r\n const textureName = textureInfo.isTextureArray ? name + textureIndex : name;\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1, nameInArrayOfTexture: textureName };\r\n }\r\n\r\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\r\n if (isVertex) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Vertex;\r\n } else {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Fragment;\r\n }\r\n }\r\n\r\n protected _addSamplerBindingDescription(name: string, samplerInfo: WebGPUSamplerDescription, isVertex: boolean): void {\r\n // eslint-disable-next-line prefer-const\r\n let { groupIndex, bindingIndex } = samplerInfo.binding;\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\r\n }\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\r\n const len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n sampler: {\r\n type: samplerInfo.type,\r\n },\r\n });\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1 };\r\n }\r\n\r\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\r\n if (isVertex) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Vertex;\r\n } else {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Fragment;\r\n }\r\n }\r\n\r\n protected _addBufferBindingDescription(name: string, uniformBufferInfo: WebGPUBufferDescription, bufferType: GPUBufferBindingType, isVertex: boolean): void {\r\n // eslint-disable-next-line prefer-const\r\n let { groupIndex, bindingIndex } = uniformBufferInfo.binding;\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\r\n }\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\r\n const len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n buffer: {\r\n type: bufferType,\r\n },\r\n });\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1 };\r\n }\r\n\r\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\r\n if (isVertex) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Vertex;\r\n } else {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Fragment;\r\n }\r\n }\r\n\r\n protected _injectStartingAndEndingCode(code: string, mainFuncDecl: string, startingCode?: string, endingCode?: string): string {\r\n let idx = code.indexOf(mainFuncDecl);\r\n if (idx < 0) {\r\n console.error(`No \"main\" function found in shader code! Processing aborted.`);\r\n return code;\r\n }\r\n if (startingCode) {\r\n // eslint-disable-next-line no-empty\r\n while (idx++ < code.length && code.charAt(idx) != \"{\") {}\r\n if (idx < code.length) {\r\n const part1 = code.substring(0, idx + 1);\r\n const part2 = code.substring(idx + 1);\r\n code = part1 + startingCode + part2;\r\n }\r\n }\r\n\r\n if (endingCode) {\r\n const lastClosingCurly = code.lastIndexOf(\"}\");\r\n code = code.substring(0, lastClosingCurly);\r\n code += endingCode + \"\\n}\";\r\n }\r\n\r\n return code;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"webgpuShaderProcessor.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuShaderProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable babylonjs/available */\r\n/* eslint-disable jsdoc/require-jsdoc */\r\nimport { Logger } from \"core/Misc/logger\";\r\nimport { ShaderLanguage } from \"../../Materials/shaderLanguage\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { IShaderProcessor } from \"../Processors/iShaderProcessor\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport type { WebGPUSamplerDescription, WebGPUShaderProcessingContext, WebGPUTextureDescription, WebGPUBufferDescription } from \"./webgpuShaderProcessingContext\";\r\n\r\n/** @internal */\r\nexport abstract class WebGPUShaderProcessor implements IShaderProcessor {\r\n public static readonly AutoSamplerSuffix = \"Sampler\";\r\n public static readonly LeftOvertUBOName = \"LeftOver\";\r\n public static readonly InternalsUBOName = \"Internals\";\r\n\r\n public static UniformSizes: { [type: string]: number } = {\r\n // GLSL types\r\n bool: 1,\r\n int: 1,\r\n float: 1,\r\n vec2: 2,\r\n ivec2: 2,\r\n uvec2: 2,\r\n vec3: 3,\r\n ivec3: 3,\r\n uvec3: 3,\r\n vec4: 4,\r\n ivec4: 4,\r\n uvec4: 4,\r\n mat2: 4,\r\n mat3: 12,\r\n mat4: 16,\r\n\r\n // WGSL types\r\n i32: 1,\r\n u32: 1,\r\n f32: 1,\r\n mat2x2: 4,\r\n mat3x3: 12,\r\n mat4x4: 16,\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _SamplerFunctionByWebGLSamplerType: { [key: string]: string } = {\r\n sampler2D: \"sampler2D\",\r\n sampler2DArray: \"sampler2DArray\",\r\n sampler2DShadow: \"sampler2DShadow\",\r\n sampler2DArrayShadow: \"sampler2DArrayShadow\",\r\n samplerCube: \"samplerCube\",\r\n sampler3D: \"sampler3D\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _TextureTypeByWebGLSamplerType: { [key: string]: string } = {\r\n sampler2D: \"texture2D\",\r\n sampler2DArray: \"texture2DArray\",\r\n sampler2DShadow: \"texture2D\",\r\n sampler2DArrayShadow: \"texture2DArray\",\r\n samplerCube: \"textureCube\",\r\n samplerCubeArray: \"textureCubeArray\",\r\n sampler3D: \"texture3D\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _GpuTextureViewDimensionByWebGPUTextureType: { [key: string]: GPUTextureViewDimension } = {\r\n textureCube: WebGPUConstants.TextureViewDimension.Cube,\r\n textureCubeArray: WebGPUConstants.TextureViewDimension.CubeArray,\r\n texture2D: WebGPUConstants.TextureViewDimension.E2d,\r\n texture2DArray: WebGPUConstants.TextureViewDimension.E2dArray,\r\n texture3D: WebGPUConstants.TextureViewDimension.E3d,\r\n };\r\n\r\n // if the webgl sampler type is not listed in this array, \"sampler\" is taken by default\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _SamplerTypeByWebGLSamplerType: { [key: string]: string } = {\r\n sampler2DShadow: \"samplerShadow\",\r\n sampler2DArrayShadow: \"samplerShadow\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected static _IsComparisonSamplerByWebGPUSamplerType: { [key: string]: boolean } = {\r\n samplerShadow: true,\r\n samplerArrayShadow: true,\r\n sampler: false,\r\n };\r\n\r\n public shaderLanguage = ShaderLanguage.GLSL;\r\n\r\n // this object is populated only with vertex kinds known by the engine (position, uv, ...) and only if the type of the corresponding vertex buffer is an integer type)\r\n // if the type is a signed type, the value is negated\r\n public vertexBufferKindToNumberOfComponents: { [kind: string]: number } = {};\r\n\r\n protected _webgpuProcessingContext: WebGPUShaderProcessingContext;\r\n\r\n protected abstract _getArraySize(name: string, type: string, preProcessors: { [key: string]: string }): [string, string, number];\r\n protected abstract _generateLeftOverUBOCode(name: string, uniformBufferDescription: WebGPUBufferDescription): string;\r\n\r\n protected _addUniformToLeftOverUBO(name: string, uniformType: string, preProcessors: { [key: string]: string }): void {\r\n let length = 0;\r\n\r\n [name, uniformType, length] = this._getArraySize(name, uniformType, preProcessors);\r\n\r\n for (let i = 0; i < this._webgpuProcessingContext.leftOverUniforms.length; i++) {\r\n if (this._webgpuProcessingContext.leftOverUniforms[i].name === name) {\r\n return;\r\n }\r\n }\r\n\r\n this._webgpuProcessingContext.leftOverUniforms.push({\r\n name,\r\n type: uniformType,\r\n length,\r\n });\r\n }\r\n\r\n protected _buildLeftOverUBO(): string {\r\n if (!this._webgpuProcessingContext.leftOverUniforms.length) {\r\n return \"\";\r\n }\r\n const name = WebGPUShaderProcessor.LeftOvertUBOName;\r\n let availableUBO = this._webgpuProcessingContext.availableBuffers[name];\r\n if (!availableUBO) {\r\n availableUBO = {\r\n binding: this._webgpuProcessingContext.getNextFreeUBOBinding(),\r\n };\r\n this._webgpuProcessingContext.availableBuffers[name] = availableUBO;\r\n this._addBufferBindingDescription(name, availableUBO, WebGPUConstants.BufferBindingType.Uniform, true);\r\n this._addBufferBindingDescription(name, availableUBO, WebGPUConstants.BufferBindingType.Uniform, false);\r\n }\r\n\r\n return this._generateLeftOverUBOCode(name, availableUBO);\r\n }\r\n\r\n protected _collectBindingNames(): void {\r\n // collect all the binding names for faster processing in WebGPUCacheBindGroup\r\n for (let i = 0; i < this._webgpuProcessingContext.bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = this._webgpuProcessingContext.bindGroupLayoutEntries[i];\r\n if (setDefinition === undefined) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[i] = [];\r\n continue;\r\n }\r\n for (let j = 0; j < setDefinition.length; j++) {\r\n const entry = this._webgpuProcessingContext.bindGroupLayoutEntries[i][j];\r\n const name = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].name;\r\n const nameInArrayOfTexture = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[i][entry.binding].nameInArrayOfTexture;\r\n if (entry) {\r\n if (entry.texture || entry.externalTexture || entry.storageTexture) {\r\n this._webgpuProcessingContext.textureNames.push(nameInArrayOfTexture!);\r\n } else if (entry.sampler) {\r\n this._webgpuProcessingContext.samplerNames.push(name);\r\n } else if (entry.buffer) {\r\n this._webgpuProcessingContext.bufferNames.push(name);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected _preCreateBindGroupEntries(): void {\r\n const bindGroupEntries = this._webgpuProcessingContext.bindGroupEntries;\r\n\r\n for (let i = 0; i < this._webgpuProcessingContext.bindGroupLayoutEntries.length; i++) {\r\n const setDefinition = this._webgpuProcessingContext.bindGroupLayoutEntries[i];\r\n\r\n const entries: GPUBindGroupEntry[] = [];\r\n for (let j = 0; j < setDefinition.length; j++) {\r\n const entry = this._webgpuProcessingContext.bindGroupLayoutEntries[i][j];\r\n\r\n if (entry.sampler || entry.texture || entry.storageTexture || entry.externalTexture) {\r\n entries.push({\r\n binding: entry.binding,\r\n resource: undefined as any,\r\n });\r\n } else if (entry.buffer) {\r\n entries.push({\r\n binding: entry.binding,\r\n resource: {\r\n buffer: undefined as any,\r\n offset: 0,\r\n size: 0,\r\n },\r\n });\r\n }\r\n }\r\n\r\n bindGroupEntries[i] = entries;\r\n }\r\n }\r\n\r\n protected _addTextureBindingDescription(\r\n name: string,\r\n textureInfo: WebGPUTextureDescription,\r\n textureIndex: number,\r\n dimension: Nullable<GPUTextureViewDimension>,\r\n format: Nullable<GPUTextureFormat>,\r\n isVertex: boolean\r\n ): void {\r\n // eslint-disable-next-line prefer-const\r\n let { groupIndex, bindingIndex } = textureInfo.textures[textureIndex];\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\r\n }\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\r\n let len;\r\n if (dimension === null) {\r\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n externalTexture: {},\r\n });\r\n } else if (format) {\r\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n storageTexture: {\r\n access: WebGPUConstants.StorageTextureAccess.WriteOnly,\r\n format,\r\n viewDimension: dimension,\r\n },\r\n });\r\n } else {\r\n len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n texture: {\r\n sampleType: textureInfo.sampleType,\r\n viewDimension: dimension,\r\n multisampled: false,\r\n },\r\n });\r\n }\r\n const textureName = textureInfo.isTextureArray ? name + textureIndex : name;\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1, nameInArrayOfTexture: textureName };\r\n }\r\n\r\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\r\n if (isVertex) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Vertex;\r\n } else {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Fragment;\r\n }\r\n }\r\n\r\n protected _addSamplerBindingDescription(name: string, samplerInfo: WebGPUSamplerDescription, isVertex: boolean): void {\r\n // eslint-disable-next-line prefer-const\r\n let { groupIndex, bindingIndex } = samplerInfo.binding;\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\r\n }\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\r\n const len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n sampler: {\r\n type: samplerInfo.type,\r\n },\r\n });\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1 };\r\n }\r\n\r\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\r\n if (isVertex) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Vertex;\r\n } else {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Fragment;\r\n }\r\n }\r\n\r\n protected _addBufferBindingDescription(name: string, uniformBufferInfo: WebGPUBufferDescription, bufferType: GPUBufferBindingType, isVertex: boolean): void {\r\n // eslint-disable-next-line prefer-const\r\n let { groupIndex, bindingIndex } = uniformBufferInfo.binding;\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex]) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex] = [];\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex] = [];\r\n }\r\n if (!this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex]) {\r\n const len = this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex].push({\r\n binding: bindingIndex,\r\n visibility: 0,\r\n buffer: {\r\n type: bufferType,\r\n },\r\n });\r\n this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex] = { name, index: len - 1 };\r\n }\r\n\r\n bindingIndex = this._webgpuProcessingContext.bindGroupLayoutEntryInfo[groupIndex][bindingIndex].index;\r\n if (isVertex) {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Vertex;\r\n } else {\r\n this._webgpuProcessingContext.bindGroupLayoutEntries[groupIndex][bindingIndex].visibility |= WebGPUConstants.ShaderStage.Fragment;\r\n }\r\n }\r\n\r\n protected _injectStartingAndEndingCode(code: string, mainFuncDecl: string, startingCode?: string, endingCode?: string): string {\r\n let idx = code.indexOf(mainFuncDecl);\r\n if (idx < 0) {\r\n Logger.Error(`No \"main\" function found in shader code! Processing aborted.`);\r\n return code;\r\n }\r\n if (startingCode) {\r\n // eslint-disable-next-line no-empty\r\n while (idx++ < code.length && code.charAt(idx) != \"{\") {}\r\n if (idx < code.length) {\r\n const part1 = code.substring(0, idx + 1);\r\n const part2 = code.substring(idx + 1);\r\n code = part1 + startingCode + part2;\r\n }\r\n }\r\n\r\n if (endingCode) {\r\n const lastClosingCurly = code.lastIndexOf(\"}\");\r\n code = code.substring(0, lastClosingCurly);\r\n code += endingCode + \"\\n}\";\r\n }\r\n\r\n return code;\r\n }\r\n}\r\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Logger } from "../../Misc/logger.js";
|
|
1
2
|
import { Tools } from "../../Misc/tools.js";
|
|
2
3
|
/** @internal */
|
|
3
4
|
export class WebGPUTintWASM {
|
|
@@ -23,8 +24,8 @@ export class WebGPUTintWASM {
|
|
|
23
24
|
convertSpirV2WGSL(code, disableUniformityAnalysis = false) {
|
|
24
25
|
const ccode = WebGPUTintWASM._twgsl.convertSpirV2WGSL(code, WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis);
|
|
25
26
|
if (WebGPUTintWASM.ShowWGSLShaderCode) {
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
Logger.Log(ccode);
|
|
28
|
+
Logger.Log("***********************************************");
|
|
28
29
|
}
|
|
29
30
|
return WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis ? "diagnostic(off, derivative_uniformity);\n" + ccode : ccode;
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpuTintWASM.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuTintWASM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAoBzC,gBAAgB;AAChB,MAAM,OAAO,cAAc;IAahB,KAAK,CAAC,SAAS,CAAC,YAA2B;QAC9C,IAAI,cAAc,CAAC,MAAM,EAAE;YACvB,OAAO;SACV;QAED,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,mCACL,cAAc,CAAC,oBAAoB,GACnC,YAAY,CAClB,CAAC;QAEF,IAAI,YAAY,CAAC,KAAK,EAAE;YACpB,cAAc,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE;YAC9C,MAAM,KAAK,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC3D;QAED,IAAK,IAAY,CAAC,KAAK,EAAE;YACrB,cAAc,CAAC,MAAM,GAAG,MAAO,IAAY,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAa,CAAC,QAAS,CAAC,CAAC,CAAC;YACtG,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IAEM,iBAAiB,CAAC,IAAiB,EAAE,yBAAyB,GAAG,KAAK;QACzE,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,CAAC;QACnI,IAAI,cAAc,CAAC,kBAAkB,EAAE;YACnC,
|
|
1
|
+
{"version":3,"file":"webgpuTintWASM.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuTintWASM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,6BAAyB;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAoBzC,gBAAgB;AAChB,MAAM,OAAO,cAAc;IAahB,KAAK,CAAC,SAAS,CAAC,YAA2B;QAC9C,IAAI,cAAc,CAAC,MAAM,EAAE;YACvB,OAAO;SACV;QAED,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;QAClC,YAAY,mCACL,cAAc,CAAC,oBAAoB,GACnC,YAAY,CAClB,CAAC;QAEF,IAAI,YAAY,CAAC,KAAK,EAAE;YACpB,cAAc,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;YAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,IAAI,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE;YAC9C,MAAM,KAAK,CAAC,sBAAsB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC3D;QAED,IAAK,IAAY,CAAC,KAAK,EAAE;YACrB,cAAc,CAAC,MAAM,GAAG,MAAO,IAAY,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAa,CAAC,QAAS,CAAC,CAAC,CAAC;YACtG,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC5B;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrD,CAAC;IAEM,iBAAiB,CAAC,IAAiB,EAAE,yBAAyB,GAAG,KAAK;QACzE,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,CAAC;QACnI,IAAI,cAAc,CAAC,kBAAkB,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;SACjE;QACD,OAAO,cAAc,CAAC,yBAAyB,IAAI,yBAAyB,CAAC,CAAC,CAAC,2CAA2C,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/I,CAAC;;AA/CD,yBAAyB;AACD,mCAAoB,GAAiB;IACzD,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,iBAAiB;IAChD,QAAQ,EAAE,GAAG,KAAK,CAAC,cAAc,mBAAmB;CACvD,CAAC;AAEY,iCAAkB,GAAG,KAAK,CAAC;AAE3B,wCAAyB,GAAG,KAAK,CAAC;AAEjC,qBAAM,GAAQ,IAAI,CAAC","sourcesContent":["import { Logger } from \"core/Misc/logger\";\r\nimport { Tools } from \"../../Misc/tools\";\r\n\r\n/**\r\n * Options to load the associated Twgsl library\r\n */\r\nexport interface TwgslOptions {\r\n /**\r\n * Defines an existing instance of Twgsl (useful in modules who do not access the global instance).\r\n */\r\n twgsl?: any;\r\n /**\r\n * Defines the URL of the twgsl JS File.\r\n */\r\n jsPath?: string;\r\n /**\r\n * Defines the URL of the twgsl WASM File.\r\n */\r\n wasmPath?: string;\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUTintWASM {\r\n // Default twgsl options.\r\n private static readonly _TWgslDefaultOptions: TwgslOptions = {\r\n jsPath: `${Tools._DefaultCdnUrl}/twgsl/twgsl.js`,\r\n wasmPath: `${Tools._DefaultCdnUrl}/twgsl/twgsl.wasm`,\r\n };\r\n\r\n public static ShowWGSLShaderCode = false;\r\n\r\n public static DisableUniformityAnalysis = false;\r\n\r\n private static _twgsl: any = null;\r\n\r\n public async initTwgsl(twgslOptions?: TwgslOptions): Promise<void> {\r\n if (WebGPUTintWASM._twgsl) {\r\n return;\r\n }\r\n\r\n twgslOptions = twgslOptions || {};\r\n twgslOptions = {\r\n ...WebGPUTintWASM._TWgslDefaultOptions,\r\n ...twgslOptions,\r\n };\r\n\r\n if (twgslOptions.twgsl) {\r\n WebGPUTintWASM._twgsl = twgslOptions.twgsl;\r\n return Promise.resolve();\r\n }\r\n\r\n if (twgslOptions.jsPath && twgslOptions.wasmPath) {\r\n await Tools.LoadBabylonScriptAsync(twgslOptions.jsPath);\r\n }\r\n\r\n if ((self as any).twgsl) {\r\n WebGPUTintWASM._twgsl = await (self as any).twgsl(Tools.GetBabylonScriptURL(twgslOptions!.wasmPath!));\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.reject(\"twgsl is not available.\");\r\n }\r\n\r\n public convertSpirV2WGSL(code: Uint32Array, disableUniformityAnalysis = false): string {\r\n const ccode = WebGPUTintWASM._twgsl.convertSpirV2WGSL(code, WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis);\r\n if (WebGPUTintWASM.ShowWGSLShaderCode) {\r\n Logger.Log(ccode);\r\n Logger.Log(\"***********************************************\");\r\n }\r\n return WebGPUTintWASM.DisableUniformityAnalysis || disableUniformityAnalysis ? \"diagnostic(off, derivative_uniformity);\\n\" + ccode : ccode;\r\n }\r\n}\r\n"]}
|
package/Engines/engine.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Observable } from "../Misc/observable";
|
|
3
3
|
import type { Nullable } from "../types";
|
|
4
4
|
import type { Scene } from "../scene";
|
|
5
|
-
import { InternalTexture } from "../Materials/Textures/internalTexture";
|
|
5
|
+
import type { InternalTexture } from "../Materials/Textures/internalTexture";
|
|
6
6
|
import type { IOfflineProvider } from "../Offline/IOfflineProvider";
|
|
7
7
|
import type { ILoadingScreen } from "../Loading/loadingScreen";
|
|
8
8
|
import type { WebGLPipelineContext } from "./WebGL/webGLPipelineContext";
|
|
@@ -12,10 +12,9 @@ import type { EngineOptions } from "./thinEngine";
|
|
|
12
12
|
import { ThinEngine } from "./thinEngine";
|
|
13
13
|
import type { IViewportLike, IColor4Like } from "../Maths/math.like";
|
|
14
14
|
import type { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
|
|
15
|
-
import { PerformanceMonitor } from "../Misc/performanceMonitor";
|
|
15
|
+
import type { PerformanceMonitor } from "../Misc/performanceMonitor";
|
|
16
16
|
import type { DataBuffer } from "../Buffers/dataBuffer";
|
|
17
17
|
import { PerfCounter } from "../Misc/perfCounter";
|
|
18
|
-
import type { RenderTargetWrapper } from "./renderTargetWrapper";
|
|
19
18
|
import "./Extensions/engine.alpha";
|
|
20
19
|
import "./Extensions/engine.readTexture";
|
|
21
20
|
import "./Extensions/engine.dynamicBuffer";
|
|
@@ -281,24 +280,15 @@ export declare class Engine extends ThinEngine {
|
|
|
281
280
|
* Method called to create the default rescale post process on each engine.
|
|
282
281
|
*/
|
|
283
282
|
static _RescalePostProcessFactory: Nullable<(engine: Engine) => PostProcess>;
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
* Gets or sets a boolean to enable/disable the context menu (right-click) from appearing on the main canvas
|
|
294
|
-
*/
|
|
295
|
-
disableContextMenu: boolean;
|
|
296
|
-
/**
|
|
297
|
-
* Gets the list of created scenes
|
|
298
|
-
*/
|
|
299
|
-
scenes: Scene[];
|
|
300
|
-
/** @internal */
|
|
301
|
-
_virtualScenes: Scene[];
|
|
283
|
+
get enableOfflineSupport(): boolean;
|
|
284
|
+
set enableOfflineSupport(value: boolean);
|
|
285
|
+
get disableManifestCheck(): boolean;
|
|
286
|
+
set disableManifestCheck(value: boolean);
|
|
287
|
+
get disableContextMenu(): boolean;
|
|
288
|
+
set disableContextMenu(value: boolean);
|
|
289
|
+
get scenes(): Scene[];
|
|
290
|
+
get _virtualScenes(): Scene[];
|
|
291
|
+
set _virtualScenes(value: Scene[]);
|
|
302
292
|
/**
|
|
303
293
|
* Event raised when a new scene is created
|
|
304
294
|
*/
|
|
@@ -306,11 +296,11 @@ export declare class Engine extends ThinEngine {
|
|
|
306
296
|
/**
|
|
307
297
|
* Gets the list of created postprocesses
|
|
308
298
|
*/
|
|
309
|
-
postProcesses: PostProcess[];
|
|
299
|
+
get postProcesses(): PostProcess[];
|
|
310
300
|
/**
|
|
311
301
|
* Gets a boolean indicating if the pointer is currently locked
|
|
312
302
|
*/
|
|
313
|
-
isPointerLock: boolean;
|
|
303
|
+
get isPointerLock(): boolean;
|
|
314
304
|
/**
|
|
315
305
|
* Observable event triggered each time the rendering canvas is resized
|
|
316
306
|
*/
|
|
@@ -363,15 +353,10 @@ export declare class Engine extends ThinEngine {
|
|
|
363
353
|
* By default, this will create a Database object if the workload has been embedded.
|
|
364
354
|
*/
|
|
365
355
|
static OfflineProviderFactory: (urlToScene: string, callbackManifestChecked: (checked: boolean) => any, disableManifestCheck: boolean) => IOfflineProvider;
|
|
366
|
-
private _loadingScreen;
|
|
367
|
-
private _pointerLockRequested;
|
|
368
|
-
private _rescalePostProcess;
|
|
369
356
|
protected _deterministicLockstep: boolean;
|
|
370
357
|
protected _lockstepMaxSteps: number;
|
|
371
358
|
protected _timeStep: number;
|
|
372
359
|
protected get _supportsHardwareTextureRescaling(): boolean;
|
|
373
|
-
private _fps;
|
|
374
|
-
private _deltaTime;
|
|
375
360
|
/** @internal */
|
|
376
361
|
_drawCalls: PerfCounter;
|
|
377
362
|
/** Gets or sets the tab index to set to the rendering canvas. 1 is the minimum value to set to be able to capture keyboard events */
|
|
@@ -380,20 +365,11 @@ export declare class Engine extends ThinEngine {
|
|
|
380
365
|
* Turn this value on if you want to pause FPS computation when in background
|
|
381
366
|
*/
|
|
382
367
|
disablePerformanceMonitorInBackground: boolean;
|
|
383
|
-
private _performanceMonitor;
|
|
384
368
|
/**
|
|
385
369
|
* Gets the performance monitor attached to this engine
|
|
386
370
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation
|
|
387
371
|
*/
|
|
388
372
|
get performanceMonitor(): PerformanceMonitor;
|
|
389
|
-
private _onFocus;
|
|
390
|
-
private _onBlur;
|
|
391
|
-
private _onCanvasPointerOut;
|
|
392
|
-
private _onCanvasBlur;
|
|
393
|
-
private _onCanvasFocus;
|
|
394
|
-
private _onCanvasContextMenu;
|
|
395
|
-
private _onFullscreenChange;
|
|
396
|
-
private _onPointerLockChange;
|
|
397
373
|
protected _compatibilityMode: boolean;
|
|
398
374
|
/**
|
|
399
375
|
* (WebGPU only) True (default) to be in compatibility mode, meaning rendering all existing scenes without artifacts (same rendering than WebGL).
|
|
@@ -415,12 +391,6 @@ export declare class Engine extends ThinEngine {
|
|
|
415
391
|
* @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)
|
|
416
392
|
*/
|
|
417
393
|
constructor(canvasOrContext: Nullable<HTMLCanvasElement | OffscreenCanvas | WebGLRenderingContext | WebGL2RenderingContext>, antialias?: boolean, options?: EngineOptions, adaptToDeviceRatio?: boolean);
|
|
418
|
-
protected _initGLContext(): void;
|
|
419
|
-
/**
|
|
420
|
-
* Shared initialization across engines types.
|
|
421
|
-
* @param canvas The canvas associated with this instance of the engine.
|
|
422
|
-
*/
|
|
423
|
-
protected _sharedInit(canvas: HTMLCanvasElement): void;
|
|
424
394
|
/** @internal */
|
|
425
395
|
_verifyPointerLock(): void;
|
|
426
396
|
/**
|
|
@@ -595,13 +565,6 @@ export declare class Engine extends ThinEngine {
|
|
|
595
565
|
* Sets the current depth function to LEQUAL
|
|
596
566
|
*/
|
|
597
567
|
setDepthFunctionToLessOrEqual(): void;
|
|
598
|
-
private _cachedStencilBuffer;
|
|
599
|
-
private _cachedStencilFunction;
|
|
600
|
-
private _cachedStencilMask;
|
|
601
|
-
private _cachedStencilOperationPass;
|
|
602
|
-
private _cachedStencilOperationFail;
|
|
603
|
-
private _cachedStencilOperationDepthFail;
|
|
604
|
-
private _cachedStencilReference;
|
|
605
568
|
/**
|
|
606
569
|
* Caches the state of the stencil buffer
|
|
607
570
|
*/
|
|
@@ -682,11 +645,9 @@ export declare class Engine extends ThinEngine {
|
|
|
682
645
|
* @param name name of the channel
|
|
683
646
|
*/
|
|
684
647
|
setTextureFromPostProcessOutput(channel: number, postProcess: Nullable<PostProcess>, name: string): void;
|
|
685
|
-
protected _rebuildBuffers(): void;
|
|
686
648
|
/** @internal */
|
|
687
649
|
_renderFrame(): void;
|
|
688
650
|
protected _cancelFrame(): void;
|
|
689
|
-
_renderLoop(): void;
|
|
690
651
|
/** @internal */
|
|
691
652
|
_renderViews(): boolean;
|
|
692
653
|
/**
|
|
@@ -714,11 +675,11 @@ export declare class Engine extends ThinEngine {
|
|
|
714
675
|
/**
|
|
715
676
|
* Begin a new frame
|
|
716
677
|
*/
|
|
717
|
-
beginFrame()
|
|
678
|
+
beginFrame: () => void;
|
|
718
679
|
/**
|
|
719
680
|
* End the current frame
|
|
720
681
|
*/
|
|
721
|
-
endFrame()
|
|
682
|
+
endFrame: () => void;
|
|
722
683
|
/**
|
|
723
684
|
* Force a specific size of the canvas
|
|
724
685
|
* @param width defines the new canvas' width
|
|
@@ -727,23 +688,16 @@ export declare class Engine extends ThinEngine {
|
|
|
727
688
|
* @returns true if the size was changed
|
|
728
689
|
*/
|
|
729
690
|
setSize(width: number, height: number, forceSetSize?: boolean): boolean;
|
|
730
|
-
_deletePipelineContext(pipelineContext: IPipelineContext): void;
|
|
731
691
|
createShaderProgram(pipelineContext: IPipelineContext, vertexCode: string, fragmentCode: string, defines: Nullable<string>, context?: WebGLRenderingContext, transformFeedbackVaryings?: Nullable<string[]>): WebGLProgram;
|
|
732
692
|
protected _createShaderProgram(pipelineContext: WebGLPipelineContext, vertexShader: WebGLShader, fragmentShader: WebGLShader, context: WebGLRenderingContext, transformFeedbackVaryings?: Nullable<string[]>): WebGLProgram;
|
|
733
693
|
/**
|
|
734
694
|
* @internal
|
|
735
695
|
*/
|
|
736
|
-
_releaseTexture(texture: InternalTexture): void;
|
|
737
|
-
/**
|
|
738
|
-
* @internal
|
|
739
|
-
*/
|
|
740
|
-
_releaseRenderTargetWrapper(rtWrapper: RenderTargetWrapper): void;
|
|
741
696
|
protected static _RenderPassIdCounter: number;
|
|
742
697
|
/**
|
|
743
698
|
* Gets or sets the current render pass id
|
|
744
699
|
*/
|
|
745
700
|
currentRenderPassId: number;
|
|
746
|
-
private _renderPassNames;
|
|
747
701
|
/**
|
|
748
702
|
* Gets the names of the render passes that are currently created
|
|
749
703
|
* @returns list of the render pass names
|
|
@@ -785,7 +739,6 @@ export declare class Engine extends ThinEngine {
|
|
|
785
739
|
* @returns a number representing the delta time in ms
|
|
786
740
|
*/
|
|
787
741
|
getDeltaTime(): number;
|
|
788
|
-
private _measureFps;
|
|
789
742
|
/**
|
|
790
743
|
* Wraps an external web gl texture in a Babylon texture.
|
|
791
744
|
* @param texture defines the external texture
|
|
@@ -819,13 +772,11 @@ export declare class Engine extends ThinEngine {
|
|
|
819
772
|
* @param buffer defines the webGL buffer to delete
|
|
820
773
|
*/
|
|
821
774
|
deleteInstancesBuffer(buffer: WebGLBuffer): void;
|
|
822
|
-
private _clientWaitAsync;
|
|
823
775
|
/**
|
|
824
776
|
* @internal
|
|
825
777
|
*/
|
|
826
778
|
_readPixelsAsync(x: number, y: number, w: number, h: number, format: number, type: number, outputBuffer: ArrayBufferView): Promise<ArrayBufferView> | null;
|
|
827
779
|
dispose(): void;
|
|
828
|
-
private _disableTouchAction;
|
|
829
780
|
/**
|
|
830
781
|
* Display the loading screen
|
|
831
782
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/scene/customLoadingScreen
|
|
@@ -3479,10 +3430,20 @@ interface XRWebGLBinding {
|
|
|
3479
3430
|
getCameraImage(camera: XRCamera): WebGLTexture | undefined;
|
|
3480
3431
|
}
|
|
3481
3432
|
|
|
3482
|
-
|
|
3483
|
-
|
|
3484
|
-
|
|
3485
|
-
|
|
3433
|
+
// Mesh Detection
|
|
3434
|
+
|
|
3435
|
+
interface XRMesh {
|
|
3436
|
+
meshSpace: XRSpace;
|
|
3437
|
+
vertices: Float32Array;
|
|
3438
|
+
indices: Uint32Array;
|
|
3439
|
+
lastChangedTime: number;
|
|
3440
|
+
}
|
|
3441
|
+
|
|
3442
|
+
type XRMeshSet = Set<XRMesh>;
|
|
3443
|
+
|
|
3444
|
+
interface XRFrame {
|
|
3445
|
+
detectedMeshes?: XRMeshSet;
|
|
3446
|
+
}
|
|
3486
3447
|
|
|
3487
3448
|
// This file contains native only extensions for WebXR. These APIs are not supported in the browser yet.
|
|
3488
3449
|
// They are intended for use with either Babylon Native https://github.com/BabylonJS/BabylonNative or
|
|
@@ -3512,13 +3473,11 @@ interface XRPlane {
|
|
|
3512
3473
|
parentSceneObject?: XRSceneObject;
|
|
3513
3474
|
}
|
|
3514
3475
|
|
|
3476
|
+
// extending the webxr XRMesh with babylon native properties
|
|
3515
3477
|
interface XRMesh {
|
|
3516
|
-
meshSpace: XRSpace;
|
|
3517
|
-
positions: Float32Array;
|
|
3518
|
-
indices: Uint32Array;
|
|
3519
3478
|
normals?: Float32Array;
|
|
3520
|
-
lastChangedTime: number;
|
|
3521
3479
|
parentSceneObject?: XRSceneObject;
|
|
3480
|
+
positions: Float32Array; // Babylon native!
|
|
3522
3481
|
}
|
|
3523
3482
|
|
|
3524
3483
|
interface XRFrustumDetectionBoundary {
|
|
@@ -3554,8 +3513,6 @@ interface XRFrame {
|
|
|
3554
3513
|
featurePointCloud?: Array<number> | undefined;
|
|
3555
3514
|
}
|
|
3556
3515
|
|
|
3557
|
-
type XRMeshSet = Set<XRMesh>;
|
|
3558
|
-
|
|
3559
3516
|
interface XRWorldInformation {
|
|
3560
3517
|
detectedMeshes?: XRMeshSet;
|
|
3561
3518
|
}
|