@luma.gl/webgpu 9.3.0-alpha.6 → 9.3.0-alpha.8
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.
- package/dist/adapter/helpers/get-bind-group.d.ts +3 -6
- package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
- package/dist/adapter/helpers/get-bind-group.js +11 -14
- package/dist/adapter/helpers/get-bind-group.js.map +1 -1
- package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts +3 -1
- package/dist/adapter/helpers/get-vertex-buffer-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-vertex-buffer-layout.js +17 -12
- package/dist/adapter/helpers/get-vertex-buffer-layout.js.map +1 -1
- package/dist/adapter/helpers/webgpu-parameters.d.ts.map +1 -1
- package/dist/adapter/helpers/webgpu-parameters.js +1 -0
- package/dist/adapter/helpers/webgpu-parameters.js.map +1 -1
- package/dist/adapter/resources/webgpu-command-encoder.d.ts +3 -13
- package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-command-encoder.js +68 -29
- package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pass.d.ts +3 -3
- package/dist/adapter/resources/webgpu-compute-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pass.js +17 -7
- package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pipeline.d.ts +7 -9
- package/dist/adapter/resources/webgpu-compute-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pipeline.js +26 -29
- package/dist/adapter/resources/webgpu-compute-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgpu-fence.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-fence.js +9 -1
- package/dist/adapter/resources/webgpu-fence.js.map +1 -1
- package/dist/adapter/resources/webgpu-pipeline-layout.d.ts +1 -1
- package/dist/adapter/resources/webgpu-pipeline-layout.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-pipeline-layout.js +10 -16
- package/dist/adapter/resources/webgpu-pipeline-layout.js.map +1 -1
- package/dist/adapter/resources/webgpu-render-pass.d.ts +4 -4
- package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-render-pass.js +10 -10
- package/dist/adapter/resources/webgpu-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgpu-render-pipeline.d.ts +10 -9
- package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-render-pipeline.js +48 -38
- package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgpu-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-shader.js +17 -1
- package/dist/adapter/resources/webgpu-shader.js.map +1 -1
- package/dist/adapter/resources/webgpu-texture.d.ts +8 -1
- package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-texture.js +35 -43
- package/dist/adapter/resources/webgpu-texture.js.map +1 -1
- package/dist/adapter/webgpu-device.d.ts +6 -2
- package/dist/adapter/webgpu-device.d.ts.map +1 -1
- package/dist/adapter/webgpu-device.js +60 -18
- package/dist/adapter/webgpu-device.js.map +1 -1
- package/dist/dist.dev.js +508 -311
- package/dist/dist.min.js +13 -13
- package/dist/index.cjs +439 -319
- package/dist/index.cjs.map +4 -4
- package/dist/wgsl/get-shader-layout-wgsl.d.ts.map +1 -1
- package/dist/wgsl/get-shader-layout-wgsl.js +8 -0
- package/dist/wgsl/get-shader-layout-wgsl.js.map +1 -1
- package/package.json +3 -3
- package/src/adapter/helpers/get-bind-group.ts +18 -27
- package/src/adapter/helpers/get-vertex-buffer-layout.ts +31 -12
- package/src/adapter/helpers/webgpu-parameters.ts +2 -0
- package/src/adapter/resources/webgpu-command-encoder.ts +99 -46
- package/src/adapter/resources/webgpu-compute-pass.ts +35 -8
- package/src/adapter/resources/webgpu-compute-pipeline.ts +43 -30
- package/src/adapter/resources/webgpu-fence.ts +11 -3
- package/src/adapter/resources/webgpu-pipeline-layout.ts +16 -14
- package/src/adapter/resources/webgpu-render-pass.ts +18 -14
- package/src/adapter/resources/webgpu-render-pipeline.ts +68 -46
- package/src/adapter/resources/webgpu-shader.ts +16 -1
- package/src/adapter/resources/webgpu-texture.ts +61 -44
- package/src/adapter/webgpu-device.ts +101 -25
- package/src/wgsl/get-shader-layout-wgsl.ts +9 -0
- package/dist/adapter/helpers/accessor-to-format.d.ts +0 -1
- package/dist/adapter/helpers/accessor-to-format.d.ts.map +0 -1
- package/dist/adapter/helpers/accessor-to-format.js +0 -105
- package/dist/adapter/helpers/accessor-to-format.js.map +0 -1
- package/src/adapter/helpers/accessor-to-format.ts +0 -104
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import type {
|
|
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:
|
|
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:
|
|
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,
|
|
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
|
-
?
|
|
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":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"get-bind-group.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -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[]
|
|
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,
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
135
|
+
function findAttributeLayout(shaderLayout, name, attributeNames, options) {
|
|
136
|
+
const attribute = shaderLayout.attributes?.find(attribute_ => attribute_.name === name);
|
|
135
137
|
if (!attribute) {
|
|
136
|
-
|
|
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":"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;
|
|
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 +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,
|
|
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
|
|
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,
|
|
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
|
|
54
|
-
this.handle.copyBufferToBuffer(webgpuSourceBuffer.handle, options.sourceOffset ?? 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
|
|
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.
|
|
63
|
+
offset: options.byteOffset ?? 0,
|
|
62
64
|
bytesPerRow: options.bytesPerRow,
|
|
63
65
|
rowsPerImage: options.rowsPerImage
|
|
64
66
|
}, {
|
|
65
|
-
texture:
|
|
67
|
+
texture: webgpuDestinationTexture.handle,
|
|
66
68
|
mipLevel: options.mipLevel ?? 0,
|
|
67
|
-
origin:
|
|
68
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"webgpu-command-encoder.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ComputePass, ComputePassProps, ComputePipeline, Buffer,
|
|
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:
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"webgpu-compute-pass.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-compute-pass.ts"],"names":[],"mappings":"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"}
|