@luma.gl/webgpu 9.2.5 → 9.3.0-alpha.2

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 (39) hide show
  1. package/dist/adapter/resources/webgpu-fence.d.ts +13 -0
  2. package/dist/adapter/resources/webgpu-fence.d.ts.map +1 -0
  3. package/dist/adapter/resources/webgpu-fence.js +25 -0
  4. package/dist/adapter/resources/webgpu-fence.js.map +1 -0
  5. package/dist/adapter/resources/webgpu-texture.d.ts +12 -3
  6. package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
  7. package/dist/adapter/resources/webgpu-texture.js +143 -26
  8. package/dist/adapter/resources/webgpu-texture.js.map +1 -1
  9. package/dist/adapter/webgpu-adapter.d.ts.map +1 -1
  10. package/dist/adapter/webgpu-adapter.js +34 -34
  11. package/dist/adapter/webgpu-adapter.js.map +1 -1
  12. package/dist/adapter/webgpu-canvas-context.d.ts +4 -3
  13. package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
  14. package/dist/adapter/webgpu-canvas-context.js +22 -21
  15. package/dist/adapter/webgpu-canvas-context.js.map +1 -1
  16. package/dist/adapter/webgpu-device.d.ts +3 -1
  17. package/dist/adapter/webgpu-device.d.ts.map +1 -1
  18. package/dist/adapter/webgpu-device.js +14 -3
  19. package/dist/adapter/webgpu-device.js.map +1 -1
  20. package/dist/dist.dev.js +6438 -274
  21. package/dist/dist.min.js +10 -6
  22. package/dist/index.cjs +347 -86
  23. package/dist/index.cjs.map +4 -4
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/wgsl/get-shader-layout-wgsl.d.ts +8 -0
  29. package/dist/wgsl/get-shader-layout-wgsl.d.ts.map +1 -0
  30. package/dist/wgsl/get-shader-layout-wgsl.js +136 -0
  31. package/dist/wgsl/get-shader-layout-wgsl.js.map +1 -0
  32. package/package.json +5 -4
  33. package/src/adapter/resources/webgpu-fence.ts +30 -0
  34. package/src/adapter/resources/webgpu-texture.ts +202 -88
  35. package/src/adapter/webgpu-adapter.ts +40 -42
  36. package/src/adapter/webgpu-canvas-context.ts +25 -23
  37. package/src/adapter/webgpu-device.ts +19 -4
  38. package/src/index.ts +3 -0
  39. package/src/wgsl/get-shader-layout-wgsl.ts +156 -0
@@ -0,0 +1,13 @@
1
+ import { Fence, type FenceProps } from '@luma.gl/core';
2
+ import { WebGPUDevice } from "../webgpu-device.js";
3
+ /** WebGPU fence implemented by waiting for submitted work */
4
+ export declare class WebGPUFence extends Fence {
5
+ readonly device: WebGPUDevice;
6
+ readonly handle: null;
7
+ readonly signaled: Promise<void>;
8
+ private _signaled;
9
+ constructor(device: WebGPUDevice, props?: FenceProps);
10
+ isSignaled(): boolean;
11
+ destroy(): void;
12
+ }
13
+ //# sourceMappingURL=webgpu-fence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-fence.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-fence.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAE,KAAK,UAAU,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAE9C,6DAA6D;AAC7D,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAQ;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,UAAe;IAQxD,UAAU,IAAI,OAAO;IAIZ,OAAO,IAAI,IAAI;CAGzB"}
@@ -0,0 +1,25 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { Fence } from '@luma.gl/core';
5
+ /** WebGPU fence implemented by waiting for submitted work */
6
+ export class WebGPUFence extends Fence {
7
+ device;
8
+ handle = null;
9
+ signaled;
10
+ _signaled = false;
11
+ constructor(device, props = {}) {
12
+ super(device, {});
13
+ this.device = device;
14
+ this.signaled = device.handle.queue.onSubmittedWorkDone().then(() => {
15
+ this._signaled = true;
16
+ });
17
+ }
18
+ isSignaled() {
19
+ return this._signaled;
20
+ }
21
+ destroy() {
22
+ // Nothing to release for WebGPU fence
23
+ }
24
+ }
25
+ //# sourceMappingURL=webgpu-fence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgpu-fence.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-fence.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,KAAK,EAAkB,MAAM,eAAe,CAAC;AAGrD,6DAA6D;AAC7D,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,MAAM,CAAe;IACrB,MAAM,GAAS,IAAI,CAAC;IACpB,QAAQ,CAAgB;IACzB,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,MAAoB,EAAE,QAAoB,EAAE;QACtD,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAClE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEQ,OAAO;QACd,sCAAsC;IACxC,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
- import type { TextureProps, TextureViewProps, CopyExternalImageOptions, CopyImageDataOptions } from '@luma.gl/core';
2
- import { Texture } from '@luma.gl/core';
1
+ import { type TextureProps, type TextureViewProps, type CopyExternalImageOptions, type CopyImageDataOptions, type TextureReadOptions, type TextureWriteOptions, Buffer, Texture } from '@luma.gl/core';
3
2
  import type { WebGPUDevice } from "../webgpu-device.js";
4
3
  import { WebGPUSampler } from "./webgpu-sampler.js";
5
4
  import { WebGPUTextureView } from "./webgpu-texture-view.js";
5
+ /** WebGPU implementation of the luma.gl core Texture resource */
6
6
  export declare class WebGPUTexture extends Texture {
7
7
  readonly device: WebGPUDevice;
8
8
  readonly handle: GPUTexture;
@@ -11,11 +11,20 @@ export declare class WebGPUTexture extends Texture {
11
11
  constructor(device: WebGPUDevice, props: TextureProps);
12
12
  destroy(): void;
13
13
  createView(props: TextureViewProps): WebGPUTextureView;
14
- copyImageData(options_: CopyImageDataOptions): void;
15
14
  copyExternalImage(options_: CopyExternalImageOptions): {
16
15
  width: number;
17
16
  height: number;
18
17
  };
18
+ copyImageData(options_: CopyImageDataOptions): void;
19
19
  generateMipmapsWebGL(): void;
20
+ getImageDataLayout(options: TextureReadOptions): {
21
+ byteLength: number;
22
+ bytesPerRow: number;
23
+ rowsPerImage: number;
24
+ };
25
+ readBuffer(options?: TextureReadOptions, buffer?: Buffer): Buffer;
26
+ readDataAsync(options?: TextureReadOptions): Promise<ArrayBuffer>;
27
+ writeBuffer(buffer: Buffer, options?: TextureWriteOptions): void;
28
+ writeData(data: ArrayBuffer | ArrayBufferView, options?: TextureWriteOptions): void;
20
29
  }
21
30
  //# sourceMappingURL=webgpu-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EAErB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,OAAO,EAAM,MAAM,eAAe,CAAC;AAG3C,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AACnD,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,qBAAa,aAAc,SAAQ,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;gBAEZ,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IA6D5C,OAAO,IAAI,IAAI;IAMxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAItD,aAAa,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IA+BnD,iBAAiB,CAAC,QAAQ,EAAE,wBAAwB,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAgC7E,oBAAoB,IAAI,IAAI;CAwEtC"}
1
+ {"version":3,"file":"webgpu-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAExB,MAAM,EACN,OAAO,EAGR,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AACnD,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,iEAAiE;AACjE,qBAAa,aAAc,SAAQ,OAAO;IACxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;gBAEZ,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY;IA2D5C,OAAO,IAAI,IAAI;IAMxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAItD,iBAAiB,CAAC,QAAQ,EAAE,wBAAwB,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAgCtF,aAAa,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAgC1C,oBAAoB,IAAI,IAAI;IAIrC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG;QAC/C,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB;IAQQ,UAAU,CAAC,OAAO,GAAE,kBAAuB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAmE/D,aAAa,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAO3E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IA8C7D,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI;CA6CjG"}
@@ -1,18 +1,17 @@
1
- import { Texture, log } from '@luma.gl/core';
1
+ // luma.gl, MIT license
2
+ import { Buffer, Texture, log, textureFormatDecoder } from '@luma.gl/core';
2
3
  import { getWebGPUTextureFormat } from "../helpers/convert-texture-format.js";
3
4
  import { WebGPUSampler } from "./webgpu-sampler.js";
4
5
  import { WebGPUTextureView } from "./webgpu-texture-view.js";
6
+ /** WebGPU implementation of the luma.gl core Texture resource */
5
7
  export class WebGPUTexture extends Texture {
6
8
  device;
7
9
  handle;
8
10
  sampler;
9
11
  view;
10
12
  constructor(device, props) {
11
- super(device, props);
13
+ super(device, props, { byteAlignment: 256 }); // WebGPU requires row width to be a multiple of 256 bytes
12
14
  this.device = device;
13
- if (this.dimension === 'cube') {
14
- this.depth = 6;
15
- }
16
15
  this.device.pushErrorScope('out-of-memory');
17
16
  this.device.pushErrorScope('validation');
18
17
  this.handle =
@@ -42,7 +41,9 @@ export class WebGPUTexture extends Texture {
42
41
  // TODO - Read all properties directly from the supplied handle?
43
42
  if (this.props.handle) {
44
43
  this.handle.label ||= this.id;
44
+ // @ts-expect-error readonly
45
45
  this.width = this.handle.width;
46
+ // @ts-expect-error readonly
46
47
  this.height = this.handle.height;
47
48
  }
48
49
  this.sampler =
@@ -68,6 +69,35 @@ export class WebGPUTexture extends Texture {
68
69
  createView(props) {
69
70
  return new WebGPUTextureView(this.device, { ...props, texture: this });
70
71
  }
72
+ copyExternalImage(options_) {
73
+ const options = this._normalizeCopyExternalImageOptions(options_);
74
+ this.device.pushErrorScope('validation');
75
+ this.device.handle.queue.copyExternalImageToTexture(
76
+ // source: GPUImageCopyExternalImage
77
+ {
78
+ source: options.image,
79
+ origin: [options.sourceX, options.sourceY],
80
+ flipY: false // options.flipY
81
+ },
82
+ // destination: GPUImageCopyTextureTagged
83
+ {
84
+ texture: this.handle,
85
+ origin: [options.x, options.y, options.z],
86
+ mipLevel: options.mipLevel,
87
+ aspect: options.aspect,
88
+ colorSpace: options.colorSpace,
89
+ premultipliedAlpha: options.premultipliedAlpha
90
+ },
91
+ // copySize: GPUExtent3D
92
+ [options.width, options.height, options.depth] // depth is always 1 for 2D textures
93
+ );
94
+ this.device.popErrorScope((error) => {
95
+ this.device.reportError(new Error(`copyExternalImage: ${error.message}`), this)();
96
+ this.device.debug();
97
+ });
98
+ // TODO - should these be clipped to the texture size minus x,y,z?
99
+ return { width: options.width, height: options.height };
100
+ }
71
101
  copyImageData(options_) {
72
102
  const { width, height, depth } = this;
73
103
  const options = this._normalizeCopyImageDataOptions(options_);
@@ -97,36 +127,123 @@ export class WebGPUTexture extends Texture {
97
127
  this.device.debug();
98
128
  });
99
129
  }
100
- copyExternalImage(options_) {
101
- const options = this._normalizeCopyExternalImageOptions(options_);
130
+ generateMipmapsWebGL() {
131
+ log.warn(`${this}: generateMipmaps not supported in WebGPU`)();
132
+ }
133
+ getImageDataLayout(options) {
134
+ return {
135
+ byteLength: 0,
136
+ bytesPerRow: 0,
137
+ rowsPerImage: 0
138
+ };
139
+ }
140
+ readBuffer(options = {}, buffer) {
141
+ const { x = 0, y = 0, z = 0, width = this.width, height = this.height, depthOrArrayLayers = this.depth, mipLevel = 0, aspect = 'all' } = options;
142
+ const layout = this.computeMemoryLayout(options);
143
+ const { bytesPerRow, rowsPerImage, byteLength } = layout;
144
+ // Create a GPUBuffer to hold the copied pixel data.
145
+ const readBuffer = buffer ||
146
+ this.device.createBuffer({
147
+ byteLength,
148
+ usage: Buffer.COPY_DST | Buffer.MAP_READ
149
+ });
150
+ const gpuReadBuffer = readBuffer.handle;
151
+ // Record commands to copy from the texture to the buffer.
152
+ const gpuDevice = this.device.handle;
102
153
  this.device.pushErrorScope('validation');
103
- this.device.handle.queue.copyExternalImageToTexture(
104
- // source: GPUImageCopyExternalImage
154
+ const commandEncoder = gpuDevice.createCommandEncoder();
155
+ commandEncoder.copyTextureToBuffer(
156
+ // source
105
157
  {
106
- source: options.image,
107
- origin: [options.sourceX, options.sourceY],
108
- flipY: options.flipY
158
+ texture: this.handle,
159
+ origin: { x, y, z },
160
+ // origin: [options.x, options.y, 0], // options.depth],
161
+ mipLevel,
162
+ aspect
163
+ // colorSpace: options.colorSpace,
164
+ // premultipliedAlpha: options.premultipliedAlpha
109
165
  },
110
- // destination: GPUImageCopyTextureTagged
166
+ // destination
111
167
  {
112
- texture: this.handle,
113
- origin: [options.x, options.y, 0], // options.depth],
114
- mipLevel: options.mipLevel,
115
- aspect: options.aspect,
116
- colorSpace: options.colorSpace,
117
- premultipliedAlpha: options.premultipliedAlpha
168
+ buffer: gpuReadBuffer,
169
+ offset: 0,
170
+ bytesPerRow,
171
+ rowsPerImage
118
172
  },
119
- // copySize: GPUExtent3D
120
- [options.width, options.height, 1]);
173
+ // copy size
174
+ {
175
+ width,
176
+ height,
177
+ depthOrArrayLayers
178
+ });
179
+ // Submit the command.
180
+ const commandBuffer = commandEncoder.finish();
181
+ this.device.handle.queue.submit([commandBuffer]);
121
182
  this.device.popErrorScope((error) => {
122
- this.device.reportError(new Error(`copyExternalImage: ${error.message}`), this)();
183
+ this.device.reportError(new Error(`${this} readBuffer: ${error.message}`), this)();
123
184
  this.device.debug();
124
185
  });
125
- // TODO - should these be clipped to the texture size minus x,y,z?
126
- return { width: options.width, height: options.height };
186
+ return readBuffer;
127
187
  }
128
- generateMipmapsWebGL() {
129
- log.warn(`${this}: generateMipmaps not supported in WebGPU`)();
188
+ async readDataAsync(options = {}) {
189
+ const buffer = this.readBuffer(options);
190
+ const data = await buffer.readAsync();
191
+ buffer.destroy();
192
+ return data.buffer;
193
+ }
194
+ writeBuffer(buffer, options = {}) {
195
+ const { x = 0, y = 0, z = 0, width = this.width, height = this.height, depthOrArrayLayers = this.depth, mipLevel = 0, aspect = 'all' } = options;
196
+ const layout = this.computeMemoryLayout(options);
197
+ // Get the data on the CPU.
198
+ // await buffer.mapAndReadAsync();
199
+ const { bytesPerRow, rowsPerImage } = layout;
200
+ const gpuDevice = this.device.handle;
201
+ this.device.pushErrorScope('validation');
202
+ const commandEncoder = gpuDevice.createCommandEncoder();
203
+ commandEncoder.copyBufferToTexture({
204
+ buffer: buffer.handle,
205
+ offset: 0,
206
+ bytesPerRow,
207
+ rowsPerImage
208
+ }, {
209
+ texture: this.handle,
210
+ origin: { x, y, z },
211
+ mipLevel,
212
+ aspect
213
+ }, { width, height, depthOrArrayLayers });
214
+ const commandBuffer = commandEncoder.finish();
215
+ this.device.handle.queue.submit([commandBuffer]);
216
+ this.device.popErrorScope((error) => {
217
+ this.device.reportError(new Error(`${this} writeBuffer: ${error.message}`), this)();
218
+ this.device.debug();
219
+ });
220
+ }
221
+ writeData(data, options = {}) {
222
+ const device = this.device;
223
+ const { x = 0, y = 0, z = 0, width = this.width, height = this.height, depthOrArrayLayers = this.depth, mipLevel = 0, aspect = 'all' } = options;
224
+ const layout = textureFormatDecoder.computeMemoryLayout({
225
+ format: this.format,
226
+ width: this.width,
227
+ height: this.height,
228
+ depth: this.depth,
229
+ byteAlignment: this.byteAlignment
230
+ });
231
+ const { bytesPerRow, rowsPerImage } = layout;
232
+ this.device.pushErrorScope('validation');
233
+ device.handle.queue.writeTexture({
234
+ texture: this.handle,
235
+ mipLevel,
236
+ aspect,
237
+ origin: { x, y, z }
238
+ }, data, {
239
+ offset: 0,
240
+ bytesPerRow,
241
+ rowsPerImage
242
+ }, { width, height, depthOrArrayLayers });
243
+ this.device.popErrorScope((error) => {
244
+ this.device.reportError(new Error(`${this} writeData: ${error.message}`), this)();
245
+ this.device.debug();
246
+ });
130
247
  }
131
248
  }
132
249
  //# sourceMappingURL=webgpu-texture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-texture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAM,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAElD,qBAAa,aAAc,SAAQ,OAAO;IACxC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,YAAkC;IAE/C,WAAW,IAAI,OAAO;IAKtB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAalC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAmEjD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;CAGvD;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"webgpu-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-adapter.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAM,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAElD,qBAAa,aAAc,SAAQ,OAAO;IACxC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,YAAkC;IAE/C,WAAW,IAAI,OAAO;IAKtB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAalC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAiEjD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;CAGvD;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -25,42 +25,42 @@ export class WebGPUAdapter extends Adapter {
25
25
  if (!navigator.gpu) {
26
26
  throw new Error('WebGPU not available. Recent Chrome browsers should work.');
27
27
  }
28
- log.groupCollapsed(1, 'WebGPUDevice created')();
29
- try {
30
- const adapter = await navigator.gpu.requestAdapter({
31
- powerPreference: 'high-performance'
32
- // forceSoftware: false
33
- });
34
- if (!adapter) {
35
- throw new Error('Failed to request WebGPU adapter');
36
- }
37
- // Note: adapter.requestAdapterInfo() has been replaced with adapter.info. Fall back in case adapter.info is not available
38
- const adapterInfo = adapter.info ||
39
- // @ts-ignore
40
- (await adapter.requestAdapterInfo?.());
41
- log.probe(2, 'Adapter available', adapterInfo)();
42
- const requiredFeatures = [];
43
- const requiredLimits = {};
44
- if (props._requestMaxLimits) {
45
- // Require all features
46
- requiredFeatures.push(...Array.from(adapter.features));
47
- // Require all limits
48
- // Filter out chrome specific keys (avoid crash)
49
- const limits = Object.keys(adapter.limits).filter(key => !['minSubgroupSize', 'maxSubgroupSize'].includes(key));
50
- for (const key of limits) {
51
- const limit = key;
52
- const value = adapter.limits[limit];
53
- if (typeof value === 'number') {
54
- requiredLimits[limit] = value;
55
- }
28
+ const adapter = await navigator.gpu.requestAdapter({
29
+ powerPreference: 'high-performance'
30
+ // forceSoftware: false
31
+ });
32
+ if (!adapter) {
33
+ throw new Error('Failed to request WebGPU adapter');
34
+ }
35
+ // Note: adapter.requestAdapterInfo() has been replaced with adapter.info. Fall back in case adapter.info is not available
36
+ const adapterInfo = adapter.info ||
37
+ // @ts-ignore
38
+ (await adapter.requestAdapterInfo?.());
39
+ // log.probe(2, 'Adapter available', adapterInfo)();
40
+ const requiredFeatures = [];
41
+ const requiredLimits = {};
42
+ if (props._requestMaxLimits) {
43
+ // Require all features
44
+ requiredFeatures.push(...Array.from(adapter.features));
45
+ // Require all limits
46
+ // Filter out chrome specific keys (avoid crash)
47
+ const limits = Object.keys(adapter.limits).filter(key => !['minSubgroupSize', 'maxSubgroupSize'].includes(key));
48
+ for (const key of limits) {
49
+ const limit = key;
50
+ const value = adapter.limits[limit];
51
+ if (typeof value === 'number') {
52
+ requiredLimits[limit] = value;
56
53
  }
57
54
  }
58
- const gpuDevice = await adapter.requestDevice({
59
- requiredFeatures,
60
- requiredLimits
61
- });
62
- log.probe(1, 'GPUDevice available')();
63
- const { WebGPUDevice } = await import("./webgpu-device.js");
55
+ }
56
+ const gpuDevice = await adapter.requestDevice({
57
+ requiredFeatures,
58
+ requiredLimits
59
+ });
60
+ // log.probe(1, 'GPUDevice available')();
61
+ const { WebGPUDevice } = await import("./webgpu-device.js");
62
+ log.groupCollapsed(1, 'WebGPUDevice created')();
63
+ try {
64
64
  const device = new WebGPUDevice(props, gpuDevice, adapter, adapterInfo);
65
65
  log.probe(1, 'Device created. For more info, set chrome://flags/#enable-webgpu-developer-features')();
66
66
  log.table(1, device.info)();
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-adapter.js","sourceRoot":"","sources":["../../src/adapter/webgpu-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-adapter.js","sourceRoot":"","sources":["../../src/adapter/webgpu-adapter.ts"],"names":[],"mappings":"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"}
@@ -16,13 +16,14 @@ export declare class WebGPUCanvasContext extends CanvasContext {
16
16
  constructor(device: WebGPUDevice, adapter: GPUAdapter, props: CanvasContextProps);
17
17
  /** Destroy any textures produced while configured and remove the context configuration. */
18
18
  destroy(): void;
19
+ /** @see https://www.w3.org/TR/webgpu/#canvas-configuration */
20
+ _configureDevice(): void;
19
21
  /** Update framebuffer with properly resized "swap chain" texture views */
20
- getCurrentFramebuffer(options?: {
22
+ _getCurrentFramebuffer(options?: {
21
23
  depthStencilFormat?: TextureFormatDepthStencil | false;
22
24
  }): WebGPUFramebuffer;
23
- _updateDevice(): void;
24
25
  /** Wrap the current canvas context texture in a luma.gl texture */
25
- getCurrentTexture(): WebGPUTexture;
26
+ _getCurrentTexture(): WebGPUTexture;
26
27
  /** We build render targets on demand (i.e. not when size changes but when about to render) */
27
28
  _createDepthStencilAttachment(depthStencilFormat: TextureFormatDepthStencil): WebGPUTexture;
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-canvas-context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,yBAAyB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,aAAa,EAAe,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,iBAAiB,EAAC,0CAAuC;AACjE,OAAO,EAAC,aAAa,EAAC,sCAAmC;AAEzD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAElC,OAAO,CAAC,sBAAsB,CAA8B;IAE5D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;gBAEW,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB;IAehF,2FAA2F;IAClF,OAAO,IAAI,IAAI;IAKxB,0EAA0E;IAC1E,qBAAqB,CACnB,OAAO,GAAE;QAAC,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAA;KAE/D,GACA,iBAAiB;IA8BpB,aAAa,IAAI,IAAI;IAkBrB,mEAAmE;IACnE,iBAAiB,IAAI,aAAa;IAWlC,8FAA8F;IAC9F,6BAA6B,CAAC,kBAAkB,EAAE,yBAAyB,GAAG,aAAa;CAY5F"}
1
+ {"version":3,"file":"webgpu-canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-canvas-context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,yBAAyB,EAAE,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACjF,OAAO,EAAC,aAAa,EAAe,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,iBAAiB,EAAC,0CAAuC;AACjE,OAAO,EAAC,aAAa,EAAC,sCAAmC;AAEzD;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAElC,OAAO,CAAC,sBAAsB,CAA8B;IAE5D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;gBAEW,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB;IAehF,2FAA2F;IAClF,OAAO,IAAI,IAAI;IAOxB,8DAA8D;IAC9D,gBAAgB,IAAI,IAAI;IAiBxB,0EAA0E;IAC1E,sBAAsB,CACpB,OAAO,GAAE;QAAC,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,KAAK,CAAA;KAE/D,GACA,iBAAiB;IA8BpB,mEAAmE;IACnE,kBAAkB,IAAI,aAAa;IAWnC,8FAA8F;IAC9F,6BAA6B,CAAC,kBAAkB,EAAE,yBAAyB,GAAG,aAAa;CAY5F"}
@@ -25,19 +25,36 @@ export class WebGPUCanvasContext extends CanvasContext {
25
25
  this.handle = context;
26
26
  // Base class constructor cannot access derived methods/fields, so we need to call these functions in the subclass constructor
27
27
  this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
28
- this._updateDevice();
28
+ this._configureDevice();
29
29
  }
30
30
  /** Destroy any textures produced while configured and remove the context configuration. */
31
31
  destroy() {
32
32
  this.handle.unconfigure();
33
33
  super.destroy();
34
34
  }
35
+ // IMPLEMENTATION OF ABSTRACT METHODS
36
+ /** @see https://www.w3.org/TR/webgpu/#canvas-configuration */
37
+ _configureDevice() {
38
+ if (this.depthStencilAttachment) {
39
+ this.depthStencilAttachment.destroy();
40
+ this.depthStencilAttachment = null;
41
+ }
42
+ // Reconfigure the canvas size.
43
+ this.handle.configure({
44
+ device: this.device.handle,
45
+ format: this.device.preferredColorFormat,
46
+ // Can be used to define e.g. -srgb views
47
+ // viewFormats: [...]
48
+ colorSpace: this.props.colorSpace,
49
+ alphaMode: this.props.alphaMode
50
+ });
51
+ }
35
52
  /** Update framebuffer with properly resized "swap chain" texture views */
36
- getCurrentFramebuffer(options = {
53
+ _getCurrentFramebuffer(options = {
37
54
  depthStencilFormat: 'depth24plus'
38
55
  }) {
39
56
  // Wrap the current canvas context texture in a luma.gl texture
40
- const currentColorAttachment = this.getCurrentTexture();
57
+ const currentColorAttachment = this._getCurrentTexture();
41
58
  // TODO - temporary debug code
42
59
  if (currentColorAttachment.width !== this.drawingBufferWidth ||
43
60
  currentColorAttachment.height !== this.drawingBufferHeight) {
@@ -55,25 +72,9 @@ export class WebGPUCanvasContext extends CanvasContext {
55
72
  depthStencilAttachment: this.depthStencilAttachment
56
73
  });
57
74
  }
58
- // IMPLEMENTATION OF ABSTRACT METHODS
59
- _updateDevice() {
60
- if (this.depthStencilAttachment) {
61
- this.depthStencilAttachment.destroy();
62
- this.depthStencilAttachment = null;
63
- }
64
- // Reconfigure the canvas size.
65
- // https://www.w3.org/TR/webgpu/#canvas-configuration
66
- this.handle.configure({
67
- device: this.device.handle,
68
- format: this.device.preferredColorFormat,
69
- // Can be used to define e.g. -srgb views
70
- // viewFormats: [...]
71
- colorSpace: this.props.colorSpace,
72
- alphaMode: this.props.alphaMode
73
- });
74
- }
75
+ // PRIMARY METHODS
75
76
  /** Wrap the current canvas context texture in a luma.gl texture */
76
- getCurrentTexture() {
77
+ _getCurrentTexture() {
77
78
  const handle = this.handle.getCurrentTexture();
78
79
  return this.device.createTexture({
79
80
  id: `${this.id}#color-texture`,
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-canvas-context.js","sourceRoot":"","sources":["../../src/adapter/webgpu-canvas-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-canvas-context.js","sourceRoot":"","sources":["../../src/adapter/webgpu-canvas-context.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAMpC,OAAO,EAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAC,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAC,iBAAiB,EAAC,0CAAuC;AAGjE;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAC3C,MAAM,CAAe;IACrB,MAAM,CAAmB;IAE1B,sBAAsB,GAAyB,IAAI,CAAC;IAE5D,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,YAAY,MAAoB,EAAE,OAAmB,EAAE,KAAyB;QAC9E,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QAEtB,8HAA8H;QAC9H,IAAI,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,2FAA2F;IAClF,OAAO;QACd,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1B,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAED,qCAAqC;IAErC,8DAA8D;IAC9D,gBAAgB;QACd,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;YACxC,yCAAyC;YACzC,qBAAqB;YACrB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,sBAAsB,CACpB,UAAoE;QAClE,kBAAkB,EAAE,aAAa;KAClC;QAED,+DAA+D;QAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzD,8BAA8B;QAC9B,IACE,sBAAsB,CAAC,KAAK,KAAK,IAAI,CAAC,kBAAkB;YACxD,sBAAsB,CAAC,MAAM,KAAK,IAAI,CAAC,mBAAmB,EAC1D,CAAC;YACD,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1D,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,KAAK,CAAC;YACvD,IAAI,CAAC,mBAAmB,GAAG,sBAAsB,CAAC,MAAM,CAAC;YACzD,GAAG,CAAC,GAAG,CACL,CAAC,EACD,GAAG,IAAI,4DAA4D,QAAQ,IAAI,SAAS,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CACvJ,EAAE,CAAC;QACN,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE;YACxC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC;YAC1C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;SACpD,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAElB,mEAAmE;IACnE,kBAAkB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/B,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,gBAAgB;YAC9B,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;YACxC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAC9F,6BAA6B,CAAC,kBAA6C;QACzE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gBACtD,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,wBAAwB;gBACtC,KAAK,EAAE,OAAO,CAAC,iBAAiB;gBAChC,MAAM,EAAE,kBAAkB;gBAC1B,KAAK,EAAE,IAAI,CAAC,kBAAkB;gBAC9B,MAAM,EAAE,IAAI,CAAC,mBAAmB;aACjC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;CACF"}
@@ -13,6 +13,7 @@ import { WebGPUCanvasContext } from "./webgpu-canvas-context.js";
13
13
  import { WebGPUCommandEncoder } from "./resources/webgpu-command-encoder.js";
14
14
  import { WebGPUCommandBuffer } from "./resources/webgpu-command-buffer.js";
15
15
  import { WebGPUPipelineLayout } from "./resources/webgpu-pipeline-layout.js";
16
+ import { WebGPUFence } from "./resources/webgpu-fence.js";
16
17
  /** WebGPU Device implementation */
17
18
  export declare class WebGPUDevice extends Device {
18
19
  /** The underlying WebGPU device */
@@ -38,8 +39,8 @@ export declare class WebGPUDevice extends Device {
38
39
  constructor(props: DeviceProps, device: GPUDevice, adapter: GPUAdapter, adapterInfo: GPUAdapterInfo);
39
40
  destroy(): void;
40
41
  get isLost(): boolean;
42
+ getShaderLayout(source: string): import("@luma.gl/core").ShaderLayout;
41
43
  isVertexFormatSupported(format: VertexFormat): boolean;
42
- getTextureByteAlignment(): number;
43
44
  createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): WebGPUBuffer;
44
45
  createTexture(props: TextureProps): WebGPUTexture;
45
46
  createExternalTexture(props: ExternalTextureProps): WebGPUExternalTexture;
@@ -52,6 +53,7 @@ export declare class WebGPUDevice extends Device {
52
53
  createCommandEncoder(props?: CommandEncoderProps): WebGPUCommandEncoder;
53
54
  createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;
54
55
  createQuerySet(props: QuerySetProps): QuerySet;
56
+ createFence(): WebGPUFence;
55
57
  createCanvasContext(props: CanvasContextProps): WebGPUCanvasContext;
56
58
  createPipelineLayout(props: PipelineLayoutProps): WebGPUPipelineLayout;
57
59
  submit(commandBuffer?: WebGPUCommandBuffer): void;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}