@babylonjs/core 8.21.1 → 8.22.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 (46) hide show
  1. package/Engines/Extensions/engine.prefilteredCubeTexture.js +0 -1
  2. package/Engines/Extensions/engine.prefilteredCubeTexture.js.map +1 -1
  3. package/Engines/WebGPU/webgpuConstants.d.ts +20 -6
  4. package/Engines/WebGPU/webgpuConstants.js +18 -4
  5. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  6. package/Engines/WebGPU/webgpuTextureHelper.js +4 -4
  7. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  8. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  9. package/Engines/abstractEngine.js +2 -2
  10. package/Engines/abstractEngine.js.map +1 -1
  11. package/Engines/engine.d.ts +55 -36
  12. package/Engines/webgpuEngine.js +5 -2
  13. package/Engines/webgpuEngine.js.map +1 -1
  14. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js +1 -1
  15. package/Materials/GreasedLine/greasedLinePluginMaterialShadersGLSL.js.map +1 -1
  16. package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js +1 -1
  17. package/Materials/GreasedLine/greasedLinePluginMaterialShadersWGSL.js.map +1 -1
  18. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +11 -7
  19. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  20. package/Materials/Node/Blocks/Dual/textureBlock.js +11 -7
  21. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  22. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.d.ts +51 -0
  23. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.js +268 -0
  24. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.js.map +1 -0
  25. package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
  26. package/Materials/Node/Blocks/Fragment/index.js +1 -0
  27. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  28. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +15 -3
  29. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  30. package/Materials/Node/Blocks/Input/inputBlock.js +8 -1
  31. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  32. package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
  33. package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
  34. package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
  35. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +6 -0
  36. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +8 -0
  37. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  38. package/Materials/Textures/texture.js +2 -1
  39. package/Materials/Textures/texture.js.map +1 -1
  40. package/Meshes/abstractMesh.js +0 -1
  41. package/Meshes/abstractMesh.js.map +1 -1
  42. package/Shaders/greasedLine.vertex.js +1 -1
  43. package/Shaders/greasedLine.vertex.js.map +1 -1
  44. package/ShadersWGSL/gaussianSplatting.vertex.js +1 -1
  45. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  46. package/package.json +1 -1
@@ -1843,6 +1843,9 @@ interface GPUAdapterInfo {
1843
1843
  readonly architecture: string;
1844
1844
  readonly device: string;
1845
1845
  readonly description: string;
1846
+ readonly subgroupMinSize: number;
1847
+ readonly subgroupMaxSize: number;
1848
+ readonly isFallbackAdapter: boolean;
1846
1849
  }
1847
1850
 
1848
1851
  interface Navigator {
@@ -1861,9 +1864,10 @@ class GPU {
1861
1864
  }
1862
1865
 
1863
1866
  interface GPURequestAdapterOptions {
1864
- featureLevel?: string;
1867
+ featureLevel?: string /* default="core" */;
1865
1868
  powerPreference?: GPUPowerPreference;
1866
1869
  forceFallbackAdapter?: boolean /* default=false */;
1870
+ xrCompatible?: boolean /* default=false */;
1867
1871
  }
1868
1872
 
1869
1873
  type GPUPowerPreference = "low-power" | "high-performance";
@@ -1874,7 +1878,6 @@ class GPUAdapter {
1874
1878
  readonly features: GPUSupportedFeatures;
1875
1879
  readonly limits: GPUSupportedLimits;
1876
1880
  readonly info: GPUAdapterInfo;
1877
- readonly isFallbackAdapter: boolean;
1878
1881
 
1879
1882
  requestDevice(descriptor?: GPUDeviceDescriptor): Promise<GPUDevice>;
1880
1883
  }
@@ -1886,6 +1889,7 @@ interface GPUDeviceDescriptor extends GPUObjectDescriptorBase {
1886
1889
  }
1887
1890
 
1888
1891
  type GPUFeatureName =
1892
+ | "core-features-and-limits"
1889
1893
  | "depth-clip-control"
1890
1894
  | "depth32float-stencil8"
1891
1895
  | "texture-compression-bc"
@@ -1901,13 +1905,17 @@ type GPUFeatureName =
1901
1905
  | "float32-filterable"
1902
1906
  | "float32-blendable"
1903
1907
  | "clip-distances"
1904
- | "dual-source-blending";
1908
+ | "dual-source-blending"
1909
+ | "subgroups"
1910
+ | "texture-formats-tier1"
1911
+ | "texture-formats-tier2";
1905
1912
 
1906
1913
  class GPUDevice extends EventTarget implements GPUObjectBase {
1907
1914
  label: string | undefined;
1908
1915
 
1909
1916
  readonly features: GPUSupportedFeatures;
1910
1917
  readonly limits: GPUSupportedLimits;
1918
+ readonly adapterInfo: GPUAdapterInfo;
1911
1919
 
1912
1920
  readonly queue: GPUQueue;
1913
1921
 
@@ -2027,11 +2035,7 @@ type GPUTextureFormat =
2027
2035
 
2028
2036
  // 16-bit formats
2029
2037
  | "r16unorm"
2030
- | "rg16unorm"
2031
- | "rgba16unorm"
2032
2038
  | "r16snorm"
2033
- | "rg16snorm"
2034
- | "rgba16snorm"
2035
2039
  | "r16uint"
2036
2040
  | "r16sint"
2037
2041
  | "r16float"
@@ -2044,6 +2048,8 @@ type GPUTextureFormat =
2044
2048
  | "r32uint"
2045
2049
  | "r32sint"
2046
2050
  | "r32float"
2051
+ | "rg16unorm"
2052
+ | "rg16snorm"
2047
2053
  | "rg16uint"
2048
2054
  | "rg16sint"
2049
2055
  | "rg16float"
@@ -2064,6 +2070,8 @@ type GPUTextureFormat =
2064
2070
  | "rg32uint"
2065
2071
  | "rg32sint"
2066
2072
  | "rg32float"
2073
+ | "rgba16unorm"
2074
+ | "rgba16snorm"
2067
2075
  | "rgba16uint"
2068
2076
  | "rgba16sint"
2069
2077
  | "rgba16float"
@@ -2240,7 +2248,7 @@ interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
2240
2248
  entries: GPUBindGroupEntry[];
2241
2249
  }
2242
2250
 
2243
- type GPUBindingResource = GPUSampler | GPUTextureView | GPUBufferBinding | GPUExternalTexture;
2251
+ type GPUBindingResource = GPUSampler | GPUTexture | GPUTextureView | GPUBuffer | GPUBufferBinding | GPUExternalTexture;
2244
2252
 
2245
2253
  interface GPUBindGroupEntry {
2246
2254
  binding: GPUIndex32;
@@ -2441,22 +2449,31 @@ type GPUStencilOperation = "keep" | "zero" | "replace" | "invert" | "increment-c
2441
2449
  type GPUIndexFormat = "uint16" | "uint32";
2442
2450
 
2443
2451
  type GPUVertexFormat =
2452
+ | "uint8"
2444
2453
  | "uint8x2"
2445
2454
  | "uint8x4"
2455
+ | "sint8"
2446
2456
  | "sint8x2"
2447
2457
  | "sint8x4"
2458
+ | "unorm8"
2448
2459
  | "unorm8x2"
2449
2460
  | "unorm8x4"
2461
+ | "snorm8"
2450
2462
  | "snorm8x2"
2451
2463
  | "snorm8x4"
2464
+ | "uint16"
2452
2465
  | "uint16x2"
2453
2466
  | "uint16x4"
2467
+ | "sint16"
2454
2468
  | "sint16x2"
2455
2469
  | "sint16x4"
2470
+ | "unorm16"
2456
2471
  | "unorm16x2"
2457
2472
  | "unorm16x4"
2473
+ | "snorm16"
2458
2474
  | "snorm16x2"
2459
2475
  | "snorm16x4"
2476
+ | "float16"
2460
2477
  | "float16x2"
2461
2478
  | "float16x4"
2462
2479
  | "float32"
@@ -2471,7 +2488,8 @@ type GPUVertexFormat =
2471
2488
  | "sint32x2"
2472
2489
  | "sint32x3"
2473
2490
  | "sint32x4"
2474
- | "unorm10-10-10-2";
2491
+ | "unorm10-10-10-2"
2492
+ | "unorm8x4-bgra";
2475
2493
 
2476
2494
  type GPUVertexStepMode = "vertex" | "instance";
2477
2495
 
@@ -2491,32 +2509,32 @@ interface GPUVertexAttribute {
2491
2509
  shaderLocation: GPUIndex32;
2492
2510
  }
2493
2511
 
2494
- interface GPUImageDataLayout {
2512
+ interface GPUTexelCopyBufferLayout {
2495
2513
  offset?: GPUSize64 /* default=0 */;
2496
2514
  bytesPerRow: GPUSize32;
2497
2515
  rowsPerImage?: GPUSize32;
2498
2516
  }
2499
2517
 
2500
- interface GPUImageCopyBuffer extends GPUImageDataLayout {
2518
+ interface GPUTexelCopyBufferInfo extends GPUTexelCopyBufferLayout {
2501
2519
  buffer: GPUBuffer;
2502
2520
  }
2503
2521
 
2504
- interface GPUImageCopyTexture {
2522
+ interface GPUTexelCopyTextureInfo {
2505
2523
  texture: GPUTexture;
2506
2524
  mipLevel?: GPUIntegerCoordinate /* default=0 */;
2507
2525
  origin?: GPUOrigin3D /* default={} */;
2508
2526
  aspect?: GPUTextureAspect /* default="all" */;
2509
2527
  }
2510
2528
 
2511
- interface GPUImageCopyTextureTagged extends GPUImageCopyTexture {
2529
+ interface GPUCopyExternalImageDestInfo extends GPUTexelCopyTextureInfo {
2512
2530
  colorSpace?: PredefinedColorSpace /* default="srgb" */;
2513
2531
  premultipliedAlpha?: boolean /* default=false */;
2514
2532
  }
2515
2533
 
2516
- type GPUImageCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;
2534
+ type GPUCopyExternalImageSource = ImageBitmap | ImageData | HTMLImageElement | HTMLVideoElement | VideoFrame | HTMLCanvasElement | OffscreenCanvas;
2517
2535
 
2518
- interface GPUImageCopyExternalImage {
2519
- source: GPUImageCopyExternalImageSource;
2536
+ interface GPUCopyExternalImageSourceInfo {
2537
+ source: GPUCopyExternalImageSource;
2520
2538
  origin?: GPUOrigin2D /* default={} */;
2521
2539
  flipY?: boolean /* default=false */;
2522
2540
  }
@@ -2535,10 +2553,11 @@ class GPUCommandEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugComm
2535
2553
  beginRenderPass(descriptor: GPURenderPassDescriptor): GPURenderPassEncoder;
2536
2554
  beginComputePass(descriptor?: GPUComputePassDescriptor): GPUComputePassEncoder;
2537
2555
 
2556
+ copyBufferToBuffer(source: GPUBuffer, destination: GPUBuffer, size: GPUSize64): void;
2538
2557
  copyBufferToBuffer(source: GPUBuffer, sourceOffset: GPUSize64, destination: GPUBuffer, destinationOffset: GPUSize64, size: GPUSize64): void;
2539
- copyBufferToTexture(source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
2540
- copyTextureToBuffer(source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D): void;
2541
- copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D): void;
2558
+ copyBufferToTexture(source: GPUTexelCopyBufferInfo, destination: GPUTexelCopyTextureInfo, copySize: GPUExtent3D): void;
2559
+ copyTextureToBuffer(source: GPUTexelCopyTextureInfo, destination: GPUTexelCopyBufferInfo, copySize: GPUExtent3D): void;
2560
+ copyTextureToTexture(source: GPUTexelCopyTextureInfo, destination: GPUTexelCopyTextureInfo, copySize: GPUExtent3D): void;
2542
2561
  clearBuffer(buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
2543
2562
 
2544
2563
  writeTimestamp?(querySet: GPUQuerySet, queryIndex: GPUSize32): void; // not in the spec anymore, but may come back later, so keep it here for now
@@ -2555,8 +2574,8 @@ class GPUCommandEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugComm
2555
2574
  interface GPUCommandEncoderDescriptor extends GPUObjectDescriptorBase {}
2556
2575
 
2557
2576
  interface GPUBindingCommandsMixin {
2558
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2559
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2577
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2578
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2560
2579
  }
2561
2580
 
2562
2581
  interface GPUDebugCommandsMixin {
@@ -2568,8 +2587,8 @@ interface GPUDebugCommandsMixin {
2568
2587
  class GPUComputePassEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUBindingCommandsMixin {
2569
2588
  label: string | undefined;
2570
2589
 
2571
- setBindGroup(index: number, bindGroup: GPUBindGroup, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2572
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2590
+ setBindGroup(index: number, bindGroup: GPUBindGroup | null, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2591
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2573
2592
 
2574
2593
  pushDebugGroup(groupLabel: string): void;
2575
2594
  popDebugGroup(): void;
@@ -2595,8 +2614,8 @@ interface GPUComputePassDescriptor extends GPUObjectDescriptorBase {
2595
2614
  class GPURenderPassEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUBindingCommandsMixin, GPURenderCommandsMixin {
2596
2615
  label: string | undefined;
2597
2616
 
2598
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2599
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2617
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2618
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2600
2619
 
2601
2620
  pushDebugGroup(groupLabel: string): void;
2602
2621
  popDebugGroup(): void;
@@ -2605,7 +2624,7 @@ class GPURenderPassEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugC
2605
2624
  setPipeline(pipeline: GPURenderPipeline): void;
2606
2625
 
2607
2626
  setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2608
- setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2627
+ setVertexBuffer(slot: GPUIndex32, buffer?: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2609
2628
 
2610
2629
  draw(vertexCount: GPUSize32, instanceCount?: GPUSize32 /* default=1 */, firstVertex?: GPUSize32 /* default=0 */, firstInstance?: GPUSize32 /* default=0 */): void;
2611
2630
  drawIndexed(
@@ -2648,9 +2667,9 @@ interface GPURenderPassDescriptor extends GPUObjectDescriptorBase {
2648
2667
  }
2649
2668
 
2650
2669
  interface GPURenderPassColorAttachment {
2651
- view: GPUTextureView;
2670
+ view: GPUTexture | GPUTextureView;
2652
2671
  depthSlice?: GPUIntegerCoordinate;
2653
- resolveTarget?: GPUTextureView;
2672
+ resolveTarget?: GPUTexture | GPUTextureView;
2654
2673
 
2655
2674
  clearValue?: GPUColor;
2656
2675
  loadOp: GPULoadOp;
@@ -2658,7 +2677,7 @@ interface GPURenderPassColorAttachment {
2658
2677
  }
2659
2678
 
2660
2679
  interface GPURenderPassDepthStencilAttachment {
2661
- view: GPUTextureView;
2680
+ view: GPUTexture | GPUTextureView;
2662
2681
 
2663
2682
  depthClearValue?: number /* default=0 */;
2664
2683
  depthLoadOp?: GPULoadOp;
@@ -2685,7 +2704,7 @@ interface GPURenderCommandsMixin {
2685
2704
  setPipeline(pipeline: GPURenderPipeline): void;
2686
2705
 
2687
2706
  setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2688
- setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
2707
+ setVertexBuffer(slot: GPUIndex32, buffer?: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
2689
2708
 
2690
2709
  draw(vertexCount: GPUSize32, instanceCount?: GPUSize32 /* default=1 */, firstVertex?: GPUSize32 /* default=0 */, firstInstance?: GPUSize32 /* default=0 */): void;
2691
2710
  drawIndexed(
@@ -2709,8 +2728,8 @@ interface GPURenderBundleDescriptor extends GPUObjectDescriptorBase {}
2709
2728
  class GPURenderBundleEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUBindingCommandsMixin, GPURenderCommandsMixin {
2710
2729
  label: string | undefined;
2711
2730
 
2712
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2713
- setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2731
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsets?: GPUBufferDynamicOffset[]): void;
2732
+ setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup | null, dynamicOffsetData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32): void;
2714
2733
 
2715
2734
  pushDebugGroup(groupLabel: string): void;
2716
2735
  popDebugGroup(): void;
@@ -2719,7 +2738,7 @@ class GPURenderBundleEncoder implements GPUObjectBase, GPUCommandsMixin, GPUDebu
2719
2738
  setPipeline(pipeline: GPURenderPipeline): void;
2720
2739
 
2721
2740
  setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2722
- setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2741
+ setVertexBuffer(slot: GPUIndex32, buffer?: GPUBuffer, offset?: GPUSize64 /* default=0 */, size?: GPUSize64 /* default=0 */): void;
2723
2742
 
2724
2743
  draw(vertexCount: GPUSize32, instanceCount?: GPUSize32 /* default=1 */, firstVertex?: GPUSize32 /* default=0 */, firstInstance?: GPUSize32 /* default=0 */): void;
2725
2744
  drawIndexed(
@@ -2750,11 +2769,11 @@ class GPUQueue implements GPUObjectBase {
2750
2769
 
2751
2770
  onSubmittedWorkDone(): Promise<void>;
2752
2771
 
2753
- writeBuffer(buffer: GPUBuffer, bufferOffset: GPUSize64, data: BufferSource, dataOffset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
2772
+ writeBuffer(buffer: GPUBuffer, bufferOffset: GPUSize64, data: AllowSharedBufferSource, dataOffset?: GPUSize64 /* default=0 */, size?: GPUSize64): void;
2754
2773
 
2755
- writeTexture(destination: GPUImageCopyTexture, data: BufferSource, dataLayout: GPUImageDataLayout, size: GPUExtent3D): void;
2774
+ writeTexture(destination: GPUTexelCopyTextureInfo, data: AllowSharedBufferSource, dataLayout: GPUTexelCopyBufferLayout, size: GPUExtent3D): void;
2756
2775
 
2757
- copyExternalImageToTexture(source: GPUImageCopyExternalImage, destination: GPUImageCopyTextureTagged, copySize: GPUExtent3D): void;
2776
+ copyExternalImageToTexture(source: GPUCopyExternalImageSourceInfo, destination: GPUCopyExternalImageDestInfo, copySize: GPUExtent3D): void;
2758
2777
  }
2759
2778
 
2760
2779
  class GPUQuerySet implements GPUObjectBase {
@@ -272,6 +272,9 @@ export class WebGPUEngine extends ThinWebGPUEngine {
272
272
  architecture: "",
273
273
  device: "",
274
274
  description: "",
275
+ subgroupMinSize: 0,
276
+ subgroupMaxSize: 0,
277
+ isFallbackAdapter: false,
275
278
  };
276
279
  /** @internal */
277
280
  this._compiledComputeEffects = {};
@@ -563,7 +566,7 @@ export class WebGPUEngine extends ThinWebGPUEngine {
563
566
  }
564
567
  _initializeLimits() {
565
568
  // Init caps
566
- // TODO WEBGPU Real Capability check once limits will be working.
569
+ const textureFormatsTier1 = this._deviceEnabledExtensions.indexOf("texture-formats-tier1" /* WebGPUConstants.FeatureName.TextureFormatsTier1 */) >= 0;
567
570
  this._caps = {
568
571
  maxTexturesImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage,
569
572
  maxVertexTextureImageUnits: this._deviceLimits.maxSampledTexturesPerShaderStage,
@@ -618,7 +621,7 @@ export class WebGPUEngine extends ThinWebGPUEngine {
618
621
  textureMaxLevel: true,
619
622
  texture2DArrayMaxLayerCount: this._deviceLimits.maxTextureArrayLayers,
620
623
  disableMorphTargetTexture: false,
621
- textureNorm16: false, // in the works: https://github.com/gpuweb/gpuweb/issues/3001
624
+ textureNorm16: textureFormatsTier1,
622
625
  blendParametersPerTarget: true,
623
626
  dualSourceBlending: true,
624
627
  };