@luma.gl/webgpu 9.1.5 → 9.1.6

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.
@@ -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;AAMpF;;;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,SAAS,EACjB,eAAe,EAAE,kBAAkB,EACnC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAMd;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,GAClB,kBAAkB,GAAG,IAAI,CAS3B"}
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;AAMpF;;;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,SAAS,EACjB,eAAe,EAAE,kBAAkB,EACnC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAMd;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,GAClB,kBAAkB,GAAG,IAAI,CAU3B"}
@@ -24,7 +24,8 @@ export function getBindGroup(device, bindGroupLayout, shaderLayout, bindings) {
24
24
  });
25
25
  }
26
26
  export function getShaderLayoutBinding(shaderLayout, bindingName) {
27
- const bindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName || `${binding.name}uniforms` === bindingName.toLocaleLowerCase());
27
+ const bindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName ||
28
+ `${binding.name.toLocaleLowerCase()}uniforms` === bindingName.toLocaleLowerCase());
28
29
  if (!bindingLayout) {
29
30
  log.warn(`Binding ${bindingName} not set: Not found in shader layout.`)();
30
31
  }
@@ -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":"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"}
@@ -0,0 +1,10 @@
1
+ import { PipelineLayout, PipelineLayoutProps } from '@luma.gl/core';
2
+ import { WebGPUDevice } from "../webgpu-device.js";
3
+ export declare class WebGPUPipelineLayout extends PipelineLayout {
4
+ device: WebGPUDevice;
5
+ handle: GPUPipelineLayout;
6
+ constructor(device: WebGPUDevice, props: PipelineLayoutProps);
7
+ destroy(): void;
8
+ protected mapShaderLayoutToBindGroupEntries(): GPUBindGroupLayoutEntry[];
9
+ }
10
+ //# sourceMappingURL=webgpu-pipeline-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-pipeline-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-pipeline-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EAGpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAI9C,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;gBAEd,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IAqBnD,OAAO,IAAI,IAAI;IAMxB,SAAS,CAAC,iCAAiC,IAAI,uBAAuB,EAAE;CA6EzE"}
@@ -0,0 +1,101 @@
1
+ import { PipelineLayout } from '@luma.gl/core';
2
+ const VISIBILITY_ALL = GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT | GPUShaderStage.COMPUTE;
3
+ export class WebGPUPipelineLayout extends PipelineLayout {
4
+ device;
5
+ handle;
6
+ constructor(device, props) {
7
+ super(device, props);
8
+ this.device = device;
9
+ const bindGroupEntries = this.mapShaderLayoutToBindGroupEntries();
10
+ this.handle = this.device.handle.createPipelineLayout({
11
+ label: props?.id ?? 'unnamed-pipeline-layout',
12
+ bindGroupLayouts: [
13
+ // TODO (kaapp): We can cache these to re-use them across
14
+ // layers, particularly if using a separate group for injected
15
+ // bindings (e.g. project/lighting)
16
+ this.device.handle.createBindGroupLayout({
17
+ label: 'bind-group-layout',
18
+ entries: bindGroupEntries
19
+ })
20
+ ]
21
+ });
22
+ }
23
+ destroy() {
24
+ // WebGPUPipelineLayout has no destroy method.
25
+ // @ts-expect-error
26
+ this.handle = null;
27
+ }
28
+ mapShaderLayoutToBindGroupEntries() {
29
+ // Set up the pipeline layout
30
+ // TODO (kaapp): This only supports the first group, but so does the rest of the code
31
+ const bindGroupEntries = [];
32
+ for (let i = 0; i < this.props.shaderLayout.bindings.length; i++) {
33
+ const binding = this.props.shaderLayout.bindings[i];
34
+ const bindingTypeInfo = {};
35
+ switch (binding.type) {
36
+ case 'uniform': {
37
+ bindingTypeInfo.buffer = {
38
+ type: 'uniform',
39
+ hasDynamicOffset: binding.hasDynamicOffset,
40
+ minBindingSize: binding.minBindingSize
41
+ };
42
+ break;
43
+ }
44
+ case 'read-only-storage': {
45
+ bindingTypeInfo.buffer = {
46
+ type: 'read-only-storage',
47
+ hasDynamicOffset: binding.hasDynamicOffset,
48
+ minBindingSize: binding.minBindingSize
49
+ };
50
+ break;
51
+ }
52
+ case 'sampler': {
53
+ bindingTypeInfo.sampler = {
54
+ type: binding.samplerType
55
+ };
56
+ break;
57
+ }
58
+ case 'storage': {
59
+ if (isStorageTextureBindingLayout(binding)) {
60
+ bindingTypeInfo.storageTexture = {
61
+ // TODO (kaapp): Not all formats in the binding layout are supported
62
+ // by WebGPU, but at least it will provide a clear error for now.
63
+ format: binding.format,
64
+ access: binding.access,
65
+ viewDimension: binding.viewDimension
66
+ };
67
+ }
68
+ else {
69
+ bindingTypeInfo.buffer = {
70
+ type: 'storage',
71
+ hasDynamicOffset: binding.hasDynamicOffset,
72
+ minBindingSize: binding.minBindingSize
73
+ };
74
+ }
75
+ break;
76
+ }
77
+ case 'texture': {
78
+ bindingTypeInfo.texture = {
79
+ multisampled: binding.multisampled,
80
+ sampleType: binding.sampleType,
81
+ viewDimension: binding.viewDimension
82
+ };
83
+ break;
84
+ }
85
+ default: {
86
+ console.warn('unhandled binding type when creating pipeline descriptor');
87
+ }
88
+ }
89
+ bindGroupEntries.push({
90
+ binding: binding.location,
91
+ visibility: binding.visibility || VISIBILITY_ALL,
92
+ ...bindingTypeInfo
93
+ });
94
+ }
95
+ return bindGroupEntries;
96
+ }
97
+ }
98
+ const isStorageTextureBindingLayout = (maybe) => {
99
+ return maybe.format !== undefined;
100
+ };
101
+ //# sourceMappingURL=webgpu-pipeline-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-pipeline-layout.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-pipeline-layout.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAM,MAAM,eAAe,CAAC;AASvE,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAEnD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAKlD,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IA2BnD,OAAO,IAAI,IAAI;IAMxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,kDAAkD;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IA6CX,iDAAiD;IACjD,aAAa;IAiBb;;OAEG;IACH,SAAS,CAAC,4BAA4B;CA2CvC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCE"}
1
+ {"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAM,MAAM,eAAe,CAAC;AASvE,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAEnD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAKlD,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IA2BnD,OAAO,IAAI,IAAI;IAMxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,kDAAkD;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IA6CX,iDAAiD;IACjD,aAAa;IAiBb;;OAEG;IACH,SAAS,CAAC,4BAA4B;CA+CvC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCE"}
@@ -116,6 +116,9 @@ export class WebGPURenderPipeline extends RenderPipeline {
116
116
  }
117
117
  ]
118
118
  };
119
+ const layout = this.device.createPipelineLayout({
120
+ shaderLayout: this.shaderLayout
121
+ });
119
122
  // Create a partially populated descriptor
120
123
  const descriptor = {
121
124
  vertex,
@@ -123,7 +126,7 @@ export class WebGPURenderPipeline extends RenderPipeline {
123
126
  primitive: {
124
127
  topology: this.props.topology
125
128
  },
126
- layout: 'auto'
129
+ layout: layout.handle
127
130
  };
128
131
  if (this.props.parameters.depthWriteEnabled && this.props.parameters.depthCompare) {
129
132
  descriptor.depthStencil = {
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAGtB,OAAO,EAAC,cAAc,EAAuB,GAAG,EAAC,MAAM,eAAe,CAAC;AACvE,OAAO,EAAC,yCAAyC,EAAC,wCAAqC;AACvF,OAAO,EAAC,sBAAsB,EAAC,6CAA0C;AACzE,OAAO,EAAC,YAAY,EAAC,qCAAkC;AACvD,OAAO,EAAC,qBAAqB,EAAC,+CAA4C;AAU1E,kBAAkB;AAElB,2DAA2D;AAC3D,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD,MAAM,CAAe;IACrB,MAAM,CAAoB;IAE1B,EAAE,CAAe;IACjB,EAAE,GAAwB,IAAI,CAAC;IAE/B,4CAA4C;IACpC,SAAS,CAA0B;IACnC,gBAAgB,GAA8B,IAAI,CAAC;IACnD,UAAU,GAAwB,IAAI,CAAC;IAE/C,YAAY,MAAoB,EAAE,KAA0B;QAC1D,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAA2B,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACvD,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,4BAA4B,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAElB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,KAAsB,EAAE,EAAE;gBACjE,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,uBAAuB,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;gBAC3F,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAElC,wCAAwC;QACxC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAkB,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAkB,CAAC;QAEnC,IAAI,CAAC,SAAS,GAAG,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAC,CAAC;IAC5C,CAAC;IAEQ,OAAO;QACd,8CAA8C;QAC9C,mBAAmB;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,QAAiC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAClD,IAAI,CAAC,OAUJ;QACC,MAAM,gBAAgB,GAAG,OAAO,CAAC,UAA8B,CAAC;QAEhE,eAAe;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAChD,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,KAAsB,EAAE,EAAE;YACjE,IAAI,KAAK,EAAE,CAAC;gBACV,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,0BAA0B,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,IAAI,SAAS,EAAE,CAAC;YACd,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,iBAAiB;QACjB,0DAA0D;QAC1D,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEzD,OAAO;QACP,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,gBAAgB,CAAC,MAAM,CAAC,WAAW,CACjC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,CACtB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAC1B,OAAO,CAAC,WAAW,IAAI,CAAC,EACxB,OAAO,CAAC,aAAa,IAAI,CAAC,EAAE,8BAA8B;YAC1D,OAAO,CAAC,aAAa,CACtB,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IACjD,aAAa;QACX,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8GAA8G;QAC9G,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAEnF,sBAAsB;QACtB,mEAAmE;QACnE,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,UAAU;gBACf,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7F,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACO,4BAA4B;QACpC,0BAA0B;QAC1B,MAAM,MAAM,GAAmB;YAC7B,MAAM,EAAG,IAAI,CAAC,KAAK,CAAC,EAAmB,CAAC,MAAM;YAC9C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,MAAM;YACjD,OAAO,EAAE,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;SAC3E,CAAC;QAEF,4BAA4B;QAC5B,MAAM,QAAQ,GAAqB;YACjC,MAAM,EAAG,IAAI,CAAC,KAAK,CAAC,EAAmB,CAAC,MAAM;YAC9C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,MAAM;YACnD,OAAO,EAAE;gBACP;oBACE,8BAA8B;oBAC9B,MAAM,EAAE,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC;iBACtE;aACF;SACF,CAAC;QAEF,0CAA0C;QAC1C,MAAM,UAAU,GAAgC;YAC9C,MAAM;YACN,QAAQ;YACR,SAAS,EAAE;gBACT,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;aAC9B;YACD,MAAM,EAAE,MAAM;SACf,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAClF,UAAU,CAAC,YAAY,GAAG;gBACxB,MAAM,EAAE,aAAa;gBACrB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY;aACjD,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,yCAAyC,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE7E,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCE"}
1
+ {"version":3,"file":"webgpu-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DeviceInfo, DeviceLimits, DeviceTextureFormatCapabilities, CanvasContextProps, BufferProps, SamplerProps, ShaderProps, Texture, TextureProps, ExternalTextureProps, FramebufferProps, RenderPipelineProps, ComputePipelineProps, RenderPassProps, ComputePassProps, VertexArrayProps, TransformFeedback, TransformFeedbackProps, QuerySet, QuerySetProps, DeviceProps } from '@luma.gl/core';
1
+ import type { DeviceInfo, DeviceLimits, DeviceTextureFormatCapabilities, CanvasContextProps, BufferProps, SamplerProps, ShaderProps, Texture, TextureProps, ExternalTextureProps, FramebufferProps, RenderPipelineProps, ComputePipelineProps, RenderPassProps, ComputePassProps, VertexArrayProps, TransformFeedback, TransformFeedbackProps, QuerySet, QuerySetProps, DeviceProps, PipelineLayoutProps } from '@luma.gl/core';
2
2
  import { Device, DeviceFeatures } from '@luma.gl/core';
3
3
  import { WebGPUBuffer } from "./resources/webgpu-buffer.js";
4
4
  import { WebGPUTexture } from "./resources/webgpu-texture.js";
@@ -12,6 +12,7 @@ import { WebGPURenderPass } from "./resources/webgpu-render-pass.js";
12
12
  import { WebGPUComputePass } from "./resources/webgpu-compute-pass.js";
13
13
  import { WebGPUVertexArray } from "./resources/webgpu-vertex-array.js";
14
14
  import { WebGPUCanvasContext } from "./webgpu-canvas-context.js";
15
+ import { WebGPUPipelineLayout } from "./resources/webgpu-pipeline-layout.js";
15
16
  /** WebGPU Device implementation */
16
17
  export declare class WebGPUDevice extends Device {
17
18
  /** type of this device */
@@ -52,6 +53,7 @@ export declare class WebGPUDevice extends Device {
52
53
  createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;
53
54
  createQuerySet(props: QuerySetProps): QuerySet;
54
55
  createCanvasContext(props: CanvasContextProps): WebGPUCanvasContext;
56
+ createPipelineLayout(props: PipelineLayoutProps): WebGPUPipelineLayout;
55
57
  submit(): void;
56
58
  protected _getInfo(): DeviceInfo;
57
59
  protected _getFeatures(): DeviceFeatures;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EAEZ,+BAA+B,EAC/B,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAEhB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,MAAM,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,qCAAkC;AACvD,OAAO,EAAC,aAAa,EAAC,sCAAmC;AACzD,OAAO,EAAC,qBAAqB,EAAC,+CAA4C;AAC1E,OAAO,EAAC,aAAa,EAAC,sCAAmC;AACzD,OAAO,EAAC,YAAY,EAAC,qCAAkC;AACvD,OAAO,EAAC,oBAAoB,EAAC,8CAA2C;AACxE,OAAO,EAAC,iBAAiB,EAAC,0CAAuC;AACjE,OAAO,EAAC,qBAAqB,EAAC,+CAA4C;AAC1E,OAAO,EAAC,gBAAgB,EAAC,0CAAuC;AAChE,OAAO,EAAC,iBAAiB,EAAC,2CAAwC;AAElE,OAAO,EAAC,iBAAiB,EAAC,2CAAwC;AAElE,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAG5D,mCAAmC;AACnC,qBAAa,YAAa,SAAQ,MAAM;IACtC,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,YAAY;IAEzB,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAE3B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAE7B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IAErC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC/D,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAEjD,OAAO,CAAC,OAAO,CAAkB;IACjC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IAChD,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;gBAGzC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,cAAc;IA2C7B,OAAO,IAAI,IAAI;IAIf,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,YAAY;IAK9E,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa;IAIjD,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB;IAIzE,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY;IAI9C,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa;IAIjD,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAItE,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAI7D,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,qBAAqB;IAIzE,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAM7D;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB;IAKzD,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAS5D,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,iBAAiB;IAIhE,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ;IAIvD,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB;IAInE,MAAM,IAAI,IAAI;IAgBd,SAAS,CAAC,QAAQ,IAAI,UAAU;IA2BhC,SAAS,CAAC,YAAY,IAAI,cAAc;IAiC/B,2CAA2C,CAClD,YAAY,EAAE,+BAA+B,GAC5C,+BAA+B;IAWlC,0BAA0B,CAAC,OAAO,EAAE;QAClC,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAC/C,UAAU,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;QACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAE7B,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,eAAe,CAAC;QAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;CAyCT"}
1
+ {"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { WebGPUComputePass } from "./resources/webgpu-compute-pass.js";
16
16
  import { WebGPUVertexArray } from "./resources/webgpu-vertex-array.js";
17
17
  import { WebGPUCanvasContext } from "./webgpu-canvas-context.js";
18
18
  import { WebGPUQuerySet } from "./resources/webgpu-query-set.js";
19
+ import { WebGPUPipelineLayout } from "./resources/webgpu-pipeline-layout.js";
19
20
  /** WebGPU Device implementation */
20
21
  export class WebGPUDevice extends Device {
21
22
  /** type of this device */
@@ -128,6 +129,9 @@ export class WebGPUDevice extends Device {
128
129
  createCanvasContext(props) {
129
130
  return new WebGPUCanvasContext(this, this.adapter, props);
130
131
  }
132
+ createPipelineLayout(props) {
133
+ return new WebGPUPipelineLayout(this, props);
134
+ }
131
135
  submit() {
132
136
  const commandBuffer = this.commandEncoder?.finish();
133
137
  if (commandBuffer) {
@@ -139,7 +143,6 @@ export class WebGPUDevice extends Device {
139
143
  }
140
144
  });
141
145
  }
142
- this.commandEncoder = null;
143
146
  }
144
147
  // PRIVATE METHODS
145
148
  _getInfo() {
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-device.js","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-device.js","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
package/dist/dist.dev.js CHANGED
@@ -57,10 +57,10 @@ var __exports__ = (() => {
57
57
  __reExport(bundle_exports, __toESM(require_core(), 1));
58
58
 
59
59
  // src/adapter/webgpu-adapter.ts
60
- var import_core19 = __toESM(require_core(), 1);
60
+ var import_core20 = __toESM(require_core(), 1);
61
61
 
62
62
  // src/adapter/webgpu-device.ts
63
- var import_core18 = __toESM(require_core(), 1);
63
+ var import_core19 = __toESM(require_core(), 1);
64
64
 
65
65
  // src/adapter/resources/webgpu-buffer.ts
66
66
  var import_core = __toESM(require_core(), 1);
@@ -692,7 +692,7 @@ var __exports__ = (() => {
692
692
  }
693
693
  function getShaderLayoutBinding(shaderLayout, bindingName) {
694
694
  const bindingLayout = shaderLayout.bindings.find(
695
- (binding) => binding.name === bindingName || `${binding.name}uniforms` === bindingName.toLocaleLowerCase()
695
+ (binding) => binding.name === bindingName || `${binding.name.toLocaleLowerCase()}uniforms` === bindingName.toLocaleLowerCase()
696
696
  );
697
697
  if (!bindingLayout) {
698
698
  import_core8.log.warn(`Binding ${bindingName} not set: Not found in shader layout.`)();
@@ -928,13 +928,16 @@ var __exports__ = (() => {
928
928
  }
929
929
  ]
930
930
  };
931
+ const layout = this.device.createPipelineLayout({
932
+ shaderLayout: this.shaderLayout
933
+ });
931
934
  const descriptor = {
932
935
  vertex,
933
936
  fragment,
934
937
  primitive: {
935
938
  topology: this.props.topology
936
939
  },
937
- layout: "auto"
940
+ layout: layout.handle
938
941
  };
939
942
  if (this.props.parameters.depthWriteEnabled && this.props.parameters.depthCompare) {
940
943
  descriptor.depthStencil = {
@@ -1481,8 +1484,105 @@ var __exports__ = (() => {
1481
1484
  }
1482
1485
  };
1483
1486
 
1487
+ // src/adapter/resources/webgpu-pipeline-layout.ts
1488
+ var import_core18 = __toESM(require_core(), 1);
1489
+ var VISIBILITY_ALL = GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT | GPUShaderStage.COMPUTE;
1490
+ var WebGPUPipelineLayout = class extends import_core18.PipelineLayout {
1491
+ device;
1492
+ handle;
1493
+ constructor(device, props) {
1494
+ super(device, props);
1495
+ this.device = device;
1496
+ const bindGroupEntries = this.mapShaderLayoutToBindGroupEntries();
1497
+ this.handle = this.device.handle.createPipelineLayout({
1498
+ label: props?.id ?? "unnamed-pipeline-layout",
1499
+ bindGroupLayouts: [
1500
+ // TODO (kaapp): We can cache these to re-use them across
1501
+ // layers, particularly if using a separate group for injected
1502
+ // bindings (e.g. project/lighting)
1503
+ this.device.handle.createBindGroupLayout({
1504
+ label: "bind-group-layout",
1505
+ entries: bindGroupEntries
1506
+ })
1507
+ ]
1508
+ });
1509
+ }
1510
+ destroy() {
1511
+ this.handle = null;
1512
+ }
1513
+ mapShaderLayoutToBindGroupEntries() {
1514
+ const bindGroupEntries = [];
1515
+ for (let i = 0; i < this.props.shaderLayout.bindings.length; i++) {
1516
+ const binding = this.props.shaderLayout.bindings[i];
1517
+ const bindingTypeInfo = {};
1518
+ switch (binding.type) {
1519
+ case "uniform": {
1520
+ bindingTypeInfo.buffer = {
1521
+ type: "uniform",
1522
+ hasDynamicOffset: binding.hasDynamicOffset,
1523
+ minBindingSize: binding.minBindingSize
1524
+ };
1525
+ break;
1526
+ }
1527
+ case "read-only-storage": {
1528
+ bindingTypeInfo.buffer = {
1529
+ type: "read-only-storage",
1530
+ hasDynamicOffset: binding.hasDynamicOffset,
1531
+ minBindingSize: binding.minBindingSize
1532
+ };
1533
+ break;
1534
+ }
1535
+ case "sampler": {
1536
+ bindingTypeInfo.sampler = {
1537
+ type: binding.samplerType
1538
+ };
1539
+ break;
1540
+ }
1541
+ case "storage": {
1542
+ if (isStorageTextureBindingLayout(binding)) {
1543
+ bindingTypeInfo.storageTexture = {
1544
+ // TODO (kaapp): Not all formats in the binding layout are supported
1545
+ // by WebGPU, but at least it will provide a clear error for now.
1546
+ format: binding.format,
1547
+ access: binding.access,
1548
+ viewDimension: binding.viewDimension
1549
+ };
1550
+ } else {
1551
+ bindingTypeInfo.buffer = {
1552
+ type: "storage",
1553
+ hasDynamicOffset: binding.hasDynamicOffset,
1554
+ minBindingSize: binding.minBindingSize
1555
+ };
1556
+ }
1557
+ break;
1558
+ }
1559
+ case "texture": {
1560
+ bindingTypeInfo.texture = {
1561
+ multisampled: binding.multisampled,
1562
+ sampleType: binding.sampleType,
1563
+ viewDimension: binding.viewDimension
1564
+ };
1565
+ break;
1566
+ }
1567
+ default: {
1568
+ console.warn("unhandled binding type when creating pipeline descriptor");
1569
+ }
1570
+ }
1571
+ bindGroupEntries.push({
1572
+ binding: binding.location,
1573
+ visibility: binding.visibility || VISIBILITY_ALL,
1574
+ ...bindingTypeInfo
1575
+ });
1576
+ }
1577
+ return bindGroupEntries;
1578
+ }
1579
+ };
1580
+ var isStorageTextureBindingLayout = (maybe) => {
1581
+ return maybe.format !== void 0;
1582
+ };
1583
+
1484
1584
  // src/adapter/webgpu-device.ts
1485
- var WebGPUDevice = class extends import_core18.Device {
1585
+ var WebGPUDevice = class extends import_core19.Device {
1486
1586
  /** type of this device */
1487
1587
  type = "webgpu";
1488
1588
  /** The underlying WebGPU device */
@@ -1520,7 +1620,7 @@ var __exports__ = (() => {
1520
1620
  this._isLost = true;
1521
1621
  resolve({ reason: "destroyed", message: lostInfo.message });
1522
1622
  });
1523
- const canvasContextProps = import_core18.Device._getCanvasContextProps(props);
1623
+ const canvasContextProps = import_core19.Device._getCanvasContextProps(props);
1524
1624
  if (canvasContextProps) {
1525
1625
  this.canvasContext = new WebGPUCanvasContext(this, this.adapter, canvasContextProps);
1526
1626
  }
@@ -1588,6 +1688,9 @@ var __exports__ = (() => {
1588
1688
  createCanvasContext(props) {
1589
1689
  return new WebGPUCanvasContext(this, this.adapter, props);
1590
1690
  }
1691
+ createPipelineLayout(props) {
1692
+ return new WebGPUPipelineLayout(this, props);
1693
+ }
1591
1694
  submit() {
1592
1695
  const commandBuffer = this.commandEncoder?.finish();
1593
1696
  if (commandBuffer) {
@@ -1599,7 +1702,6 @@ var __exports__ = (() => {
1599
1702
  }
1600
1703
  });
1601
1704
  }
1602
- this.commandEncoder = null;
1603
1705
  }
1604
1706
  // PRIVATE METHODS
1605
1707
  _getInfo() {
@@ -1645,7 +1747,7 @@ var __exports__ = (() => {
1645
1747
  for (const feature of WEBGPU_ALWAYS_FEATURES) {
1646
1748
  features.add(feature);
1647
1749
  }
1648
- return new import_core18.DeviceFeatures(Array.from(features), this.props._disabledFeatures);
1750
+ return new import_core19.DeviceFeatures(Array.from(features), this.props._disabledFeatures);
1649
1751
  }
1650
1752
  _getDeviceSpecificTextureFormatCapabilities(capabilities) {
1651
1753
  const { format } = capabilities;
@@ -1697,7 +1799,7 @@ var __exports__ = (() => {
1697
1799
  };
1698
1800
 
1699
1801
  // src/adapter/webgpu-adapter.ts
1700
- var WebGPUAdapter = class extends import_core19.Adapter {
1802
+ var WebGPUAdapter = class extends import_core20.Adapter {
1701
1803
  /** type of device's created by this adapter */
1702
1804
  type = "webgpu";
1703
1805
  constructor() {
@@ -1714,7 +1816,7 @@ var __exports__ = (() => {
1714
1816
  "WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu"
1715
1817
  );
1716
1818
  }
1717
- import_core19.log.groupCollapsed(1, "WebGPUDevice created")();
1819
+ import_core20.log.groupCollapsed(1, "WebGPUDevice created")();
1718
1820
  const adapter = await navigator.gpu.requestAdapter({
1719
1821
  powerPreference: "high-performance"
1720
1822
  // forceSoftware: false
@@ -1724,7 +1826,7 @@ var __exports__ = (() => {
1724
1826
  }
1725
1827
  const adapterInfo = adapter.info || // @ts-ignore Chrome has removed this function
1726
1828
  await adapter.requestAdapterInfo?.();
1727
- import_core19.log.probe(2, "Adapter available", adapterInfo)();
1829
+ import_core20.log.probe(2, "Adapter available", adapterInfo)();
1728
1830
  const requiredFeatures = [];
1729
1831
  const requiredLimits = {};
1730
1832
  if (props._requestMaxLimits) {
@@ -1744,14 +1846,14 @@ var __exports__ = (() => {
1744
1846
  requiredFeatures,
1745
1847
  requiredLimits
1746
1848
  });
1747
- import_core19.log.probe(1, "GPUDevice available")();
1849
+ import_core20.log.probe(1, "GPUDevice available")();
1748
1850
  const device = new WebGPUDevice(props, gpuDevice, adapter, adapterInfo);
1749
- import_core19.log.probe(
1851
+ import_core20.log.probe(
1750
1852
  1,
1751
1853
  "Device created. For more info, set chrome://flags/#enable-webgpu-developer-features"
1752
1854
  )();
1753
- import_core19.log.table(1, device.info)();
1754
- import_core19.log.groupEnd(1)();
1855
+ import_core20.log.table(1, device.info)();
1856
+ import_core20.log.groupEnd(1)();
1755
1857
  return device;
1756
1858
  }
1757
1859
  async attach(handle) {