@babylonjs/core 5.0.0-alpha.60 → 5.0.0-alpha.61
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.d.ts +20 -0
- package/Animations/animation.js +57 -8
- package/Animations/animation.js.map +1 -1
- package/Animations/animationKey.d.ts +4 -0
- package/Animations/animationKey.js +4 -0
- package/Animations/animationKey.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +130 -0
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +134 -0
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -0
- package/BakedVertexAnimation/index.d.ts +2 -0
- package/BakedVertexAnimation/index.js +3 -0
- package/BakedVertexAnimation/index.js.map +1 -0
- package/BakedVertexAnimation/vertexAnimationBaker.d.ts +65 -0
- package/BakedVertexAnimation/vertexAnimationBaker.js +155 -0
- package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -0
- package/Behaviors/Cameras/framingBehavior.d.ts +5 -0
- package/Behaviors/Cameras/framingBehavior.js +8 -1
- package/Behaviors/Cameras/framingBehavior.js.map +1 -1
- package/Bones/bone.d.ts +3 -1
- package/Bones/bone.js +4 -1
- package/Bones/bone.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +4 -6
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +4 -4
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/camera.js +7 -1
- package/Cameras/camera.js.map +1 -1
- package/Cameras/targetCamera.js +1 -1
- package/Cameras/targetCamera.js.map +1 -1
- package/Culling/boundingBox.d.ts +4 -0
- package/Culling/boundingBox.js +8 -0
- package/Culling/boundingBox.js.map +1 -1
- package/Debug/physicsViewer.js +1 -1
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/skeletonViewer.js +2 -2
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.d.ts +6 -1
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +16 -1
- package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +1 -1
- package/DeviceInput/Implementations/webDeviceInputSystem.js +1 -1
- package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
- package/DeviceInput/deviceInputSystem.js +6 -1
- package/DeviceInput/deviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +17 -6
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.js +19 -3
- package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +13 -0
- package/Engines/WebGPU/webgpuBundleList.js +27 -0
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +4 -0
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +6 -0
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +6 -0
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +27 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js +107 -0
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -0
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +2 -2
- package/Engines/WebGPU/webgpuTextureHelper.js +41 -18
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/constants.d.ts +2 -0
- package/Engines/constants.js +2 -0
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +12 -1
- package/Engines/engine.js +33 -0
- package/Engines/engine.js.map +1 -1
- package/Engines/engineFeatures.d.ts +2 -0
- package/Engines/engineFeatures.js.map +1 -1
- package/Engines/index.d.ts +1 -0
- package/Engines/index.js +1 -0
- package/Engines/index.js.map +1 -1
- package/Engines/nativeEngine.js +1 -0
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +1 -0
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/thinEngine.d.ts +0 -11
- package/Engines/thinEngine.js +12 -40
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +6 -6
- package/Engines/webgpuEngine.js +26 -67
- package/Engines/webgpuEngine.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +3 -3
- package/Helpers/sceneHelpers.js +1 -2
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.js +12 -14
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.d.ts +13 -1
- package/Layers/effectLayer.js +115 -65
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +2 -1
- package/Layers/highlightLayer.js +6 -3
- package/Layers/highlightLayer.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -0
- package/Lights/Shadows/cascadedShadowGenerator.js +14 -0
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +4 -0
- package/Lights/Shadows/shadowGenerator.js +31 -3
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.js +7 -1
- package/Lights/light.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +17 -4
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -0
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +10 -0
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +31 -0
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
- package/Materials/Node/Blocks/Fragment/index.js +1 -0
- package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.d.ts +41 -0
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +130 -0
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -0
- package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -0
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +15 -0
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/index.d.ts +1 -0
- package/Materials/Node/Blocks/index.js +1 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +4 -4
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/voronoiNoiseBlock.d.ts +39 -0
- package/Materials/Node/Blocks/voronoiNoiseBlock.js +107 -0
- package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -0
- package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +8 -0
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +34 -2
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +1 -0
- package/Materials/Node/nodeMaterial.js +2 -0
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -0
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
- package/Materials/PBR/pbrBaseMaterial.js +11 -4
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +11 -0
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +18 -3
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.d.ts +9 -0
- package/Materials/Textures/hdrCubeTexture.js +21 -5
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.d.ts +2 -0
- package/Materials/Textures/mirrorTexture.js +13 -0
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +16 -1
- package/Materials/imageProcessingConfiguration.js +31 -0
- package/Materials/imageProcessingConfiguration.js.map +1 -1
- package/Materials/materialHelper.d.ts +15 -1
- package/Materials/materialHelper.js +40 -3
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/pushMaterial.d.ts +2 -2
- package/Materials/pushMaterial.js +7 -3
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +6 -5
- package/Materials/shaderMaterial.js +58 -28
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +7 -7
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.d.ts +2 -0
- package/Materials/standardMaterial.js +11 -1
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +1 -2
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.color.d.ts +20 -0
- package/Maths/math.color.js +45 -2
- package/Maths/math.color.js.map +1 -1
- package/Maths/math.vector.d.ts +2 -1
- package/Maths/math.vector.js +14 -3
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.d.ts +1 -1
- package/Meshes/Builders/boxBuilder.js +1 -0
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.d.ts +17 -17
- package/Meshes/Builders/cylinderBuilder.js +1 -0
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.d.ts +1 -1
- package/Meshes/Builders/discBuilder.js +1 -0
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.d.ts +8 -8
- package/Meshes/Builders/groundBuilder.js +2 -0
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/hemisphereBuilder.d.ts +4 -4
- package/Meshes/Builders/hemisphereBuilder.js +1 -0
- package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.d.ts +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +1 -0
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.d.ts +1 -1
- package/Meshes/Builders/planeBuilder.js +1 -0
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.d.ts +1 -1
- package/Meshes/Builders/polyhedronBuilder.js +1 -0
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.d.ts +1 -1
- package/Meshes/Builders/sphereBuilder.js +1 -0
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.d.ts +8 -8
- package/Meshes/Builders/torusBuilder.js +1 -0
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.d.ts +11 -11
- package/Meshes/Builders/torusKnotBuilder.js +1 -0
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +22 -2
- package/Meshes/abstractMesh.js +55 -6
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +3 -0
- package/Meshes/geometry.js +13 -5
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/linesMesh.d.ts +0 -2
- package/Meshes/linesMesh.js +3 -35
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.js +4 -4
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +6 -5
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +8 -8
- package/Meshes/transformNode.js +25 -17
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/basis.d.ts +2 -2
- package/Misc/basis.js +19 -4
- package/Misc/basis.js.map +1 -1
- package/Misc/sceneSerializer.js +0 -3
- package/Misc/sceneSerializer.js.map +1 -1
- package/Misc/tools.d.ts +2 -4
- package/Misc/tools.js +6 -10
- package/Misc/tools.js.map +1 -1
- package/Particles/particleSystem.js +19 -16
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/solidParticleSystem.js +29 -5
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.js +10 -8
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -0
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.d.ts +2 -0
- package/Probes/reflectionProbe.js +21 -0
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/boundingBoxRenderer.d.ts +3 -0
- package/Rendering/boundingBoxRenderer.js +49 -14
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthRenderer.d.ts +1 -1
- package/Rendering/depthRenderer.js +2 -2
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/edgesRenderer.js +3 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +0 -2
- package/Rendering/geometryBufferRenderer.js +13 -10
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +7 -0
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -0
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
- package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.d.ts +2 -0
- package/Shaders/background.vertex.js +3 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/color.vertex.d.ts +2 -0
- package/Shaders/color.vertex.js +3 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/default.vertex.d.ts +2 -0
- package/Shaders/default.vertex.js +3 -1
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.vertex.d.ts +2 -0
- package/Shaders/depth.vertex.js +3 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +2 -0
- package/Shaders/geometry.vertex.js +3 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.d.ts +2 -0
- package/Shaders/glowMapGeneration.vertex.js +3 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +2 -0
- package/Shaders/outline.vertex.js +3 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/pbr.vertex.d.ts +2 -0
- package/Shaders/pbr.vertex.js +3 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/shadowMap.vertex.d.ts +2 -0
- package/Shaders/shadowMap.vertex.js +3 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.d.ts +2 -0
- package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +7 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +7 -0
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -0
- package/XR/features/WebXRNearInteraction.d.ts +1 -0
- package/XR/features/WebXRNearInteraction.js +2 -0
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.d.ts +30 -1
- package/node.js +12 -0
- package/node.js.map +1 -1
- package/package.json +43 -1
- package/scene.d.ts +10 -0
- package/scene.js +27 -0
- package/scene.js.map +1 -1
|
@@ -22,6 +22,7 @@ import { DrawWrapper } from "../Materials/drawWrapper";
|
|
|
22
22
|
import { WebGPUMaterialContext } from "./WebGPU/webgpuMaterialContext";
|
|
23
23
|
import { WebGPUDrawContext } from "./WebGPU/webgpuDrawContext";
|
|
24
24
|
import { IStencilState } from "../States/IStencilState";
|
|
25
|
+
import { WebGPUBundleList } from "./WebGPU/webgpuBundleList";
|
|
25
26
|
import { WebGPUTimestampQuery } from "./WebGPU/webgpuTimestampQuery";
|
|
26
27
|
import { ComputeEffect } from "../Compute/computeEffect";
|
|
27
28
|
import { WebGPUOcclusionQuery } from "./WebGPU/webgpuOcclusionQuery";
|
|
@@ -234,8 +235,10 @@ export declare class WebGPUEngine extends Engine {
|
|
|
234
235
|
_rttRenderPassWrapper: WebGPURenderPassWrapper;
|
|
235
236
|
/** @hidden */
|
|
236
237
|
_pendingDebugCommands: Array<[string, Nullable<string>]>;
|
|
237
|
-
|
|
238
|
-
|
|
238
|
+
/** @hidden */
|
|
239
|
+
_bundleList: WebGPUBundleList;
|
|
240
|
+
/** @hidden */
|
|
241
|
+
_bundleListRenderTarget: WebGPUBundleList;
|
|
239
242
|
/** @hidden */
|
|
240
243
|
_onAfterUnbindFrameBufferObservable: Observable<WebGPUEngine>;
|
|
241
244
|
private _defaultDrawContext;
|
|
@@ -260,10 +263,7 @@ export declare class WebGPUEngine extends Engine {
|
|
|
260
263
|
dbgLogIfNotDrawWrapper: boolean;
|
|
261
264
|
/** @hidden */
|
|
262
265
|
dbgShowEmptyEnableEffectCalls: boolean;
|
|
263
|
-
private
|
|
264
|
-
private _snapshotRenderingPlayBundles;
|
|
265
|
-
private _snapshotRenderingMainPassBundleList;
|
|
266
|
-
private _snapshotRenderingModeSaved;
|
|
266
|
+
private _snapshotRendering;
|
|
267
267
|
/**
|
|
268
268
|
* Gets or sets the snapshot rendering mode
|
|
269
269
|
*/
|
package/Engines/webgpuEngine.js
CHANGED
|
@@ -34,6 +34,7 @@ import { ShaderCodeInliner } from "./Processors/shaderCodeInliner.js";
|
|
|
34
34
|
import { WebGPUTintWASM } from "./WebGPU/webgpuTintWASM.js";
|
|
35
35
|
import { WebGPUShaderProcessor } from "./WebGPU/webgpuShaderProcessor.js";
|
|
36
36
|
import { ShaderLanguage } from "../Materials/shaderLanguage.js";
|
|
37
|
+
import { WebGPUSnapshotRendering } from "./WebGPU/webgpuSnapshotRendering.js";
|
|
37
38
|
/**
|
|
38
39
|
* The web GPU engine class provides support for WebGPU version of babylon.js.
|
|
39
40
|
* @since 5.0.0
|
|
@@ -114,9 +115,6 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
114
115
|
_this.dbgLogIfNotDrawWrapper = true;
|
|
115
116
|
/** @hidden */
|
|
116
117
|
_this.dbgShowEmptyEnableEffectCalls = true;
|
|
117
|
-
_this._snapshotRenderingRecordBundles = false;
|
|
118
|
-
_this._snapshotRenderingPlayBundles = false;
|
|
119
|
-
_this._snapshotRenderingMainPassBundleList = [];
|
|
120
118
|
//------------------------------------------------------------------------------
|
|
121
119
|
// Dynamic WebGPU States
|
|
122
120
|
//------------------------------------------------------------------------------
|
|
@@ -179,15 +177,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
179
177
|
* Gets or sets the snapshot rendering mode
|
|
180
178
|
*/
|
|
181
179
|
get: function () {
|
|
182
|
-
return this.
|
|
180
|
+
return this._snapshotRendering.mode;
|
|
183
181
|
},
|
|
184
182
|
set: function (mode) {
|
|
185
|
-
|
|
186
|
-
this._snapshotRenderingModeSaved = mode;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
this._snapshotRenderingMode = mode;
|
|
190
|
-
}
|
|
183
|
+
this._snapshotRendering.mode = mode;
|
|
191
184
|
},
|
|
192
185
|
enumerable: false,
|
|
193
186
|
configurable: true
|
|
@@ -196,8 +189,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
196
189
|
* Creates a new snapshot at the next frame using the current snapshotRenderingMode
|
|
197
190
|
*/
|
|
198
191
|
WebGPUEngine.prototype.snapshotRenderingReset = function () {
|
|
199
|
-
this.
|
|
200
|
-
this.snapshotRendering = true;
|
|
192
|
+
this._snapshotRendering.reset();
|
|
201
193
|
};
|
|
202
194
|
Object.defineProperty(WebGPUEngine.prototype, "snapshotRendering", {
|
|
203
195
|
/**
|
|
@@ -205,16 +197,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
205
197
|
* Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine
|
|
206
198
|
*/
|
|
207
199
|
get: function () {
|
|
208
|
-
return this.
|
|
200
|
+
return this._snapshotRendering.enabled;
|
|
209
201
|
},
|
|
210
202
|
set: function (activate) {
|
|
211
|
-
this.
|
|
212
|
-
this._snapshotRenderingRecordBundles = this._snapshotRenderingEnabled = activate;
|
|
213
|
-
this._snapshotRenderingPlayBundles = false;
|
|
214
|
-
if (activate) {
|
|
215
|
-
this._snapshotRenderingModeSaved = this._snapshotRenderingMode;
|
|
216
|
-
this._snapshotRenderingMode = 0; // need to reset to standard for the recording pass to avoid some code being bypassed
|
|
217
|
-
}
|
|
203
|
+
this._snapshotRendering.enabled = activate;
|
|
218
204
|
},
|
|
219
205
|
enumerable: false,
|
|
220
206
|
configurable: true
|
|
@@ -480,6 +466,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
480
466
|
_this._occlusionQuery = _this._device.createQuerySet ? new WebGPUOcclusionQuery(_this, _this._device, _this._bufferManager) : undefined;
|
|
481
467
|
_this._bundleList = new WebGPUBundleList(_this._device);
|
|
482
468
|
_this._bundleListRenderTarget = new WebGPUBundleList(_this._device);
|
|
469
|
+
_this._snapshotRendering = new WebGPUSnapshotRendering(_this, _this._snapshotRenderingMode, _this._bundleList, _this._bundleListRenderTarget);
|
|
483
470
|
if (_this.dbgVerboseLogsForFirstFrames) {
|
|
484
471
|
if (_this._count === undefined) {
|
|
485
472
|
_this._count = 0;
|
|
@@ -612,6 +599,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
612
599
|
useUBOBindingCache: false,
|
|
613
600
|
needShaderCodeInlining: true,
|
|
614
601
|
needToAlwaysBindUniformBuffers: true,
|
|
602
|
+
supportRenderPasses: true,
|
|
615
603
|
_collectUbosUpdatedInFrame: false,
|
|
616
604
|
};
|
|
617
605
|
};
|
|
@@ -1344,7 +1332,8 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
1344
1332
|
}
|
|
1345
1333
|
else if (!effect.effect || effect.effect === this._currentEffect && effect.materialContext === this._currentMaterialContext && effect.drawContext === this._currentDrawContext && !this._forceEnableEffect) {
|
|
1346
1334
|
if (!effect.effect && this.dbgShowEmptyEnableEffectCalls) {
|
|
1347
|
-
console.
|
|
1335
|
+
console.error("drawWrapper=", effect);
|
|
1336
|
+
throw "Invalid call to enableEffect: the effect property is empty!";
|
|
1348
1337
|
}
|
|
1349
1338
|
return;
|
|
1350
1339
|
}
|
|
@@ -1745,9 +1734,8 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
1745
1734
|
};
|
|
1746
1735
|
/** @hidden */
|
|
1747
1736
|
WebGPUEngine.prototype._generateMipmaps = function (texture, commandEncoder) {
|
|
1748
|
-
var
|
|
1749
|
-
|
|
1750
|
-
if (!gpuTexture) {
|
|
1737
|
+
var gpuHardwareTexture = texture._hardwareTexture;
|
|
1738
|
+
if (!gpuHardwareTexture) {
|
|
1751
1739
|
return;
|
|
1752
1740
|
}
|
|
1753
1741
|
// try as much as possible to use the command encoder corresponding to the current pass.
|
|
@@ -1764,10 +1752,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
1764
1752
|
}
|
|
1765
1753
|
}
|
|
1766
1754
|
if (texture.isCube) {
|
|
1767
|
-
this._textureHelper.generateCubeMipmaps(
|
|
1755
|
+
this._textureHelper.generateCubeMipmaps(gpuHardwareTexture, format, mipmapCount, commandEncoder);
|
|
1768
1756
|
}
|
|
1769
1757
|
else {
|
|
1770
|
-
this._textureHelper.generateMipmaps(
|
|
1758
|
+
this._textureHelper.generateMipmaps(gpuHardwareTexture, format, mipmapCount, 0, commandEncoder);
|
|
1771
1759
|
}
|
|
1772
1760
|
};
|
|
1773
1761
|
/**
|
|
@@ -1882,20 +1870,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
1882
1870
|
* End the current frame
|
|
1883
1871
|
*/
|
|
1884
1872
|
WebGPUEngine.prototype.endFrame = function () {
|
|
1885
|
-
|
|
1886
|
-
this._snapshotRenderingMainPassBundleList.push(this._bundleList.clone());
|
|
1887
|
-
this._snapshotRenderingRecordBundles = false;
|
|
1888
|
-
this._snapshotRenderingPlayBundles = true;
|
|
1889
|
-
this._snapshotRenderingMode = this._snapshotRenderingModeSaved;
|
|
1890
|
-
}
|
|
1891
|
-
if (this._mainRenderPassWrapper.renderPass !== null && this._snapshotRenderingPlayBundles) {
|
|
1892
|
-
for (var i = 0; i < this._snapshotRenderingMainPassBundleList.length; ++i) {
|
|
1893
|
-
this._snapshotRenderingMainPassBundleList[i].run(this._mainRenderPassWrapper.renderPass);
|
|
1894
|
-
if (this._snapshotRenderingMode === 1) {
|
|
1895
|
-
this._reportDrawCall(this._snapshotRenderingMainPassBundleList[i].numDrawCalls);
|
|
1896
|
-
}
|
|
1897
|
-
}
|
|
1898
|
-
}
|
|
1873
|
+
this._snapshotRendering.endFrame(this._mainRenderPassWrapper.renderPass);
|
|
1899
1874
|
this._endMainRenderPass();
|
|
1900
1875
|
this._timestampQuery.endFrame(this._renderEncoder);
|
|
1901
1876
|
if (this._invertYFinalFramebuffer) {
|
|
@@ -2098,24 +2073,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2098
2073
|
};
|
|
2099
2074
|
/** @hidden */
|
|
2100
2075
|
WebGPUEngine.prototype._endRenderTargetRenderPass = function () {
|
|
2101
|
-
var _a, _b, _c
|
|
2076
|
+
var _a, _b, _c;
|
|
2102
2077
|
if (this._currentRenderPass) {
|
|
2103
2078
|
var gpuWrapper = this._currentRenderTarget.texture._hardwareTexture;
|
|
2104
|
-
if (this.
|
|
2105
|
-
(_b = (_a = gpuWrapper._bundleLists) === null || _a === void 0 ? void 0 : _a[gpuWrapper._currentLayer]) === null || _b === void 0 ? void 0 : _b.run(this._currentRenderPass);
|
|
2106
|
-
if (this._snapshotRenderingMode === 1) {
|
|
2107
|
-
this._reportDrawCall((_d = (_c = gpuWrapper._bundleLists) === null || _c === void 0 ? void 0 : _c[gpuWrapper._currentLayer]) === null || _d === void 0 ? void 0 : _d.numDrawCalls);
|
|
2108
|
-
}
|
|
2109
|
-
}
|
|
2110
|
-
else if (this._snapshotRenderingRecordBundles) {
|
|
2111
|
-
if (!gpuWrapper._bundleLists) {
|
|
2112
|
-
gpuWrapper._bundleLists = [];
|
|
2113
|
-
}
|
|
2114
|
-
gpuWrapper._bundleLists[gpuWrapper._currentLayer] = this._bundleListRenderTarget.clone();
|
|
2115
|
-
gpuWrapper._bundleLists[gpuWrapper._currentLayer].run(this._currentRenderPass);
|
|
2116
|
-
this._bundleListRenderTarget.reset();
|
|
2117
|
-
}
|
|
2118
|
-
else if (!this.compatibilityMode) {
|
|
2079
|
+
if (!this._snapshotRendering.endRenderTargetPass(this._currentRenderPass, gpuWrapper) && !this.compatibilityMode) {
|
|
2119
2080
|
this._bundleListRenderTarget.run(this._currentRenderPass);
|
|
2120
2081
|
this._bundleListRenderTarget.reset();
|
|
2121
2082
|
}
|
|
@@ -2125,10 +2086,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2125
2086
|
this._count = 0;
|
|
2126
2087
|
}
|
|
2127
2088
|
if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
|
|
2128
|
-
console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", (
|
|
2089
|
+
console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", (_b = (_a = this._currentRenderTarget) === null || _a === void 0 ? void 0 : _a.texture) === null || _b === void 0 ? void 0 : _b.uniqueId);
|
|
2129
2090
|
}
|
|
2130
2091
|
}
|
|
2131
|
-
(
|
|
2092
|
+
(_c = this._debugPopGroup) === null || _c === void 0 ? void 0 : _c.call(this, 1);
|
|
2132
2093
|
this._resetCurrentViewport(1);
|
|
2133
2094
|
this._resetCurrentScissor(1);
|
|
2134
2095
|
this._resetCurrentStencilRef(1);
|
|
@@ -2201,10 +2162,8 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2201
2162
|
WebGPUEngine.prototype._endMainRenderPass = function () {
|
|
2202
2163
|
var _a;
|
|
2203
2164
|
if (this._mainRenderPassWrapper.renderPass !== null) {
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
}
|
|
2207
|
-
if (!this.compatibilityMode && !this._snapshotRenderingPlayBundles) {
|
|
2165
|
+
this._snapshotRendering.endMainRenderPass();
|
|
2166
|
+
if (!this.compatibilityMode && !this._snapshotRendering.play) {
|
|
2208
2167
|
this._bundleList.run(this._mainRenderPassWrapper.renderPass);
|
|
2209
2168
|
this._bundleList.reset();
|
|
2210
2169
|
}
|
|
@@ -2473,7 +2432,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2473
2432
|
webgpuPipelineContext.uniformBuffer.update();
|
|
2474
2433
|
this.bindUniformBufferBase(webgpuPipelineContext.uniformBuffer.getBuffer(), 0, WebGPUShaderProcessor.LeftOvertUBOName);
|
|
2475
2434
|
}
|
|
2476
|
-
if (this.
|
|
2435
|
+
if (this._snapshotRendering.play) {
|
|
2477
2436
|
this._reportDrawCall();
|
|
2478
2437
|
return;
|
|
2479
2438
|
}
|
|
@@ -2482,9 +2441,9 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2482
2441
|
}
|
|
2483
2442
|
var useFastPath = !this.compatibilityMode && this._currentDrawContext.fastBundle;
|
|
2484
2443
|
var renderPass2 = renderPass;
|
|
2485
|
-
if (useFastPath || this.
|
|
2444
|
+
if (useFastPath || this._snapshotRendering.record) {
|
|
2486
2445
|
this._applyRenderPassChanges(renderPass, bundleList);
|
|
2487
|
-
if (!this.
|
|
2446
|
+
if (!this._snapshotRendering.record) {
|
|
2488
2447
|
this._counters.numBundleReuseNonCompatMode++;
|
|
2489
2448
|
if (this._currentDrawContext.indirectDrawBuffer) {
|
|
2490
2449
|
this._currentDrawContext.setIndirectData(count, instancesCount || 1, start);
|
|
@@ -2510,7 +2469,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2510
2469
|
}
|
|
2511
2470
|
var pipeline = this._cacheRenderPipeline.getRenderPipeline(fillMode, this._currentEffect, this.currentSampleCount, textureState);
|
|
2512
2471
|
var bindGroups = this._cacheBindGroups.getBindGroups(webgpuPipelineContext, this._currentDrawContext, this._currentMaterialContext);
|
|
2513
|
-
if (!this.
|
|
2472
|
+
if (!this._snapshotRendering.record) {
|
|
2514
2473
|
this._applyRenderPassChanges(renderPass, !this.compatibilityMode ? bundleList : null);
|
|
2515
2474
|
if (!this.compatibilityMode) {
|
|
2516
2475
|
this._counters.numBundleCreationNonCompatMode++;
|
|
@@ -2540,7 +2499,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
|
|
|
2540
2499
|
renderPass2.setBindGroup(i, bindGroups[i]);
|
|
2541
2500
|
}
|
|
2542
2501
|
// draw
|
|
2543
|
-
var nonCompatMode = !this.compatibilityMode && !this.
|
|
2502
|
+
var nonCompatMode = !this.compatibilityMode && !this._snapshotRendering.record;
|
|
2544
2503
|
if (nonCompatMode && this._currentDrawContext.indirectDrawBuffer) {
|
|
2545
2504
|
this._currentDrawContext.setIndirectData(count, instancesCount || 1, start);
|
|
2546
2505
|
if (drawType === 0) {
|