@babylonjs/core 6.41.0 → 6.41.2
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/animatable.js +1 -2
- package/Animations/animatable.js.map +1 -1
- package/Animations/animation.js +4 -6
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroup.js +3 -3
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/runtimeAnimation.js +1 -1
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioEngine.js +3 -5
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/audioSceneComponent.js +1 -2
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.js +48 -74
- package/Audio/sound.js.map +1 -1
- package/Audio/soundTrack.js +6 -12
- package/Audio/soundTrack.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -2
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
- package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
- package/Behaviors/Meshes/fadeInOutBehavior.js +2 -4
- package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -2
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Bones/bone.js +4 -6
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.js +2 -3
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.align.js +5 -8
- package/Buffers/buffer.align.js.map +1 -1
- package/Buffers/buffer.js +6 -8
- package/Buffers/buffer.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +3 -4
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +3 -5
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +2 -2
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/arcRotateCamera.js +1 -2
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +5 -0
- package/Cameras/camera.js +18 -11
- package/Cameras/camera.js.map +1 -1
- package/Collisions/pickingInfo.js +1 -1
- package/Collisions/pickingInfo.js.map +1 -1
- package/Compute/computeEffect.js +5 -8
- package/Compute/computeEffect.js.map +1 -1
- package/Compute/computeShader.js +12 -9
- package/Compute/computeShader.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.js +1 -2
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/boundingBox.js +2 -3
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/ray.d.ts +6 -1
- package/Culling/ray.js +9 -4
- package/Culling/ray.js.map +1 -1
- package/Debug/debugLayer.js +4 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/directionalLightFrustumViewer.js +7 -9
- package/Debug/directionalLightFrustumViewer.js.map +1 -1
- package/Debug/physicsViewer.js +5 -7
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/rayHelper.js +1 -2
- package/Debug/rayHelper.js.map +1 -1
- package/Debug/skeletonViewer.js +26 -31
- package/Debug/skeletonViewer.js.map +1 -1
- package/Decorators/nodeDecorator.js +1 -1
- package/Decorators/nodeDecorator.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.js +3 -5
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/eventFactory.js +1 -1
- package/DeviceInput/eventFactory.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.js +1 -2
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.js +9 -12
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.js +6 -1
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.js +3 -4
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/Extensions/engine.rawTexture.js +4 -4
- package/Engines/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/Extensions/engine.readTexture.js +2 -3
- package/Engines/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.js +9 -5
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.renderTargetCube.js +9 -1
- package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
- package/Engines/Extensions/engine.views.js +1 -2
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Processors/shaderCodeNode.js +6 -7
- package/Engines/Processors/shaderCodeNode.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +6 -11
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js +1 -2
- package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
- package/Engines/WebGL/webGLRenderTargetWrapper.js +3 -5
- package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js +9 -2
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +1 -2
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +5 -6
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.query.js +2 -4
- package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +4 -4
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +11 -5
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +11 -3
- package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js +2 -3
- package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.textureSampler.js +1 -2
- package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.js +1 -2
- package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +6 -7
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +15 -20
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +10 -5
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +2 -3
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js +1 -2
- package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js +2 -2
- package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +1 -2
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +4 -6
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.js +2 -3
- package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +3 -5
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.js +2 -4
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -4
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +2 -4
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +5 -4
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -2
- package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +40 -43
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.js +12 -7
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +4 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/engine.js +4 -7
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.js +16 -22
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +9 -1
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.js +11 -16
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.js +32 -44
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +77 -95
- package/Engines/webgpuEngine.js.map +1 -1
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +2 -3
- package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +3 -6
- package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +1 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +1 -2
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +2 -4
- package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
- package/FlowGraph/flowGraph.js +1 -2
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphBlock.js +2 -4
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphContext.js +1 -2
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphCoordinator.js +4 -7
- package/FlowGraph/flowGraphCoordinator.js.map +1 -1
- package/FlowGraph/flowGraphSignalConnection.js +1 -2
- package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
- package/FlowGraph/serialization.js +2 -3
- package/FlowGraph/serialization.js.map +1 -1
- package/Gamepads/gamepadManager.js +1 -1
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/axisDragGizmo.js +2 -4
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/axisScaleGizmo.js +5 -8
- package/Gizmos/axisScaleGizmo.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +1 -1
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.js +2 -3
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/gizmo.js +4 -7
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.js +3 -4
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/planeDragGizmo.js +2 -4
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Gizmos/planeRotationGizmo.js +2 -4
- package/Gizmos/planeRotationGizmo.js.map +1 -1
- package/Helpers/environmentHelper.js +8 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Helpers/videoDome.js +1 -2
- package/Helpers/videoDome.js.map +1 -1
- package/Inputs/scene.inputManager.js +8 -10
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Layers/effectLayer.js +16 -10
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.js +16 -6
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.js +12 -3
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.js +1 -2
- package/Layers/layer.js.map +1 -1
- package/LensFlares/lensFlareSystem.js +1 -2
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +21 -25
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +18 -21
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.js +2 -4
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.js +1 -1
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +1 -2
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/sceneLoader.js +1 -1
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterial.js +26 -32
- package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js +22 -27
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +6 -7
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -2
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +1 -2
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +10 -16
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js +2 -3
- package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +2 -4
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +1 -2
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +24 -26
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +3 -3
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +45 -49
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +13 -13
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +27 -28
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Teleport/teleportOutBlock.js +1 -2
- package/Materials/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +2 -2
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +43 -33
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/biPlanarBlock.js +1 -2
- package/Materials/Node/Blocks/biPlanarBlock.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.js +2 -3
- package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorMergerBlock.js +4 -5
- package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +4 -6
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.js +2 -4
- package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.js +14 -23
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +4 -5
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +16 -11
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +3 -4
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +1 -1
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +25 -28
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.js +6 -9
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.js +4 -7
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.js +4 -7
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +2 -2
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Packer/packer.js +13 -14
- package/Materials/Textures/Packer/packer.js.map +1 -1
- package/Materials/Textures/Procedurals/noiseProceduralTexture.js +1 -2
- package/Materials/Textures/Procedurals/noiseProceduralTexture.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js +19 -11
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.js +2 -4
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.js +7 -13
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.js +1 -2
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/hdrCubeTexture.js +2 -4
- package/Materials/Textures/hdrCubeTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.js +5 -3
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/internalTexture.js +3 -5
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.js +3 -6
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.js +5 -8
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/rawTexture.js +1 -1
- package/Materials/Textures/rawTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.js +22 -34
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.js +16 -21
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +2 -4
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.js +1 -1
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +12 -10
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/clipPlaneMaterialHelper.js +18 -21
- package/Materials/clipPlaneMaterialHelper.js.map +1 -1
- package/Materials/drawWrapper.js +2 -4
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.d.ts +4 -0
- package/Materials/effect.js +18 -18
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.js +2 -3
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/material.decalMapConfiguration.js +3 -3
- package/Materials/material.decalMapConfiguration.js.map +1 -1
- package/Materials/material.detailMapConfiguration.js +1 -2
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +7 -4
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.js +5 -6
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialHelper.d.ts +1 -1
- package/Materials/materialHelper.js +3 -4
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginManager.js +3 -5
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.js +13 -14
- package/Materials/meshDebugPluginMaterial.js.map +1 -1
- package/Materials/multiMaterial.js +1 -2
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/shaderMaterial.d.ts +1 -1
- package/Materials/shaderMaterial.js +64 -32
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +24 -23
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.js +10 -12
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.js +1 -1
- package/Materials/uniformBuffer.js.map +1 -1
- package/Maths/math.vector.js +1 -2
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/decalBuilder.js +26 -29
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.js +16 -16
- package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.d.ts +5 -1
- package/Meshes/Builders/groundBuilder.js +13 -2
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/textBuilder.js +2 -3
- package/Meshes/Builders/textBuilder.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +9 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +141 -12
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineBaseMesh.js +8 -11
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineMesh.js +3 -5
- package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineRibbonMesh.js +13 -18
- package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
- package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js +1 -2
- package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.d.ts +18 -18
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +18 -18
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -1
- package/Meshes/Node/nodeGeometry.js +6 -3
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +1 -1
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +1 -2
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
- package/Meshes/Node/nodeGeometryBuildState.js +1 -2
- package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
- package/Meshes/abstractMesh.js +6 -10
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/csg.js +1 -2
- package/Meshes/csg.js.map +1 -1
- package/Meshes/geometry.js +1 -1
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/instancedMesh.js +5 -10
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.js +13 -22
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.js +3 -4
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/meshUVSpaceRenderer.js +18 -15
- package/Meshes/meshUVSpaceRenderer.js.map +1 -1
- package/Meshes/subMesh.js +8 -14
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +12 -18
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/trailMesh.js +2 -3
- package/Meshes/trailMesh.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +1 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +9 -14
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +2 -3
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/arrayTools.js +1 -1
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/basis.js +2 -3
- package/Misc/basis.js.map +1 -1
- package/Misc/dataStorage.js +1 -1
- package/Misc/dataStorage.js.map +1 -1
- package/Misc/deepCopier.js +1 -1
- package/Misc/deepCopier.js.map +1 -1
- package/Misc/environmentTextureTools.js +3 -4
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/equirectangularCapture.js +2 -3
- package/Misc/equirectangularCapture.js.map +1 -1
- package/Misc/fileTools.js +4 -4
- package/Misc/fileTools.js.map +1 -1
- package/Misc/greasedLineTools.js +3 -5
- package/Misc/greasedLineTools.js.map +1 -1
- package/Misc/logger.js +1 -2
- package/Misc/logger.js.map +1 -1
- package/Misc/minMaxReducer.js +2 -3
- package/Misc/minMaxReducer.js.map +1 -1
- package/Misc/pressureObserverWrapper.js +5 -8
- package/Misc/pressureObserverWrapper.js.map +1 -1
- package/Misc/sceneRecorder.js +1 -1
- package/Misc/sceneRecorder.js.map +1 -1
- package/Misc/screenshotTools.js +1 -1
- package/Misc/screenshotTools.js.map +1 -1
- package/Misc/textureTools.js +5 -5
- package/Misc/textureTools.js.map +1 -1
- package/Misc/timer.js +3 -5
- package/Misc/timer.js.map +1 -1
- package/Misc/tools.d.ts +3 -2
- package/Misc/tools.js +6 -5
- package/Misc/tools.js.map +1 -1
- package/Misc/trajectoryClassifier.js +3 -3
- package/Misc/trajectoryClassifier.js.map +1 -1
- package/Misc/videoRecorder.js +6 -4
- package/Misc/videoRecorder.js.map +1 -1
- package/Misc/virtualJoystick.js +4 -1
- package/Misc/virtualJoystick.js.map +1 -1
- package/Morph/morphTargetManager.js +1 -2
- package/Morph/morphTargetManager.js.map +1 -1
- package/Particles/EmitterTypes/meshParticleEmitter.js +1 -2
- package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +4 -0
- package/Particles/baseParticleSystem.js +4 -0
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/computeShaderParticleSystem.js +3 -6
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +2 -2
- package/Particles/gpuParticleSystem.js +30 -20
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleSystem.d.ts +3 -2
- package/Particles/particleSystem.js +33 -30
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/particleSystemComponent.js +2 -3
- package/Particles/particleSystemComponent.js.map +1 -1
- package/Particles/pointsCloudSystem.js +5 -8
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticleSystem.js +5 -7
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/webgl2ParticleSystem.js +1 -2
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/Physics/castingResult.js +1 -1
- package/Physics/castingResult.js.map +1 -1
- package/Physics/joinedPhysicsEngineComponent.js +2 -2
- package/Physics/joinedPhysicsEngineComponent.js.map +1 -1
- package/Physics/physicsHelper.js +19 -21
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.d.ts +20 -0
- package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.js +48 -35
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/physicsAggregate.js +10 -12
- package/Physics/v2/physicsAggregate.js.map +1 -1
- package/Physics/v2/physicsBody.js +2 -4
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsShape.js +1 -2
- package/Physics/v2/physicsShape.js.map +1 -1
- package/Physics/v2/ragdoll.js +6 -8
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +6 -8
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +14 -22
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.js +1 -1
- package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.js +28 -34
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.js +4 -6
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.js +2 -2
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +4 -7
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.js +2 -4
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.js +22 -19
- package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
- package/Rendering/boundingBoxRenderer.js +2 -3
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthPeelingRenderer.js +2 -4
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/depthPeelingSceneComponent.js +2 -4
- package/Rendering/depthPeelingSceneComponent.js.map +1 -1
- package/Rendering/depthRenderer.js +10 -13
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/edgesRenderer.js +8 -11
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderer.js +6 -11
- package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObject.js +3 -5
- package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -4
- package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +30 -36
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTextures.js +5 -7
- package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +3 -2
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +5 -4
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.js +3 -6
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/reflectiveShadowMap.d.ts +1 -0
- package/Rendering/reflectiveShadowMap.js +5 -5
- package/Rendering/reflectiveShadowMap.js.map +1 -1
- package/Shaders/color.fragment.d.ts +2 -0
- package/Shaders/color.fragment.js +4 -0
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.d.ts +2 -0
- package/Shaders/color.vertex.js +7 -0
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.d.ts +2 -0
- package/Shaders/gpuRenderParticles.fragment.js +4 -0
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.d.ts +2 -0
- package/Shaders/gpuRenderParticles.vertex.js +5 -1
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/particles.fragment.d.ts +2 -0
- package/Shaders/particles.fragment.js +4 -0
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.d.ts +2 -0
- package/Shaders/particles.vertex.js +5 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Sprites/spriteManager.js +1 -2
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteRenderer.js +5 -7
- package/Sprites/spriteRenderer.js.map +1 -1
- package/States/stencilStateComposer.js +2 -4
- package/States/stencilStateComposer.js.map +1 -1
- package/XR/features/WebXRAbstractFeature.js +6 -2
- package/XR/features/WebXRAbstractFeature.js.map +1 -1
- package/XR/features/WebXRAnchorSystem.js +1 -2
- package/XR/features/WebXRAnchorSystem.js.map +1 -1
- package/XR/features/WebXRControllerMovement.js +6 -7
- package/XR/features/WebXRControllerMovement.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.js +17 -10
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.js +1 -2
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRControllerTeleportation.d.ts +1 -0
- package/XR/features/WebXRControllerTeleportation.js +6 -3
- package/XR/features/WebXRControllerTeleportation.js.map +1 -1
- package/XR/features/WebXRDepthSensing.js +3 -5
- package/XR/features/WebXRDepthSensing.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +1 -0
- package/XR/features/WebXRHandTracking.js +31 -28
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRLayers.js +9 -11
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRLightEstimation.js +3 -6
- package/XR/features/WebXRLightEstimation.js.map +1 -1
- package/XR/features/WebXRMeshDetector.js +2 -4
- package/XR/features/WebXRMeshDetector.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +21 -18
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/features/WebXRPlaneDetector.js +1 -2
- package/XR/features/WebXRPlaneDetector.js.map +1 -1
- package/XR/features/WebXRRawCameraAccess.js +2 -3
- package/XR/features/WebXRRawCameraAccess.js.map +1 -1
- package/XR/features/WebXRSpaceWarp.js +1 -1
- package/XR/features/WebXRSpaceWarp.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.js +4 -1
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/native/nativeXRFrame.js +1 -2
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/webXRCamera.js +1 -2
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.js +28 -6
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXRExperienceHelper.js +5 -7
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.js +4 -1
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRInput.js +6 -1
- package/XR/webXRInput.js.map +1 -1
- package/XR/webXRInputSource.js +1 -2
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRSessionManager.js +16 -29
- package/XR/webXRSessionManager.js.map +1 -1
- package/assetContainer.js +4 -1
- package/assetContainer.js.map +1 -1
- package/package.json +1 -1
- package/scene.js +18 -17
- package/scene.js.map +1 -1
package/Engines/webgpuEngine.js
CHANGED
|
@@ -228,8 +228,7 @@ export class WebGPUEngine extends Engine {
|
|
|
228
228
|
* @param options Defines the options passed to the engine to create the GPU context dependencies
|
|
229
229
|
*/
|
|
230
230
|
constructor(canvas, options = {}) {
|
|
231
|
-
|
|
232
|
-
super(null, (_a = options.antialias) !== null && _a !== void 0 ? _a : true, options);
|
|
231
|
+
super(null, options.antialias ?? true, options);
|
|
233
232
|
/** A unique id to identify this instance */
|
|
234
233
|
this.uniqueId = -1;
|
|
235
234
|
// Page Life cycle and constants
|
|
@@ -330,7 +329,7 @@ export class WebGPUEngine extends Engine {
|
|
|
330
329
|
this._blendColorsCurrent = [null, null, null, null];
|
|
331
330
|
this._name = "WebGPU";
|
|
332
331
|
options.deviceDescriptor = options.deviceDescriptor || {};
|
|
333
|
-
options.enableGPUDebugMarkers =
|
|
332
|
+
options.enableGPUDebugMarkers = options.enableGPUDebugMarkers ?? false;
|
|
334
333
|
Logger.Log(`Babylon.js v${Engine.Version} - ${this.description} engine`);
|
|
335
334
|
if (!navigator.gpu) {
|
|
336
335
|
Logger.Error("WebGPU is not supported by your browser.");
|
|
@@ -357,17 +356,15 @@ export class WebGPUEngine extends Engine {
|
|
|
357
356
|
* @returns a promise notifying the readiness of the engine.
|
|
358
357
|
*/
|
|
359
358
|
initAsync(glslangOptions, twgslOptions) {
|
|
360
|
-
var _a;
|
|
361
359
|
this.uniqueId = WebGPUEngine._InstanceId++;
|
|
362
360
|
this._glslangOptions = glslangOptions;
|
|
363
361
|
this._twgslOptions = twgslOptions;
|
|
364
|
-
return this._initGlslang(glslangOptions
|
|
362
|
+
return this._initGlslang(glslangOptions ?? this._options?.glslangOptions)
|
|
365
363
|
.then((glslang) => {
|
|
366
|
-
var _a;
|
|
367
364
|
this._glslang = glslang;
|
|
368
365
|
this._tintWASM = WebGPUEngine.UseTWGSL ? new WebGPUTintWASM() : null;
|
|
369
366
|
return this._tintWASM
|
|
370
|
-
? this._tintWASM.initTwgsl(twgslOptions
|
|
367
|
+
? this._tintWASM.initTwgsl(twgslOptions ?? this._options?.twgslOptions).then(() => {
|
|
371
368
|
return navigator.gpu.requestAdapter(this._options);
|
|
372
369
|
}, (msg) => {
|
|
373
370
|
Logger.Error("Can not initialize twgsl!");
|
|
@@ -381,7 +378,6 @@ export class WebGPUEngine extends Engine {
|
|
|
381
378
|
throw Error("WebGPU initializations stopped.");
|
|
382
379
|
})
|
|
383
380
|
.then((adapter) => {
|
|
384
|
-
var _a, _b, _c;
|
|
385
381
|
if (!adapter) {
|
|
386
382
|
// eslint-disable-next-line no-throw-literal
|
|
387
383
|
throw "Could not retrieve a WebGPU adapter (adapter is null).";
|
|
@@ -389,13 +385,13 @@ export class WebGPUEngine extends Engine {
|
|
|
389
385
|
else {
|
|
390
386
|
this._adapter = adapter;
|
|
391
387
|
this._adapterSupportedExtensions = [];
|
|
392
|
-
|
|
388
|
+
this._adapter.features?.forEach((feature) => this._adapterSupportedExtensions.push(feature));
|
|
393
389
|
this._adapterSupportedLimits = this._adapter.limits;
|
|
394
390
|
this._adapter.requestAdapterInfo().then((adapterInfo) => {
|
|
395
391
|
this._adapterInfo = adapterInfo;
|
|
396
392
|
});
|
|
397
|
-
const deviceDescriptor =
|
|
398
|
-
const requiredFeatures =
|
|
393
|
+
const deviceDescriptor = this._options.deviceDescriptor ?? {};
|
|
394
|
+
const requiredFeatures = deviceDescriptor?.requiredFeatures ?? (this._options.enableAllFeatures ? this._adapterSupportedExtensions : undefined);
|
|
399
395
|
if (requiredFeatures) {
|
|
400
396
|
const requestedExtensions = requiredFeatures;
|
|
401
397
|
const validExtensions = [];
|
|
@@ -421,10 +417,9 @@ export class WebGPUEngine extends Engine {
|
|
|
421
417
|
}
|
|
422
418
|
})
|
|
423
419
|
.then((device) => {
|
|
424
|
-
var _a, _b;
|
|
425
420
|
this._device = device;
|
|
426
421
|
this._deviceEnabledExtensions = [];
|
|
427
|
-
|
|
422
|
+
this._device.features?.forEach((feature) => this._deviceEnabledExtensions.push(feature));
|
|
428
423
|
this._deviceLimits = device.limits;
|
|
429
424
|
let numUncapturedErrors = -1;
|
|
430
425
|
this._device.addEventListener("uncapturederror", (event) => {
|
|
@@ -436,7 +431,7 @@ export class WebGPUEngine extends Engine {
|
|
|
436
431
|
}
|
|
437
432
|
});
|
|
438
433
|
if (!this._doNotHandleContextLost) {
|
|
439
|
-
|
|
434
|
+
this._device.lost?.then((info) => {
|
|
440
435
|
if (this._isDisposed) {
|
|
441
436
|
return;
|
|
442
437
|
}
|
|
@@ -444,14 +439,13 @@ export class WebGPUEngine extends Engine {
|
|
|
444
439
|
Logger.Warn("WebGPU context lost. " + info);
|
|
445
440
|
this.onContextLostObservable.notifyObservers(this);
|
|
446
441
|
this._restoreEngineAfterContextLost(async () => {
|
|
447
|
-
var _a, _b, _c, _d;
|
|
448
442
|
const snapshotRenderingMode = this.snapshotRenderingMode;
|
|
449
443
|
const snapshotRendering = this.snapshotRendering;
|
|
450
444
|
const disableCacheSamplers = this.disableCacheSamplers;
|
|
451
445
|
const disableCacheRenderPipelines = this.disableCacheRenderPipelines;
|
|
452
446
|
const disableCacheBindGroups = this.disableCacheBindGroups;
|
|
453
447
|
const enableGPUTimingMeasurements = this.enableGPUTimingMeasurements;
|
|
454
|
-
await this.initAsync(
|
|
448
|
+
await this.initAsync(this._glslangOptions ?? this._options?.glslangOptions, this._twgslOptions ?? this._options?.twgslOptions);
|
|
455
449
|
this.snapshotRenderingMode = snapshotRenderingMode;
|
|
456
450
|
this.snapshotRendering = snapshotRendering;
|
|
457
451
|
this.disableCacheSamplers = disableCacheSamplers;
|
|
@@ -510,16 +504,18 @@ export class WebGPUEngine extends Engine {
|
|
|
510
504
|
this.resize();
|
|
511
505
|
})
|
|
512
506
|
.catch((e) => {
|
|
513
|
-
var _a;
|
|
514
507
|
Logger.Error("Can not create WebGPU Device and/or context.");
|
|
515
508
|
Logger.Error(e);
|
|
516
509
|
// eslint-disable-next-line no-console
|
|
517
|
-
|
|
510
|
+
console?.trace?.();
|
|
518
511
|
});
|
|
519
512
|
}
|
|
520
513
|
_initGlslang(glslangOptions) {
|
|
521
514
|
glslangOptions = glslangOptions || {};
|
|
522
|
-
glslangOptions =
|
|
515
|
+
glslangOptions = {
|
|
516
|
+
...WebGPUEngine._GLSLslangDefaultOptions,
|
|
517
|
+
...glslangOptions,
|
|
518
|
+
};
|
|
523
519
|
if (glslangOptions.glslang) {
|
|
524
520
|
return Promise.resolve(glslangOptions.glslang);
|
|
525
521
|
}
|
|
@@ -743,7 +739,6 @@ export class WebGPUEngine extends Engine {
|
|
|
743
739
|
WebGPUCacheBindGroups.ResetCache();
|
|
744
740
|
// Clear the draw wrappers and material contexts
|
|
745
741
|
const cleanScenes = (scenes) => {
|
|
746
|
-
var _a;
|
|
747
742
|
for (const scene of scenes) {
|
|
748
743
|
for (const mesh of scene.meshes) {
|
|
749
744
|
const subMeshes = mesh.subMeshes;
|
|
@@ -755,7 +750,7 @@ export class WebGPUEngine extends Engine {
|
|
|
755
750
|
}
|
|
756
751
|
}
|
|
757
752
|
for (const material of scene.materials) {
|
|
758
|
-
|
|
753
|
+
material._materialContext?.reset();
|
|
759
754
|
}
|
|
760
755
|
}
|
|
761
756
|
};
|
|
@@ -988,12 +983,11 @@ export class WebGPUEngine extends Engine {
|
|
|
988
983
|
return update;
|
|
989
984
|
}
|
|
990
985
|
_applyStencilRef(bundleList) {
|
|
991
|
-
var _a, _b;
|
|
992
986
|
if (bundleList) {
|
|
993
|
-
bundleList.addItem(new WebGPURenderItemStencilRef(
|
|
987
|
+
bundleList.addItem(new WebGPURenderItemStencilRef(this._stencilStateComposer.funcRef ?? 0));
|
|
994
988
|
}
|
|
995
989
|
else {
|
|
996
|
-
this._getCurrentRenderPass().setStencilReference(
|
|
990
|
+
this._getCurrentRenderPass().setStencilReference(this._stencilStateComposer.funcRef ?? 0);
|
|
997
991
|
}
|
|
998
992
|
}
|
|
999
993
|
_mustUpdateBlendColor() {
|
|
@@ -1072,11 +1066,10 @@ export class WebGPUEngine extends Engine {
|
|
|
1072
1066
|
}
|
|
1073
1067
|
}
|
|
1074
1068
|
_clearFullQuad(clearColor, clearDepth, clearStencil) {
|
|
1075
|
-
var _a, _b;
|
|
1076
1069
|
const renderPass = !this.compatibilityMode ? null : this._getCurrentRenderPass();
|
|
1077
1070
|
this._clearQuad.setColorFormat(this._colorFormat);
|
|
1078
1071
|
this._clearQuad.setDepthStencilFormat(this._depthTextureFormat);
|
|
1079
|
-
this._clearQuad.setMRTAttachments(
|
|
1072
|
+
this._clearQuad.setMRTAttachments(this._cacheRenderPipeline.mrtAttachments ?? [], this._cacheRenderPipeline.mrtTextureArray ?? [], this._cacheRenderPipeline.mrtTextureCount);
|
|
1080
1073
|
if (!this.compatibilityMode) {
|
|
1081
1074
|
this._bundleList.addItem(new WebGPURenderItemStencilRef(this._clearStencilValue));
|
|
1082
1075
|
}
|
|
@@ -1269,7 +1262,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1269
1262
|
*/
|
|
1270
1263
|
bindBuffers(vertexBuffers, indexBuffer, effect, overrideVertexBuffers) {
|
|
1271
1264
|
this._currentIndexBuffer = indexBuffer;
|
|
1272
|
-
this._currentOverrideVertexBuffers = overrideVertexBuffers
|
|
1265
|
+
this._currentOverrideVertexBuffers = overrideVertexBuffers ?? null;
|
|
1273
1266
|
this._cacheRenderPipeline.setBuffers(vertexBuffers, indexBuffer, this._currentOverrideVertexBuffers);
|
|
1274
1267
|
}
|
|
1275
1268
|
/**
|
|
@@ -1373,11 +1366,10 @@ export class WebGPUEngine extends Engine {
|
|
|
1373
1366
|
* @returns the new Effect
|
|
1374
1367
|
*/
|
|
1375
1368
|
createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = ShaderLanguage.GLSL) {
|
|
1376
|
-
var _a;
|
|
1377
1369
|
const vertex = baseName.vertexElement || baseName.vertex || baseName.vertexToken || baseName.vertexSource || baseName;
|
|
1378
1370
|
const fragment = baseName.fragmentElement || baseName.fragment || baseName.fragmentToken || baseName.fragmentSource || baseName;
|
|
1379
1371
|
const globalDefines = this._getGlobalDefines();
|
|
1380
|
-
let fullDefines =
|
|
1372
|
+
let fullDefines = defines ?? attributesNamesOrOptions.defines ?? "";
|
|
1381
1373
|
if (globalDefines) {
|
|
1382
1374
|
fullDefines += "\n" + globalDefines;
|
|
1383
1375
|
}
|
|
@@ -1656,16 +1648,15 @@ export class WebGPUEngine extends Engine {
|
|
|
1656
1648
|
* @returns a new internal texture
|
|
1657
1649
|
*/
|
|
1658
1650
|
_createInternalTexture(size, options, delayGPUTextureCreation = true, source = InternalTextureSource.Unknown) {
|
|
1659
|
-
var _a, _b, _c;
|
|
1660
1651
|
const fullOptions = {};
|
|
1661
1652
|
if (options !== undefined && typeof options === "object") {
|
|
1662
1653
|
fullOptions.generateMipMaps = options.generateMipMaps;
|
|
1663
1654
|
fullOptions.type = options.type === undefined ? 0 : options.type;
|
|
1664
1655
|
fullOptions.samplingMode = options.samplingMode === undefined ? 3 : options.samplingMode;
|
|
1665
1656
|
fullOptions.format = options.format === undefined ? 5 : options.format;
|
|
1666
|
-
fullOptions.samples =
|
|
1667
|
-
fullOptions.creationFlags =
|
|
1668
|
-
fullOptions.useSRGBBuffer =
|
|
1657
|
+
fullOptions.samples = options.samples ?? 1;
|
|
1658
|
+
fullOptions.creationFlags = options.creationFlags ?? 0;
|
|
1659
|
+
fullOptions.useSRGBBuffer = options.useSRGBBuffer ?? false;
|
|
1669
1660
|
fullOptions.label = options.label;
|
|
1670
1661
|
}
|
|
1671
1662
|
else {
|
|
@@ -1738,17 +1729,16 @@ export class WebGPUEngine extends Engine {
|
|
|
1738
1729
|
*/
|
|
1739
1730
|
createTexture(url, noMipmap, invertY, scene, samplingMode = 3, onLoad = null, onError = null, buffer = null, fallback = null, format = null, forcedExtension = null, mimeType, loaderOptions, creationFlags, useSRGBBuffer) {
|
|
1740
1731
|
return this._createTextureBase(url, noMipmap, invertY, scene, samplingMode, onLoad, onError, (texture, extension, scene, img, invertY, noMipmap, isCompressed, processFunction) => {
|
|
1741
|
-
var _a;
|
|
1742
1732
|
const imageBitmap = img; // we will never get an HTMLImageElement in WebGPU
|
|
1743
1733
|
texture.baseWidth = imageBitmap.width;
|
|
1744
1734
|
texture.baseHeight = imageBitmap.height;
|
|
1745
1735
|
texture.width = imageBitmap.width;
|
|
1746
1736
|
texture.height = imageBitmap.height;
|
|
1747
|
-
texture.format = texture.format !== -1 ? texture.format : format
|
|
1737
|
+
texture.format = texture.format !== -1 ? texture.format : format ?? 5;
|
|
1748
1738
|
texture.type = texture.type !== -1 ? texture.type : 0;
|
|
1749
|
-
texture._creationFlags = creationFlags
|
|
1739
|
+
texture._creationFlags = creationFlags ?? 0;
|
|
1750
1740
|
processFunction(texture.width, texture.height, imageBitmap, extension, texture, () => { });
|
|
1751
|
-
if (!
|
|
1741
|
+
if (!texture._hardwareTexture?.underlyingResource) {
|
|
1752
1742
|
// the texture could have been created before reaching this point so don't recreate it if already existing
|
|
1753
1743
|
const gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, imageBitmap.width, imageBitmap.height, undefined, creationFlags);
|
|
1754
1744
|
if (WebGPUTextureHelper.IsImageBitmap(imageBitmap)) {
|
|
@@ -1790,9 +1780,8 @@ export class WebGPUEngine extends Engine {
|
|
|
1790
1780
|
throw new Error("wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.");
|
|
1791
1781
|
}
|
|
1792
1782
|
generateMipMapsForCubemap(texture) {
|
|
1793
|
-
var _a;
|
|
1794
1783
|
if (texture.generateMipMaps) {
|
|
1795
|
-
const gpuTexture =
|
|
1784
|
+
const gpuTexture = texture._hardwareTexture?.underlyingResource;
|
|
1796
1785
|
if (!gpuTexture) {
|
|
1797
1786
|
this._textureHelper.createGPUTextureForInternalTexture(texture);
|
|
1798
1787
|
}
|
|
@@ -1853,7 +1842,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1853
1842
|
* @internal
|
|
1854
1843
|
*/
|
|
1855
1844
|
_setInternalTexture(name, texture, baseName) {
|
|
1856
|
-
baseName = baseName
|
|
1845
|
+
baseName = baseName ?? name;
|
|
1857
1846
|
if (this._currentEffect) {
|
|
1858
1847
|
const webgpuPipelineContext = this._currentEffect._pipelineContext;
|
|
1859
1848
|
const availableTexture = webgpuPipelineContext.shaderProcessingContext.availableTextures[baseName];
|
|
@@ -1893,7 +1882,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1893
1882
|
// Else, name is something like 'myTexture0' / 'myTexture1' / ... and baseName is 'myTexture'
|
|
1894
1883
|
// baseName is used to look up the texture in the shaderProcessingContext.availableTextures map
|
|
1895
1884
|
// name is used to look up the texture in the _currentMaterialContext.textures map
|
|
1896
|
-
baseName = baseName
|
|
1885
|
+
baseName = baseName ?? name;
|
|
1897
1886
|
if (this._currentEffect) {
|
|
1898
1887
|
if (!texture) {
|
|
1899
1888
|
this._currentMaterialContext.setTexture(name, null);
|
|
@@ -1986,7 +1975,7 @@ export class WebGPUEngine extends Engine {
|
|
|
1986
1975
|
* @internal
|
|
1987
1976
|
*/
|
|
1988
1977
|
_generateMipmaps(texture, commandEncoder) {
|
|
1989
|
-
commandEncoder = commandEncoder
|
|
1978
|
+
commandEncoder = commandEncoder ?? this._renderEncoder;
|
|
1990
1979
|
const gpuHardwareTexture = texture._hardwareTexture;
|
|
1991
1980
|
if (!gpuHardwareTexture) {
|
|
1992
1981
|
return;
|
|
@@ -2034,9 +2023,8 @@ export class WebGPUEngine extends Engine {
|
|
|
2034
2023
|
* @param generateMipMaps defines whether to generate mipmaps or not
|
|
2035
2024
|
*/
|
|
2036
2025
|
updateTextureData(texture, imageData, xOffset, yOffset, width, height, faceIndex = 0, lod = 0, generateMipMaps = false) {
|
|
2037
|
-
var _a;
|
|
2038
2026
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
2039
|
-
if (!
|
|
2027
|
+
if (!texture._hardwareTexture?.underlyingResource) {
|
|
2040
2028
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
|
|
2041
2029
|
}
|
|
2042
2030
|
const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
|
|
@@ -2049,9 +2037,8 @@ export class WebGPUEngine extends Engine {
|
|
|
2049
2037
|
* @internal
|
|
2050
2038
|
*/
|
|
2051
2039
|
_uploadCompressedDataToTextureDirectly(texture, internalFormat, width, height, imageData, faceIndex = 0, lod = 0) {
|
|
2052
|
-
var _a;
|
|
2053
2040
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
2054
|
-
if (!
|
|
2041
|
+
if (!texture._hardwareTexture?.underlyingResource) {
|
|
2055
2042
|
texture.format = internalFormat;
|
|
2056
2043
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);
|
|
2057
2044
|
}
|
|
@@ -2062,13 +2049,12 @@ export class WebGPUEngine extends Engine {
|
|
|
2062
2049
|
* @internal
|
|
2063
2050
|
*/
|
|
2064
2051
|
_uploadDataToTextureDirectly(texture, imageData, faceIndex = 0, lod = 0, babylonInternalFormat, useTextureWidthAndHeight = false) {
|
|
2065
|
-
var _a;
|
|
2066
2052
|
const lodMaxWidth = Math.round(Math.log(texture.width) * Math.LOG2E);
|
|
2067
2053
|
const lodMaxHeight = Math.round(Math.log(texture.height) * Math.LOG2E);
|
|
2068
2054
|
const width = useTextureWidthAndHeight ? texture.width : Math.pow(2, Math.max(lodMaxWidth - lod, 0));
|
|
2069
2055
|
const height = useTextureWidthAndHeight ? texture.height : Math.pow(2, Math.max(lodMaxHeight - lod, 0));
|
|
2070
2056
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
2071
|
-
if (!
|
|
2057
|
+
if (!texture._hardwareTexture?.underlyingResource) {
|
|
2072
2058
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);
|
|
2073
2059
|
}
|
|
2074
2060
|
const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
|
|
@@ -2084,9 +2070,8 @@ export class WebGPUEngine extends Engine {
|
|
|
2084
2070
|
* @internal
|
|
2085
2071
|
*/
|
|
2086
2072
|
_uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {
|
|
2087
|
-
var _a;
|
|
2088
2073
|
let gpuTextureWrapper = texture._hardwareTexture;
|
|
2089
|
-
if (!
|
|
2074
|
+
if (!texture._hardwareTexture?.underlyingResource) {
|
|
2090
2075
|
gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
|
|
2091
2076
|
}
|
|
2092
2077
|
if (image instanceof HTMLImageElement) {
|
|
@@ -2212,15 +2197,14 @@ export class WebGPUEngine extends Engine {
|
|
|
2212
2197
|
// Render Pass
|
|
2213
2198
|
//------------------------------------------------------------------------------
|
|
2214
2199
|
_startRenderTargetRenderPass(renderTargetWrapper, setClearStates, clearColor, clearDepth, clearStencil) {
|
|
2215
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2216
2200
|
this._endCurrentRenderPass();
|
|
2217
2201
|
const rtWrapper = renderTargetWrapper;
|
|
2218
2202
|
const depthStencilTexture = rtWrapper._depthStencilTexture;
|
|
2219
|
-
const gpuDepthStencilWrapper = depthStencilTexture
|
|
2220
|
-
const gpuDepthStencilTexture = gpuDepthStencilWrapper
|
|
2221
|
-
const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper
|
|
2222
|
-
const depthTextureView = gpuDepthStencilTexture
|
|
2223
|
-
const depthMSAATextureView = gpuDepthStencilMSAATexture
|
|
2203
|
+
const gpuDepthStencilWrapper = depthStencilTexture?._hardwareTexture;
|
|
2204
|
+
const gpuDepthStencilTexture = gpuDepthStencilWrapper?.underlyingResource;
|
|
2205
|
+
const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper?.getMSAATexture();
|
|
2206
|
+
const depthTextureView = gpuDepthStencilTexture?.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
|
|
2207
|
+
const depthMSAATextureView = gpuDepthStencilMSAATexture?.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
|
|
2224
2208
|
const depthTextureHasStencil = gpuDepthStencilWrapper ? WebGPUTextureHelper.HasStencilAspect(gpuDepthStencilWrapper.format) : false;
|
|
2225
2209
|
const colorAttachments = [];
|
|
2226
2210
|
if (this.useReverseDepthBuffer) {
|
|
@@ -2244,17 +2228,25 @@ export class WebGPUEngine extends Engine {
|
|
|
2244
2228
|
for (let i = 0; i < this._mrtAttachments.length; ++i) {
|
|
2245
2229
|
const index = this._mrtAttachments[i]; // if index == 0 it means the texture should not be written to => at render pass creation time, it means we should not clear it
|
|
2246
2230
|
const mrtTexture = rtWrapper.textures[i];
|
|
2247
|
-
const gpuMRTWrapper = mrtTexture
|
|
2248
|
-
const gpuMRTTexture = gpuMRTWrapper
|
|
2231
|
+
const gpuMRTWrapper = mrtTexture?._hardwareTexture;
|
|
2232
|
+
const gpuMRTTexture = gpuMRTWrapper?.underlyingResource;
|
|
2249
2233
|
if (gpuMRTWrapper && gpuMRTTexture) {
|
|
2250
2234
|
const gpuMSAATexture = gpuMRTWrapper.getMSAATexture(i);
|
|
2251
|
-
const layerIndex =
|
|
2252
|
-
const faceIndex =
|
|
2253
|
-
const viewDescriptor =
|
|
2254
|
-
|
|
2235
|
+
const layerIndex = rtWrapper.layerIndices?.[i] ?? 0;
|
|
2236
|
+
const faceIndex = rtWrapper.faceIndices?.[i] ?? 0;
|
|
2237
|
+
const viewDescriptor = {
|
|
2238
|
+
...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
|
|
2239
|
+
format: gpuMRTWrapper.format,
|
|
2240
|
+
baseArrayLayer: mrtTexture.isCube ? layerIndex * 6 + faceIndex : layerIndex,
|
|
2241
|
+
};
|
|
2242
|
+
const msaaViewDescriptor = {
|
|
2243
|
+
...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
|
|
2244
|
+
format: gpuMRTWrapper.format,
|
|
2245
|
+
baseArrayLayer: 0,
|
|
2246
|
+
};
|
|
2255
2247
|
const isRTInteger = mrtTexture.type === 7 || mrtTexture.type === 5;
|
|
2256
2248
|
const colorTextureView = gpuMRTTexture.createView(viewDescriptor);
|
|
2257
|
-
const colorMSAATextureView = gpuMSAATexture
|
|
2249
|
+
const colorMSAATextureView = gpuMSAATexture?.createView(msaaViewDescriptor);
|
|
2258
2250
|
colorAttachments.push({
|
|
2259
2251
|
view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
|
|
2260
2252
|
resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
|
|
@@ -2275,7 +2267,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2275
2267
|
const gpuTexture = gpuWrapper.underlyingResource;
|
|
2276
2268
|
const gpuMSAATexture = gpuWrapper.getMSAATexture();
|
|
2277
2269
|
const colorTextureView = gpuTexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
|
|
2278
|
-
const colorMSAATextureView = gpuMSAATexture
|
|
2270
|
+
const colorMSAATextureView = gpuMSAATexture?.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
|
|
2279
2271
|
const isRTInteger = internalTexture.type === 7 || internalTexture.type === 5;
|
|
2280
2272
|
colorAttachments.push({
|
|
2281
2273
|
view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
|
|
@@ -2289,9 +2281,9 @@ export class WebGPUEngine extends Engine {
|
|
|
2289
2281
|
colorAttachments.push(null);
|
|
2290
2282
|
}
|
|
2291
2283
|
}
|
|
2292
|
-
|
|
2284
|
+
this._debugPushGroup?.("render target pass" + (renderTargetWrapper.label ? " (" + renderTargetWrapper.label + ")" : ""), 1);
|
|
2293
2285
|
this._rttRenderPassWrapper.renderPassDescriptor = {
|
|
2294
|
-
label: (
|
|
2286
|
+
label: (renderTargetWrapper.label ?? "RTT") + "RenderPass",
|
|
2295
2287
|
colorAttachments,
|
|
2296
2288
|
depthStencilAttachment: depthStencilTexture && gpuDepthStencilTexture
|
|
2297
2289
|
? {
|
|
@@ -2308,7 +2300,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2308
2300
|
stencilStoreOp: !depthTextureHasStencil ? undefined : WebGPUConstants.StoreOp.Store,
|
|
2309
2301
|
}
|
|
2310
2302
|
: undefined,
|
|
2311
|
-
occlusionQuerySet:
|
|
2303
|
+
occlusionQuerySet: this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined,
|
|
2312
2304
|
};
|
|
2313
2305
|
this._timestampQuery.startPass(this._rttRenderPassWrapper.renderPassDescriptor, this._timestampIndex);
|
|
2314
2306
|
this._currentRenderPass = this._renderEncoder.beginRenderPass(this._rttRenderPassWrapper.renderPassDescriptor);
|
|
@@ -2336,14 +2328,13 @@ export class WebGPUEngine extends Engine {
|
|
|
2336
2328
|
]);
|
|
2337
2329
|
}
|
|
2338
2330
|
}
|
|
2339
|
-
|
|
2331
|
+
this._debugFlushPendingCommands?.();
|
|
2340
2332
|
this._resetRenderPassStates();
|
|
2341
2333
|
if (!gpuDepthStencilWrapper || !WebGPUTextureHelper.HasStencilAspect(gpuDepthStencilWrapper.format)) {
|
|
2342
2334
|
this._stencilStateComposer.enabled = false;
|
|
2343
2335
|
}
|
|
2344
2336
|
}
|
|
2345
2337
|
_startMainRenderPass(setClearStates, clearColor, clearDepth, clearStencil) {
|
|
2346
|
-
var _a, _b, _c;
|
|
2347
2338
|
this._endCurrentRenderPass();
|
|
2348
2339
|
if (this.useReverseDepthBuffer) {
|
|
2349
2340
|
this.setDepthFunctionToGreaterOrEqual();
|
|
@@ -2365,7 +2356,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2365
2356
|
: mustClearStencil
|
|
2366
2357
|
? WebGPUConstants.LoadOp.Clear
|
|
2367
2358
|
: WebGPUConstants.LoadOp.Load;
|
|
2368
|
-
this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet =
|
|
2359
|
+
this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined;
|
|
2369
2360
|
const swapChainTexture = this._context.getCurrentTexture();
|
|
2370
2361
|
this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(swapChainTexture);
|
|
2371
2362
|
// Resolve in case of MSAA
|
|
@@ -2390,12 +2381,12 @@ export class WebGPUEngine extends Engine {
|
|
|
2390
2381
|
]);
|
|
2391
2382
|
}
|
|
2392
2383
|
}
|
|
2393
|
-
|
|
2384
|
+
this._debugPushGroup?.("main pass", 0);
|
|
2394
2385
|
this._timestampQuery.startPass(this._mainRenderPassWrapper.renderPassDescriptor, this._timestampIndex);
|
|
2395
2386
|
this._currentRenderPass = this._renderEncoder.beginRenderPass(this._mainRenderPassWrapper.renderPassDescriptor);
|
|
2396
2387
|
this._setDepthTextureFormat(this._mainRenderPassWrapper);
|
|
2397
2388
|
this._setColorFormat(this._mainRenderPassWrapper);
|
|
2398
|
-
|
|
2389
|
+
this._debugFlushPendingCommands?.();
|
|
2399
2390
|
this._resetRenderPassStates();
|
|
2400
2391
|
if (!this._isStencilEnable) {
|
|
2401
2392
|
this._stencilStateComposer.enabled = false;
|
|
@@ -2403,7 +2394,6 @@ export class WebGPUEngine extends Engine {
|
|
|
2403
2394
|
}
|
|
2404
2395
|
/** @internal */
|
|
2405
2396
|
_endCurrentRenderPass() {
|
|
2406
|
-
var _a, _b, _c;
|
|
2407
2397
|
if (!this._currentRenderPass) {
|
|
2408
2398
|
return 0;
|
|
2409
2399
|
}
|
|
@@ -2427,10 +2417,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2427
2417
|
" - " +
|
|
2428
2418
|
(currentPassIndex === 2 ? "main" : "render target") +
|
|
2429
2419
|
" end pass" +
|
|
2430
|
-
(currentPassIndex === 1 ? " - internalTexture.uniqueId=" +
|
|
2420
|
+
(currentPassIndex === 1 ? " - internalTexture.uniqueId=" + this._currentRenderTarget?.texture?.uniqueId : ""));
|
|
2431
2421
|
}
|
|
2432
2422
|
}
|
|
2433
|
-
|
|
2423
|
+
this._debugPopGroup?.(0);
|
|
2434
2424
|
this._currentRenderPass = null;
|
|
2435
2425
|
return currentPassIndex;
|
|
2436
2426
|
}
|
|
@@ -2445,8 +2435,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2445
2435
|
* @param layer defines the 2d array index to bind to frame buffer to
|
|
2446
2436
|
*/
|
|
2447
2437
|
bindFramebuffer(texture, faceIndex = 0, requiredWidth, requiredHeight, forceFullscreenViewport, lodLevel = 0, layer = 0) {
|
|
2448
|
-
|
|
2449
|
-
const hardwareTexture = (_a = texture.texture) === null || _a === void 0 ? void 0 : _a._hardwareTexture;
|
|
2438
|
+
const hardwareTexture = texture.texture?._hardwareTexture;
|
|
2450
2439
|
if (this._currentRenderTarget) {
|
|
2451
2440
|
this.unBindFramebuffer(this._currentRenderTarget);
|
|
2452
2441
|
}
|
|
@@ -2489,7 +2478,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2489
2478
|
" - bindFramebuffer - rtt name=" +
|
|
2490
2479
|
texture.label +
|
|
2491
2480
|
", internalTexture.uniqueId=" +
|
|
2492
|
-
|
|
2481
|
+
texture.texture?.uniqueId +
|
|
2493
2482
|
", face=" +
|
|
2494
2483
|
faceIndex +
|
|
2495
2484
|
", lodLevel=" +
|
|
@@ -2531,7 +2520,6 @@ export class WebGPUEngine extends Engine {
|
|
|
2531
2520
|
* @param onBeforeUnbind defines a function which will be called before the effective unbind
|
|
2532
2521
|
*/
|
|
2533
2522
|
unBindFramebuffer(texture, disableGenerateMipMaps = false, onBeforeUnbind) {
|
|
2534
|
-
var _a, _b;
|
|
2535
2523
|
const saveCRT = this._currentRenderTarget;
|
|
2536
2524
|
this._currentRenderTarget = null; // to be iso with thinEngine, this._currentRenderTarget must be null when onBeforeUnbind is called
|
|
2537
2525
|
if (onBeforeUnbind) {
|
|
@@ -2539,7 +2527,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2539
2527
|
}
|
|
2540
2528
|
this._currentRenderTarget = saveCRT;
|
|
2541
2529
|
this._endCurrentRenderPass();
|
|
2542
|
-
if (
|
|
2530
|
+
if (texture.texture?.generateMipMaps && !disableGenerateMipMaps && !texture.isCube) {
|
|
2543
2531
|
this._generateMipmaps(texture.texture);
|
|
2544
2532
|
}
|
|
2545
2533
|
this._currentRenderTarget = null;
|
|
@@ -2548,7 +2536,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2548
2536
|
this._count = 0;
|
|
2549
2537
|
}
|
|
2550
2538
|
if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
|
|
2551
|
-
Logger.Log("frame #" + this._count + " - unBindFramebuffer - rtt name=" + texture.label + ", internalTexture.uniqueId=",
|
|
2539
|
+
Logger.Log("frame #" + this._count + " - unBindFramebuffer - rtt name=" + texture.label + ", internalTexture.uniqueId=", texture.texture?.uniqueId);
|
|
2552
2540
|
}
|
|
2553
2541
|
}
|
|
2554
2542
|
this._mrtAttachments = [];
|
|
@@ -2577,8 +2565,7 @@ export class WebGPUEngine extends Engine {
|
|
|
2577
2565
|
* @internal
|
|
2578
2566
|
*/
|
|
2579
2567
|
_setColorFormat(wrapper) {
|
|
2580
|
-
|
|
2581
|
-
const format = (_b = (_a = wrapper.colorAttachmentGPUTextures[0]) === null || _a === void 0 ? void 0 : _a.format) !== null && _b !== void 0 ? _b : null;
|
|
2568
|
+
const format = wrapper.colorAttachmentGPUTextures[0]?.format ?? null;
|
|
2582
2569
|
this._cacheRenderPipeline.setColorFormat(format);
|
|
2583
2570
|
if (this._colorFormat === format) {
|
|
2584
2571
|
return;
|
|
@@ -2612,13 +2599,12 @@ export class WebGPUEngine extends Engine {
|
|
|
2612
2599
|
* @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)
|
|
2613
2600
|
*/
|
|
2614
2601
|
setState(culling, zOffset = 0, force, reverseSide = false, cullBackFaces, stencil, zOffsetUnits = 0) {
|
|
2615
|
-
var _a, _b;
|
|
2616
2602
|
// Culling
|
|
2617
2603
|
if (this._depthCullingState.cull !== culling || force) {
|
|
2618
2604
|
this._depthCullingState.cull = culling;
|
|
2619
2605
|
}
|
|
2620
2606
|
// Cull face
|
|
2621
|
-
const cullFace =
|
|
2607
|
+
const cullFace = this.cullBackFaces ?? cullBackFaces ?? true ? 1 : 2;
|
|
2622
2608
|
if (this._depthCullingState.cullFace !== cullFace || force) {
|
|
2623
2609
|
this._depthCullingState.cullFace = cullFace;
|
|
2624
2610
|
}
|
|
@@ -2649,7 +2635,6 @@ export class WebGPUEngine extends Engine {
|
|
|
2649
2635
|
}
|
|
2650
2636
|
}
|
|
2651
2637
|
_draw(drawType, fillMode, start, count, instancesCount) {
|
|
2652
|
-
var _a;
|
|
2653
2638
|
const renderPass = this._getCurrentRenderPass();
|
|
2654
2639
|
const bundleList = this._bundleList;
|
|
2655
2640
|
this.applyStates();
|
|
@@ -2688,9 +2673,9 @@ export class WebGPUEngine extends Engine {
|
|
|
2688
2673
|
let bitVal = 1;
|
|
2689
2674
|
for (let i = 0; i < webgpuPipelineContext.shaderProcessingContext.textureNames.length; ++i) {
|
|
2690
2675
|
const textureName = webgpuPipelineContext.shaderProcessingContext.textureNames[i];
|
|
2691
|
-
const texture =
|
|
2676
|
+
const texture = this._currentMaterialContext.textures[textureName]?.texture;
|
|
2692
2677
|
const textureIsDepth = texture && texture.format >= 13 && texture.format <= 18;
|
|
2693
|
-
if ((
|
|
2678
|
+
if ((texture?.type === 1 && !this._caps.textureFloatLinearFiltering) || textureIsDepth) {
|
|
2694
2679
|
textureState |= bitVal;
|
|
2695
2680
|
}
|
|
2696
2681
|
bitVal = bitVal << 1;
|
|
@@ -2779,11 +2764,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2779
2764
|
* Dispose and release all associated resources
|
|
2780
2765
|
*/
|
|
2781
2766
|
dispose() {
|
|
2782
|
-
var _a, _b;
|
|
2783
2767
|
this._isDisposed = true;
|
|
2784
2768
|
this._timestampQuery.dispose();
|
|
2785
|
-
|
|
2786
|
-
|
|
2769
|
+
this._mainTexture?.destroy();
|
|
2770
|
+
this._depthTexture?.destroy();
|
|
2787
2771
|
this._textureHelper.destroyDeferredTextures();
|
|
2788
2772
|
this._bufferManager.destroyDeferredBuffers();
|
|
2789
2773
|
this._device.destroy();
|
|
@@ -2798,11 +2782,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2798
2782
|
* @returns a number defining the current render width
|
|
2799
2783
|
*/
|
|
2800
2784
|
getRenderWidth(useScreen = false) {
|
|
2801
|
-
var _a, _b;
|
|
2802
2785
|
if (!useScreen && this._currentRenderTarget) {
|
|
2803
2786
|
return this._currentRenderTarget.width;
|
|
2804
2787
|
}
|
|
2805
|
-
return
|
|
2788
|
+
return this._renderingCanvas?.width ?? 0;
|
|
2806
2789
|
}
|
|
2807
2790
|
/**
|
|
2808
2791
|
* Gets the current render height
|
|
@@ -2810,11 +2793,10 @@ export class WebGPUEngine extends Engine {
|
|
|
2810
2793
|
* @returns a number defining the current render height
|
|
2811
2794
|
*/
|
|
2812
2795
|
getRenderHeight(useScreen = false) {
|
|
2813
|
-
var _a, _b;
|
|
2814
2796
|
if (!useScreen && this._currentRenderTarget) {
|
|
2815
2797
|
return this._currentRenderTarget.height;
|
|
2816
2798
|
}
|
|
2817
|
-
return
|
|
2799
|
+
return this._renderingCanvas?.height ?? 0;
|
|
2818
2800
|
}
|
|
2819
2801
|
//------------------------------------------------------------------------------
|
|
2820
2802
|
// Errors
|