@luma.gl/webgpu 9.3.0-alpha.6 → 9.3.0-alpha.9

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 (76) hide show
  1. package/dist/adapter/helpers/get-bind-group.d.ts +3 -6
  2. package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
  3. package/dist/adapter/helpers/get-bind-group.js +11 -14
  4. package/dist/adapter/helpers/get-bind-group.js.map +1 -1
  5. package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts +3 -1
  6. package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts.map +1 -1
  7. package/dist/adapter/helpers/get-vertex-buffer-layout.js +17 -12
  8. package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +1 -1
  9. package/dist/adapter/helpers/webgpu-parameters.d.ts.map +1 -1
  10. package/dist/adapter/helpers/webgpu-parameters.js +1 -0
  11. package/dist/adapter/helpers/webgpu-parameters.js.map +1 -1
  12. package/dist/adapter/resources/webgpu-command-encoder.d.ts +3 -13
  13. package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
  14. package/dist/adapter/resources/webgpu-command-encoder.js +68 -29
  15. package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -1
  16. package/dist/adapter/resources/webgpu-compute-pass.d.ts +3 -3
  17. package/dist/adapter/resources/webgpu-compute-pass.d.ts.map +1 -1
  18. package/dist/adapter/resources/webgpu-compute-pass.js +17 -7
  19. package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -1
  20. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts +7 -9
  21. package/dist/adapter/resources/webgpu-compute-pipeline.d.ts.map +1 -1
  22. package/dist/adapter/resources/webgpu-compute-pipeline.js +26 -29
  23. package/dist/adapter/resources/webgpu-compute-pipeline.js.map +1 -1
  24. package/dist/adapter/resources/webgpu-fence.d.ts.map +1 -1
  25. package/dist/adapter/resources/webgpu-fence.js +9 -1
  26. package/dist/adapter/resources/webgpu-fence.js.map +1 -1
  27. package/dist/adapter/resources/webgpu-pipeline-layout.d.ts +1 -1
  28. package/dist/adapter/resources/webgpu-pipeline-layout.d.ts.map +1 -1
  29. package/dist/adapter/resources/webgpu-pipeline-layout.js +10 -16
  30. package/dist/adapter/resources/webgpu-pipeline-layout.js.map +1 -1
  31. package/dist/adapter/resources/webgpu-render-pass.d.ts +4 -4
  32. package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
  33. package/dist/adapter/resources/webgpu-render-pass.js +10 -10
  34. package/dist/adapter/resources/webgpu-render-pass.js.map +1 -1
  35. package/dist/adapter/resources/webgpu-render-pipeline.d.ts +10 -9
  36. package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgpu-render-pipeline.js +48 -38
  38. package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -1
  39. package/dist/adapter/resources/webgpu-shader.d.ts.map +1 -1
  40. package/dist/adapter/resources/webgpu-shader.js +17 -1
  41. package/dist/adapter/resources/webgpu-shader.js.map +1 -1
  42. package/dist/adapter/resources/webgpu-texture.d.ts +8 -1
  43. package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
  44. package/dist/adapter/resources/webgpu-texture.js +35 -43
  45. package/dist/adapter/resources/webgpu-texture.js.map +1 -1
  46. package/dist/adapter/webgpu-device.d.ts +6 -2
  47. package/dist/adapter/webgpu-device.d.ts.map +1 -1
  48. package/dist/adapter/webgpu-device.js +60 -18
  49. package/dist/adapter/webgpu-device.js.map +1 -1
  50. package/dist/dist.dev.js +508 -311
  51. package/dist/dist.min.js +13 -13
  52. package/dist/index.cjs +439 -319
  53. package/dist/index.cjs.map +4 -4
  54. package/dist/wgsl/get-shader-layout-wgsl.d.ts.map +1 -1
  55. package/dist/wgsl/get-shader-layout-wgsl.js +8 -0
  56. package/dist/wgsl/get-shader-layout-wgsl.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/adapter/helpers/get-bind-group.ts +18 -27
  59. package/src/adapter/helpers/get-vertex-buffer-layout.ts +31 -12
  60. package/src/adapter/helpers/webgpu-parameters.ts +2 -0
  61. package/src/adapter/resources/webgpu-command-encoder.ts +99 -46
  62. package/src/adapter/resources/webgpu-compute-pass.ts +35 -8
  63. package/src/adapter/resources/webgpu-compute-pipeline.ts +43 -30
  64. package/src/adapter/resources/webgpu-fence.ts +11 -3
  65. package/src/adapter/resources/webgpu-pipeline-layout.ts +16 -14
  66. package/src/adapter/resources/webgpu-render-pass.ts +18 -14
  67. package/src/adapter/resources/webgpu-render-pipeline.ts +68 -46
  68. package/src/adapter/resources/webgpu-shader.ts +16 -1
  69. package/src/adapter/resources/webgpu-texture.ts +61 -44
  70. package/src/adapter/webgpu-device.ts +101 -25
  71. package/src/wgsl/get-shader-layout-wgsl.ts +9 -0
  72. package/dist/adapter/helpers/accessor-to-format.d.ts +0 -1
  73. package/dist/adapter/helpers/accessor-to-format.d.ts.map +0 -1
  74. package/dist/adapter/helpers/accessor-to-format.js +0 -105
  75. package/dist/adapter/helpers/accessor-to-format.js.map +0 -1
  76. package/src/adapter/helpers/accessor-to-format.ts +0 -104
@@ -1,15 +1,12 @@
1
- import type { ComputeShaderLayout, BindingDeclaration, Binding } from '@luma.gl/core';
1
+ import type { Bindings, ComputeShaderLayout, ShaderLayout } from '@luma.gl/core';
2
2
  import type { WebGPUDevice } from "../webgpu-device.js";
3
3
  /**
4
4
  * Create a WebGPU "bind group layout" from an array of luma.gl bindings
5
5
  * @note bind groups can be automatically generated by WebGPU.
6
6
  */
7
- export declare function makeBindGroupLayout(device: GPUDevice, layout: GPUBindGroupLayout, bindings: Binding[]): GPUBindGroupLayout;
7
+ export declare function makeBindGroupLayout(device: GPUDevice, layout: GPUBindGroupLayout, bindings: Bindings): GPUBindGroupLayout;
8
8
  /**
9
9
  * Create a WebGPU "bind group" from an array of luma.gl bindings
10
10
  */
11
- export declare function getBindGroup(device: WebGPUDevice, bindGroupLayout: GPUBindGroupLayout, shaderLayout: ComputeShaderLayout, bindings: Record<string, Binding>): GPUBindGroup;
12
- export declare function getShaderLayoutBinding(shaderLayout: ComputeShaderLayout, bindingName: string, options?: {
13
- ignoreWarnings?: boolean;
14
- }): BindingDeclaration | null;
11
+ export declare function getBindGroup(device: WebGPUDevice, bindGroupLayout: GPUBindGroupLayout, shaderLayout: ShaderLayout | ComputeShaderLayout, bindings: Bindings, group: number): GPUBindGroup | null;
15
12
  //# sourceMappingURL=get-bind-group.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-bind-group.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAEpF,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAMnD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,OAAO,EAAE,GAClB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,kBAAkB,EACnC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAWd;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAC,GACnC,kBAAkB,GAAG,IAAI,CAU3B"}
1
+ {"version":3,"file":"get-bind-group.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAExF,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAMnD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,QAAQ,GACjB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,kBAAkB,EACnC,YAAY,EAAE,YAAY,GAAG,mBAAmB,EAChD,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,GACZ,YAAY,GAAG,IAAI,CAcrB"}
@@ -1,7 +1,7 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { Buffer, Sampler, Texture, TextureView, log } from '@luma.gl/core';
4
+ import { Buffer, Sampler, Texture, TextureView, getShaderLayoutBinding, log } from '@luma.gl/core';
5
5
  /**
6
6
  * Create a WebGPU "bind group layout" from an array of luma.gl bindings
7
7
  * @note bind groups can be automatically generated by WebGPU.
@@ -16,8 +16,11 @@ export function makeBindGroupLayout(device, layout, bindings) {
16
16
  /**
17
17
  * Create a WebGPU "bind group" from an array of luma.gl bindings
18
18
  */
19
- export function getBindGroup(device, bindGroupLayout, shaderLayout, bindings) {
20
- const entries = getBindGroupEntries(bindings, shaderLayout);
19
+ export function getBindGroup(device, bindGroupLayout, shaderLayout, bindings, group) {
20
+ const entries = getBindGroupEntries(bindings, shaderLayout, group);
21
+ if (entries.length === 0) {
22
+ return null;
23
+ }
21
24
  device.pushErrorScope('validation');
22
25
  const bindGroup = device.handle.createBindGroup({
23
26
  layout: bindGroupLayout,
@@ -28,19 +31,11 @@ export function getBindGroup(device, bindGroupLayout, shaderLayout, bindings) {
28
31
  });
29
32
  return bindGroup;
30
33
  }
31
- export function getShaderLayoutBinding(shaderLayout, bindingName, options) {
32
- const bindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName ||
33
- `${binding.name.toLocaleLowerCase()}uniforms` === bindingName.toLocaleLowerCase());
34
- if (!bindingLayout && !options?.ignoreWarnings) {
35
- log.warn(`Binding ${bindingName} not set: Not found in shader layout.`)();
36
- }
37
- return bindingLayout || null;
38
- }
39
34
  /**
40
35
  * @param bindings
41
36
  * @returns
42
37
  */
43
- function getBindGroupEntries(bindings, shaderLayout) {
38
+ function getBindGroupEntries(bindings, shaderLayout, group) {
44
39
  const entries = [];
45
40
  for (const [bindingName, value] of Object.entries(bindings)) {
46
41
  const exactBindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName);
@@ -48,7 +43,7 @@ function getBindGroupEntries(bindings, shaderLayout) {
48
43
  const isShadowedAlias = !exactBindingLayout && bindingLayout ? bindingLayout.name in bindings : false;
49
44
  // Mirror the WebGL path: when both `foo` and `fooUniforms` exist in the bindings map,
50
45
  // prefer the exact shader binding name and ignore the alias entry.
51
- if (!isShadowedAlias) {
46
+ if (!isShadowedAlias && bindingLayout?.group === group) {
52
47
  const entry = bindingLayout
53
48
  ? getBindGroupEntry(value, bindingLayout.location, undefined, bindingName)
54
49
  : null;
@@ -61,7 +56,9 @@ function getBindGroupEntries(bindings, shaderLayout) {
61
56
  ignoreWarnings: true
62
57
  });
63
58
  const samplerEntry = samplerBindingLayout
64
- ? getBindGroupEntry(value, samplerBindingLayout.location, { sampler: true }, bindingName)
59
+ ? samplerBindingLayout.group === group
60
+ ? getBindGroupEntry(value, samplerBindingLayout.location, { sampler: true }, bindingName)
61
+ : null
65
62
  : null;
66
63
  if (samplerEntry) {
67
64
  entries.push(samplerEntry);
@@ -1 +1 @@
1
- {"version":3,"file":"get-bind-group.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-bind-group.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,GAAG,EAAC,MAAM,eAAe,CAAC;AAOjG;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,MAA0B,EAC1B,QAAkB;IAElB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnC,wCAAwC;IACxC,YAAY;IACZ,2CAA2C;IAC3C,KAAK;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,eAAmC,EACnC,YAAgD,EAChD,QAAkB,EAClB,KAAa;IAEb,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QAC9C,MAAM,EAAE,eAAe;QACvB,OAAO;KACR,CAAC,CAAC;IACH,MAAM,CAAC,aAAa,CAAC,CAAC,KAAe,EAAE,EAAE;QACvC,GAAG,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,QAAkB,EAClB,YAAgD,EAChD,KAAa;IAEb,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,kBAAkB,IAAI,sBAAsB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC9F,MAAM,eAAe,GACnB,CAAC,kBAAkB,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhF,sFAAsF;QACtF,mEAAmE;QACnE,IAAI,CAAC,eAAe,IAAI,aAAa,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,aAAa;gBACzB,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;gBAC1E,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,kFAAkF;YAClF,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;gBAC7B,MAAM,oBAAoB,GAAG,sBAAsB,CAAC,YAAY,EAAE,GAAG,WAAW,SAAS,EAAE;oBACzF,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;gBACH,MAAM,YAAY,GAAG,oBAAoB;oBACvC,CAAC,CAAC,oBAAoB,CAAC,KAAK,KAAK,KAAK;wBACpC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAE,WAAW,CAAC;wBACvF,CAAC,CAAC,IAAI;oBACR,CAAC,CAAC,IAAI,CAAC;gBACT,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,KAAa,EACb,OAA6B,EAC7B,cAAsB,SAAS;IAE/B,IAAI,OAAO,YAAY,MAAM,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE;gBACR,MAAM,EAAG,OAAwB,CAAC,MAAM;aACzC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAG,OAAyB,CAAC,MAAM;SAC5C,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAG,OAA6B,CAAC,MAAM;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAG,OAAyB,CAAC,OAAO,CAAC,MAAM;aACpD,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAG,OAAyB,CAAC,IAAI,CAAC,MAAM;SACjD,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,mBAAmB,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -6,6 +6,8 @@ import type { ShaderLayout, BufferLayout } from '@luma.gl/core';
6
6
  * @param bufferLayout The buffer map is optional
7
7
  * @returns WebGPU layout intended for a GPURenderPassDescriptor.
8
8
  */
9
- export declare function getVertexBufferLayout(shaderLayout: ShaderLayout, bufferLayout: BufferLayout[]): GPUVertexBufferLayout[];
9
+ export declare function getVertexBufferLayout(shaderLayout: ShaderLayout, bufferLayout: BufferLayout[], options?: {
10
+ pipelineId?: string;
11
+ }): GPUVertexBufferLayout[];
10
12
  export declare function getBufferSlots(shaderLayout: ShaderLayout, bufferLayout: BufferLayout[]): Record<string, number>;
11
13
  //# sourceMappingURL=get-vertex-buffer-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-vertex-buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-vertex-buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAqC,MAAM,eAAe,CAAC;AAYlG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,GAC3B,qBAAqB,EAAE,CA6FzB;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxB"}
1
+ {"version":3,"file":"get-vertex-buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-vertex-buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAqC,MAAM,eAAe,CAAC;AAYlG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,EAC5B,OAAO,CAAC,EAAE;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAC,GAC9B,qBAAqB,EAAE,CAwGzB;AAED,wBAAgB,cAAc,CAC5B,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BxB"}
@@ -1,7 +1,7 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { log, getVertexFormatInfo } from '@luma.gl/core';
4
+ import { log, vertexFormatDecoder } from '@luma.gl/core';
5
5
  // import {getAttributeInfosFromLayouts} from '@luma.gl/core';
6
6
  /** Throw error on any WebGL-only vertex formats */
7
7
  function getWebGPUVertexFormat(format) {
@@ -17,9 +17,10 @@ function getWebGPUVertexFormat(format) {
17
17
  * @param bufferLayout The buffer map is optional
18
18
  * @returns WebGPU layout intended for a GPURenderPassDescriptor.
19
19
  */
20
- export function getVertexBufferLayout(shaderLayout, bufferLayout) {
20
+ export function getVertexBufferLayout(shaderLayout, bufferLayout, options) {
21
21
  const vertexBufferLayouts = [];
22
22
  const usedAttributes = new Set();
23
+ const shaderAttributes = shaderLayout.attributes || [];
23
24
  // First handle any buffers mentioned in `bufferLayout`
24
25
  for (const mapping of bufferLayout) {
25
26
  // Build vertex attributes for one buffer
@@ -34,7 +35,7 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
34
35
  // const arrayStride = mapping.byteStride; TODO
35
36
  for (const attributeMapping of mapping.attributes) {
36
37
  const attributeName = attributeMapping.attribute;
37
- const attributeLayout = findAttributeLayout(shaderLayout, attributeName, usedAttributes);
38
+ const attributeLayout = findAttributeLayout(shaderLayout, attributeName, usedAttributes, options);
38
39
  // @ts-ignore
39
40
  const location = attributeLayout?.location;
40
41
  format = attributeMapping.format || mapping.format;
@@ -46,16 +47,16 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
46
47
  offset: attributeMapping.byteOffset,
47
48
  shaderLocation: location
48
49
  });
49
- byteStride += getVertexFormatInfo(format).byteLength;
50
+ byteStride += vertexFormatDecoder.getVertexFormatInfo(format).byteLength;
50
51
  }
51
52
  // non-interleaved mapping (just set offset and stride)
52
53
  }
53
54
  else {
54
- const attributeLayout = findAttributeLayout(shaderLayout, mapping.name, usedAttributes);
55
+ const attributeLayout = findAttributeLayout(shaderLayout, mapping.name, usedAttributes, options);
55
56
  if (!attributeLayout) {
56
57
  continue; // eslint-disable-line no-continue
57
58
  }
58
- byteStride = getVertexFormatInfo(format).byteLength;
59
+ byteStride = vertexFormatDecoder.getVertexFormatInfo(format).byteLength;
59
60
  stepMode =
60
61
  attributeLayout.stepMode ||
61
62
  (attributeLayout.name.startsWith('instance') ? 'instance' : 'vertex');
@@ -74,10 +75,10 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
74
75
  });
75
76
  }
76
77
  // Add any non-mapped attributes - TODO - avoid hardcoded types
77
- for (const attribute of shaderLayout.attributes) {
78
+ for (const attribute of shaderAttributes) {
78
79
  if (!usedAttributes.has(attribute.name)) {
79
80
  vertexBufferLayouts.push({
80
- arrayStride: getVertexFormatInfo('float32x3').byteLength,
81
+ arrayStride: vertexFormatDecoder.getVertexFormatInfo('float32x3').byteLength,
81
82
  stepMode: attribute.stepMode || (attribute.name.startsWith('instance') ? 'instance' : 'vertex'),
82
83
  attributes: [
83
84
  {
@@ -101,6 +102,7 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
101
102
  }
102
103
  export function getBufferSlots(shaderLayout, bufferLayout) {
103
104
  const usedAttributes = new Set();
105
+ const shaderAttributes = shaderLayout.attributes || [];
104
106
  let bufferSlot = 0;
105
107
  const bufferSlots = {};
106
108
  // First handle any buffers mentioned in `bufferLayout`
@@ -118,7 +120,7 @@ export function getBufferSlots(shaderLayout, bufferLayout) {
118
120
  bufferSlots[mapping.name] = bufferSlot++;
119
121
  }
120
122
  // Add any non-mapped attributes
121
- for (const attribute of shaderLayout.attributes) {
123
+ for (const attribute of shaderAttributes) {
122
124
  if (!usedAttributes.has(attribute.name)) {
123
125
  bufferSlots[attribute.name] = bufferSlot++;
124
126
  }
@@ -130,10 +132,13 @@ export function getBufferSlots(shaderLayout, bufferLayout) {
130
132
  * @throws if name is not in ShaderLayout
131
133
  * @throws if name has already been referenced and attributeNames is provided
132
134
  */
133
- function findAttributeLayout(shaderLayout, name, attributeNames) {
134
- const attribute = shaderLayout.attributes.find(attribute_ => attribute_.name === name);
135
+ function findAttributeLayout(shaderLayout, name, attributeNames, options) {
136
+ const attribute = shaderLayout.attributes?.find(attribute_ => attribute_.name === name);
135
137
  if (!attribute) {
136
- log.warn(`Supplied attribute not present in shader layout: ${name}`)();
138
+ const pipelineContext = options?.pipelineId
139
+ ? `RenderPipeline(${options.pipelineId})`
140
+ : 'RenderPipeline';
141
+ log.warn(`${pipelineContext}: Ignoring "${name}" attribute, since it is not present in shader layout.`)();
137
142
  return null;
138
143
  }
139
144
  if (attributeNames) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-vertex-buffer-layout.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-vertex-buffer-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-vertex-buffer-layout.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-vertex-buffer-layout.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,GAAG,EAAE,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACvD,8DAA8D;AAE9D,mDAAmD;AACnD,SAAS,qBAAqB,CAAC,MAAoB;IACjD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAA0B,EAC1B,YAA4B,EAC5B,OAA+B;IAE/B,MAAM,mBAAmB,GAA4B,EAAE,CAAC;IACxD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,gBAAgB,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;IAEvD,uDAAuD;IACvD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,yCAAyC;QACzC,MAAM,gBAAgB,GAAyB,EAAE,CAAC;QAElD,6DAA6D;QAC7D,IAAI,QAAQ,GAA0B,QAAQ,CAAC;QAC/C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,aAAa;QACb,IAAI,MAAM,GAAiB,OAAO,CAAC,MAAM,CAAC;QAE1C,sDAAsD;QACtD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,+CAA+C;YAC/C,KAAK,MAAM,gBAAgB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClD,MAAM,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC;gBACjD,MAAM,eAAe,GAAG,mBAAmB,CACzC,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,CACR,CAAC;gBAEF,aAAa;gBACb,MAAM,QAAQ,GAAW,eAAe,EAAE,QAAQ,CAAC;gBACnD,MAAM,GAAG,gBAAgB,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;gBAEnD,QAAQ;oBACN,eAAe,EAAE,QAAQ;wBACzB,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACzE,gBAAgB,CAAC,IAAI,CAAC;oBACpB,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC;oBACrC,MAAM,EAAE,gBAAgB,CAAC,UAAU;oBACnC,cAAc,EAAE,QAAQ;iBACzB,CAAC,CAAC;gBAEH,UAAU,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;YAC3E,CAAC;YACD,uDAAuD;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,mBAAmB,CACzC,YAAY,EACZ,OAAO,CAAC,IAAI,EACZ,cAAc,EACd,OAAO,CACR,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,SAAS,CAAC,kCAAkC;YAC9C,CAAC;YACD,UAAU,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;YAExE,QAAQ;gBACN,eAAe,CAAC,QAAQ;oBACxB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxE,gBAAgB,CAAC,IAAI,CAAC;gBACpB,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC;gBACrC,8DAA8D;gBAC9D,MAAM,EAAE,CAAC;gBACT,cAAc,EAAE,eAAe,CAAC,QAAQ;aACzC,CAAC,CAAC;QACL,CAAC;QAED,kDAAkD;QAClD,mBAAmB,CAAC,IAAI,CAAC;YACvB,WAAW,EAAE,OAAO,CAAC,UAAU,IAAI,UAAU;YAC7C,QAAQ;YACR,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,mBAAmB,CAAC,IAAI,CAAC;gBACvB,WAAW,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,UAAU;gBAC5E,QAAQ,EACN,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvF,UAAU,EAAE;oBACV;wBACE,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC;wBAC1C,MAAM,EAAE,CAAC;wBACT,cAAc,EAAE,SAAS,CAAC,QAAQ;qBACnC;iBACF;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,gEAAgE;IAChE,wDAAwD;IACxD,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAExF,OAAO,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,YAA0B,EAC1B,YAA4B;IAE5B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,gBAAgB,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,WAAW,GAA2B,EAAE,CAAC;IAE/C,uDAAuD;IACvD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,sDAAsD;QACtD,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;gBACnD,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,uDAAuD;QACzD,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;IAC3C,CAAC;IAED,gCAAgC;IAChC,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,YAA0B,EAC1B,IAAY,EACZ,cAA4B,EAC5B,OAA+B;IAE/B,MAAM,SAAS,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,OAAO,EAAE,UAAU;YACzC,CAAC,CAAC,kBAAkB,OAAO,CAAC,UAAU,GAAG;YACzC,CAAC,CAAC,gBAAgB,CAAC;QACrB,GAAG,CAAC,IAAI,CACN,GAAG,eAAe,eAAe,IAAI,wDAAwD,CAC9F,EAAE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgpu-parameters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAM,MAAM,eAAe,CAAC;AA2B9C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,UAAU,EAAE,QAAQ,CAgN9D,CAAC;AAwCF,wBAAgB,yCAAyC,CACvD,kBAAkB,EAAE,2BAA2B,EAC/C,UAAU,GAAE,UAAe,GAC1B,IAAI,CAIN"}
1
+ {"version":3,"file":"webgpu-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgpu-parameters.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAM,MAAM,eAAe,CAAC;AA2B9C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,UAAU,EAAE,QAAQ,CAkN9D,CAAC;AAwCF,wBAAgB,yCAAyC,CACvD,kBAAkB,EAAE,2BAA2B,EAC/C,UAAU,GAAE,UAAe,GAC1B,IAAI,CAIN"}
@@ -53,6 +53,7 @@ export const PARAMETER_TABLE = {
53
53
  const depthStencil = addDepthStencil(descriptor);
54
54
  depthStencil.format = value;
55
55
  },
56
+ clearDepth: notSupported,
56
57
  depthBias: (_, value, descriptor) => {
57
58
  const depthStencil = addDepthStencil(descriptor);
58
59
  depthStencil.depthBias = value;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-parameters.js","sourceRoot":"","sources":["../../../src/adapter/helpers/webgpu-parameters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-parameters.js","sourceRoot":"","sources":["../../../src/adapter/helpers/webgpu-parameters.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { CommandBufferProps, RenderPassProps, ComputePassProps, CopyTextureToTextureOptions, CopyTextureToBufferOptions } from '@luma.gl/core';
2
- import { CommandEncoder, CommandEncoderProps, Buffer, Texture } from '@luma.gl/core';
1
+ import type { CommandBufferProps, RenderPassProps, ComputePassProps, CopyBufferToTextureOptions, CopyTextureToTextureOptions, CopyTextureToBufferOptions } from '@luma.gl/core';
2
+ import { CommandEncoder, CommandEncoderProps, Buffer } from '@luma.gl/core';
3
3
  import { WebGPUDevice } from "../webgpu-device.js";
4
4
  import { WebGPUCommandBuffer } from "./webgpu-command-buffer.js";
5
5
  import { WebGPURenderPass } from "./webgpu-render-pass.js";
@@ -24,17 +24,7 @@ export declare class WebGPUCommandEncoder extends CommandEncoder {
24
24
  destinationOffset?: number;
25
25
  size?: number;
26
26
  }): void;
27
- copyBufferToTexture(options: {
28
- sourceBuffer: Buffer;
29
- offset?: number;
30
- bytesPerRow: number;
31
- rowsPerImage: number;
32
- destinationTexture: Texture;
33
- mipLevel?: number;
34
- aspect?: 'all' | 'stencil-only' | 'depth-only';
35
- origin?: number[] | [number, number, number];
36
- extent?: number[] | [number, number, number];
37
- }): void;
27
+ copyBufferToTexture(options: CopyBufferToTextureOptions): void;
38
28
  copyTextureToBuffer(options: CopyTextureToBufferOptions): void;
39
29
  copyTextureToTexture(options: CopyTextureToTextureOptions): void;
40
30
  pushDebugGroup(groupLabel: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-command-encoder.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AACnF,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAEvB,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,mBAAwB;IAaxD,OAAO,IAAI,IAAI;IAIxB,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,mBAAmB;IAcvD;;;OAGG;IACH,eAAe,CAAC,KAAK,GAAE,eAAoB,GAAG,gBAAgB;IAI9D,gBAAgB,CAAC,KAAK,GAAE,gBAAqB,GAAG,iBAAiB;IAOjE,kBAAkB,CAAC,OAAO,EAC1B;QACE,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,IAAI;IAYR,mBAAmB,CAAC,OAAO,EAC3B;QACE,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QAErB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAE/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9C,GAAG,IAAI;IAyBR,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAW9D,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI;IAWvD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC,aAAa,IAAI,IAAI;IAIrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,eAAe,CACtB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GACA,IAAI;IAYP,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAqBnE"}
1
+ {"version":3,"file":"webgpu-command-encoder.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAEvB,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,mBAAwB;IAaxD,OAAO,IAAI,IAAI;IAIxB,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,mBAAmB;IAcvD;;;OAGG;IACH,eAAe,CAAC,KAAK,GAAE,eAAoB,GAAG,gBAAgB;IAQ9D,gBAAgB,CAAC,KAAK,GAAE,gBAAqB,GAAG,iBAAiB;IAWjE,kBAAkB,CAAC,OAAO,EAAE;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,IAAI;IAYR,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IA8B9D,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAgC9D,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI;IA2CvD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC,aAAa,IAAI,IAAI;IAIrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,eAAe,CACtB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GACA,IAAI;IAYP,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAqBnE"}
@@ -41,57 +41,96 @@ export class WebGPUCommandEncoder extends CommandEncoder {
41
41
  * @todo need to support a "Framebuffer" equivalent (aka preconfigured RenderPassDescriptors?).
42
42
  */
43
43
  beginRenderPass(props = {}) {
44
- return new WebGPURenderPass(this.device, this._applyTimeProfilingToPassProps(props));
44
+ return new WebGPURenderPass(this.device, this._applyTimeProfilingToPassProps(props), this.handle);
45
45
  }
46
46
  beginComputePass(props = {}) {
47
- return new WebGPUComputePass(this.device, this._applyTimeProfilingToPassProps(props));
47
+ return new WebGPUComputePass(this.device, this._applyTimeProfilingToPassProps(props), this.handle);
48
48
  }
49
49
  // beginRenderPass(GPURenderPassDescriptor descriptor): GPURenderPassEncoder;
50
50
  // beginComputePass(optional GPUComputePassDescriptor descriptor = {}): GPUComputePassEncoder;
51
51
  copyBufferToBuffer(options) {
52
52
  const webgpuSourceBuffer = options.sourceBuffer;
53
- const WebGPUDestinationBuffer = options.destinationBuffer;
54
- this.handle.copyBufferToBuffer(webgpuSourceBuffer.handle, options.sourceOffset ?? 0, WebGPUDestinationBuffer.handle, options.destinationOffset ?? 0, options.size ?? 0);
53
+ const webgpuDestinationBuffer = options.destinationBuffer;
54
+ this.handle.copyBufferToBuffer(webgpuSourceBuffer.handle, options.sourceOffset ?? 0, webgpuDestinationBuffer.handle, options.destinationOffset ?? 0, options.size ?? 0);
55
55
  }
56
56
  copyBufferToTexture(options) {
57
57
  const webgpuSourceBuffer = options.sourceBuffer;
58
- const WebGPUDestinationTexture = options.destinationTexture;
58
+ const webgpuDestinationTexture = options.destinationTexture;
59
+ const copyOrigin = options.origin ?? [0, 0, 0];
60
+ const copySize = options.size;
59
61
  this.handle.copyBufferToTexture({
60
62
  buffer: webgpuSourceBuffer.handle,
61
- offset: options.offset ?? 0,
63
+ offset: options.byteOffset ?? 0,
62
64
  bytesPerRow: options.bytesPerRow,
63
65
  rowsPerImage: options.rowsPerImage
64
66
  }, {
65
- texture: WebGPUDestinationTexture.handle,
67
+ texture: webgpuDestinationTexture.handle,
66
68
  mipLevel: options.mipLevel ?? 0,
67
- origin: options.origin ?? {}
68
- // aspect: options.aspect
69
+ origin: {
70
+ x: copyOrigin[0] ?? 0,
71
+ y: copyOrigin[1] ?? 0,
72
+ z: copyOrigin[2] ?? 0
73
+ },
74
+ aspect: options.aspect
69
75
  }, {
70
- // @ts-ignore
71
- width: options.extent?.[0],
72
- height: options.extent?.[1],
73
- depthOrArrayLayers: options.extent?.[2]
76
+ width: copySize[0],
77
+ height: copySize[1],
78
+ depthOrArrayLayers: copySize[2]
74
79
  });
75
80
  }
76
81
  copyTextureToBuffer(options) {
77
- // this.handle.copyTextureToBuffer(
78
- // // source
79
- // {},
80
- // // destination
81
- // {},
82
- // // copySize
83
- // {}
84
- // );
82
+ const { sourceTexture, destinationBuffer, origin = [0, 0, 0], byteOffset = 0, width, height, depthOrArrayLayers, mipLevel, aspect } = options;
83
+ const webgpuSourceTexture = sourceTexture;
84
+ webgpuSourceTexture.copyToBuffer(this.handle, {
85
+ x: origin[0] ?? 0,
86
+ y: origin[1] ?? 0,
87
+ z: origin[2] ?? 0,
88
+ width,
89
+ height,
90
+ depthOrArrayLayers,
91
+ mipLevel,
92
+ aspect,
93
+ byteOffset,
94
+ bytesPerRow: options.bytesPerRow,
95
+ rowsPerImage: options.rowsPerImage
96
+ }, destinationBuffer);
85
97
  }
86
98
  copyTextureToTexture(options) {
87
- // this.handle.copyTextureToTexture(
88
- // // source
89
- // {},
90
- // // destination
91
- // {},
92
- // // copySize
93
- // {}
94
- // );
99
+ const webgpuSourceTexture = options.sourceTexture;
100
+ const webgpuDestinationTexture = options.destinationTexture;
101
+ const sourceRegion = webgpuSourceTexture._normalizeTextureReadOptions({
102
+ x: options.origin?.[0] ?? 0,
103
+ y: options.origin?.[1] ?? 0,
104
+ z: options.origin?.[2] ?? 0,
105
+ width: options.width,
106
+ height: options.height,
107
+ depthOrArrayLayers: options.depthOrArrayLayers,
108
+ mipLevel: options.mipLevel ?? 0,
109
+ aspect: options.aspect ?? 'all'
110
+ });
111
+ this.handle.copyTextureToTexture({
112
+ texture: webgpuSourceTexture.handle,
113
+ mipLevel: sourceRegion.mipLevel,
114
+ origin: {
115
+ x: sourceRegion.x,
116
+ y: sourceRegion.y,
117
+ z: sourceRegion.z
118
+ },
119
+ aspect: sourceRegion.aspect
120
+ }, {
121
+ texture: webgpuDestinationTexture.handle,
122
+ mipLevel: options.destinationMipLevel ?? 0,
123
+ origin: {
124
+ x: options.destinationOrigin?.[0] ?? 0,
125
+ y: options.destinationOrigin?.[1] ?? 0,
126
+ z: options.destinationOrigin?.[2] ?? 0
127
+ },
128
+ aspect: options.destinationAspect ?? sourceRegion.aspect
129
+ }, {
130
+ width: sourceRegion.width,
131
+ height: sourceRegion.height,
132
+ depthOrArrayLayers: sourceRegion.depthOrArrayLayers
133
+ });
95
134
  }
96
135
  pushDebugGroup(groupLabel) {
97
136
  this.handle.pushDebugGroup(groupLabel);
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-command-encoder.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-command-encoder.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAUpC,OAAO,EAAC,cAAc,EAA8B,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAIxD,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IAC7C,MAAM,CAAe;IACrB,MAAM,CAAoB;IAEnC,YAAY,MAAoB,EAAE,QAA6B,EAAE;QAC/D,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM;YACT,KAAK,CAAC,MAAM;gBACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBACtC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACpB,qCAAqC;oBACrC,wDAAwD;iBACzD,CAAC,CAAC;QACL,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IACpC,CAAC;IAEQ,OAAO;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAA0B;QAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE;YAClD,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,wBAAwB;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAe,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,GAAG,IAAI,sBAAsB,KAAK,CAAC,OAAO,8CAA8C,CAAC;YACzG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,QAAyB,EAAE;QACzC,OAAO,IAAI,gBAAgB,CACzB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAC1C,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,QAA0B,EAAE;QAC3C,OAAO,IAAI,iBAAiB,CAC1B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAC1C,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,8FAA8F;IAE9F,kBAAkB,CAAC,OAMlB;QACC,MAAM,kBAAkB,GAAG,OAAO,CAAC,YAA4B,CAAC;QAChE,MAAM,uBAAuB,GAAG,OAAO,CAAC,iBAAiC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC5B,kBAAkB,CAAC,MAAM,EACzB,OAAO,CAAC,YAAY,IAAI,CAAC,EACzB,uBAAuB,CAAC,MAAM,EAC9B,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAC9B,OAAO,CAAC,IAAI,IAAI,CAAC,CAClB,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAmC;QACrD,MAAM,kBAAkB,GAAG,OAAO,CAAC,YAA4B,CAAC;QAChE,MAAM,wBAAwB,GAAG,OAAO,CAAC,kBAAmC,CAAC;QAC7E,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAC7B;YACE,MAAM,EAAE,kBAAkB,CAAC,MAAM;YACjC,MAAM,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YAC/B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,EACD;YACE,OAAO,EAAE,wBAAwB,CAAC,MAAM;YACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,MAAM,EAAE;gBACN,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;gBACrB,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;aACtB;YACD,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,EACD;YACE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAClB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YACnB,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;SAChC,CACF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,OAAmC;QACrD,MAAM,EACJ,aAAa,EACb,iBAAiB,EACjB,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,UAAU,GAAG,CAAC,EACd,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACP,GAAG,OAAO,CAAC;QACZ,MAAM,mBAAmB,GAAG,aAA8B,CAAC;QAC3D,mBAAmB,CAAC,YAAY,CAC9B,IAAI,CAAC,MAAM,EACX;YACE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,KAAK;YACL,MAAM;YACN,kBAAkB;YAClB,QAAQ;YACR,MAAM;YACN,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,EACD,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,OAAoC;QACvD,MAAM,mBAAmB,GAAG,OAAO,CAAC,aAA8B,CAAC;QACnE,MAAM,wBAAwB,GAAG,OAAO,CAAC,kBAAmC,CAAC;QAC7E,MAAM,YAAY,GAAG,mBAAmB,CAAC,4BAA4B,CAAC;YACpE,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;SAChC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAC9B;YACE,OAAO,EAAE,mBAAmB,CAAC,MAAM;YACnC,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,MAAM,EAAE;gBACN,CAAC,EAAE,YAAY,CAAC,CAAC;gBACjB,CAAC,EAAE,YAAY,CAAC,CAAC;gBACjB,CAAC,EAAE,YAAY,CAAC,CAAC;aAClB;YACD,MAAM,EAAE,YAAY,CAAC,MAAM;SAC5B,EACD;YACE,OAAO,EAAE,wBAAwB,CAAC,MAAM;YACxC,QAAQ,EAAE,OAAO,CAAC,mBAAmB,IAAI,CAAC;YAC1C,MAAM,EAAE;gBACN,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtC,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtC,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACvC;YACD,MAAM,EAAE,OAAO,CAAC,iBAAiB,IAAI,YAAY,CAAC,MAAM;SACzD,EACD;YACE,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;SACpD,CACF,CAAC;IACJ,CAAC;IAEQ,cAAc,CAAC,UAAkB;QACxC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEQ,aAAa;QACpB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAEQ,iBAAiB,CAAC,WAAmB;QAC5C,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAEQ,eAAe,CACtB,QAAwB,EACxB,WAAmB,EACnB,OAIC;QAED,MAAM,cAAc,GAAG,QAAQ,CAAC;QAChC,MAAM,YAAY,GAAG,WAA2B,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,eAAe,CACzB,cAAc,CAAC,MAAM,EACrB,OAAO,EAAE,UAAU,IAAI,CAAC,EACxB,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC,EACxE,YAAY,CAAC,MAAM,EACnB,OAAO,EAAE,iBAAiB,IAAI,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,QAAwB,EAAE,UAAkB;QACzD,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QAC9B,MAAM,cAAc,GAClB,IAAI,CAAC,MAGN,CAAC,cAAc,CAAC;QAEjB,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC/C,eAAe,EAAE;gBACf,QAAQ,EAAE,QAAQ,CAAC,MAAM;gBACzB,yBAAyB,EAAE,UAAU;aACtC;SACF,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AAED;;;;;;;;;;;;;;;;GAgBG"}
@@ -1,11 +1,11 @@
1
- import { ComputePass, ComputePassProps, ComputePipeline, Buffer, Binding } from '@luma.gl/core';
1
+ import { ComputePass, ComputePassProps, ComputePipeline, Buffer, Bindings, BindingsByGroup } from '@luma.gl/core';
2
2
  import { WebGPUDevice } from "../webgpu-device.js";
3
3
  import { WebGPUComputePipeline } from "./webgpu-compute-pipeline.js";
4
4
  export declare class WebGPUComputePass extends ComputePass {
5
5
  readonly device: WebGPUDevice;
6
6
  readonly handle: GPUComputePassEncoder;
7
7
  _webgpuPipeline: WebGPUComputePipeline | null;
8
- constructor(device: WebGPUDevice, props?: ComputePassProps);
8
+ constructor(device: WebGPUDevice, props?: ComputePassProps, commandEncoder?: GPUCommandEncoder);
9
9
  /** @note no WebGPU destroy method, just gc */
10
10
  destroy(): void;
11
11
  end(): void;
@@ -14,7 +14,7 @@ export declare class WebGPUComputePass extends ComputePass {
14
14
  * Sets an array of bindings (uniform buffers, samplers, textures, ...)
15
15
  * TODO - still some API confusion - does this method go here or on the pipeline?
16
16
  */
17
- setBindings(bindings: Binding[]): void;
17
+ setBindings(bindings: Bindings | BindingsByGroup): void;
18
18
  /**
19
19
  * Dispatch work to be performed with the current ComputePipeline.
20
20
  * @param x X dimension of the grid of work groups to dispatch.
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-compute-pass.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAE9C,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAGhE,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAQ;gBAEzC,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,gBAAqB;IA2B9D,8CAA8C;IACrC,OAAO,IAAI,IAAI;IAIxB,GAAG,IAAI,IAAI;IAQX,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAO5C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAMtC;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjD;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,kBAAkB,GAAE,MAAU,GAAG,IAAI;IAK9E,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC,aAAa,IAAI,IAAI;IAIrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAG7C"}
1
+ {"version":3,"file":"webgpu-compute-pass.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAE9C,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAGhE,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAEvC,eAAe,EAAE,qBAAqB,GAAG,IAAI,CAAQ;gBAGnD,MAAM,EAAE,YAAY,EACpB,KAAK,GAAE,gBAAqB,EAC5B,cAAc,GAAE,iBAAgD;IA4BlE,8CAA8C;IACrC,OAAO,IAAI,IAAI;IAIxB,GAAG,IAAI,IAAI;IAQX,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAgB5C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI;IAYvD;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjD;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,kBAAkB,GAAE,MAAU,GAAG,IAAI;IAK9E,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC,aAAa,IAAI,IAAI;IAIrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAG7C"}
@@ -1,12 +1,12 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { ComputePass } from '@luma.gl/core';
4
+ import { ComputePass, _getDefaultBindGroupFactory } from '@luma.gl/core';
5
5
  export class WebGPUComputePass extends ComputePass {
6
6
  device;
7
7
  handle;
8
8
  _webgpuPipeline = null;
9
- constructor(device, props = {}) {
9
+ constructor(device, props = {}, commandEncoder = device.commandEncoder.handle) {
10
10
  super(device, props);
11
11
  this.device = device;
12
12
  const { props: computePassProps } = this;
@@ -25,7 +25,7 @@ export class WebGPUComputePass extends ComputePass {
25
25
  }
26
26
  this.handle =
27
27
  this.props.handle ||
28
- device.commandEncoder.handle.beginComputePass({
28
+ commandEncoder.beginComputePass({
29
29
  label: this.props.id,
30
30
  timestampWrites
31
31
  });
@@ -45,16 +45,26 @@ export class WebGPUComputePass extends ComputePass {
45
45
  const wgpuPipeline = pipeline;
46
46
  this.handle.setPipeline(wgpuPipeline.handle);
47
47
  this._webgpuPipeline = wgpuPipeline;
48
- this.setBindings([]);
48
+ const bindGroups = _getDefaultBindGroupFactory(this.device).getBindGroups(this._webgpuPipeline, this._webgpuPipeline._getBindingsByGroupWebGPU(), this._webgpuPipeline._getBindGroupCacheKeysWebGPU());
49
+ for (const [group, bindGroup] of Object.entries(bindGroups)) {
50
+ if (bindGroup) {
51
+ this.handle.setBindGroup(Number(group), bindGroup);
52
+ }
53
+ }
49
54
  }
50
55
  /**
51
56
  * Sets an array of bindings (uniform buffers, samplers, textures, ...)
52
57
  * TODO - still some API confusion - does this method go here or on the pipeline?
53
58
  */
54
59
  setBindings(bindings) {
55
- // @ts-expect-error
56
- const bindGroup = this._webgpuPipeline._getBindGroup();
57
- this.handle.setBindGroup(0, bindGroup);
60
+ const bindGroups = (this._webgpuPipeline &&
61
+ _getDefaultBindGroupFactory(this.device).getBindGroups(this._webgpuPipeline, bindings)) ||
62
+ {};
63
+ for (const [group, bindGroup] of Object.entries(bindGroups)) {
64
+ if (bindGroup) {
65
+ this.handle.setBindGroup(Number(group), bindGroup);
66
+ }
67
+ }
58
68
  }
59
69
  /**
60
70
  * Dispatch work to be performed with the current ComputePipeline.
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-compute-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAqD,MAAM,eAAe,CAAC;AAM9F,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,MAAM,CAAe;IACrB,MAAM,CAAwB;IAEvC,eAAe,GAAiC,IAAI,CAAC;IAErD,YAAY,MAAoB,EAAE,QAA0B,EAAE;QAC5D,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,EAAC,KAAK,EAAE,gBAAgB,EAAC,GAAG,IAAI,CAAC;QAEvC,iBAAiB;QACjB,IAAI,eAA0D,CAAC;QAC/D,IAAI,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,gBAAgB,CAAC,iBAAmC,CAAC;YAC5E,IAAI,cAAc,EAAE,CAAC;gBACnB,cAAc,CAAC,kBAAkB,EAAE,CAAC;gBACpC,eAAe,GAAG;oBAChB,QAAQ,EAAE,cAAc,CAAC,MAAM;oBAC/B,yBAAyB,EAAE,gBAAgB,CAAC,mBAAmB;oBAC/D,mBAAmB,EAAE,gBAAgB,CAAC,iBAAiB;iBACxD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC;oBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACpB,eAAe;iBAChB,CAAC,CAAC;IACP,CAAC;IAED,8CAA8C;IACrC,OAAO;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,GAAG;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,QAAyB;QACnC,MAAM,YAAY,GAAG,QAAiC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAmB;QAC7B,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAU,EAAE,CAAU;QACxC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,cAAsB,EAAE,qBAA6B,CAAC;QACrE,MAAM,YAAY,GAAG,cAA8B,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACnC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"webgpu-compute-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"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"}