@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.
Files changed (526) hide show
  1. package/Animations/animation.js +1 -2
  2. package/Animations/animation.js.map +1 -1
  3. package/Animations/animationGroupMask.d.ts +1 -1
  4. package/Animations/animationGroupMask.js +2 -2
  5. package/Animations/animationGroupMask.js.map +1 -1
  6. package/Animations/animationKey.d.ts +1 -1
  7. package/Animations/animationKey.js.map +1 -1
  8. package/Behaviors/Meshes/handConstraintBehavior.d.ts +3 -3
  9. package/Behaviors/Meshes/handConstraintBehavior.js +16 -17
  10. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  11. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -3
  12. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  13. package/Bones/bone.js +31 -32
  14. package/Bones/bone.js.map +1 -1
  15. package/Bones/boneIKController.js +5 -6
  16. package/Bones/boneIKController.js.map +1 -1
  17. package/Bones/boneLookController.js +13 -13
  18. package/Bones/boneLookController.js.map +1 -1
  19. package/Buffers/bufferUtils.d.ts +13 -0
  20. package/Buffers/bufferUtils.js +42 -0
  21. package/Buffers/bufferUtils.js.map +1 -0
  22. package/Buffers/index.d.ts +1 -0
  23. package/Buffers/index.js +1 -0
  24. package/Buffers/index.js.map +1 -1
  25. package/Cameras/Inputs/freeCameraMouseWheelInput.js +5 -6
  26. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  27. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +5 -5
  28. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js.map +1 -1
  29. package/Cameras/VR/vrExperienceHelper.js +8 -10
  30. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  31. package/Compute/computeEffect.js +2 -3
  32. package/Compute/computeEffect.js.map +1 -1
  33. package/Compute/computeShader.js +19 -20
  34. package/Compute/computeShader.js.map +1 -1
  35. package/Culling/Helper/IBoundingInfoHelperPlatform.d.ts +4 -0
  36. package/Culling/Helper/IBoundingInfoHelperPlatform.js.map +1 -1
  37. package/Culling/Helper/boundingInfoHelper.d.ts +26 -4
  38. package/Culling/Helper/boundingInfoHelper.js +41 -10
  39. package/Culling/Helper/boundingInfoHelper.js.map +1 -1
  40. package/Culling/Helper/computeShaderBoundingHelper.d.ts +12 -3
  41. package/Culling/Helper/computeShaderBoundingHelper.js +164 -76
  42. package/Culling/Helper/computeShaderBoundingHelper.js.map +1 -1
  43. package/Culling/Helper/transformFeedbackBoundingHelper.d.ts +11 -0
  44. package/Culling/Helper/transformFeedbackBoundingHelper.js +46 -14
  45. package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
  46. package/Debug/debugLayer.d.ts +1 -1
  47. package/Debug/debugLayer.js.map +1 -1
  48. package/Decorators/nodeDecorator.d.ts +1 -1
  49. package/Decorators/nodeDecorator.js +1 -1
  50. package/Decorators/nodeDecorator.js.map +1 -1
  51. package/DeviceInput/InputDevices/deviceEnums.d.ts +5 -5
  52. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  53. package/DeviceInput/eventFactory.js +3 -3
  54. package/DeviceInput/eventFactory.js.map +1 -1
  55. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +2 -2
  56. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
  57. package/Engines/Extensions/engine.computeShader.d.ts +1 -1
  58. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  59. package/Engines/Extensions/engine.cubeTexture.js +2 -2
  60. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  61. package/Engines/Extensions/engine.dynamicTexture.js +2 -2
  62. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  63. package/Engines/Extensions/engine.multiRender.js +3 -3
  64. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  65. package/Engines/Extensions/engine.multiview.js +2 -2
  66. package/Engines/Extensions/engine.multiview.js.map +1 -1
  67. package/Engines/Extensions/engine.prefilteredCubeTexture.js +3 -3
  68. package/Engines/Extensions/engine.prefilteredCubeTexture.js.map +1 -1
  69. package/Engines/Extensions/engine.rawTexture.js +4 -4
  70. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  71. package/Engines/Extensions/engine.renderTarget.js +3 -3
  72. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  73. package/Engines/Extensions/engine.renderTargetCube.js +2 -2
  74. package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
  75. package/Engines/Native/nativeShaderProcessors.js +1 -2
  76. package/Engines/Native/nativeShaderProcessors.js.map +1 -1
  77. package/Engines/Processors/shaderProcessor.js +2 -3
  78. package/Engines/Processors/shaderProcessor.js.map +1 -1
  79. package/Engines/WebGL/webGL2ShaderProcessors.js +1 -2
  80. package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
  81. package/Engines/WebGL/webGLShaderProcessors.js +1 -2
  82. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  83. package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -2
  84. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  85. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +2 -2
  86. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  87. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +2 -2
  88. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  89. package/Engines/WebGPU/Extensions/engine.multiRender.js +2 -2
  90. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  91. package/Engines/WebGPU/Extensions/engine.rawTexture.js +5 -5
  92. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  93. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -3
  94. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  95. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +2 -2
  96. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  97. package/Engines/WebGPU/webgpuBufferManager.js +1 -1
  98. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  99. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +81 -82
  100. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  101. package/Engines/WebGPU/webgpuCacheSampler.js +60 -64
  102. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  103. package/Engines/WebGPU/webgpuClearQuad.js +1 -2
  104. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  105. package/Engines/WebGPU/webgpuComputeContext.js +13 -15
  106. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  107. package/Engines/WebGPU/webgpuConstants.d.ts +39 -39
  108. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  109. package/Engines/WebGPU/webgpuHardwareTexture.js +6 -8
  110. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  111. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -2
  112. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  113. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  114. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  115. package/Engines/WebGPU/webgpuShaderProcessor.js +15 -19
  116. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  117. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +8 -10
  118. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  119. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +26 -28
  120. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  121. package/Engines/WebGPU/webgpuTextureHelper.js +413 -416
  122. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  123. package/Engines/WebGPU/webgpuTextureManager.js +50 -51
  124. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  125. package/Engines/WebGPU/webgpuTimestampQuery.js +1 -2
  126. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  127. package/Engines/abstractEngine.js +4 -4
  128. package/Engines/abstractEngine.js.map +1 -1
  129. package/Engines/engine.js +2 -2
  130. package/Engines/engine.js.map +1 -1
  131. package/Engines/nativeEngine.js +9 -9
  132. package/Engines/nativeEngine.js.map +1 -1
  133. package/Engines/nullEngine.js +5 -5
  134. package/Engines/nullEngine.js.map +1 -1
  135. package/Engines/renderTargetWrapper.js +1 -2
  136. package/Engines/renderTargetWrapper.js.map +1 -1
  137. package/Engines/shaderStore.js +6 -7
  138. package/Engines/shaderStore.js.map +1 -1
  139. package/Engines/thinEngine.js +4 -5
  140. package/Engines/thinEngine.js.map +1 -1
  141. package/Engines/webgpuEngine.d.ts +11 -0
  142. package/Engines/webgpuEngine.js +91 -72
  143. package/Engines/webgpuEngine.js.map +1 -1
  144. package/Events/deviceInputEvents.d.ts +1 -1
  145. package/Events/deviceInputEvents.js.map +1 -1
  146. package/FlowGraph/flowGraph.d.ts +1 -1
  147. package/FlowGraph/flowGraph.js +5 -5
  148. package/FlowGraph/flowGraph.js.map +1 -1
  149. package/FlowGraph/flowGraphBlock.js +2 -3
  150. package/FlowGraph/flowGraphBlock.js.map +1 -1
  151. package/FlowGraph/flowGraphConnection.d.ts +1 -1
  152. package/FlowGraph/flowGraphConnection.js.map +1 -1
  153. package/FlowGraph/flowGraphDataConnection.js +3 -3
  154. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  155. package/FlowGraph/flowGraphExecutionBlock.js +2 -3
  156. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  157. package/FlowGraph/flowGraphSignalConnection.js +3 -3
  158. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  159. package/Gamepads/dualShockGamepad.d.ts +2 -2
  160. package/Gamepads/dualShockGamepad.js +14 -14
  161. package/Gamepads/dualShockGamepad.js.map +1 -1
  162. package/Gamepads/xboxGamepad.d.ts +2 -2
  163. package/Gamepads/xboxGamepad.js +14 -14
  164. package/Gamepads/xboxGamepad.js.map +1 -1
  165. package/Gizmos/gizmo.d.ts +2 -2
  166. package/Gizmos/gizmo.js +4 -4
  167. package/Gizmos/gizmo.js.map +1 -1
  168. package/Gizmos/gizmoManager.js +2 -2
  169. package/Gizmos/gizmoManager.js.map +1 -1
  170. package/Gizmos/scaleGizmo.js +3 -3
  171. package/Gizmos/scaleGizmo.js.map +1 -1
  172. package/Loading/sceneLoader.d.ts +1 -1
  173. package/Loading/sceneLoader.js +6 -6
  174. package/Loading/sceneLoader.js.map +1 -1
  175. package/Materials/GreasedLine/greasedLineMaterialInterfaces.d.ts +3 -3
  176. package/Materials/GreasedLine/greasedLineMaterialInterfaces.js.map +1 -1
  177. package/Materials/GreasedLine/greasedLinePluginMaterial.js +10 -11
  178. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  179. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +8 -9
  180. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  181. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +3 -4
  182. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  183. package/Materials/Node/Blocks/Dual/fogBlock.js +2 -3
  184. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  185. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -2
  186. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  187. package/Materials/Node/Blocks/Dual/lightBlock.js +5 -6
  188. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  189. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -5
  190. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  191. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -8
  192. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  193. package/Materials/Node/Blocks/Dual/textureBlock.js +4 -6
  194. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  195. package/Materials/Node/Blocks/Fragment/TBNBlock.js +2 -4
  196. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  197. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +1 -2
  198. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  199. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -2
  200. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  201. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +1 -2
  202. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
  203. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +5 -6
  204. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  205. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -2
  206. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  207. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +5 -6
  208. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  209. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +3 -4
  210. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  211. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +7 -9
  212. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  213. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -2
  214. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  215. package/Materials/Node/Blocks/Input/inputBlock.js +19 -21
  216. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  217. package/Materials/Node/Blocks/Input/prePassTextureBlock.js +3 -4
  218. package/Materials/Node/Blocks/Input/prePassTextureBlock.js.map +1 -1
  219. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -3
  220. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  221. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +4 -5
  222. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  223. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
  224. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  225. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -29
  226. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  227. package/Materials/Node/Blocks/PBR/reflectionBlock.js +4 -5
  228. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  229. package/Materials/Node/Blocks/PBR/refractionBlock.js +5 -6
  230. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  231. package/Materials/Node/Blocks/PBR/sheenBlock.js +4 -5
  232. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  233. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +2 -3
  234. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  235. package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -2
  236. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  237. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -2
  238. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  239. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +1 -2
  240. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  241. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -2
  242. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  243. package/Materials/Node/Blocks/arcTan2Block.js +1 -2
  244. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  245. package/Materials/Node/Blocks/biPlanarBlock.js +3 -4
  246. package/Materials/Node/Blocks/biPlanarBlock.js.map +1 -1
  247. package/Materials/Node/Blocks/clampBlock.js +4 -5
  248. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  249. package/Materials/Node/Blocks/cloudBlock.js +3 -4
  250. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  251. package/Materials/Node/Blocks/curveBlock.js +1 -2
  252. package/Materials/Node/Blocks/curveBlock.js.map +1 -1
  253. package/Materials/Node/Blocks/customBlock.js +1 -2
  254. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  255. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -2
  256. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  257. package/Materials/Node/Blocks/meshAttributeExistsBlock.d.ts +1 -1
  258. package/Materials/Node/Blocks/meshAttributeExistsBlock.js +35 -35
  259. package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
  260. package/Materials/Node/Blocks/modBlock.js +1 -2
  261. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  262. package/Materials/Node/Blocks/remapBlock.js +3 -3
  263. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  264. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -2
  265. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  266. package/Materials/Node/Blocks/transformBlock.js +1 -2
  267. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  268. package/Materials/Node/Blocks/triPlanarBlock.js +10 -12
  269. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  270. package/Materials/Node/Blocks/voronoiNoiseBlock.js +3 -4
  271. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  272. package/Materials/Node/Blocks/waveBlock.d.ts +1 -1
  273. package/Materials/Node/Blocks/waveBlock.js +4 -4
  274. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  275. package/Materials/Node/Blocks/worleyNoise3DBlock.js +3 -4
  276. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  277. package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.d.ts +1 -1
  278. package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.js.map +1 -1
  279. package/Materials/Node/nodeMaterial.js +3 -4
  280. package/Materials/Node/nodeMaterial.js.map +1 -1
  281. package/Materials/Node/nodeMaterialBlock.js +5 -6
  282. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  283. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +2 -2
  284. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +10 -10
  285. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  286. package/Materials/Node/nodeMaterialBuildState.js +18 -19
  287. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  288. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js +3 -3
  289. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js.map +1 -1
  290. package/Materials/PBR/pbrBaseMaterial.js +3 -4
  291. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  292. package/Materials/Textures/internalTexture.d.ts +1 -1
  293. package/Materials/Textures/internalTexture.js +13 -13
  294. package/Materials/Textures/internalTexture.js.map +1 -1
  295. package/Materials/Textures/ktx2decoderTypes.d.ts +1 -1
  296. package/Materials/Textures/ktx2decoderTypes.js.map +1 -1
  297. package/Materials/Textures/rawCubeTexture.js +1 -2
  298. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  299. package/Materials/effect.functions.js +2 -3
  300. package/Materials/effect.functions.js.map +1 -1
  301. package/Materials/effect.js +3 -4
  302. package/Materials/effect.js.map +1 -1
  303. package/Materials/effect.webgl.functions.js +1 -2
  304. package/Materials/effect.webgl.functions.js.map +1 -1
  305. package/Materials/material.js +7 -9
  306. package/Materials/material.js.map +1 -1
  307. package/Materials/materialPluginEvent.d.ts +1 -1
  308. package/Materials/materialPluginEvent.js.map +1 -1
  309. package/Materials/materialPluginManager.js +9 -11
  310. package/Materials/materialPluginManager.js.map +1 -1
  311. package/Materials/meshDebugPluginMaterial.d.ts +1 -1
  312. package/Materials/meshDebugPluginMaterial.js +2 -2
  313. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  314. package/Materials/shaderLanguage.d.ts +1 -1
  315. package/Materials/shaderLanguage.js.map +1 -1
  316. package/Materials/shadowDepthWrapper.js +1 -2
  317. package/Materials/shadowDepthWrapper.js.map +1 -1
  318. package/Materials/standardMaterial.js +2 -3
  319. package/Materials/standardMaterial.js.map +1 -1
  320. package/Maths/math.axis.d.ts +2 -2
  321. package/Maths/math.axis.js.map +1 -1
  322. package/Maths/math.path.d.ts +1 -1
  323. package/Maths/math.path.js +3 -3
  324. package/Maths/math.path.js.map +1 -1
  325. package/Maths/math.vector.js +32 -6
  326. package/Maths/math.vector.js.map +1 -1
  327. package/Meshes/Builders/greasedLineBuilder.d.ts +2 -2
  328. package/Meshes/Builders/greasedLineBuilder.js +21 -23
  329. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  330. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +3 -3
  331. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  332. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +14 -14
  333. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  334. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +2 -2
  335. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  336. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +2 -2
  337. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
  338. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +3 -3
  339. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -1
  340. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +3 -3
  341. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  342. package/Meshes/Node/Blocks/Set/setColorsBlock.js +2 -2
  343. package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -1
  344. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +2 -2
  345. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -1
  346. package/Meshes/Node/Blocks/Set/setNormalsBlock.js +2 -2
  347. package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -1
  348. package/Meshes/Node/Blocks/Set/setPositionsBlock.js +2 -2
  349. package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -1
  350. package/Meshes/Node/Blocks/Set/setTangentsBlock.js +2 -2
  351. package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -1
  352. package/Meshes/Node/Blocks/Set/setUVsBlock.js +3 -3
  353. package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -1
  354. package/Meshes/Node/Blocks/Sources/boxBlock.js +2 -2
  355. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
  356. package/Meshes/Node/Blocks/Sources/capsuleBlock.js +2 -2
  357. package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -1
  358. package/Meshes/Node/Blocks/Sources/cylinderBlock.js +2 -2
  359. package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -1
  360. package/Meshes/Node/Blocks/Sources/discBlock.js +2 -2
  361. package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -1
  362. package/Meshes/Node/Blocks/Sources/gridBlock.js +2 -2
  363. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
  364. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +2 -2
  365. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -1
  366. package/Meshes/Node/Blocks/Sources/meshBlock.js +2 -2
  367. package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
  368. package/Meshes/Node/Blocks/Sources/planeBlock.js +2 -2
  369. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
  370. package/Meshes/Node/Blocks/Sources/sphereBlock.js +2 -2
  371. package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -1
  372. package/Meshes/Node/Blocks/Sources/torusBlock.js +2 -2
  373. package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -1
  374. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +2 -2
  375. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
  376. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +2 -2
  377. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
  378. package/Meshes/Node/Blocks/booleanGeometryBlock.js +3 -3
  379. package/Meshes/Node/Blocks/booleanGeometryBlock.js.map +1 -1
  380. package/Meshes/Node/Blocks/conditionBlock.js +2 -2
  381. package/Meshes/Node/Blocks/conditionBlock.js.map +1 -1
  382. package/Meshes/Node/Blocks/geometryClampBlock.js +3 -3
  383. package/Meshes/Node/Blocks/geometryClampBlock.js.map +1 -1
  384. package/Meshes/Node/Blocks/geometryCollectionBlock.js +2 -2
  385. package/Meshes/Node/Blocks/geometryCollectionBlock.js.map +1 -1
  386. package/Meshes/Node/Blocks/geometryCurveBlock.js +2 -2
  387. package/Meshes/Node/Blocks/geometryCurveBlock.js.map +1 -1
  388. package/Meshes/Node/Blocks/geometryOptimizeBlock.js +3 -3
  389. package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
  390. package/Meshes/Node/Blocks/geometryTransformBlock.js +2 -2
  391. package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -1
  392. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +2 -2
  393. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -1
  394. package/Meshes/Node/Blocks/mappingBlock.js +2 -2
  395. package/Meshes/Node/Blocks/mappingBlock.js.map +1 -1
  396. package/Meshes/Node/Blocks/mathBlock.js +2 -2
  397. package/Meshes/Node/Blocks/mathBlock.js.map +1 -1
  398. package/Meshes/Node/Blocks/mergeGeometryBlock.js +2 -2
  399. package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -1
  400. package/Meshes/Node/Blocks/randomBlock.js +2 -2
  401. package/Meshes/Node/Blocks/randomBlock.js.map +1 -1
  402. package/Meshes/Node/nodeGeometryBlock.js +3 -3
  403. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  404. package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +2 -2
  405. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +7 -7
  406. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
  407. package/Meshes/abstractMesh.d.ts +49 -17
  408. package/Meshes/abstractMesh.js +128 -133
  409. package/Meshes/abstractMesh.js.map +1 -1
  410. package/Meshes/geometry.d.ts +8 -0
  411. package/Meshes/geometry.js +17 -0
  412. package/Meshes/geometry.js.map +1 -1
  413. package/Meshes/instancedMesh.d.ts +5 -8
  414. package/Meshes/instancedMesh.js +15 -9
  415. package/Meshes/instancedMesh.js.map +1 -1
  416. package/Meshes/mesh.d.ts +7 -3
  417. package/Meshes/mesh.js +21 -13
  418. package/Meshes/mesh.js.map +1 -1
  419. package/Meshes/meshSimplification.d.ts +1 -1
  420. package/Meshes/meshSimplification.js +1 -1
  421. package/Meshes/meshSimplification.js.map +1 -1
  422. package/Meshes/meshSimplificationSceneComponent.js +2 -2
  423. package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
  424. package/Meshes/transformNode.js +7 -8
  425. package/Meshes/transformNode.js.map +1 -1
  426. package/Misc/assetsManager.d.ts +1 -1
  427. package/Misc/assetsManager.js +9 -9
  428. package/Misc/assetsManager.js.map +1 -1
  429. package/Misc/basis.js +2 -2
  430. package/Misc/basis.js.map +1 -1
  431. package/Misc/copyTextureToTexture.d.ts +1 -1
  432. package/Misc/copyTextureToTexture.js +1 -1
  433. package/Misc/copyTextureToTexture.js.map +1 -1
  434. package/Misc/environmentTextureTools.js +3 -3
  435. package/Misc/environmentTextureTools.js.map +1 -1
  436. package/Misc/iInspectable.d.ts +1 -1
  437. package/Misc/iInspectable.js.map +1 -1
  438. package/Misc/khronosTextureContainer2.js +2 -2
  439. package/Misc/khronosTextureContainer2.js.map +1 -1
  440. package/Misc/timer.d.ts +1 -1
  441. package/Misc/timer.js +5 -5
  442. package/Misc/timer.js.map +1 -1
  443. package/Misc/virtualJoystick.d.ts +1 -1
  444. package/Misc/virtualJoystick.js +16 -16
  445. package/Misc/virtualJoystick.js.map +1 -1
  446. package/Particles/particleSystem.js +3 -3
  447. package/Particles/particleSystem.js.map +1 -1
  448. package/Particles/particleSystemComponent.js +1 -2
  449. package/Particles/particleSystemComponent.js.map +1 -1
  450. package/Particles/pointsCloudSystem.d.ts +1 -1
  451. package/Particles/pointsCloudSystem.js +14 -14
  452. package/Particles/pointsCloudSystem.js.map +1 -1
  453. package/Particles/subEmitter.d.ts +1 -1
  454. package/Particles/subEmitter.js +1 -1
  455. package/Particles/subEmitter.js.map +1 -1
  456. package/Physics/physicsHelper.d.ts +2 -2
  457. package/Physics/physicsHelper.js +6 -7
  458. package/Physics/physicsHelper.js.map +1 -1
  459. package/Physics/v1/physicsImpostor.js +4 -5
  460. package/Physics/v1/physicsImpostor.js.map +1 -1
  461. package/Physics/v2/IPhysicsEnginePlugin.d.ts +16 -8
  462. package/Physics/v2/IPhysicsEnginePlugin.js +9 -0
  463. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  464. package/Physics/v2/Plugins/havokPlugin.js +96 -79
  465. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  466. package/Physics/v2/physicsAggregate.js +8 -9
  467. package/Physics/v2/physicsAggregate.js.map +1 -1
  468. package/Physics/v2/physicsBody.d.ts +14 -2
  469. package/Physics/v2/physicsBody.js +30 -11
  470. package/Physics/v2/physicsBody.js.map +1 -1
  471. package/Physics/v2/physicsConstraint.js +8 -9
  472. package/Physics/v2/physicsConstraint.js.map +1 -1
  473. package/Physics/v2/physicsMaterial.d.ts +1 -1
  474. package/Physics/v2/physicsMaterial.js.map +1 -1
  475. package/Physics/v2/physicsShape.js +9 -10
  476. package/Physics/v2/physicsShape.js.map +1 -1
  477. package/Physics/v2/ragdoll.js +11 -12
  478. package/Physics/v2/ragdoll.js.map +1 -1
  479. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +2 -2
  480. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  481. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  482. package/PostProcesses/depthOfFieldEffect.js +3 -3
  483. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  484. package/PostProcesses/postProcess.js +2 -3
  485. package/PostProcesses/postProcess.js.map +1 -1
  486. package/PostProcesses/tonemapPostProcess.d.ts +1 -1
  487. package/PostProcesses/tonemapPostProcess.js +4 -4
  488. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  489. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +1 -1
  490. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +10 -10
  491. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  492. package/Shaders/spriteMap.fragment.js +3 -2
  493. package/Shaders/spriteMap.fragment.js.map +1 -1
  494. package/ShadersWGSL/boundingInfo.compute.js +8 -8
  495. package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
  496. package/XR/features/WebXRDepthSensing.js +2 -2
  497. package/XR/features/WebXRDepthSensing.js.map +1 -1
  498. package/XR/features/WebXRHandTracking.d.ts +2 -2
  499. package/XR/features/WebXRHandTracking.js +76 -76
  500. package/XR/features/WebXRHandTracking.js.map +1 -1
  501. package/XR/features/WebXRLightEstimation.js +2 -2
  502. package/XR/features/WebXRLightEstimation.js.map +1 -1
  503. package/XR/features/WebXRNearInteraction.d.ts +1 -1
  504. package/XR/features/WebXRNearInteraction.js +5 -5
  505. package/XR/features/WebXRNearInteraction.js.map +1 -1
  506. package/XR/features/WebXRRawCameraAccess.js +2 -2
  507. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  508. package/XR/motionController/webXRProfiledMotionController.js +2 -2
  509. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  510. package/XR/webXRCamera.js +3 -4
  511. package/XR/webXRCamera.js.map +1 -1
  512. package/XR/webXREnterExitUI.js +3 -4
  513. package/XR/webXREnterExitUI.js.map +1 -1
  514. package/XR/webXRExperienceHelper.js +12 -13
  515. package/XR/webXRExperienceHelper.js.map +1 -1
  516. package/XR/webXRManagedOutputCanvas.d.ts +1 -1
  517. package/XR/webXRManagedOutputCanvas.js +15 -6
  518. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  519. package/XR/webXRRenderTargetTextureProvider.js +2 -2
  520. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  521. package/XR/webXRTypes.d.ts +2 -2
  522. package/XR/webXRTypes.js.map +1 -1
  523. package/package.json +1 -1
  524. package/scene.d.ts +1 -1
  525. package/scene.js +4 -4
  526. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuBufferManager.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuBufferManager.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable babylonjs/available */\r\nimport type { DataBuffer } from \"../../Buffers/dataBuffer\";\r\nimport { WebGPUDataBuffer } from \"../../Meshes/WebGPU/webgpuDataBuffer\";\r\nimport { FromHalfFloat } from \"../../Misc/textureTools\";\r\nimport type { Nullable } from \"../../types\";\r\nimport { Constants } from \"../constants\";\r\nimport { allocateAndCopyTypedBuffer } from \"../Extensions/engine.readTexture\";\r\nimport type { WebGPUEngine } from \"../webgpuEngine\";\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\n\r\n/** @internal */\r\nexport class WebGPUBufferManager {\r\n private _engine: WebGPUEngine;\r\n private _device: GPUDevice;\r\n private _deferredReleaseBuffers: Array<GPUBuffer> = [];\r\n\r\n private static _IsGPUBuffer(buffer: DataBuffer | GPUBuffer): buffer is GPUBuffer {\r\n return (buffer as DataBuffer).underlyingResource === undefined;\r\n }\r\n\r\n private static _FlagsToString(flags: GPUBufferUsageFlags, suffix = \"\") {\r\n let result = suffix;\r\n\r\n for (let i = 0; i <= 9; ++i) {\r\n if (flags & (1 << i)) {\r\n if (result) {\r\n result += \"_\";\r\n }\r\n result += WebGPUConstants.BufferUsage[1 << i];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n constructor(engine: WebGPUEngine, device: GPUDevice) {\r\n this._engine = engine;\r\n this._device = device;\r\n }\r\n\r\n public createRawBuffer(viewOrSize: ArrayBufferView | number, flags: GPUBufferUsageFlags, mappedAtCreation = false, label?: string): GPUBuffer {\r\n const alignedLength = (viewOrSize as ArrayBufferView).byteLength !== undefined ? ((viewOrSize as ArrayBufferView).byteLength + 3) & ~3 : ((viewOrSize as number) + 3) & ~3; // 4 bytes alignments (because of the upload which requires this)\r\n const verticesBufferDescriptor = {\r\n label: \"BabylonWebGPUDevice\" + this._engine.uniqueId + \"_\" + WebGPUBufferManager._FlagsToString(flags, label ?? \"Buffer\") + \"_size\" + alignedLength,\r\n mappedAtCreation,\r\n size: alignedLength,\r\n usage: flags,\r\n };\r\n\r\n return this._device.createBuffer(verticesBufferDescriptor);\r\n }\r\n\r\n public createBuffer(viewOrSize: ArrayBufferView | number, flags: GPUBufferUsageFlags, label?: string): WebGPUDataBuffer {\r\n const isView = (viewOrSize as ArrayBufferView).byteLength !== undefined;\r\n const buffer = this.createRawBuffer(viewOrSize, flags, undefined, label);\r\n const dataBuffer = new WebGPUDataBuffer(buffer);\r\n dataBuffer.references = 1;\r\n dataBuffer.capacity = isView ? (viewOrSize as ArrayBufferView).byteLength : (viewOrSize as number);\r\n dataBuffer.engineId = this._engine.uniqueId;\r\n\r\n if (isView) {\r\n this.setSubData(dataBuffer, 0, viewOrSize as ArrayBufferView);\r\n }\r\n\r\n return dataBuffer;\r\n }\r\n\r\n public setRawData(buffer: GPUBuffer, dstByteOffset: number, src: ArrayBufferView, srcByteOffset: number, byteLength: number): void {\r\n this._device.queue.writeBuffer(buffer, dstByteOffset, src.buffer, srcByteOffset, byteLength);\r\n }\r\n\r\n public setSubData(dataBuffer: WebGPUDataBuffer, dstByteOffset: number, src: ArrayBufferView, srcByteOffset = 0, byteLength = 0): void {\r\n const buffer = dataBuffer.underlyingResource as GPUBuffer;\r\n\r\n byteLength = byteLength || src.byteLength;\r\n byteLength = Math.min(byteLength, dataBuffer.capacity - dstByteOffset);\r\n\r\n // After Migration to Canary\r\n let chunkStart = src.byteOffset + srcByteOffset;\r\n let chunkEnd = chunkStart + byteLength;\r\n\r\n // 4 bytes alignments for upload\r\n const alignedLength = (byteLength + 3) & ~3;\r\n if (alignedLength !== byteLength) {\r\n const tempView = new Uint8Array(src.buffer.slice(chunkStart, chunkEnd));\r\n src = new Uint8Array(alignedLength);\r\n (src as Uint8Array).set(tempView);\r\n srcByteOffset = 0;\r\n chunkStart = 0;\r\n chunkEnd = alignedLength;\r\n byteLength = alignedLength;\r\n }\r\n\r\n // Chunk\r\n const maxChunk = 1024 * 1024 * 15;\r\n let offset = 0;\r\n while (chunkEnd - (chunkStart + offset) > maxChunk) {\r\n this._device.queue.writeBuffer(buffer, dstByteOffset + offset, src.buffer, chunkStart + offset, maxChunk);\r\n offset += maxChunk;\r\n }\r\n\r\n this._device.queue.writeBuffer(buffer, dstByteOffset + offset, src.buffer, chunkStart + offset, byteLength - offset);\r\n }\r\n\r\n private _getHalfFloatAsFloatRGBAArrayBuffer(dataLength: number, arrayBuffer: ArrayBuffer, destArray?: Float32Array): Float32Array {\r\n if (!destArray) {\r\n destArray = new Float32Array(dataLength);\r\n }\r\n const srcData = new Uint16Array(arrayBuffer);\r\n while (dataLength--) {\r\n destArray[dataLength] = FromHalfFloat(srcData[dataLength]);\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n public readDataFromBuffer(\r\n gpuBuffer: GPUBuffer,\r\n size: number,\r\n width: number,\r\n height: number,\r\n bytesPerRow: number,\r\n bytesPerRowAligned: number,\r\n type = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n offset = 0,\r\n buffer: Nullable<ArrayBufferView> = null,\r\n destroyBuffer = true,\r\n noDataConversion = false\r\n ): Promise<ArrayBufferView> {\r\n const floatFormat = type === Constants.TEXTURETYPE_FLOAT ? 2 : type === Constants.TEXTURETYPE_HALF_FLOAT ? 1 : 0;\r\n const engineId = this._engine.uniqueId;\r\n return new Promise((resolve, reject) => {\r\n gpuBuffer.mapAsync(WebGPUConstants.MapMode.Read, offset, size).then(\r\n () => {\r\n const copyArrayBuffer = gpuBuffer.getMappedRange(offset, size);\r\n let data: Nullable<ArrayBufferView> | Uint8Array | Float32Array = buffer;\r\n if (noDataConversion) {\r\n if (data === null) {\r\n data = allocateAndCopyTypedBuffer(type, size, true, copyArrayBuffer);\r\n } else {\r\n data = allocateAndCopyTypedBuffer(type, data.buffer, undefined, copyArrayBuffer);\r\n }\r\n } else {\r\n if (data === null) {\r\n switch (floatFormat) {\r\n case 0: // byte format\r\n data = new Uint8Array(size);\r\n (data as Uint8Array).set(new Uint8Array(copyArrayBuffer));\r\n break;\r\n case 1: // half float\r\n // TODO WEBGPU use computer shaders (or render pass) to make the conversion?\r\n data = this._getHalfFloatAsFloatRGBAArrayBuffer(size / 2, copyArrayBuffer);\r\n break;\r\n case 2: // float\r\n data = new Float32Array(size / 4);\r\n (data as Float32Array).set(new Float32Array(copyArrayBuffer));\r\n break;\r\n }\r\n } else {\r\n switch (floatFormat) {\r\n case 0: // byte format\r\n data = new Uint8Array(data.buffer);\r\n (data as Uint8Array).set(new Uint8Array(copyArrayBuffer));\r\n break;\r\n case 1: // half float\r\n // TODO WEBGPU use computer shaders (or render pass) to make the conversion?\r\n data = this._getHalfFloatAsFloatRGBAArrayBuffer(size / 2, copyArrayBuffer, buffer as Float32Array);\r\n break;\r\n case 2: // float\r\n data = new Float32Array(data.buffer);\r\n (data as Float32Array).set(new Float32Array(copyArrayBuffer));\r\n break;\r\n }\r\n }\r\n }\r\n if (bytesPerRow !== bytesPerRowAligned) {\r\n // TODO WEBGPU use computer shaders (or render pass) to build the final buffer data?\r\n if (floatFormat === 1 && !noDataConversion) {\r\n // half float have been converted to float above\r\n bytesPerRow *= 2;\r\n bytesPerRowAligned *= 2;\r\n }\r\n const data2 = new Uint8Array(data!.buffer);\r\n let offset = bytesPerRow,\r\n offset2 = 0;\r\n for (let y = 1; y < height; ++y) {\r\n offset2 = y * bytesPerRowAligned;\r\n for (let x = 0; x < bytesPerRow; ++x) {\r\n data2[offset++] = data2[offset2++];\r\n }\r\n }\r\n if (floatFormat !== 0 && !noDataConversion) {\r\n data = new Float32Array(data2.buffer, 0, offset / 4);\r\n } else {\r\n data = new Uint8Array(data2.buffer, 0, offset);\r\n }\r\n }\r\n gpuBuffer.unmap();\r\n if (destroyBuffer) {\r\n this.releaseBuffer(gpuBuffer);\r\n }\r\n resolve(data!);\r\n },\r\n (reason) => {\r\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\r\n // The engine was disposed while waiting for the promise, or a context loss/restoration has occurred: don't reject\r\n resolve(new Uint8Array());\r\n } else {\r\n reject(reason);\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n public releaseBuffer(buffer: DataBuffer | GPUBuffer): boolean {\r\n if (WebGPUBufferManager._IsGPUBuffer(buffer)) {\r\n this._deferredReleaseBuffers.push(buffer);\r\n return true;\r\n }\r\n\r\n buffer.references--;\r\n\r\n if (buffer.references === 0) {\r\n this._deferredReleaseBuffers.push(buffer.underlyingResource as GPUBuffer);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public destroyDeferredBuffers(): void {\r\n for (let i = 0; i < this._deferredReleaseBuffers.length; ++i) {\r\n this._deferredReleaseBuffers[i].destroy();\r\n }\r\n\r\n this._deferredReleaseBuffers.length = 0;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"webgpuBufferManager.js","sourceRoot":"","sources":["../../../../../dev/core/src/Engines/WebGPU/webgpuBufferManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAE9E,gEAAgE;AAChE,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AAErD,gBAAgB;AAChB,MAAM,OAAO,mBAAmB;IAKpB,MAAM,CAAC,YAAY,CAAC,MAA8B;QACtD,OAAQ,MAAqB,CAAC,kBAAkB,KAAK,SAAS,CAAC;IACnE,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,KAA0B,EAAE,MAAM,GAAG,EAAE;QACjE,IAAI,MAAM,GAAG,MAAM,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;YACzB,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACR,MAAM,IAAI,GAAG,CAAC;iBACjB;gBACD,MAAM,IAAI,eAAe,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aACjD;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,YAAY,MAAoB,EAAE,MAAiB;QArB3C,4BAAuB,GAAqB,EAAE,CAAC;QAsBnD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAEM,eAAe,CAAC,UAAoC,EAAE,KAA0B,EAAE,gBAAgB,GAAG,KAAK,EAAE,KAAc;QAC7H,MAAM,aAAa,GAAI,UAA8B,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAE,UAA8B,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,UAAqB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iEAAiE;QAC7O,MAAM,wBAAwB,GAAG;YAC7B,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,mBAAmB,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,OAAO,GAAG,aAAa;YACnJ,gBAAgB;YAChB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IAEM,YAAY,CAAC,UAAoC,EAAE,KAA0B,EAAE,KAAc;QAChG,MAAM,MAAM,GAAI,UAA8B,CAAC,UAAU,KAAK,SAAS,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAE,UAA8B,CAAC,UAAU,CAAC,CAAC,CAAE,UAAqB,CAAC;QACnG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAE5C,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,UAA6B,CAAC,CAAC;SACjE;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,UAAU,CAAC,MAAiB,EAAE,aAAqB,EAAE,GAAoB,EAAE,aAAqB,EAAE,UAAkB;QACvH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;IAEM,UAAU,CAAC,UAA4B,EAAE,aAAqB,EAAE,GAAoB,EAAE,aAAa,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC;QAC1H,MAAM,MAAM,GAAG,UAAU,CAAC,kBAA+B,CAAC;QAE1D,UAAU,GAAG,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC;QAC1C,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAC;QAEvE,4BAA4B;QAC5B,IAAI,UAAU,GAAG,GAAG,CAAC,UAAU,GAAG,aAAa,CAAC;QAChD,IAAI,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;QAEvC,gCAAgC;QAChC,MAAM,aAAa,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,aAAa,KAAK,UAAU,EAAE;YAC9B,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxE,GAAG,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;YACnC,GAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClC,aAAa,GAAG,CAAC,CAAC;YAClB,UAAU,GAAG,CAAC,CAAC;YACf,QAAQ,GAAG,aAAa,CAAC;YACzB,UAAU,GAAG,aAAa,CAAC;SAC9B;QAED,QAAQ;QACR,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,QAAQ,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC1G,MAAM,IAAI,QAAQ,CAAC;SACtB;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IACzH,CAAC;IAEO,mCAAmC,CAAC,UAAkB,EAAE,WAAwB,EAAE,SAAwB;QAC9G,IAAI,CAAC,SAAS,EAAE;YACZ,SAAS,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;SAC5C;QACD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;QAC7C,OAAO,UAAU,EAAE,EAAE;YACjB,SAAS,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAEM,kBAAkB,CACrB,SAAoB,EACpB,IAAY,EACZ,KAAa,EACb,MAAc,EACd,WAAmB,EACnB,kBAA0B,EAC1B,IAAI,GAAG,SAAS,CAAC,yBAAyB,EAC1C,MAAM,GAAG,CAAC,EACV,SAAoC,IAAI,EACxC,aAAa,GAAG,IAAI,EACpB,gBAAgB,GAAG,KAAK;QAExB,MAAM,WAAW,GAAG,IAAI,KAAK,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,SAAS,CAAC,QAAQ,uCAA+B,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAC/D,GAAG,EAAE;gBACD,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC/D,IAAI,IAAI,GAA0D,MAAM,CAAC;gBACzE,IAAI,gBAAgB,EAAE;oBAClB,IAAI,IAAI,KAAK,IAAI,EAAE;wBACf,IAAI,GAAG,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;qBACxE;yBAAM;wBACH,IAAI,GAAG,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;qBACpF;iBACJ;qBAAM;oBACH,IAAI,IAAI,KAAK,IAAI,EAAE;wBACf,QAAQ,WAAW,EAAE;4BACjB,KAAK,CAAC,EAAE,cAAc;gCAClB,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;gCAC3B,IAAmB,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;gCAC1D,MAAM;4BACV,KAAK,CAAC,EAAE,aAAa;gCACjB,4EAA4E;gCAC5E,IAAI,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;gCAC3E,MAAM;4BACV,KAAK,CAAC,EAAE,QAAQ;gCACZ,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gCACjC,IAAqB,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;gCAC9D,MAAM;yBACb;qBACJ;yBAAM;wBACH,QAAQ,WAAW,EAAE;4BACjB,KAAK,CAAC,EAAE,cAAc;gCAClB,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCAClC,IAAmB,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;gCAC1D,MAAM;4BACV,KAAK,CAAC,EAAE,aAAa;gCACjB,4EAA4E;gCAC5E,IAAI,GAAG,IAAI,CAAC,mCAAmC,CAAC,IAAI,GAAG,CAAC,EAAE,eAAe,EAAE,MAAsB,CAAC,CAAC;gCACnG,MAAM;4BACV,KAAK,CAAC,EAAE,QAAQ;gCACZ,IAAI,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACpC,IAAqB,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;gCAC9D,MAAM;yBACb;qBACJ;iBACJ;gBACD,IAAI,WAAW,KAAK,kBAAkB,EAAE;oBACpC,oFAAoF;oBACpF,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACxC,gDAAgD;wBAChD,WAAW,IAAI,CAAC,CAAC;wBACjB,kBAAkB,IAAI,CAAC,CAAC;qBAC3B;oBACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAK,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,MAAM,GAAG,WAAW,EACpB,OAAO,GAAG,CAAC,CAAC;oBAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;wBAC7B,OAAO,GAAG,CAAC,GAAG,kBAAkB,CAAC;wBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE;4BAClC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;yBACtC;qBACJ;oBACD,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE;wBACxC,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;qBACxD;yBAAM;wBACH,IAAI,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;qBAClD;iBACJ;gBACD,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,aAAa,EAAE;oBACf,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;iBACjC;gBACD,OAAO,CAAC,IAAK,CAAC,CAAC;YACnB,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;gBACP,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC/D,kHAAkH;oBAClH,OAAO,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;iBAC7B;qBAAM;oBACH,MAAM,CAAC,MAAM,CAAC,CAAC;iBAClB;YACL,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,aAAa,CAAC,MAA8B;QAC/C,IAAI,mBAAmB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YAC1C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACf;QAED,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpB,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,kBAA+B,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,sBAAsB;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC1D,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC7C;QAED,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;CACJ","sourcesContent":["/* eslint-disable babylonjs/available */\r\nimport type { DataBuffer } from \"../../Buffers/dataBuffer\";\r\nimport { WebGPUDataBuffer } from \"../../Meshes/WebGPU/webgpuDataBuffer\";\r\nimport { FromHalfFloat } from \"../../Misc/textureTools\";\r\nimport type { Nullable } from \"../../types\";\r\nimport { Constants } from \"../constants\";\r\nimport { allocateAndCopyTypedBuffer } from \"../Extensions/engine.readTexture\";\r\nimport type { WebGPUEngine } from \"../webgpuEngine\";\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\n\r\n/** @internal */\r\nexport class WebGPUBufferManager {\r\n private _engine: WebGPUEngine;\r\n private _device: GPUDevice;\r\n private _deferredReleaseBuffers: Array<GPUBuffer> = [];\r\n\r\n private static _IsGPUBuffer(buffer: DataBuffer | GPUBuffer): buffer is GPUBuffer {\r\n return (buffer as DataBuffer).underlyingResource === undefined;\r\n }\r\n\r\n private static _FlagsToString(flags: GPUBufferUsageFlags, suffix = \"\") {\r\n let result = suffix;\r\n\r\n for (let i = 0; i <= 9; ++i) {\r\n if (flags & (1 << i)) {\r\n if (result) {\r\n result += \"_\";\r\n }\r\n result += WebGPUConstants.BufferUsage[1 << i];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n constructor(engine: WebGPUEngine, device: GPUDevice) {\r\n this._engine = engine;\r\n this._device = device;\r\n }\r\n\r\n public createRawBuffer(viewOrSize: ArrayBufferView | number, flags: GPUBufferUsageFlags, mappedAtCreation = false, label?: string): GPUBuffer {\r\n const alignedLength = (viewOrSize as ArrayBufferView).byteLength !== undefined ? ((viewOrSize as ArrayBufferView).byteLength + 3) & ~3 : ((viewOrSize as number) + 3) & ~3; // 4 bytes alignments (because of the upload which requires this)\r\n const verticesBufferDescriptor = {\r\n label: \"BabylonWebGPUDevice\" + this._engine.uniqueId + \"_\" + WebGPUBufferManager._FlagsToString(flags, label ?? \"Buffer\") + \"_size\" + alignedLength,\r\n mappedAtCreation,\r\n size: alignedLength,\r\n usage: flags,\r\n };\r\n\r\n return this._device.createBuffer(verticesBufferDescriptor);\r\n }\r\n\r\n public createBuffer(viewOrSize: ArrayBufferView | number, flags: GPUBufferUsageFlags, label?: string): WebGPUDataBuffer {\r\n const isView = (viewOrSize as ArrayBufferView).byteLength !== undefined;\r\n const buffer = this.createRawBuffer(viewOrSize, flags, undefined, label);\r\n const dataBuffer = new WebGPUDataBuffer(buffer);\r\n dataBuffer.references = 1;\r\n dataBuffer.capacity = isView ? (viewOrSize as ArrayBufferView).byteLength : (viewOrSize as number);\r\n dataBuffer.engineId = this._engine.uniqueId;\r\n\r\n if (isView) {\r\n this.setSubData(dataBuffer, 0, viewOrSize as ArrayBufferView);\r\n }\r\n\r\n return dataBuffer;\r\n }\r\n\r\n public setRawData(buffer: GPUBuffer, dstByteOffset: number, src: ArrayBufferView, srcByteOffset: number, byteLength: number): void {\r\n this._device.queue.writeBuffer(buffer, dstByteOffset, src.buffer, srcByteOffset, byteLength);\r\n }\r\n\r\n public setSubData(dataBuffer: WebGPUDataBuffer, dstByteOffset: number, src: ArrayBufferView, srcByteOffset = 0, byteLength = 0): void {\r\n const buffer = dataBuffer.underlyingResource as GPUBuffer;\r\n\r\n byteLength = byteLength || src.byteLength;\r\n byteLength = Math.min(byteLength, dataBuffer.capacity - dstByteOffset);\r\n\r\n // After Migration to Canary\r\n let chunkStart = src.byteOffset + srcByteOffset;\r\n let chunkEnd = chunkStart + byteLength;\r\n\r\n // 4 bytes alignments for upload\r\n const alignedLength = (byteLength + 3) & ~3;\r\n if (alignedLength !== byteLength) {\r\n const tempView = new Uint8Array(src.buffer.slice(chunkStart, chunkEnd));\r\n src = new Uint8Array(alignedLength);\r\n (src as Uint8Array).set(tempView);\r\n srcByteOffset = 0;\r\n chunkStart = 0;\r\n chunkEnd = alignedLength;\r\n byteLength = alignedLength;\r\n }\r\n\r\n // Chunk\r\n const maxChunk = 1024 * 1024 * 15;\r\n let offset = 0;\r\n while (chunkEnd - (chunkStart + offset) > maxChunk) {\r\n this._device.queue.writeBuffer(buffer, dstByteOffset + offset, src.buffer, chunkStart + offset, maxChunk);\r\n offset += maxChunk;\r\n }\r\n\r\n this._device.queue.writeBuffer(buffer, dstByteOffset + offset, src.buffer, chunkStart + offset, byteLength - offset);\r\n }\r\n\r\n private _getHalfFloatAsFloatRGBAArrayBuffer(dataLength: number, arrayBuffer: ArrayBuffer, destArray?: Float32Array): Float32Array {\r\n if (!destArray) {\r\n destArray = new Float32Array(dataLength);\r\n }\r\n const srcData = new Uint16Array(arrayBuffer);\r\n while (dataLength--) {\r\n destArray[dataLength] = FromHalfFloat(srcData[dataLength]);\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n public readDataFromBuffer(\r\n gpuBuffer: GPUBuffer,\r\n size: number,\r\n width: number,\r\n height: number,\r\n bytesPerRow: number,\r\n bytesPerRowAligned: number,\r\n type = Constants.TEXTURETYPE_UNSIGNED_BYTE,\r\n offset = 0,\r\n buffer: Nullable<ArrayBufferView> = null,\r\n destroyBuffer = true,\r\n noDataConversion = false\r\n ): Promise<ArrayBufferView> {\r\n const floatFormat = type === Constants.TEXTURETYPE_FLOAT ? 2 : type === Constants.TEXTURETYPE_HALF_FLOAT ? 1 : 0;\r\n const engineId = this._engine.uniqueId;\r\n return new Promise((resolve, reject) => {\r\n gpuBuffer.mapAsync(WebGPUConstants.MapMode.Read, offset, size).then(\r\n () => {\r\n const copyArrayBuffer = gpuBuffer.getMappedRange(offset, size);\r\n let data: Nullable<ArrayBufferView> | Uint8Array | Float32Array = buffer;\r\n if (noDataConversion) {\r\n if (data === null) {\r\n data = allocateAndCopyTypedBuffer(type, size, true, copyArrayBuffer);\r\n } else {\r\n data = allocateAndCopyTypedBuffer(type, data.buffer, undefined, copyArrayBuffer);\r\n }\r\n } else {\r\n if (data === null) {\r\n switch (floatFormat) {\r\n case 0: // byte format\r\n data = new Uint8Array(size);\r\n (data as Uint8Array).set(new Uint8Array(copyArrayBuffer));\r\n break;\r\n case 1: // half float\r\n // TODO WEBGPU use computer shaders (or render pass) to make the conversion?\r\n data = this._getHalfFloatAsFloatRGBAArrayBuffer(size / 2, copyArrayBuffer);\r\n break;\r\n case 2: // float\r\n data = new Float32Array(size / 4);\r\n (data as Float32Array).set(new Float32Array(copyArrayBuffer));\r\n break;\r\n }\r\n } else {\r\n switch (floatFormat) {\r\n case 0: // byte format\r\n data = new Uint8Array(data.buffer);\r\n (data as Uint8Array).set(new Uint8Array(copyArrayBuffer));\r\n break;\r\n case 1: // half float\r\n // TODO WEBGPU use computer shaders (or render pass) to make the conversion?\r\n data = this._getHalfFloatAsFloatRGBAArrayBuffer(size / 2, copyArrayBuffer, buffer as Float32Array);\r\n break;\r\n case 2: // float\r\n data = new Float32Array(data.buffer);\r\n (data as Float32Array).set(new Float32Array(copyArrayBuffer));\r\n break;\r\n }\r\n }\r\n }\r\n if (bytesPerRow !== bytesPerRowAligned) {\r\n // TODO WEBGPU use computer shaders (or render pass) to build the final buffer data?\r\n if (floatFormat === 1 && !noDataConversion) {\r\n // half float have been converted to float above\r\n bytesPerRow *= 2;\r\n bytesPerRowAligned *= 2;\r\n }\r\n const data2 = new Uint8Array(data!.buffer);\r\n let offset = bytesPerRow,\r\n offset2 = 0;\r\n for (let y = 1; y < height; ++y) {\r\n offset2 = y * bytesPerRowAligned;\r\n for (let x = 0; x < bytesPerRow; ++x) {\r\n data2[offset++] = data2[offset2++];\r\n }\r\n }\r\n if (floatFormat !== 0 && !noDataConversion) {\r\n data = new Float32Array(data2.buffer, 0, offset / 4);\r\n } else {\r\n data = new Uint8Array(data2.buffer, 0, offset);\r\n }\r\n }\r\n gpuBuffer.unmap();\r\n if (destroyBuffer) {\r\n this.releaseBuffer(gpuBuffer);\r\n }\r\n resolve(data!);\r\n },\r\n (reason) => {\r\n if (this._engine.isDisposed || this._engine.uniqueId !== engineId) {\r\n // The engine was disposed while waiting for the promise, or a context loss/restoration has occurred: don't reject\r\n resolve(new Uint8Array());\r\n } else {\r\n reject(reason);\r\n }\r\n }\r\n );\r\n });\r\n }\r\n\r\n public releaseBuffer(buffer: DataBuffer | GPUBuffer): boolean {\r\n if (WebGPUBufferManager._IsGPUBuffer(buffer)) {\r\n this._deferredReleaseBuffers.push(buffer);\r\n return true;\r\n }\r\n\r\n buffer.references--;\r\n\r\n if (buffer.references === 0) {\r\n this._deferredReleaseBuffers.push(buffer.underlyingResource as GPUBuffer);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public destroyDeferredBuffers(): void {\r\n for (let i = 0; i < this._deferredReleaseBuffers.length; ++i) {\r\n this._deferredReleaseBuffers[i].destroy();\r\n }\r\n\r\n this._deferredReleaseBuffers.length = 0;\r\n }\r\n}\r\n"]}
@@ -2,7 +2,6 @@
2
2
  /* eslint-disable babylonjs/available */
3
3
  /* eslint-disable jsdoc/require-jsdoc */
4
4
 
5
- import * as WebGPUConstants from "./webgpuConstants.js";
6
5
  import { VertexBuffer } from "../../Buffers/buffer.js";
7
6
  import { WebGPUTextureHelper } from "./webgpuTextureHelper.js";
8
7
  import { renderableTextureFormatToIndex } from "./webgpuTextureManager.js";
@@ -76,13 +75,13 @@ export class WebGPUCacheRenderPipeline {
76
75
  this.setClampDepth(false);
77
76
  this.setDepthBias(0);
78
77
  //this.setDepthBiasClamp(0);
79
- this._webgpuColorFormat = [WebGPUConstants.TextureFormat.BGRA8Unorm];
80
- this.setColorFormat(WebGPUConstants.TextureFormat.BGRA8Unorm);
78
+ this._webgpuColorFormat = ["bgra8unorm" /* WebGPUConstants.TextureFormat.BGRA8Unorm */];
79
+ this.setColorFormat("bgra8unorm" /* WebGPUConstants.TextureFormat.BGRA8Unorm */);
81
80
  this.setMRT([]);
82
81
  this.setAlphaBlendEnabled(false);
83
82
  this.setAlphaBlendFactors([null, null, null, null], [null, null]);
84
83
  this.setWriteMask(0xf);
85
- this.setDepthStencilFormat(WebGPUConstants.TextureFormat.Depth24PlusStencil8);
84
+ this.setDepthStencilFormat("depth24plus-stencil8" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */);
86
85
  this.setStencilEnabled(false);
87
86
  this.resetStencilState();
88
87
  this.setBuffers(null, null, null);
@@ -312,127 +311,127 @@ export class WebGPUCacheRenderPipeline {
312
311
  switch (fillMode) {
313
312
  // Triangle views
314
313
  case 0:
315
- return WebGPUConstants.PrimitiveTopology.TriangleList;
314
+ return "triangle-list" /* WebGPUConstants.PrimitiveTopology.TriangleList */;
316
315
  case 2:
317
- return WebGPUConstants.PrimitiveTopology.PointList;
316
+ return "point-list" /* WebGPUConstants.PrimitiveTopology.PointList */;
318
317
  case 1:
319
- return WebGPUConstants.PrimitiveTopology.LineList;
318
+ return "line-list" /* WebGPUConstants.PrimitiveTopology.LineList */;
320
319
  // Draw modes
321
320
  case 3:
322
- return WebGPUConstants.PrimitiveTopology.PointList;
321
+ return "point-list" /* WebGPUConstants.PrimitiveTopology.PointList */;
323
322
  case 4:
324
- return WebGPUConstants.PrimitiveTopology.LineList;
323
+ return "line-list" /* WebGPUConstants.PrimitiveTopology.LineList */;
325
324
  case 5:
326
325
  // return this._gl.LINE_LOOP;
327
326
  // TODO WEBGPU. Line Loop Mode Fallback at buffer load time.
328
327
  // eslint-disable-next-line no-throw-literal
329
328
  throw "LineLoop is an unsupported fillmode in WebGPU";
330
329
  case 6:
331
- return WebGPUConstants.PrimitiveTopology.LineStrip;
330
+ return "line-strip" /* WebGPUConstants.PrimitiveTopology.LineStrip */;
332
331
  case 7:
333
- return WebGPUConstants.PrimitiveTopology.TriangleStrip;
332
+ return "triangle-strip" /* WebGPUConstants.PrimitiveTopology.TriangleStrip */;
334
333
  case 8:
335
334
  // return this._gl.TRIANGLE_FAN;
336
335
  // TODO WEBGPU. Triangle Fan Mode Fallback at buffer load time.
337
336
  // eslint-disable-next-line no-throw-literal
338
337
  throw "TriangleFan is an unsupported fillmode in WebGPU";
339
338
  default:
340
- return WebGPUConstants.PrimitiveTopology.TriangleList;
339
+ return "triangle-list" /* WebGPUConstants.PrimitiveTopology.TriangleList */;
341
340
  }
342
341
  }
343
342
  static _GetAphaBlendOperation(operation) {
344
343
  switch (operation) {
345
344
  case 32774:
346
- return WebGPUConstants.BlendOperation.Add;
345
+ return "add" /* WebGPUConstants.BlendOperation.Add */;
347
346
  case 32778:
348
- return WebGPUConstants.BlendOperation.Subtract;
347
+ return "subtract" /* WebGPUConstants.BlendOperation.Subtract */;
349
348
  case 32779:
350
- return WebGPUConstants.BlendOperation.ReverseSubtract;
349
+ return "reverse-subtract" /* WebGPUConstants.BlendOperation.ReverseSubtract */;
351
350
  case 32775:
352
- return WebGPUConstants.BlendOperation.Min;
351
+ return "min" /* WebGPUConstants.BlendOperation.Min */;
353
352
  case 32776:
354
- return WebGPUConstants.BlendOperation.Max;
353
+ return "max" /* WebGPUConstants.BlendOperation.Max */;
355
354
  default:
356
- return WebGPUConstants.BlendOperation.Add;
355
+ return "add" /* WebGPUConstants.BlendOperation.Add */;
357
356
  }
358
357
  }
359
358
  static _GetAphaBlendFactor(factor) {
360
359
  switch (factor) {
361
360
  case 0:
362
- return WebGPUConstants.BlendFactor.Zero;
361
+ return "zero" /* WebGPUConstants.BlendFactor.Zero */;
363
362
  case 1:
364
- return WebGPUConstants.BlendFactor.One;
363
+ return "one" /* WebGPUConstants.BlendFactor.One */;
365
364
  case 768:
366
- return WebGPUConstants.BlendFactor.Src;
365
+ return "src" /* WebGPUConstants.BlendFactor.Src */;
367
366
  case 769:
368
- return WebGPUConstants.BlendFactor.OneMinusSrc;
367
+ return "one-minus-src" /* WebGPUConstants.BlendFactor.OneMinusSrc */;
369
368
  case 770:
370
- return WebGPUConstants.BlendFactor.SrcAlpha;
369
+ return "src-alpha" /* WebGPUConstants.BlendFactor.SrcAlpha */;
371
370
  case 771:
372
- return WebGPUConstants.BlendFactor.OneMinusSrcAlpha;
371
+ return "one-minus-src-alpha" /* WebGPUConstants.BlendFactor.OneMinusSrcAlpha */;
373
372
  case 772:
374
- return WebGPUConstants.BlendFactor.DstAlpha;
373
+ return "dst-alpha" /* WebGPUConstants.BlendFactor.DstAlpha */;
375
374
  case 773:
376
- return WebGPUConstants.BlendFactor.OneMinusDstAlpha;
375
+ return "one-minus-dst-alpha" /* WebGPUConstants.BlendFactor.OneMinusDstAlpha */;
377
376
  case 774:
378
- return WebGPUConstants.BlendFactor.Dst;
377
+ return "dst" /* WebGPUConstants.BlendFactor.Dst */;
379
378
  case 775:
380
- return WebGPUConstants.BlendFactor.OneMinusDst;
379
+ return "one-minus-dst" /* WebGPUConstants.BlendFactor.OneMinusDst */;
381
380
  case 776:
382
- return WebGPUConstants.BlendFactor.SrcAlphaSaturated;
381
+ return "src-alpha-saturated" /* WebGPUConstants.BlendFactor.SrcAlphaSaturated */;
383
382
  case 32769:
384
- return WebGPUConstants.BlendFactor.Constant;
383
+ return "constant" /* WebGPUConstants.BlendFactor.Constant */;
385
384
  case 32770:
386
- return WebGPUConstants.BlendFactor.OneMinusConstant;
385
+ return "one-minus-constant" /* WebGPUConstants.BlendFactor.OneMinusConstant */;
387
386
  case 32771:
388
- return WebGPUConstants.BlendFactor.Constant;
387
+ return "constant" /* WebGPUConstants.BlendFactor.Constant */;
389
388
  case 32772:
390
- return WebGPUConstants.BlendFactor.OneMinusConstant;
389
+ return "one-minus-constant" /* WebGPUConstants.BlendFactor.OneMinusConstant */;
391
390
  default:
392
- return WebGPUConstants.BlendFactor.One;
391
+ return "one" /* WebGPUConstants.BlendFactor.One */;
393
392
  }
394
393
  }
395
394
  static _GetCompareFunction(compareFunction) {
396
395
  switch (compareFunction) {
397
396
  case 0: // NEVER
398
- return WebGPUConstants.CompareFunction.Never;
397
+ return "never" /* WebGPUConstants.CompareFunction.Never */;
399
398
  case 1: // LESS
400
- return WebGPUConstants.CompareFunction.Less;
399
+ return "less" /* WebGPUConstants.CompareFunction.Less */;
401
400
  case 2: // EQUAL
402
- return WebGPUConstants.CompareFunction.Equal;
401
+ return "equal" /* WebGPUConstants.CompareFunction.Equal */;
403
402
  case 3: // LEQUAL
404
- return WebGPUConstants.CompareFunction.LessEqual;
403
+ return "less-equal" /* WebGPUConstants.CompareFunction.LessEqual */;
405
404
  case 4: // GREATER
406
- return WebGPUConstants.CompareFunction.Greater;
405
+ return "greater" /* WebGPUConstants.CompareFunction.Greater */;
407
406
  case 5: // NOTEQUAL
408
- return WebGPUConstants.CompareFunction.NotEqual;
407
+ return "not-equal" /* WebGPUConstants.CompareFunction.NotEqual */;
409
408
  case 6: // GEQUAL
410
- return WebGPUConstants.CompareFunction.GreaterEqual;
409
+ return "greater-equal" /* WebGPUConstants.CompareFunction.GreaterEqual */;
411
410
  case 7: // ALWAYS
412
- return WebGPUConstants.CompareFunction.Always;
411
+ return "always" /* WebGPUConstants.CompareFunction.Always */;
413
412
  }
414
- return WebGPUConstants.CompareFunction.Never;
413
+ return "never" /* WebGPUConstants.CompareFunction.Never */;
415
414
  }
416
415
  static _GetStencilOpFunction(operation) {
417
416
  switch (operation) {
418
417
  case 0:
419
- return WebGPUConstants.StencilOperation.Zero;
418
+ return "zero" /* WebGPUConstants.StencilOperation.Zero */;
420
419
  case 1:
421
- return WebGPUConstants.StencilOperation.Keep;
420
+ return "keep" /* WebGPUConstants.StencilOperation.Keep */;
422
421
  case 2:
423
- return WebGPUConstants.StencilOperation.Replace;
422
+ return "replace" /* WebGPUConstants.StencilOperation.Replace */;
424
423
  case 3:
425
- return WebGPUConstants.StencilOperation.IncrementClamp;
424
+ return "increment-clamp" /* WebGPUConstants.StencilOperation.IncrementClamp */;
426
425
  case 4:
427
- return WebGPUConstants.StencilOperation.DecrementClamp;
426
+ return "decrement-clamp" /* WebGPUConstants.StencilOperation.DecrementClamp */;
428
427
  case 5:
429
- return WebGPUConstants.StencilOperation.Invert;
428
+ return "invert" /* WebGPUConstants.StencilOperation.Invert */;
430
429
  case 6:
431
- return WebGPUConstants.StencilOperation.IncrementWrap;
430
+ return "increment-wrap" /* WebGPUConstants.StencilOperation.IncrementWrap */;
432
431
  case 7:
433
- return WebGPUConstants.StencilOperation.DecrementWrap;
432
+ return "decrement-wrap" /* WebGPUConstants.StencilOperation.DecrementWrap */;
434
433
  }
435
- return WebGPUConstants.StencilOperation.Keep;
434
+ return "keep" /* WebGPUConstants.StencilOperation.Keep */;
436
435
  }
437
436
  static _GetVertexInputDescriptorFormat(vertexBuffer) {
438
437
  const type = vertexBuffer.type;
@@ -443,76 +442,76 @@ export class WebGPUCacheRenderPipeline {
443
442
  switch (size) {
444
443
  case 1:
445
444
  case 2:
446
- return normalized ? WebGPUConstants.VertexFormat.Snorm8x2 : WebGPUConstants.VertexFormat.Sint8x2;
445
+ return normalized ? "snorm8x2" /* WebGPUConstants.VertexFormat.Snorm8x2 */ : "sint8x2" /* WebGPUConstants.VertexFormat.Sint8x2 */;
447
446
  case 3:
448
447
  case 4:
449
- return normalized ? WebGPUConstants.VertexFormat.Snorm8x4 : WebGPUConstants.VertexFormat.Sint8x4;
448
+ return normalized ? "snorm8x4" /* WebGPUConstants.VertexFormat.Snorm8x4 */ : "sint8x4" /* WebGPUConstants.VertexFormat.Sint8x4 */;
450
449
  }
451
450
  break;
452
451
  case VertexBuffer.UNSIGNED_BYTE:
453
452
  switch (size) {
454
453
  case 1:
455
454
  case 2:
456
- return normalized ? WebGPUConstants.VertexFormat.Unorm8x2 : WebGPUConstants.VertexFormat.Uint8x2;
455
+ return normalized ? "unorm8x2" /* WebGPUConstants.VertexFormat.Unorm8x2 */ : "uint8x2" /* WebGPUConstants.VertexFormat.Uint8x2 */;
457
456
  case 3:
458
457
  case 4:
459
- return normalized ? WebGPUConstants.VertexFormat.Unorm8x4 : WebGPUConstants.VertexFormat.Uint8x4;
458
+ return normalized ? "unorm8x4" /* WebGPUConstants.VertexFormat.Unorm8x4 */ : "uint8x4" /* WebGPUConstants.VertexFormat.Uint8x4 */;
460
459
  }
461
460
  break;
462
461
  case VertexBuffer.SHORT:
463
462
  switch (size) {
464
463
  case 1:
465
464
  case 2:
466
- return normalized ? WebGPUConstants.VertexFormat.Snorm16x2 : WebGPUConstants.VertexFormat.Sint16x2;
465
+ return normalized ? "snorm16x2" /* WebGPUConstants.VertexFormat.Snorm16x2 */ : "sint16x2" /* WebGPUConstants.VertexFormat.Sint16x2 */;
467
466
  case 3:
468
467
  case 4:
469
- return normalized ? WebGPUConstants.VertexFormat.Snorm16x4 : WebGPUConstants.VertexFormat.Sint16x4;
468
+ return normalized ? "snorm16x4" /* WebGPUConstants.VertexFormat.Snorm16x4 */ : "sint16x4" /* WebGPUConstants.VertexFormat.Sint16x4 */;
470
469
  }
471
470
  break;
472
471
  case VertexBuffer.UNSIGNED_SHORT:
473
472
  switch (size) {
474
473
  case 1:
475
474
  case 2:
476
- return normalized ? WebGPUConstants.VertexFormat.Unorm16x2 : WebGPUConstants.VertexFormat.Uint16x2;
475
+ return normalized ? "unorm16x2" /* WebGPUConstants.VertexFormat.Unorm16x2 */ : "uint16x2" /* WebGPUConstants.VertexFormat.Uint16x2 */;
477
476
  case 3:
478
477
  case 4:
479
- return normalized ? WebGPUConstants.VertexFormat.Unorm16x4 : WebGPUConstants.VertexFormat.Uint16x4;
478
+ return normalized ? "unorm16x4" /* WebGPUConstants.VertexFormat.Unorm16x4 */ : "uint16x4" /* WebGPUConstants.VertexFormat.Uint16x4 */;
480
479
  }
481
480
  break;
482
481
  case VertexBuffer.INT:
483
482
  switch (size) {
484
483
  case 1:
485
- return WebGPUConstants.VertexFormat.Sint32;
484
+ return "sint32" /* WebGPUConstants.VertexFormat.Sint32 */;
486
485
  case 2:
487
- return WebGPUConstants.VertexFormat.Sint32x2;
486
+ return "sint32x2" /* WebGPUConstants.VertexFormat.Sint32x2 */;
488
487
  case 3:
489
- return WebGPUConstants.VertexFormat.Sint32x3;
488
+ return "sint32x3" /* WebGPUConstants.VertexFormat.Sint32x3 */;
490
489
  case 4:
491
- return WebGPUConstants.VertexFormat.Sint32x4;
490
+ return "sint32x4" /* WebGPUConstants.VertexFormat.Sint32x4 */;
492
491
  }
493
492
  break;
494
493
  case VertexBuffer.UNSIGNED_INT:
495
494
  switch (size) {
496
495
  case 1:
497
- return WebGPUConstants.VertexFormat.Uint32;
496
+ return "uint32" /* WebGPUConstants.VertexFormat.Uint32 */;
498
497
  case 2:
499
- return WebGPUConstants.VertexFormat.Uint32x2;
498
+ return "uint32x2" /* WebGPUConstants.VertexFormat.Uint32x2 */;
500
499
  case 3:
501
- return WebGPUConstants.VertexFormat.Uint32x3;
500
+ return "uint32x3" /* WebGPUConstants.VertexFormat.Uint32x3 */;
502
501
  case 4:
503
- return WebGPUConstants.VertexFormat.Uint32x4;
502
+ return "uint32x4" /* WebGPUConstants.VertexFormat.Uint32x4 */;
504
503
  }
505
504
  break;
506
505
  case VertexBuffer.FLOAT:
507
506
  switch (size) {
508
507
  case 1:
509
- return WebGPUConstants.VertexFormat.Float32;
508
+ return "float32" /* WebGPUConstants.VertexFormat.Float32 */;
510
509
  case 2:
511
- return WebGPUConstants.VertexFormat.Float32x2;
510
+ return "float32x2" /* WebGPUConstants.VertexFormat.Float32x2 */;
512
511
  case 3:
513
- return WebGPUConstants.VertexFormat.Float32x3;
512
+ return "float32x3" /* WebGPUConstants.VertexFormat.Float32x3 */;
514
513
  case 4:
515
- return WebGPUConstants.VertexFormat.Float32x4;
514
+ return "float32x4" /* WebGPUConstants.VertexFormat.Float32x4 */;
516
515
  }
517
516
  break;
518
517
  }
@@ -668,14 +667,14 @@ export class WebGPUCacheRenderPipeline {
668
667
  const textureInfo = shaderProcessingContext.availableTextures[name];
669
668
  const samplerInfo = textureInfo.autoBindSampler ? shaderProcessingContext.availableSamplers[name + `Sampler`] : null;
670
669
  let sampleType = textureInfo.sampleType;
671
- let samplerType = samplerInfo?.type ?? WebGPUConstants.SamplerBindingType.Filtering;
672
- if (this._textureState & bitVal && sampleType !== WebGPUConstants.TextureSampleType.Depth) {
670
+ let samplerType = samplerInfo?.type ?? "filtering" /* WebGPUConstants.SamplerBindingType.Filtering */;
671
+ if (this._textureState & bitVal && sampleType !== "depth" /* WebGPUConstants.TextureSampleType.Depth */) {
673
672
  // The texture is a 32 bits float texture but the system does not support linear filtering for them OR the texture is a depth texture with "float" filtering:
674
673
  // we set the sampler to "non-filtering" and the texture sample type to "unfilterable-float"
675
674
  if (textureInfo.autoBindSampler) {
676
- samplerType = WebGPUConstants.SamplerBindingType.NonFiltering;
675
+ samplerType = "non-filtering" /* WebGPUConstants.SamplerBindingType.NonFiltering */;
677
676
  }
678
- sampleType = WebGPUConstants.TextureSampleType.UnfilterableFloat;
677
+ sampleType = "unfilterable-float" /* WebGPUConstants.TextureSampleType.UnfilterableFloat */;
679
678
  }
680
679
  entry.texture.sampleType = sampleType;
681
680
  if (samplerInfo) {
@@ -717,7 +716,7 @@ export class WebGPUCacheRenderPipeline {
717
716
  if (!(currentGPUBuffer && currentGPUAttributes && currentGPUBuffer === buffer) || invalidOffsetRange) {
718
717
  const vertexBufferDescriptor = {
719
718
  arrayStride: vertexBuffer.effectiveByteStride,
720
- stepMode: vertexBuffer.getIsInstanced() ? WebGPUConstants.VertexStepMode.Instance : WebGPUConstants.VertexStepMode.Vertex,
719
+ stepMode: vertexBuffer.getIsInstanced() ? "instance" /* WebGPUConstants.VertexStepMode.Instance */ : "vertex" /* WebGPUConstants.VertexStepMode.Vertex */,
721
720
  attributes: [],
722
721
  };
723
722
  descriptors.push(vertexBufferDescriptor);
@@ -792,8 +791,8 @@ export class WebGPUCacheRenderPipeline {
792
791
  passOp: WebGPUCacheRenderPipeline._GetStencilOpFunction(this._stencilEnabled ? this._stencilFrontPassOp : 1 /* KEEP */),
793
792
  };
794
793
  let stripIndexFormat = undefined;
795
- if (topology === WebGPUConstants.PrimitiveTopology.LineStrip || topology === WebGPUConstants.PrimitiveTopology.TriangleStrip) {
796
- stripIndexFormat = !this._indexBuffer || this._indexBuffer.is32Bits ? WebGPUConstants.IndexFormat.Uint32 : WebGPUConstants.IndexFormat.Uint16;
794
+ if (topology === "line-strip" /* WebGPUConstants.PrimitiveTopology.LineStrip */ || topology === "triangle-strip" /* WebGPUConstants.PrimitiveTopology.TriangleStrip */) {
795
+ stripIndexFormat = !this._indexBuffer || this._indexBuffer.is32Bits ? "uint32" /* WebGPUConstants.IndexFormat.Uint32 */ : "uint16" /* WebGPUConstants.IndexFormat.Uint16 */;
797
796
  }
798
797
  const depthStencilFormatHasStencil = this._webgpuDepthStencilFormat ? WebGPUTextureHelper.HasStencilAspect(this._webgpuDepthStencilFormat) : false;
799
798
  return this._device.createRenderPipeline({
@@ -807,8 +806,8 @@ export class WebGPUCacheRenderPipeline {
807
806
  primitive: {
808
807
  topology,
809
808
  stripIndexFormat,
810
- frontFace: this._frontFace === 1 ? WebGPUConstants.FrontFace.CCW : WebGPUConstants.FrontFace.CW,
811
- cullMode: !this._cullEnabled ? WebGPUConstants.CullMode.None : this._cullFace === 2 ? WebGPUConstants.CullMode.Front : WebGPUConstants.CullMode.Back,
809
+ frontFace: this._frontFace === 1 ? "ccw" /* WebGPUConstants.FrontFace.CCW */ : "cw" /* WebGPUConstants.FrontFace.CW */,
810
+ cullMode: !this._cullEnabled ? "none" /* WebGPUConstants.CullMode.None */ : this._cullFace === 2 ? "front" /* WebGPUConstants.CullMode.Front */ : "back" /* WebGPUConstants.CullMode.Back */,
812
811
  },
813
812
  fragment: !webgpuPipelineContext.stages.fragmentStage
814
813
  ? undefined
@@ -826,7 +825,7 @@ export class WebGPUCacheRenderPipeline {
826
825
  ? undefined
827
826
  : {
828
827
  depthWriteEnabled: this._depthWriteEnabled,
829
- depthCompare: this._depthTestEnabled ? WebGPUCacheRenderPipeline._GetCompareFunction(this._depthCompare) : WebGPUConstants.CompareFunction.Always,
828
+ depthCompare: this._depthTestEnabled ? WebGPUCacheRenderPipeline._GetCompareFunction(this._depthCompare) : "always" /* WebGPUConstants.CompareFunction.Always */,
830
829
  format: this._webgpuDepthStencilFormat,
831
830
  stencilFront: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,
832
831
  stencilBack: this._stencilEnabled && depthStencilFormatHasStencil ? stencilFrontBack : undefined,