@babylonjs/core 5.53.0 → 5.53.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 (118) hide show
  1. package/Animations/animationGroup.js +8 -1
  2. package/Animations/animationGroup.js.map +1 -1
  3. package/Engines/Extensions/engine.cubeTexture.js +3 -0
  4. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  5. package/Engines/Extensions/engine.multiRender.js +74 -19
  6. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  7. package/Engines/Extensions/engine.renderTarget.js +2 -5
  8. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  9. package/Engines/WebGL/webGLHardwareTexture.d.ts +3 -1
  10. package/Engines/WebGL/webGLHardwareTexture.js +19 -7
  11. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  12. package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +14 -1
  13. package/Engines/WebGL/webGLRenderTargetWrapper.js +76 -6
  14. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  15. package/Engines/WebGPU/Extensions/engine.multiRender.js +20 -0
  16. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  17. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -1
  18. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  19. package/Engines/WebGPU/webgpuConstants.d.ts +22 -7
  20. package/Engines/WebGPU/webgpuConstants.js +24 -8
  21. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  22. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +0 -3
  23. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +20 -53
  24. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  25. package/Engines/WebGPU/webgpuTextureHelper.d.ts +3 -2
  26. package/Engines/WebGPU/webgpuTextureHelper.js +33 -14
  27. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  28. package/Engines/WebGPU/webgpuTintWASM.d.ts +3 -2
  29. package/Engines/WebGPU/webgpuTintWASM.js +10 -8
  30. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  31. package/Engines/constants.d.ts +12 -0
  32. package/Engines/constants.js +12 -0
  33. package/Engines/constants.js.map +1 -1
  34. package/Engines/engine.d.ts +128 -72
  35. package/Engines/nativeEngine.d.ts +1 -0
  36. package/Engines/nativeEngine.js +16 -5
  37. package/Engines/nativeEngine.js.map +1 -1
  38. package/Engines/renderTargetWrapper.d.ts +28 -4
  39. package/Engines/renderTargetWrapper.js +107 -10
  40. package/Engines/renderTargetWrapper.js.map +1 -1
  41. package/Engines/thinEngine.d.ts +6 -6
  42. package/Engines/thinEngine.js +28 -20
  43. package/Engines/thinEngine.js.map +1 -1
  44. package/Engines/webgpuEngine.d.ts +25 -8
  45. package/Engines/webgpuEngine.js +112 -48
  46. package/Engines/webgpuEngine.js.map +1 -1
  47. package/Materials/PBR/pbrAnisotropicConfiguration.js +0 -1
  48. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  49. package/Materials/PBR/pbrBaseMaterial.js +3 -0
  50. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  51. package/Materials/Textures/internalTexture.d.ts +4 -0
  52. package/Materials/Textures/internalTexture.js.map +1 -1
  53. package/Materials/Textures/multiRenderTarget.d.ts +40 -0
  54. package/Materials/Textures/multiRenderTarget.js +143 -4
  55. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  56. package/Materials/Textures/renderTargetTexture.d.ts +4 -0
  57. package/Materials/Textures/renderTargetTexture.js +10 -2
  58. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  59. package/Materials/Textures/texture.d.ts +4 -2
  60. package/Materials/Textures/texture.js +1 -0
  61. package/Materials/Textures/texture.js.map +1 -1
  62. package/Materials/Textures/textureCreationOptions.d.ts +4 -0
  63. package/Materials/Textures/textureCreationOptions.js.map +1 -1
  64. package/Misc/interfaces/screenshotSize.d.ts +17 -3
  65. package/Misc/interfaces/screenshotSize.js.map +1 -1
  66. package/Misc/screenshotTools.d.ts +2 -2
  67. package/Misc/screenshotTools.js +49 -9
  68. package/Misc/screenshotTools.js.map +1 -1
  69. package/Misc/textureTools.d.ts +1 -1
  70. package/Misc/textureTools.js +4 -2
  71. package/Misc/textureTools.js.map +1 -1
  72. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +1 -0
  73. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  74. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +5 -0
  75. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +7 -0
  76. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
  77. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +0 -23
  78. package/PostProcesses/depthOfFieldMergePostProcess.js +0 -5
  79. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  80. package/PostProcesses/postProcess.js +1 -0
  81. package/PostProcesses/postProcess.js.map +1 -1
  82. package/Probes/reflectionProbe.js +1 -0
  83. package/Probes/reflectionProbe.js.map +1 -1
  84. package/Rendering/depthPeelingRenderer.js +3 -1
  85. package/Rendering/depthPeelingRenderer.js.map +1 -1
  86. package/Rendering/fluidRenderer/fluidRenderer.js +1 -1
  87. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  88. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +2 -1
  89. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  90. package/Rendering/fluidRenderer/fluidRenderingTextures.js +2 -0
  91. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  92. package/Shaders/default.fragment.js +1 -1
  93. package/Shaders/default.fragment.js.map +1 -1
  94. package/Shaders/depthOfFieldMerge.fragment.js +10 -5
  95. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  96. package/Shaders/fluidRenderingRender.fragment.js +3 -3
  97. package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
  98. package/Shaders/motionBlur.fragment.js +8 -2
  99. package/Shaders/motionBlur.fragment.js.map +1 -1
  100. package/Shaders/screenSpaceReflection2.fragment.js +11 -4
  101. package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
  102. package/Shaders/screenSpaceReflection2Blur.fragment.js +6 -1
  103. package/Shaders/screenSpaceReflection2Blur.fragment.js.map +1 -1
  104. package/Shaders/ssao2.fragment.js +1 -0
  105. package/Shaders/ssao2.fragment.js.map +1 -1
  106. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +9 -9
  107. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  108. package/ShadersWGSL/ShadersInclude/bonesVertex.js +16 -16
  109. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  110. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +6 -6
  111. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
  112. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +6 -6
  113. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
  114. package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
  115. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  116. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +8 -8
  117. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  118. package/package.json +1 -1
@@ -1109,6 +1109,7 @@ interface WebGLUniformLocation {
1109
1109
  _currentState: any;
1110
1110
  }
1111
1111
 
1112
+ /* eslint-disable babylonjs/available */
1112
1113
  /* eslint-disable @typescript-eslint/naming-convention */
1113
1114
  interface GPUObjectBase {
1114
1115
  label: string | undefined;
@@ -1119,37 +1120,50 @@ interface GPUObjectDescriptorBase {
1119
1120
  }
1120
1121
 
1121
1122
  interface GPUSupportedLimits {
1122
- readonly maxTextureDimension1D: GPUSize32;
1123
- readonly maxTextureDimension2D: GPUSize32;
1124
- readonly maxTextureDimension3D: GPUSize32;
1125
- readonly maxTextureArrayLayers: GPUSize32;
1126
- readonly maxBindGroups: GPUSize32;
1127
- readonly maxDynamicUniformBuffersPerPipelineLayout: GPUSize32;
1128
- readonly maxDynamicStorageBuffersPerPipelineLayout: GPUSize32;
1129
- readonly maxSampledTexturesPerShaderStage: GPUSize32;
1130
- readonly maxSamplersPerShaderStage: GPUSize32;
1131
- readonly maxStorageBuffersPerShaderStage: GPUSize32;
1132
- readonly maxStorageTexturesPerShaderStage: GPUSize32;
1133
- readonly maxUniformBuffersPerShaderStage: GPUSize32;
1134
- readonly maxUniformBufferBindingSize: GPUSize64;
1135
- readonly maxStorageBufferBindingSize: GPUSize64;
1136
- readonly minUniformBufferOffsetAlignment: GPUSize32;
1137
- readonly minStorageBufferOffsetAlignment: GPUSize32;
1138
- readonly maxVertexBuffers: GPUSize32;
1139
- readonly maxVertexAttributes: GPUSize32;
1140
- readonly maxVertexBufferArrayStride: GPUSize32;
1141
- readonly maxInterStageShaderComponents: GPUSize32;
1142
- readonly maxComputeWorkgroupStorageSize: GPUSize32;
1143
- readonly maxComputeInvocationsPerWorkgroup: GPUSize32;
1144
- readonly maxComputeWorkgroupSizeX: GPUSize32;
1145
- readonly maxComputeWorkgroupSizeY: GPUSize32;
1146
- readonly maxComputeWorkgroupSizeZ: GPUSize32;
1147
- readonly maxComputeWorkgroupsPerDimension: GPUSize32;
1123
+ [name: string]: number;
1124
+
1125
+ readonly maxTextureDimension1D: number;
1126
+ readonly maxTextureDimension2D: number;
1127
+ readonly maxTextureDimension3D: number;
1128
+ readonly maxTextureArrayLayers: number;
1129
+ readonly maxBindGroups: number;
1130
+ readonly maxBindingsPerBindGroup: number;
1131
+ readonly maxDynamicUniformBuffersPerPipelineLayout: number;
1132
+ readonly maxDynamicStorageBuffersPerPipelineLayout: number;
1133
+ readonly maxSampledTexturesPerShaderStage: number;
1134
+ readonly maxSamplersPerShaderStage: number;
1135
+ readonly maxStorageBuffersPerShaderStage: number;
1136
+ readonly maxStorageTexturesPerShaderStage: number;
1137
+ readonly maxUniformBuffersPerShaderStage: number;
1138
+ readonly maxFragmentCombinedOutputResources: number;
1139
+ readonly maxUniformBufferBindingSize: number;
1140
+ readonly maxStorageBufferBindingSize: number;
1141
+ readonly minUniformBufferOffsetAlignment: number;
1142
+ readonly minStorageBufferOffsetAlignment: number;
1143
+ readonly maxVertexBuffers: number;
1144
+ readonly maxBufferSize: number;
1145
+ readonly maxVertexAttributes: number;
1146
+ readonly maxVertexBufferArrayStride: number;
1147
+ readonly maxInterStageShaderComponents: number;
1148
+ readonly maxInterStageShaderVariables: number;
1149
+ readonly maxColorAttachments: number;
1150
+ readonly maxColorAttachmentBytesPerSample: number;
1151
+ readonly maxComputeWorkgroupStorageSize: number;
1152
+ readonly maxComputeInvocationsPerWorkgroup: number;
1153
+ readonly maxComputeWorkgroupSizeX: number;
1154
+ readonly maxComputeWorkgroupSizeY: number;
1155
+ readonly maxComputeWorkgroupSizeZ: number;
1156
+ readonly maxComputeWorkgroupsPerDimension: number;
1148
1157
  }
1149
1158
 
1150
1159
  type GPUSupportedFeatures = ReadonlySet<string>;
1151
1160
 
1152
- type GPUPredefinedColorSpace = "srgb";
1161
+ interface GPUAdapterInfo {
1162
+ readonly vendor: string;
1163
+ readonly architecture: string;
1164
+ readonly device: string;
1165
+ readonly description: string;
1166
+ }
1153
1167
 
1154
1168
  interface Navigator {
1155
1169
  readonly gpu: GPU | undefined;
@@ -1160,7 +1174,7 @@ interface WorkerNavigator {
1160
1174
  }
1161
1175
 
1162
1176
  class GPU {
1163
- requestAdapter(options?: GPURequestAdapterOptions): Promise<GPUAdapter | null>;
1177
+ requestAdapter(options?: GPURequestAdapterOptions): Promise<GPUAdapter | undefined>;
1164
1178
  getPreferredCanvasFormat(): GPUTextureFormat;
1165
1179
  }
1166
1180
 
@@ -1179,6 +1193,7 @@ class GPUAdapter {
1179
1193
  readonly isFallbackAdapter: boolean;
1180
1194
 
1181
1195
  requestDevice(descriptor?: GPUDeviceDescriptor): Promise<GPUDevice>;
1196
+ requestAdapterInfo(unmaskHints?: string[]): Promise<GPUAdapterInfo>;
1182
1197
  }
1183
1198
 
1184
1199
  interface GPUDeviceDescriptor extends GPUObjectDescriptorBase {
@@ -1189,7 +1204,6 @@ interface GPUDeviceDescriptor extends GPUObjectDescriptorBase {
1189
1204
 
1190
1205
  type GPUFeatureName =
1191
1206
  | "depth-clip-control"
1192
- | "depth24unorm-stencil8"
1193
1207
  | "depth32float-stencil8"
1194
1208
  | "texture-compression-bc"
1195
1209
  | "texture-compression-etc2"
@@ -1197,7 +1211,9 @@ type GPUFeatureName =
1197
1211
  | "timestamp-query"
1198
1212
  | "indirect-first-instance"
1199
1213
  | "shader-f16"
1200
- | "bgra8unorm-storage";
1214
+ | "rg11b10ufloat-renderable"
1215
+ | "bgra8unorm-storage"
1216
+ | "float32-filterable";
1201
1217
 
1202
1218
  class GPUDevice extends EventTarget implements GPUObjectBase {
1203
1219
  label: string | undefined;
@@ -1239,6 +1255,10 @@ class GPUDevice extends EventTarget implements GPUObjectBase {
1239
1255
  class GPUBuffer implements GPUObjectBase {
1240
1256
  label: string | undefined;
1241
1257
 
1258
+ readonly size: GPUSize64;
1259
+ readonly usage: GPUBufferUsageFlags;
1260
+ readonly mapState: GPUBufferMapState;
1261
+
1242
1262
  mapAsync(mode: GPUMapModeFlags, offset?: GPUSize64 /*default=0*/, size?: GPUSize64): Promise<void>;
1243
1263
  getMappedRange(offset?: GPUSize64 /*default=0*/, size?: GPUSize64): ArrayBuffer;
1244
1264
  unmap(): void;
@@ -1246,6 +1266,8 @@ class GPUBuffer implements GPUObjectBase {
1246
1266
  destroy(): void;
1247
1267
  }
1248
1268
 
1269
+ type GPUBufferMapState = "unmapped" | "pending" | "mapped";
1270
+
1249
1271
  interface GPUBufferDescriptor extends GPUObjectDescriptorBase {
1250
1272
  size: GPUSize64;
1251
1273
  usage: GPUBufferUsageFlags;
@@ -1261,6 +1283,15 @@ class GPUTexture implements GPUObjectBase {
1261
1283
 
1262
1284
  createView(descriptor?: GPUTextureViewDescriptor): GPUTextureView;
1263
1285
  destroy(): void;
1286
+
1287
+ readonly width: GPUIntegerCoordinate;
1288
+ readonly height: GPUIntegerCoordinate;
1289
+ readonly depthOrArrayLayers: GPUIntegerCoordinate;
1290
+ readonly mipLevelCount: GPUIntegerCoordinate;
1291
+ readonly sampleCount: GPUSize32;
1292
+ readonly dimension: GPUTextureDimension;
1293
+ readonly format: GPUTextureFormat;
1294
+ readonly usage: GPUTextureUsageFlags;
1264
1295
  }
1265
1296
 
1266
1297
  interface GPUTextureDescriptor extends GPUObjectDescriptorBase {
@@ -1423,7 +1454,7 @@ class GPUExternalTexture implements GPUObjectBase {
1423
1454
 
1424
1455
  interface GPUExternalTextureDescriptor extends GPUObjectDescriptorBase {
1425
1456
  source: HTMLVideoElement;
1426
- colorSpace?: GPUPredefinedColorSpace /* default="srgb" */;
1457
+ colorSpace?: PredefinedColorSpace /* default="srgb" */;
1427
1458
  }
1428
1459
 
1429
1460
  class GPUSampler implements GPUObjectBase {
@@ -1436,7 +1467,7 @@ interface GPUSamplerDescriptor extends GPUObjectDescriptorBase {
1436
1467
  addressModeW?: GPUAddressMode /* default="clamp-to-edge" */;
1437
1468
  magFilter?: GPUFilterMode /* default="nearest" */;
1438
1469
  minFilter?: GPUFilterMode /* default="nearest" */;
1439
- mipmapFilter?: GPUFilterMode /* default="nearest" */;
1470
+ mipmapFilter?: GPUMipmapFilterMode /* default="nearest" */;
1440
1471
  lodMinClamp?: number /* default=0 */;
1441
1472
  lodMaxClamp?: number /* default=32 */;
1442
1473
  compare?: GPUCompareFunction;
@@ -1447,6 +1478,8 @@ type GPUAddressMode = "clamp-to-edge" | "repeat" | "mirror-repeat";
1447
1478
 
1448
1479
  type GPUFilterMode = "nearest" | "linear";
1449
1480
 
1481
+ type GPUMipmapFilterMode = "nearest" | "linear";
1482
+
1450
1483
  type GPUCompareFunction = "never" | "less" | "equal" | "less-equal" | "greater" | "not-equal" | "greater-equal" | "always";
1451
1484
 
1452
1485
  class GPUBindGroupLayout implements GPUObjectBase {
@@ -1535,7 +1568,7 @@ interface GPUPipelineLayoutDescriptor extends GPUObjectDescriptorBase {
1535
1568
  class GPUShaderModule implements GPUObjectBase {
1536
1569
  label: string | undefined;
1537
1570
 
1538
- compilationInfo(): Promise<GPUCompilationInfo>;
1571
+ getCompilationInfo(): Promise<GPUCompilationInfo>;
1539
1572
  }
1540
1573
 
1541
1574
  interface GPUShaderModuleDescriptor extends GPUObjectDescriptorBase {
@@ -1563,6 +1596,17 @@ interface GPUCompilationInfo {
1563
1596
  readonly messages: readonly GPUCompilationMessage[];
1564
1597
  }
1565
1598
 
1599
+ class GPUPipelineError extends DOMException {
1600
+ constructor(message: DOMString | undefined, options: GPUPipelineErrorInit);
1601
+ readonly reason: GPUPipelineErrorReason;
1602
+ }
1603
+
1604
+ interface GPUPipelineErrorInit {
1605
+ reason: GPUPipelineErrorReason;
1606
+ }
1607
+
1608
+ type GPUPipelineErrorReason = "validation" | "internal";
1609
+
1566
1610
  type GPUAutoLayoutMode = "auto";
1567
1611
 
1568
1612
  interface GPUPipelineDescriptorBase extends GPUObjectDescriptorBase {
@@ -1746,6 +1790,34 @@ interface GPUVertexAttribute {
1746
1790
  shaderLocation: GPUIndex32;
1747
1791
  }
1748
1792
 
1793
+ interface GPUImageDataLayout {
1794
+ offset?: GPUSize64 /* default=0 */;
1795
+ bytesPerRow: GPUSize32;
1796
+ rowsPerImage?: GPUSize32;
1797
+ }
1798
+
1799
+ interface GPUImageCopyBuffer extends GPUImageDataLayout {
1800
+ buffer: GPUBuffer;
1801
+ }
1802
+
1803
+ interface GPUImageCopyTexture {
1804
+ texture: GPUTexture;
1805
+ mipLevel?: GPUIntegerCoordinate /* default=0 */;
1806
+ origin?: GPUOrigin3D /* default={} */;
1807
+ aspect?: GPUTextureAspect /* default="all" */;
1808
+ }
1809
+
1810
+ interface GPUImageCopyTextureTagged extends GPUImageCopyTexture {
1811
+ colorSpace?: PredefinedColorSpace /* default="srgb" */;
1812
+ premultipliedAlpha?: boolean /* default=false */;
1813
+ }
1814
+
1815
+ interface GPUImageCopyExternalImage {
1816
+ source: ImageBitmap | HTMLVideoElement | HTMLCanvasElement | OffscreenCanvas;
1817
+ origin?: GPUOrigin2D /* default={} */;
1818
+ flipY?: boolean /* default=false */;
1819
+ }
1820
+
1749
1821
  class GPUCommandBuffer implements GPUObjectBase {
1750
1822
  label: string | undefined;
1751
1823
  }
@@ -1766,46 +1838,18 @@ class GPUCommandEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugComm
1766
1838
  copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
1767
1839
  clearBuffer(buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
1768
1840
 
1769
- pushDebugGroup(groupLabel: string): void;
1770
- popDebugGroup(): void;
1771
- insertDebugMarker(markerLabel: string): void;
1772
-
1773
1841
  writeTimestamp(querySet: GPUQuerySet, queryIndex: GPUSize32): void;
1774
1842
 
1775
1843
  resolveQuerySet(querySet: GPUQuerySet, firstQuery: GPUSize32, queryCount: GPUSize32, destination: GPUBuffer, destinationOffset: GPUSize64): void;
1776
1844
 
1777
1845
  finish(descriptor?: GPUCommandBufferDescriptor): GPUCommandBuffer;
1778
- }
1779
1846
 
1780
- interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {}
1781
-
1782
- interface GPUImageDataLayout {
1783
- offset?: GPUSize64 /* default=0 */;
1784
- bytesPerRow: GPUSize32;
1785
- rowsPerImage?: GPUSize32;
1786
- }
1787
-
1788
- interface GPUImageCopyBuffer extends GPUImageDataLayout {
1789
- buffer: GPUBuffer;
1790
- }
1791
-
1792
- interface GPUImageCopyTexture {
1793
- texture: GPUTexture;
1794
- mipLevel?: GPUIntegerCoordinate /* default=0 */;
1795
- origin?: GPUOrigin3D /* default={} */;
1796
- aspect?: GPUTextureAspect /* default="all" */;
1797
- }
1798
-
1799
- interface GPUImageCopyTextureTagged extends GPUImageCopyTexture {
1800
- colorSpace?: GPUPredefinedColorSpace /* default="srgb" */;
1801
- premultipliedAlpha?: boolean /* default=false */;
1847
+ pushDebugGroup(groupLabel: string): void;
1848
+ popDebugGroup(): void;
1849
+ insertDebugMarker(markerLabel: string): void;
1802
1850
  }
1803
1851
 
1804
- interface GPUImageCopyExternalImage {
1805
- source: ImageBitmap | HTMLCanvasElement | OffscreenCanvas;
1806
- origin?: GPUOrigin2D /* default={} */;
1807
- flipY?: boolean /* default=false */;
1808
- }
1852
+ interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {}
1809
1853
 
1810
1854
  interface GPUBindingCommandsMixin {
1811
1855
  setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
@@ -1905,6 +1949,7 @@ interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
1905
1949
  depthStencilAttachment?: GPURenderPassDepthStencilAttachment;
1906
1950
  occlusionQuerySet?: GPUQuerySet;
1907
1951
  timestampWrites?: GPURenderPassTimestampWrites /* default=[] */;
1952
+ maxDrawCount?: GPUSize64 /* default=50000000 */;
1908
1953
  }
1909
1954
 
1910
1955
  interface GPURenderPassColorAttachment {
@@ -1944,7 +1989,7 @@ interface GPURenderCommandsMixin {
1944
1989
  setPipeline(pipeline: GPURenderPipeline): void;
1945
1990
 
1946
1991
  setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
1947
- setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
1992
+ setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
1948
1993
 
1949
1994
  draw(vertexCount: GPUSize32, instanceCount?: GPUSize32 /* default=1 */, firstVertex?: GPUSize32 /* default=0 */, firstInstance?: GPUSize32 /* default=0 */): void;
1950
1995
  drawIndexed(
@@ -2020,6 +2065,9 @@ class GPUQuerySet implements GPUObjectBase {
2020
2065
  label: string | undefined;
2021
2066
 
2022
2067
  destroy(): void;
2068
+
2069
+ readonly type: GPUQueryType;
2070
+ readonly count: GPUSize32;
2023
2071
  }
2024
2072
 
2025
2073
  interface GPUQuerySetDescriptor extends GPUObjectDescriptorBase {
@@ -2045,33 +2093,38 @@ interface GPUCanvasConfiguration extends GPUObjectDescriptorBase {
2045
2093
  format: GPUTextureFormat;
2046
2094
  usage?: GPUTextureUsageFlags /* default=0x10 - GPUTextureUsage.RENDER_ATTACHMENT */;
2047
2095
  viewFormats?: GPUTextureFormat[] /* default=[] */;
2048
- colorSpace?: GPUPredefinedColorSpace /* default="srgb" */;
2096
+ colorSpace?: PredefinedColorSpace /* default="srgb" */;
2049
2097
  alphaMode?: GPUCanvasAlphaMode /* default="opaque" */;
2050
2098
  }
2051
2099
 
2052
- type GPUDeviceLostReason = "destroyed";
2100
+ type GPUDeviceLostReason = "unknown" | "destroyed";
2053
2101
 
2054
2102
  class GPUDeviceLostInfo {
2055
2103
  readonly reason?: GPUDeviceLostReason;
2056
2104
  readonly message: string;
2057
2105
  }
2058
2106
 
2059
- type GPUErrorFilter = "out-of-memory" | "validation";
2060
-
2061
2107
  class GPUError {
2062
2108
  readonly message: string;
2063
2109
  }
2064
2110
 
2111
+ class GPUValidationError extends GPUError {
2112
+ constructor(message: string);
2113
+ readonly message: string;
2114
+ }
2115
+
2065
2116
  class GPUOutOfMemoryError extends GPUError {
2066
- constructor();
2117
+ constructor(message: string);
2067
2118
  readonly message: string;
2068
2119
  }
2069
2120
 
2070
- class GPUValidationError extends GPUError {
2121
+ class GPUInternalError extends GPUError {
2071
2122
  constructor(message: string);
2072
2123
  readonly message: string;
2073
2124
  }
2074
2125
 
2126
+ type GPUErrorFilter = "validation" | "out-of-memory" | "internal";
2127
+
2075
2128
  class GPUUncapturedErrorEvent extends Event {
2076
2129
  constructor(type: string, gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit);
2077
2130
  readonly error: GPUError;
@@ -2085,12 +2138,15 @@ type GPUBufferDynamicOffset = number; /* unsigned long */
2085
2138
  type GPUStencilValue = number; /* unsigned long */
2086
2139
  type GPUSampleMask = number; /* unsigned long */
2087
2140
  type GPUDepthBias = number; /* long */
2141
+
2088
2142
  type GPUSize64 = number; /* unsigned long long */
2089
2143
  type GPUIntegerCoordinate = number; /* unsigned long */
2090
2144
  type GPUIndex32 = number; /* unsigned long */
2091
2145
  type GPUSize32 = number; /* unsigned long */
2092
2146
  type GPUSignedOffset32 = number; /* long */
2093
2147
 
2148
+ type GPUFlagsConstant = number; /* unsigned long */
2149
+
2094
2150
  interface GPUColorDict {
2095
2151
  r: number;
2096
2152
  g: number;
@@ -440,6 +440,7 @@ export declare class NativeEngine extends Engine {
440
440
  width: number;
441
441
  height: number;
442
442
  }, options: boolean | RenderTargetCreationOptions): RenderTargetWrapper;
443
+ updateRenderTargetTextureSampleCount(rtWrapper: RenderTargetWrapper, samples: number): number;
443
444
  updateTextureSamplingMode(samplingMode: number, texture: InternalTexture): void;
444
445
  bindFramebuffer(texture: RenderTargetWrapper, faceIndex?: number, requiredWidth?: number, requiredHeight?: number, forceFullscreenViewport?: boolean): void;
445
446
  unBindFramebuffer(texture: RenderTargetWrapper, disableGenerateMipMaps?: boolean, onBeforeUnbind?: () => void): void;
@@ -1638,6 +1638,7 @@ export class NativeEngine extends Engine {
1638
1638
  let format = 5;
1639
1639
  let useSRGBBuffer = false;
1640
1640
  let samples = 1;
1641
+ let label;
1641
1642
  if (options !== undefined && typeof options === "object") {
1642
1643
  generateMipMaps = !!options.generateMipMaps;
1643
1644
  type = options.type === undefined ? 0 : options.type;
@@ -1645,6 +1646,7 @@ export class NativeEngine extends Engine {
1645
1646
  format = options.format === undefined ? 5 : options.format;
1646
1647
  useSRGBBuffer = options.useSRGBBuffer === undefined ? false : options.useSRGBBuffer;
1647
1648
  samples = (_a = options.samples) !== null && _a !== void 0 ? _a : 1;
1649
+ label = options.label;
1648
1650
  }
1649
1651
  else {
1650
1652
  generateMipMaps = !!options;
@@ -1686,23 +1688,24 @@ export class NativeEngine extends Engine {
1686
1688
  texture.samplingMode = samplingMode;
1687
1689
  texture.type = type;
1688
1690
  texture.format = format;
1691
+ texture.label = label;
1689
1692
  this._internalTexturesCache.push(texture);
1690
1693
  return texture;
1691
1694
  }
1692
1695
  createRenderTargetTexture(size, options) {
1693
- var _a;
1696
+ var _a, _b;
1694
1697
  const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);
1695
1698
  let generateDepthBuffer = true;
1696
1699
  let generateStencilBuffer = false;
1697
1700
  let noColorAttachment = false;
1698
1701
  let colorAttachment = undefined;
1699
- //let samples = 1;
1702
+ let samples = 1;
1700
1703
  if (options !== undefined && typeof options === "object") {
1701
1704
  generateDepthBuffer = (_a = options.generateDepthBuffer) !== null && _a !== void 0 ? _a : true;
1702
1705
  generateStencilBuffer = !!options.generateStencilBuffer;
1703
1706
  noColorAttachment = !!options.noColorAttachment;
1704
1707
  colorAttachment = options.colorAttachment;
1705
- //samples = options.samples ?? 1;
1708
+ samples = (_b = options.samples) !== null && _b !== void 0 ? _b : 1;
1706
1709
  }
1707
1710
  const texture = colorAttachment || (noColorAttachment ? null : this._createInternalTexture(size, options, true, InternalTextureSource.RenderTarget));
1708
1711
  const width = size.width || size;
@@ -1712,10 +1715,18 @@ export class NativeEngine extends Engine {
1712
1715
  rtWrapper._generateDepthBuffer = generateDepthBuffer;
1713
1716
  rtWrapper._generateStencilBuffer = generateStencilBuffer;
1714
1717
  rtWrapper.setTextures(texture);
1715
- // TODO: handle this in native
1716
- //this.updateRenderTargetTextureSampleCount(rtWrapper, samples);
1718
+ this.updateRenderTargetTextureSampleCount(rtWrapper, samples);
1717
1719
  return rtWrapper;
1718
1720
  }
1721
+ // This function is being added for the sole purpose of overriding the ThinEngine version. The reason
1722
+ // for this is that the ThinEngine version of this function uses a WebGL2RenderingContext, which is not
1723
+ // available in Babylon Native. The return value is just a hard-coded value that is not used anywhere
1724
+ // in Babylon Native's code. This is effectively a hack/workaround so that Babylon Native doesn't crash
1725
+ // This function should be updated once the maxMSAASamples is updated as well.
1726
+ updateRenderTargetTextureSampleCount(rtWrapper, samples) {
1727
+ // TODO: Implement this function once the maxMSAASamples is updated.
1728
+ return 1;
1729
+ }
1719
1730
  updateTextureSamplingMode(samplingMode, texture) {
1720
1731
  if (texture._hardwareTexture) {
1721
1732
  const filter = this._getNativeSamplingMode(samplingMode);