@babylonjs/core 7.12.0 → 7.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animation.js +1 -2
- package/Animations/animation.js.map +1 -1
- package/Animations/animationGroupMask.d.ts +1 -1
- package/Animations/animationGroupMask.js +2 -2
- package/Animations/animationGroupMask.js.map +1 -1
- package/Animations/animationKey.d.ts +1 -1
- package/Animations/animationKey.js.map +1 -1
- package/Behaviors/Meshes/handConstraintBehavior.d.ts +3 -3
- package/Behaviors/Meshes/handConstraintBehavior.js +16 -17
- package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
- package/Behaviors/Meshes/sixDofDragBehavior.js +2 -3
- package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
- package/Bones/bone.js +31 -32
- package/Bones/bone.js.map +1 -1
- package/Bones/boneIKController.js +5 -6
- package/Bones/boneIKController.js.map +1 -1
- package/Bones/boneLookController.js +13 -13
- package/Bones/boneLookController.js.map +1 -1
- package/Buffers/bufferUtils.d.ts +13 -0
- package/Buffers/bufferUtils.js +42 -0
- package/Buffers/bufferUtils.js.map +1 -0
- package/Buffers/index.d.ts +1 -0
- package/Buffers/index.js +1 -0
- package/Buffers/index.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +5 -6
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +5 -5
- package/Cameras/Inputs/freeCameraVirtualJoystickInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.js +8 -10
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Compute/computeEffect.js +2 -3
- package/Compute/computeEffect.js.map +1 -1
- package/Compute/computeShader.js +19 -20
- package/Compute/computeShader.js.map +1 -1
- package/Culling/Helper/IBoundingInfoHelperPlatform.d.ts +4 -0
- package/Culling/Helper/IBoundingInfoHelperPlatform.js.map +1 -1
- package/Culling/Helper/boundingInfoHelper.d.ts +26 -4
- package/Culling/Helper/boundingInfoHelper.js +41 -10
- package/Culling/Helper/boundingInfoHelper.js.map +1 -1
- package/Culling/Helper/computeShaderBoundingHelper.d.ts +12 -3
- package/Culling/Helper/computeShaderBoundingHelper.js +164 -76
- package/Culling/Helper/computeShaderBoundingHelper.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.d.ts +11 -0
- package/Culling/Helper/transformFeedbackBoundingHelper.js +46 -14
- package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Decorators/nodeDecorator.d.ts +1 -1
- package/Decorators/nodeDecorator.js +1 -1
- package/Decorators/nodeDecorator.js.map +1 -1
- package/DeviceInput/InputDevices/deviceEnums.d.ts +5 -5
- package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
- package/DeviceInput/eventFactory.js +3 -3
- package/DeviceInput/eventFactory.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +2 -2
- package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.computeShader.d.ts +1 -1
- package/Engines/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.js +2 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.dynamicTexture.js +2 -2
- package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/Extensions/engine.multiRender.js +3 -3
- package/Engines/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/Extensions/engine.multiview.js +2 -2
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.prefilteredCubeTexture.js +3 -3
- package/Engines/Extensions/engine.prefilteredCubeTexture.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.renderTarget.js +3 -3
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.renderTargetCube.js +2 -2
- package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
- package/Engines/Native/nativeShaderProcessors.js +1 -2
- package/Engines/Native/nativeShaderProcessors.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +2 -3
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js +1 -2
- package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js +1 -2
- package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -2
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js +2 -2
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +2 -2
- package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.multiRender.js +2 -2
- package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +5 -5
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -3
- package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +2 -2
- package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +81 -82
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +60 -64
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +1 -2
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +13 -15
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +39 -39
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +6 -8
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -2
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +3 -3
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +15 -19
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +8 -10
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +26 -28
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +413 -416
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureManager.js +50 -51
- package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.js +1 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/abstractEngine.js +4 -4
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/engine.js +2 -2
- package/Engines/engine.js.map +1 -1
- package/Engines/nativeEngine.js +9 -9
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +5 -5
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.js +1 -2
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/shaderStore.js +6 -7
- package/Engines/shaderStore.js.map +1 -1
- package/Engines/thinEngine.js +4 -5
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +11 -0
- package/Engines/webgpuEngine.js +91 -72
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/deviceInputEvents.d.ts +1 -1
- package/Events/deviceInputEvents.js.map +1 -1
- package/FlowGraph/flowGraph.d.ts +1 -1
- package/FlowGraph/flowGraph.js +5 -5
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphBlock.js +2 -3
- package/FlowGraph/flowGraphBlock.js.map +1 -1
- package/FlowGraph/flowGraphConnection.d.ts +1 -1
- package/FlowGraph/flowGraphConnection.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.js +3 -3
- package/FlowGraph/flowGraphDataConnection.js.map +1 -1
- package/FlowGraph/flowGraphExecutionBlock.js +2 -3
- package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
- package/FlowGraph/flowGraphSignalConnection.js +3 -3
- package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
- package/Gamepads/dualShockGamepad.d.ts +2 -2
- package/Gamepads/dualShockGamepad.js +14 -14
- package/Gamepads/dualShockGamepad.js.map +1 -1
- package/Gamepads/xboxGamepad.d.ts +2 -2
- package/Gamepads/xboxGamepad.js +14 -14
- package/Gamepads/xboxGamepad.js.map +1 -1
- package/Gizmos/gizmo.d.ts +2 -2
- package/Gizmos/gizmo.js +4 -4
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.js +2 -2
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Gizmos/scaleGizmo.js +3 -3
- package/Gizmos/scaleGizmo.js.map +1 -1
- package/Loading/sceneLoader.d.ts +1 -1
- package/Loading/sceneLoader.js +6 -6
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/GreasedLine/greasedLineMaterialInterfaces.d.ts +3 -3
- package/Materials/GreasedLine/greasedLineMaterialInterfaces.js.map +1 -1
- package/Materials/GreasedLine/greasedLinePluginMaterial.js +10 -11
- package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js +8 -9
- package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js +3 -4
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js +2 -3
- package/Materials/Node/Blocks/Dual/fogBlock.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/lightBlock.js +5 -6
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -5
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -8
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +4 -6
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/TBNBlock.js +2 -4
- package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +5 -6
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +5 -6
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +3 -4
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +7 -9
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -2
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +19 -21
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/prePassTextureBlock.js +3 -4
- package/Materials/Node/Blocks/Input/prePassTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -3
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +4 -5
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -29
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +4 -5
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +5 -6
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +4 -5
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +2 -3
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -2
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -2
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +1 -2
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -2
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js +1 -2
- package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
- package/Materials/Node/Blocks/biPlanarBlock.js +3 -4
- package/Materials/Node/Blocks/biPlanarBlock.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.js +4 -5
- package/Materials/Node/Blocks/clampBlock.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.js +3 -4
- package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.js +1 -2
- package/Materials/Node/Blocks/curveBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +1 -2
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -2
- package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.d.ts +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.js +35 -35
- package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
- package/Materials/Node/Blocks/modBlock.js +1 -2
- package/Materials/Node/Blocks/modBlock.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.js +3 -3
- package/Materials/Node/Blocks/remapBlock.js.map +1 -1
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -2
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.js +1 -2
- package/Materials/Node/Blocks/transformBlock.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.js +10 -12
- package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
- package/Materials/Node/Blocks/voronoiNoiseBlock.js +3 -4
- package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.d.ts +1 -1
- package/Materials/Node/Blocks/waveBlock.js +4 -4
- package/Materials/Node/Blocks/waveBlock.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +3 -4
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.d.ts +1 -1
- package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.js.map +1 -1
- package/Materials/Node/nodeMaterial.js +3 -4
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +5 -6
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +2 -2
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +10 -10
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +18 -19
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Node/nodeMaterialConnectionPointCustomObject.js +3 -3
- package/Materials/Node/nodeMaterialConnectionPointCustomObject.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.js +3 -4
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +1 -1
- package/Materials/Textures/internalTexture.js +13 -13
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/ktx2decoderTypes.d.ts +1 -1
- package/Materials/Textures/ktx2decoderTypes.js.map +1 -1
- package/Materials/Textures/rawCubeTexture.js +1 -2
- package/Materials/Textures/rawCubeTexture.js.map +1 -1
- package/Materials/effect.functions.js +2 -3
- package/Materials/effect.functions.js.map +1 -1
- package/Materials/effect.js +3 -4
- package/Materials/effect.js.map +1 -1
- package/Materials/effect.webgl.functions.js +1 -2
- package/Materials/effect.webgl.functions.js.map +1 -1
- package/Materials/material.js +7 -9
- package/Materials/material.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +1 -1
- package/Materials/materialPluginEvent.js.map +1 -1
- package/Materials/materialPluginManager.js +9 -11
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.d.ts +1 -1
- package/Materials/meshDebugPluginMaterial.js +2 -2
- package/Materials/meshDebugPluginMaterial.js.map +1 -1
- package/Materials/shaderLanguage.d.ts +1 -1
- package/Materials/shaderLanguage.js.map +1 -1
- package/Materials/shadowDepthWrapper.js +1 -2
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.js +2 -3
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.axis.d.ts +2 -2
- package/Maths/math.axis.js.map +1 -1
- package/Maths/math.path.d.ts +1 -1
- package/Maths/math.path.js +3 -3
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.vector.js +32 -6
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/greasedLineBuilder.d.ts +2 -2
- package/Meshes/Builders/greasedLineBuilder.js +21 -23
- package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +3 -3
- package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
- package/Meshes/GreasedLine/greasedLineRibbonMesh.js +14 -14
- package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +2 -2
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +2 -2
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setColorsBlock.js +2 -2
- package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +2 -2
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setNormalsBlock.js +2 -2
- package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setPositionsBlock.js +2 -2
- package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setTangentsBlock.js +2 -2
- package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setUVsBlock.js +3 -3
- package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/boxBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/capsuleBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/cylinderBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/discBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/gridBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/meshBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/planeBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/sphereBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/torusBlock.js +2 -2
- package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +2 -2
- package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +2 -2
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.js +3 -3
- package/Meshes/Node/Blocks/booleanGeometryBlock.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.js +2 -2
- package/Meshes/Node/Blocks/conditionBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryClampBlock.js +3 -3
- package/Meshes/Node/Blocks/geometryClampBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCollectionBlock.js +2 -2
- package/Meshes/Node/Blocks/geometryCollectionBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.js +2 -2
- package/Meshes/Node/Blocks/geometryCurveBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js +3 -3
- package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTransformBlock.js +2 -2
- package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +2 -2
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.js +2 -2
- package/Meshes/Node/Blocks/mappingBlock.js.map +1 -1
- package/Meshes/Node/Blocks/mathBlock.js +2 -2
- package/Meshes/Node/Blocks/mathBlock.js.map +1 -1
- package/Meshes/Node/Blocks/mergeGeometryBlock.js +2 -2
- package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -1
- package/Meshes/Node/Blocks/randomBlock.js +2 -2
- package/Meshes/Node/Blocks/randomBlock.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +3 -3
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +2 -2
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +7 -7
- package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +49 -17
- package/Meshes/abstractMesh.js +128 -133
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +8 -0
- package/Meshes/geometry.js +17 -0
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/instancedMesh.d.ts +5 -8
- package/Meshes/instancedMesh.js +15 -9
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +7 -3
- package/Meshes/mesh.js +21 -13
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/meshSimplification.d.ts +1 -1
- package/Meshes/meshSimplification.js +1 -1
- package/Meshes/meshSimplification.js.map +1 -1
- package/Meshes/meshSimplificationSceneComponent.js +2 -2
- package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
- package/Meshes/transformNode.js +7 -8
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/assetsManager.d.ts +1 -1
- package/Misc/assetsManager.js +9 -9
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +2 -2
- package/Misc/basis.js.map +1 -1
- package/Misc/copyTextureToTexture.d.ts +1 -1
- package/Misc/copyTextureToTexture.js +1 -1
- package/Misc/copyTextureToTexture.js.map +1 -1
- package/Misc/environmentTextureTools.js +3 -3
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/iInspectable.d.ts +1 -1
- package/Misc/iInspectable.js.map +1 -1
- package/Misc/khronosTextureContainer2.js +2 -2
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/timer.d.ts +1 -1
- package/Misc/timer.js +5 -5
- package/Misc/timer.js.map +1 -1
- package/Misc/virtualJoystick.d.ts +1 -1
- package/Misc/virtualJoystick.js +16 -16
- package/Misc/virtualJoystick.js.map +1 -1
- package/Particles/particleSystem.js +3 -3
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/particleSystemComponent.js +1 -2
- package/Particles/particleSystemComponent.js.map +1 -1
- package/Particles/pointsCloudSystem.d.ts +1 -1
- package/Particles/pointsCloudSystem.js +14 -14
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/subEmitter.d.ts +1 -1
- package/Particles/subEmitter.js +1 -1
- package/Particles/subEmitter.js.map +1 -1
- package/Physics/physicsHelper.d.ts +2 -2
- package/Physics/physicsHelper.js +6 -7
- package/Physics/physicsHelper.js.map +1 -1
- package/Physics/v1/physicsImpostor.js +4 -5
- package/Physics/v1/physicsImpostor.js.map +1 -1
- package/Physics/v2/IPhysicsEnginePlugin.d.ts +16 -8
- package/Physics/v2/IPhysicsEnginePlugin.js +9 -0
- package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
- package/Physics/v2/Plugins/havokPlugin.js +96 -79
- package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
- package/Physics/v2/physicsAggregate.js +8 -9
- package/Physics/v2/physicsAggregate.js.map +1 -1
- package/Physics/v2/physicsBody.d.ts +14 -2
- package/Physics/v2/physicsBody.js +30 -11
- package/Physics/v2/physicsBody.js.map +1 -1
- package/Physics/v2/physicsConstraint.js +8 -9
- package/Physics/v2/physicsConstraint.js.map +1 -1
- package/Physics/v2/physicsMaterial.d.ts +1 -1
- package/Physics/v2/physicsMaterial.js.map +1 -1
- package/Physics/v2/physicsShape.js +9 -10
- package/Physics/v2/physicsShape.js.map +1 -1
- package/Physics/v2/ragdoll.js +11 -12
- package/Physics/v2/ragdoll.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +2 -2
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
- package/PostProcesses/depthOfFieldEffect.js +3 -3
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/postProcess.js +2 -3
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.d.ts +1 -1
- package/PostProcesses/tonemapPostProcess.js +4 -4
- package/PostProcesses/tonemapPostProcess.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +10 -10
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Shaders/spriteMap.fragment.js +3 -2
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/ShadersWGSL/boundingInfo.compute.js +8 -8
- package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
- package/XR/features/WebXRDepthSensing.js +2 -2
- package/XR/features/WebXRDepthSensing.js.map +1 -1
- package/XR/features/WebXRHandTracking.d.ts +2 -2
- package/XR/features/WebXRHandTracking.js +76 -76
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRLightEstimation.js +2 -2
- package/XR/features/WebXRLightEstimation.js.map +1 -1
- package/XR/features/WebXRNearInteraction.d.ts +1 -1
- package/XR/features/WebXRNearInteraction.js +5 -5
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/features/WebXRRawCameraAccess.js +2 -2
- package/XR/features/WebXRRawCameraAccess.js.map +1 -1
- package/XR/motionController/webXRProfiledMotionController.js +2 -2
- package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
- package/XR/webXRCamera.js +3 -4
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXREnterExitUI.js +3 -4
- package/XR/webXREnterExitUI.js.map +1 -1
- package/XR/webXRExperienceHelper.js +12 -13
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRManagedOutputCanvas.d.ts +1 -1
- package/XR/webXRManagedOutputCanvas.js +15 -6
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.js +2 -2
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRTypes.d.ts +2 -2
- package/XR/webXRTypes.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +1 -1
- package/scene.js +4 -4
- package/scene.js.map +1 -1
|
@@ -1032,6 +1032,7 @@ export declare class WebGPUEngine extends AbstractEngine {
|
|
|
1032
1032
|
* @param byteLength the byte length of the data
|
|
1033
1033
|
*/
|
|
1034
1034
|
updateStorageBuffer(buffer: DataBuffer, data: DataArray, byteOffset?: number, byteLength?: number): void;
|
|
1035
|
+
private _readFromGPUBuffer;
|
|
1035
1036
|
/**
|
|
1036
1037
|
* Read data from a storage buffer
|
|
1037
1038
|
* @param storageBuffer The storage buffer to read from
|
|
@@ -1042,6 +1043,16 @@ export declare class WebGPUEngine extends AbstractEngine {
|
|
|
1042
1043
|
* @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
|
|
1043
1044
|
*/
|
|
1044
1045
|
readFromStorageBuffer(storageBuffer: DataBuffer, offset?: number, size?: number, buffer?: ArrayBufferView, noDelay?: boolean): Promise<ArrayBufferView>;
|
|
1046
|
+
/**
|
|
1047
|
+
* Read data from multiple storage buffers
|
|
1048
|
+
* @param storageBuffers The list of storage buffers to read from
|
|
1049
|
+
* @param offset The offset in the storage buffer to start reading from (default: 0). This is the same offset for all storage buffers!
|
|
1050
|
+
* @param size The number of bytes to read from each storage buffer (default: capacity of the first buffer)
|
|
1051
|
+
* @param buffer The buffer to write the data we have read from the storage buffers to (optional). If provided, the buffer should be large enough to hold the data from all storage buffers!
|
|
1052
|
+
* @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
|
|
1053
|
+
* @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
|
|
1054
|
+
*/
|
|
1055
|
+
readFromMultipleStorageBuffers(storageBuffers: DataBuffer[], offset?: number, size?: number, buffer?: ArrayBufferView, noDelay?: boolean): Promise<ArrayBufferView>;
|
|
1045
1056
|
/**
|
|
1046
1057
|
* Sets a storage buffer in the shader
|
|
1047
1058
|
* @param name Defines the name of the storage buffer as defined in the shader
|
package/Engines/webgpuEngine.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Logger } from "../Misc/logger.js";
|
|
3
3
|
import { Color4 } from "../Maths/math.js";
|
|
4
4
|
import { Engine } from "../Engines/engine.js";
|
|
5
|
-
import { InternalTexture
|
|
5
|
+
import { InternalTexture } from "../Materials/Textures/internalTexture.js";
|
|
6
6
|
import { Effect } from "../Materials/effect.js";
|
|
7
7
|
|
|
8
8
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
@@ -33,7 +33,6 @@ import { WebGPUOcclusionQuery } from "./WebGPU/webgpuOcclusionQuery.js";
|
|
|
33
33
|
import { ShaderCodeInliner } from "./Processors/shaderCodeInliner.js";
|
|
34
34
|
import { WebGPUTintWASM } from "./WebGPU/webgpuTintWASM.js";
|
|
35
35
|
import { WebGPUShaderProcessor } from "./WebGPU/webgpuShaderProcessor.js";
|
|
36
|
-
import { ShaderLanguage } from "../Materials/shaderLanguage.js";
|
|
37
36
|
import { WebGPUSnapshotRendering } from "./WebGPU/webgpuSnapshotRendering.js";
|
|
38
37
|
import "../Buffers/buffer.align.js";
|
|
39
38
|
import "../ShadersWGSL/postprocess.vertex.js";
|
|
@@ -52,14 +51,14 @@ import { resetCachedPipeline } from "../Materials/effect.functions.js";
|
|
|
52
51
|
import { WebGPUExternalTexture } from "./WebGPU/webgpuExternalTexture.js";
|
|
53
52
|
const viewDescriptorSwapChainAntialiasing = {
|
|
54
53
|
label: `TextureView_SwapChain_ResolveTarget`,
|
|
55
|
-
dimension: WebGPUConstants.TextureDimension.E2d
|
|
54
|
+
dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
|
|
56
55
|
format: undefined,
|
|
57
56
|
mipLevelCount: 1,
|
|
58
57
|
arrayLayerCount: 1,
|
|
59
58
|
};
|
|
60
59
|
const viewDescriptorSwapChain = {
|
|
61
60
|
label: `TextureView_SwapChain`,
|
|
62
|
-
dimension: WebGPUConstants.TextureDimension.E2d
|
|
61
|
+
dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
|
|
63
62
|
format: undefined,
|
|
64
63
|
mipLevelCount: 1,
|
|
65
64
|
arrayLayerCount: 1,
|
|
@@ -568,21 +567,21 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
568
567
|
maxFragmentUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),
|
|
569
568
|
maxVertexUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),
|
|
570
569
|
standardDerivatives: true,
|
|
571
|
-
astc: (this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionASTC) >= 0 ? true : undefined),
|
|
572
|
-
s3tc: (this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionBC) >= 0 ? true : undefined),
|
|
570
|
+
astc: (this._deviceEnabledExtensions.indexOf("texture-compression-astc" /* WebGPUConstants.FeatureName.TextureCompressionASTC */) >= 0 ? true : undefined),
|
|
571
|
+
s3tc: (this._deviceEnabledExtensions.indexOf("texture-compression-bc" /* WebGPUConstants.FeatureName.TextureCompressionBC */) >= 0 ? true : undefined),
|
|
573
572
|
pvrtc: null,
|
|
574
573
|
etc1: null,
|
|
575
|
-
etc2: (this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionETC2) >= 0 ? true : undefined),
|
|
576
|
-
bptc: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionBC) >= 0 ? true : undefined,
|
|
574
|
+
etc2: (this._deviceEnabledExtensions.indexOf("texture-compression-etc2" /* WebGPUConstants.FeatureName.TextureCompressionETC2 */) >= 0 ? true : undefined),
|
|
575
|
+
bptc: this._deviceEnabledExtensions.indexOf("texture-compression-bc" /* WebGPUConstants.FeatureName.TextureCompressionBC */) >= 0 ? true : undefined,
|
|
577
576
|
maxAnisotropy: 16,
|
|
578
577
|
uintIndices: true,
|
|
579
578
|
fragmentDepthSupported: true,
|
|
580
579
|
highPrecisionShaderSupported: true,
|
|
581
580
|
colorBufferFloat: true,
|
|
582
581
|
supportFloatTexturesResolve: false,
|
|
583
|
-
rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.RG11B10UFloatRenderable) >= 0,
|
|
582
|
+
rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf("rg11b10ufloat-renderable" /* WebGPUConstants.FeatureName.RG11B10UFloatRenderable */) >= 0,
|
|
584
583
|
textureFloat: true,
|
|
585
|
-
textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.Float32Filterable) >= 0,
|
|
584
|
+
textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf("float32-filterable" /* WebGPUConstants.FeatureName.Float32Filterable */) >= 0,
|
|
586
585
|
textureFloatRender: true,
|
|
587
586
|
textureHalfFloat: true,
|
|
588
587
|
textureHalfFloatLinearFiltering: true,
|
|
@@ -593,7 +592,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
593
592
|
depthTextureExtension: true,
|
|
594
593
|
vertexArrayObject: false,
|
|
595
594
|
instancedArrays: true,
|
|
596
|
-
timerQuery: typeof BigUint64Array !== "undefined" && this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TimestampQuery) !== -1 ? true : undefined,
|
|
595
|
+
timerQuery: typeof BigUint64Array !== "undefined" && this._deviceEnabledExtensions.indexOf("timestamp-query" /* WebGPUConstants.FeatureName.TimestampQuery */) !== -1 ? true : undefined,
|
|
597
596
|
supportOcclusionQuery: typeof BigUint64Array !== "undefined",
|
|
598
597
|
canUseTimestampForTimerQuery: true,
|
|
599
598
|
multiview: false,
|
|
@@ -672,9 +671,9 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
672
671
|
size: this._mainTextureExtends,
|
|
673
672
|
mipLevelCount: 1,
|
|
674
673
|
sampleCount: this._mainPassSampleCount,
|
|
675
|
-
dimension: WebGPUConstants.TextureDimension.E2d
|
|
674
|
+
dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
|
|
676
675
|
format: this._options.swapChainFormat,
|
|
677
|
-
usage: WebGPUConstants.TextureUsage.RenderAttachment
|
|
676
|
+
usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */,
|
|
678
677
|
};
|
|
679
678
|
if (this._mainTexture) {
|
|
680
679
|
this._textureHelper.releaseTexture(this._mainTexture);
|
|
@@ -684,14 +683,14 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
684
683
|
{
|
|
685
684
|
view: this._mainTexture.createView({
|
|
686
685
|
label: "TextureView_MainColor_antialiasing",
|
|
687
|
-
dimension: WebGPUConstants.TextureDimension.E2d
|
|
686
|
+
dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
|
|
688
687
|
format: this._options.swapChainFormat,
|
|
689
688
|
mipLevelCount: 1,
|
|
690
689
|
arrayLayerCount: 1,
|
|
691
690
|
}),
|
|
692
691
|
clearValue: new Color4(0, 0, 0, 1),
|
|
693
|
-
loadOp: WebGPUConstants.LoadOp.Clear
|
|
694
|
-
storeOp: WebGPUConstants.StoreOp.Store
|
|
692
|
+
loadOp: "clear" /* WebGPUConstants.LoadOp.Clear */,
|
|
693
|
+
storeOp: "store" /* WebGPUConstants.StoreOp.Store */, // don't use StoreOp.Discard, else using several cameras with different viewports or using scissors will fail because we call beginRenderPass / endPass several times for the same color attachment!
|
|
695
694
|
},
|
|
696
695
|
];
|
|
697
696
|
}
|
|
@@ -700,12 +699,12 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
700
699
|
{
|
|
701
700
|
view: undefined,
|
|
702
701
|
clearValue: new Color4(0, 0, 0, 1),
|
|
703
|
-
loadOp: WebGPUConstants.LoadOp.Clear
|
|
704
|
-
storeOp: WebGPUConstants.StoreOp.Store
|
|
702
|
+
loadOp: "clear" /* WebGPUConstants.LoadOp.Clear */,
|
|
703
|
+
storeOp: "store" /* WebGPUConstants.StoreOp.Store */,
|
|
705
704
|
},
|
|
706
705
|
];
|
|
707
706
|
}
|
|
708
|
-
this._mainRenderPassWrapper.depthTextureFormat = this.isStencilEnable ? WebGPUConstants.TextureFormat.Depth24PlusStencil8 : WebGPUConstants.TextureFormat.Depth32Float
|
|
707
|
+
this._mainRenderPassWrapper.depthTextureFormat = this.isStencilEnable ? "depth24plus-stencil8" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */ : "depth32float" /* WebGPUConstants.TextureFormat.Depth32Float */;
|
|
709
708
|
this._setDepthTextureFormat(this._mainRenderPassWrapper);
|
|
710
709
|
this._setColorFormat(this._mainRenderPassWrapper);
|
|
711
710
|
const depthTextureDescriptor = {
|
|
@@ -713,9 +712,9 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
713
712
|
size: this._mainTextureExtends,
|
|
714
713
|
mipLevelCount: 1,
|
|
715
714
|
sampleCount: this._mainPassSampleCount,
|
|
716
|
-
dimension: WebGPUConstants.TextureDimension.E2d
|
|
715
|
+
dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
|
|
717
716
|
format: this._mainRenderPassWrapper.depthTextureFormat,
|
|
718
|
-
usage: WebGPUConstants.TextureUsage.RenderAttachment
|
|
717
|
+
usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */,
|
|
719
718
|
};
|
|
720
719
|
if (this._depthTexture) {
|
|
721
720
|
this._textureHelper.releaseTexture(this._depthTexture);
|
|
@@ -724,17 +723,17 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
724
723
|
const mainDepthAttachment = {
|
|
725
724
|
view: this._depthTexture.createView({
|
|
726
725
|
label: `TextureView_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,
|
|
727
|
-
dimension: WebGPUConstants.TextureDimension.E2d
|
|
726
|
+
dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
|
|
728
727
|
format: this._depthTexture.format,
|
|
729
728
|
mipLevelCount: 1,
|
|
730
729
|
arrayLayerCount: 1,
|
|
731
730
|
}),
|
|
732
731
|
depthClearValue: this._clearDepthValue,
|
|
733
|
-
depthLoadOp: WebGPUConstants.LoadOp.Clear
|
|
734
|
-
depthStoreOp: WebGPUConstants.StoreOp.Store
|
|
732
|
+
depthLoadOp: "clear" /* WebGPUConstants.LoadOp.Clear */,
|
|
733
|
+
depthStoreOp: "store" /* WebGPUConstants.StoreOp.Store */,
|
|
735
734
|
stencilClearValue: this._clearStencilValue,
|
|
736
|
-
stencilLoadOp: !this.isStencilEnable ? undefined : WebGPUConstants.LoadOp.Clear
|
|
737
|
-
stencilStoreOp: !this.isStencilEnable ? undefined : WebGPUConstants.StoreOp.Store
|
|
735
|
+
stencilLoadOp: !this.isStencilEnable ? undefined : "clear" /* WebGPUConstants.LoadOp.Clear */,
|
|
736
|
+
stencilStoreOp: !this.isStencilEnable ? undefined : "store" /* WebGPUConstants.StoreOp.Store */,
|
|
738
737
|
};
|
|
739
738
|
this._mainRenderPassWrapper.renderPassDescriptor = {
|
|
740
739
|
label: "MainRenderPass",
|
|
@@ -754,8 +753,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
754
753
|
this._context.configure({
|
|
755
754
|
device: this._device,
|
|
756
755
|
format: this._options.swapChainFormat,
|
|
757
|
-
usage: WebGPUConstants.TextureUsage.RenderAttachment | WebGPUConstants.TextureUsage.CopySrc
|
|
758
|
-
alphaMode: this.premultipliedAlpha ? WebGPUConstants.CanvasAlphaMode.Premultiplied : WebGPUConstants.CanvasAlphaMode.Opaque
|
|
756
|
+
usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */ | 1 /* WebGPUConstants.TextureUsage.CopySrc */,
|
|
757
|
+
alphaMode: this.premultipliedAlpha ? "premultiplied" /* WebGPUConstants.CanvasAlphaMode.Premultiplied */ : "opaque" /* WebGPUConstants.CanvasAlphaMode.Opaque */,
|
|
759
758
|
});
|
|
760
759
|
}
|
|
761
760
|
/**
|
|
@@ -894,7 +893,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
894
893
|
* @internal
|
|
895
894
|
*/
|
|
896
895
|
_getShaderProcessor(shaderLanguage) {
|
|
897
|
-
if (shaderLanguage === ShaderLanguage.WGSL) {
|
|
896
|
+
if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
|
|
898
897
|
return this._shaderProcessorWGSL;
|
|
899
898
|
}
|
|
900
899
|
return this._shaderProcessor;
|
|
@@ -1472,7 +1471,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1472
1471
|
* @param shaderLanguage the language the shader is written in (default: GLSL)
|
|
1473
1472
|
* @returns the new Effect
|
|
1474
1473
|
*/
|
|
1475
|
-
createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = ShaderLanguage.GLSL) {
|
|
1474
|
+
createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = 0 /* ShaderLanguage.GLSL */) {
|
|
1476
1475
|
const vertex = typeof baseName === "string" ? baseName : baseName.vertexToken || baseName.vertexSource || baseName.vertexElement || baseName.vertex;
|
|
1477
1476
|
const fragment = typeof baseName === "string" ? baseName : baseName.fragmentToken || baseName.fragmentSource || baseName.fragmentElement || baseName.fragment;
|
|
1478
1477
|
const globalDefines = this._getGlobalDefines();
|
|
@@ -1508,7 +1507,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1508
1507
|
return defines + source;
|
|
1509
1508
|
}
|
|
1510
1509
|
_createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment) {
|
|
1511
|
-
if (this._tintWASM && shaderLanguage === ShaderLanguage.GLSL) {
|
|
1510
|
+
if (this._tintWASM && shaderLanguage === 0 /* ShaderLanguage.GLSL */) {
|
|
1512
1511
|
vertexShader = this._tintWASM.convertSpirV2WGSL(vertexShader, disableUniformityAnalysisInVertex);
|
|
1513
1512
|
fragmentShader = this._tintWASM.convertSpirV2WGSL(fragmentShader, disableUniformityAnalysisInFragment);
|
|
1514
1513
|
}
|
|
@@ -1530,8 +1529,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1530
1529
|
_compileRawPipelineStageDescriptor(vertexCode, fragmentCode, shaderLanguage) {
|
|
1531
1530
|
const disableUniformityAnalysisInVertex = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
|
|
1532
1531
|
const disableUniformityAnalysisInFragment = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
|
|
1533
|
-
const vertexShader = shaderLanguage === ShaderLanguage.GLSL ? this._compileRawShaderToSpirV(vertexCode, "vertex") : vertexCode;
|
|
1534
|
-
const fragmentShader = shaderLanguage === ShaderLanguage.GLSL ? this._compileRawShaderToSpirV(fragmentCode, "fragment") : fragmentCode;
|
|
1532
|
+
const vertexShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileRawShaderToSpirV(vertexCode, "vertex") : vertexCode;
|
|
1533
|
+
const fragmentShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileRawShaderToSpirV(fragmentCode, "fragment") : fragmentCode;
|
|
1535
1534
|
return this._createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment);
|
|
1536
1535
|
}
|
|
1537
1536
|
_compilePipelineStageDescriptor(vertexCode, fragmentCode, defines, shaderLanguage) {
|
|
@@ -1539,8 +1538,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1539
1538
|
const disableUniformityAnalysisInVertex = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
|
|
1540
1539
|
const disableUniformityAnalysisInFragment = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
|
|
1541
1540
|
const shaderVersion = "#version 450\n";
|
|
1542
|
-
const vertexShader = shaderLanguage === ShaderLanguage.GLSL ? this._compileShaderToSpirV(vertexCode, "vertex", defines, shaderVersion) : this._getWGSLShader(vertexCode, "vertex", defines);
|
|
1543
|
-
const fragmentShader = shaderLanguage === ShaderLanguage.GLSL
|
|
1541
|
+
const vertexShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileShaderToSpirV(vertexCode, "vertex", defines, shaderVersion) : this._getWGSLShader(vertexCode, "vertex", defines);
|
|
1542
|
+
const fragmentShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */
|
|
1544
1543
|
? this._compileShaderToSpirV(fragmentCode, "fragment", defines, shaderVersion)
|
|
1545
1544
|
: this._getWGSLShader(fragmentCode, "fragment", defines);
|
|
1546
1545
|
const program = this._createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment);
|
|
@@ -1754,7 +1753,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1754
1753
|
* @param source source type of the texture
|
|
1755
1754
|
* @returns a new internal texture
|
|
1756
1755
|
*/
|
|
1757
|
-
_createInternalTexture(size, options, delayGPUTextureCreation = true, source = InternalTextureSource.Unknown) {
|
|
1756
|
+
_createInternalTexture(size, options, delayGPUTextureCreation = true, source = 0 /* InternalTextureSource.Unknown */) {
|
|
1758
1757
|
const fullOptions = {};
|
|
1759
1758
|
if (options !== undefined && typeof options === "object") {
|
|
1760
1759
|
fullOptions.generateMipMaps = options.generateMipMaps;
|
|
@@ -1875,7 +1874,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1875
1874
|
*/
|
|
1876
1875
|
wrapWebGPUTexture(texture) {
|
|
1877
1876
|
const hardwareTexture = new WebGPUHardwareTexture(texture);
|
|
1878
|
-
const internalTexture = new InternalTexture(this, InternalTextureSource.Unknown
|
|
1877
|
+
const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);
|
|
1879
1878
|
internalTexture._hardwareTexture = hardwareTexture;
|
|
1880
1879
|
internalTexture.isReady = true;
|
|
1881
1880
|
return internalTexture;
|
|
@@ -1991,7 +1990,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
1991
1990
|
else if (loadData.info.sphericalPolynomial) {
|
|
1992
1991
|
texture._sphericalPolynomial = loadData.info.sphericalPolynomial;
|
|
1993
1992
|
}
|
|
1994
|
-
texture._source = InternalTextureSource.CubePrefiltered
|
|
1993
|
+
texture._source = 9 /* InternalTextureSource.CubePrefiltered */;
|
|
1995
1994
|
if (onLoad) {
|
|
1996
1995
|
onLoad(texture);
|
|
1997
1996
|
}
|
|
@@ -2401,13 +2400,13 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2401
2400
|
const faceIndex = rtWrapper.faceIndices?.[i] ?? 0;
|
|
2402
2401
|
const viewDescriptor = {
|
|
2403
2402
|
...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
|
|
2404
|
-
dimension: mrtTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d
|
|
2403
|
+
dimension: mrtTexture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
|
|
2405
2404
|
format: gpuMRTWrapper.format,
|
|
2406
2405
|
baseArrayLayer: mrtTexture.isCube ? layerIndex * 6 + faceIndex : mrtTexture.is3D ? 0 : layerIndex,
|
|
2407
2406
|
};
|
|
2408
2407
|
const msaaViewDescriptor = {
|
|
2409
2408
|
...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
|
|
2410
|
-
dimension: mrtTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d
|
|
2409
|
+
dimension: mrtTexture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
|
|
2411
2410
|
format: gpuMRTWrapper.format,
|
|
2412
2411
|
baseArrayLayer: 0,
|
|
2413
2412
|
};
|
|
@@ -2419,8 +2418,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2419
2418
|
resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
|
|
2420
2419
|
depthSlice: mrtTexture.is3D ? layerIndex : undefined,
|
|
2421
2420
|
clearValue: index !== 0 && mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,
|
|
2422
|
-
loadOp: index !== 0 && mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load
|
|
2423
|
-
storeOp: WebGPUConstants.StoreOp.Store
|
|
2421
|
+
loadOp: index !== 0 && mustClearColor ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */,
|
|
2422
|
+
storeOp: "store" /* WebGPUConstants.StoreOp.Store */,
|
|
2424
2423
|
});
|
|
2425
2424
|
}
|
|
2426
2425
|
}
|
|
@@ -2447,8 +2446,8 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2447
2446
|
resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
|
|
2448
2447
|
depthSlice,
|
|
2449
2448
|
clearValue: mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,
|
|
2450
|
-
loadOp: mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load
|
|
2451
|
-
storeOp: WebGPUConstants.StoreOp.Store
|
|
2449
|
+
loadOp: mustClearColor ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */,
|
|
2450
|
+
storeOp: "store" /* WebGPUConstants.StoreOp.Store */,
|
|
2452
2451
|
});
|
|
2453
2452
|
}
|
|
2454
2453
|
else {
|
|
@@ -2463,15 +2462,15 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2463
2462
|
? {
|
|
2464
2463
|
view: depthMSAATextureView ? depthMSAATextureView : depthTextureView,
|
|
2465
2464
|
depthClearValue: mustClearDepth ? (this.useReverseDepthBuffer ? this._clearReverseDepthValue : this._clearDepthValue) : undefined,
|
|
2466
|
-
depthLoadOp: mustClearDepth ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load
|
|
2467
|
-
depthStoreOp: WebGPUConstants.StoreOp.Store
|
|
2465
|
+
depthLoadOp: mustClearDepth ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */,
|
|
2466
|
+
depthStoreOp: "store" /* WebGPUConstants.StoreOp.Store */,
|
|
2468
2467
|
stencilClearValue: rtWrapper._depthStencilTextureWithStencil && mustClearStencil ? this._clearStencilValue : undefined,
|
|
2469
2468
|
stencilLoadOp: !depthTextureHasStencil
|
|
2470
2469
|
? undefined
|
|
2471
2470
|
: rtWrapper._depthStencilTextureWithStencil && mustClearStencil
|
|
2472
|
-
? WebGPUConstants.LoadOp.Clear
|
|
2473
|
-
: WebGPUConstants.LoadOp.Load
|
|
2474
|
-
stencilStoreOp: !depthTextureHasStencil ? undefined : WebGPUConstants.StoreOp.Store
|
|
2471
|
+
? "clear" /* WebGPUConstants.LoadOp.Clear */
|
|
2472
|
+
: "load" /* WebGPUConstants.LoadOp.Load */,
|
|
2473
|
+
stencilStoreOp: !depthTextureHasStencil ? undefined : "store" /* WebGPUConstants.StoreOp.Store */,
|
|
2475
2474
|
}
|
|
2476
2475
|
: undefined,
|
|
2477
2476
|
occlusionQuerySet: this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined,
|
|
@@ -2517,19 +2516,19 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2517
2516
|
const mustClearDepth = setClearStates && clearDepth;
|
|
2518
2517
|
const mustClearStencil = setClearStates && clearStencil;
|
|
2519
2518
|
this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].clearValue = mustClearColor ? clearColor : undefined;
|
|
2520
|
-
this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp = mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load
|
|
2519
|
+
this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp = mustClearColor ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */;
|
|
2521
2520
|
this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthClearValue = mustClearDepth
|
|
2522
2521
|
? this.useReverseDepthBuffer
|
|
2523
2522
|
? this._clearReverseDepthValue
|
|
2524
2523
|
: this._clearDepthValue
|
|
2525
2524
|
: undefined;
|
|
2526
|
-
this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp = mustClearDepth ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load
|
|
2525
|
+
this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp = mustClearDepth ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */;
|
|
2527
2526
|
this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilClearValue = mustClearStencil ? this._clearStencilValue : undefined;
|
|
2528
2527
|
this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilLoadOp = !this.isStencilEnable
|
|
2529
2528
|
? undefined
|
|
2530
2529
|
: mustClearStencil
|
|
2531
|
-
? WebGPUConstants.LoadOp.Clear
|
|
2532
|
-
: WebGPUConstants.LoadOp.Load
|
|
2530
|
+
? "clear" /* WebGPUConstants.LoadOp.Clear */
|
|
2531
|
+
: "load" /* WebGPUConstants.LoadOp.Load */;
|
|
2533
2532
|
this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined;
|
|
2534
2533
|
const swapChainTexture = this._context.getCurrentTexture();
|
|
2535
2534
|
this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(swapChainTexture);
|
|
@@ -2624,21 +2623,21 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2624
2623
|
this._setColorFormat(this._rttRenderPassWrapper);
|
|
2625
2624
|
this._rttRenderPassWrapper.colorAttachmentViewDescriptor = {
|
|
2626
2625
|
format: this._colorFormat,
|
|
2627
|
-
dimension: texture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d
|
|
2626
|
+
dimension: texture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
|
|
2628
2627
|
mipLevelCount: 1,
|
|
2629
2628
|
baseArrayLayer: texture.isCube ? layer * 6 + faceIndex : layer,
|
|
2630
2629
|
baseMipLevel: lodLevel,
|
|
2631
2630
|
arrayLayerCount: 1,
|
|
2632
|
-
aspect: WebGPUConstants.TextureAspect.All
|
|
2631
|
+
aspect: "all" /* WebGPUConstants.TextureAspect.All */,
|
|
2633
2632
|
};
|
|
2634
2633
|
this._rttRenderPassWrapper.depthAttachmentViewDescriptor = {
|
|
2635
2634
|
format: this._depthTextureFormat,
|
|
2636
|
-
dimension: depthStencilTexture && depthStencilTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d
|
|
2635
|
+
dimension: depthStencilTexture && depthStencilTexture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
|
|
2637
2636
|
mipLevelCount: 1,
|
|
2638
2637
|
baseArrayLayer: depthStencilTexture ? (depthStencilTexture.isCube ? layer * 6 + faceIndex : layer) : 0,
|
|
2639
2638
|
baseMipLevel: 0,
|
|
2640
2639
|
arrayLayerCount: 1,
|
|
2641
|
-
aspect: WebGPUConstants.TextureAspect.All
|
|
2640
|
+
aspect: "all" /* WebGPUConstants.TextureAspect.All */,
|
|
2642
2641
|
};
|
|
2643
2642
|
if (this.dbgVerboseLogsForFirstFrames) {
|
|
2644
2643
|
if (this._count === undefined) {
|
|
@@ -2894,7 +2893,7 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
2894
2893
|
renderPass2.setPipeline(pipeline);
|
|
2895
2894
|
// bind index/vertex buffers
|
|
2896
2895
|
if (this._currentIndexBuffer) {
|
|
2897
|
-
renderPass2.setIndexBuffer(this._currentIndexBuffer.underlyingResource, this._currentIndexBuffer.is32Bits ? WebGPUConstants.IndexFormat.Uint32 : WebGPUConstants.IndexFormat.Uint16
|
|
2896
|
+
renderPass2.setIndexBuffer(this._currentIndexBuffer.underlyingResource, this._currentIndexBuffer.is32Bits ? "uint32" /* WebGPUConstants.IndexFormat.Uint32 */ : "uint16" /* WebGPUConstants.IndexFormat.Uint16 */, 0);
|
|
2898
2897
|
}
|
|
2899
2898
|
const vertexBuffers = this._cacheRenderPipeline.vertexBuffers;
|
|
2900
2899
|
for (let index = 0; index < vertexBuffers.length; index++) {
|
|
@@ -3092,22 +3091,10 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
3092
3091
|
}
|
|
3093
3092
|
this._bufferManager.setSubData(dataBuffer, byteOffset, view, 0, byteLength);
|
|
3094
3093
|
}
|
|
3095
|
-
|
|
3096
|
-
* Read data from a storage buffer
|
|
3097
|
-
* @param storageBuffer The storage buffer to read from
|
|
3098
|
-
* @param offset The offset in the storage buffer to start reading from (default: 0)
|
|
3099
|
-
* @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)
|
|
3100
|
-
* @param buffer The buffer to write the data we have read from the storage buffer to (optional)
|
|
3101
|
-
* @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
|
|
3102
|
-
* @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
|
|
3103
|
-
*/
|
|
3104
|
-
readFromStorageBuffer(storageBuffer, offset, size, buffer, noDelay) {
|
|
3105
|
-
size = size || storageBuffer.capacity;
|
|
3106
|
-
const gpuBuffer = this._bufferManager.createRawBuffer(size, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, "TempReadFromStorageBuffer");
|
|
3107
|
-
this._renderEncoder.copyBufferToBuffer(storageBuffer.underlyingResource, offset ?? 0, gpuBuffer, 0, size);
|
|
3094
|
+
_readFromGPUBuffer(gpuBuffer, size, buffer, noDelay) {
|
|
3108
3095
|
return new Promise((resolve, reject) => {
|
|
3109
3096
|
const readFromBuffer = () => {
|
|
3110
|
-
gpuBuffer.mapAsync(WebGPUConstants.MapMode.Read
|
|
3097
|
+
gpuBuffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */, 0, size).then(() => {
|
|
3111
3098
|
const copyArrayBuffer = gpuBuffer.getMappedRange(0, size);
|
|
3112
3099
|
let data = buffer;
|
|
3113
3100
|
if (data === undefined) {
|
|
@@ -3144,6 +3131,38 @@ export class WebGPUEngine extends AbstractEngine {
|
|
|
3144
3131
|
}
|
|
3145
3132
|
});
|
|
3146
3133
|
}
|
|
3134
|
+
/**
|
|
3135
|
+
* Read data from a storage buffer
|
|
3136
|
+
* @param storageBuffer The storage buffer to read from
|
|
3137
|
+
* @param offset The offset in the storage buffer to start reading from (default: 0)
|
|
3138
|
+
* @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)
|
|
3139
|
+
* @param buffer The buffer to write the data we have read from the storage buffer to (optional)
|
|
3140
|
+
* @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
|
|
3141
|
+
* @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
|
|
3142
|
+
*/
|
|
3143
|
+
readFromStorageBuffer(storageBuffer, offset, size, buffer, noDelay) {
|
|
3144
|
+
size = size || storageBuffer.capacity;
|
|
3145
|
+
const gpuBuffer = this._bufferManager.createRawBuffer(size, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, "TempReadFromStorageBuffer");
|
|
3146
|
+
this._renderEncoder.copyBufferToBuffer(storageBuffer.underlyingResource, offset ?? 0, gpuBuffer, 0, size);
|
|
3147
|
+
return this._readFromGPUBuffer(gpuBuffer, size, buffer, noDelay);
|
|
3148
|
+
}
|
|
3149
|
+
/**
|
|
3150
|
+
* Read data from multiple storage buffers
|
|
3151
|
+
* @param storageBuffers The list of storage buffers to read from
|
|
3152
|
+
* @param offset The offset in the storage buffer to start reading from (default: 0). This is the same offset for all storage buffers!
|
|
3153
|
+
* @param size The number of bytes to read from each storage buffer (default: capacity of the first buffer)
|
|
3154
|
+
* @param buffer The buffer to write the data we have read from the storage buffers to (optional). If provided, the buffer should be large enough to hold the data from all storage buffers!
|
|
3155
|
+
* @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
|
|
3156
|
+
* @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
|
|
3157
|
+
*/
|
|
3158
|
+
readFromMultipleStorageBuffers(storageBuffers, offset, size, buffer, noDelay) {
|
|
3159
|
+
size = size || storageBuffers[0].capacity;
|
|
3160
|
+
const gpuBuffer = this._bufferManager.createRawBuffer(size * storageBuffers.length, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, "TempReadFromMultipleStorageBuffers");
|
|
3161
|
+
for (let i = 0; i < storageBuffers.length; i++) {
|
|
3162
|
+
this._renderEncoder.copyBufferToBuffer(storageBuffers[i].underlyingResource, offset ?? 0, gpuBuffer, i * size, size);
|
|
3163
|
+
}
|
|
3164
|
+
return this._readFromGPUBuffer(gpuBuffer, size * storageBuffers.length, buffer, noDelay);
|
|
3165
|
+
}
|
|
3147
3166
|
/**
|
|
3148
3167
|
* Sets a storage buffer in the shader
|
|
3149
3168
|
* @param name Defines the name of the storage buffer as defined in the shader
|