@luma.gl/webgpu 9.1.0-beta.8 → 9.2.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/helpers/accessor-to-format.js +1 -0
- package/dist/adapter/helpers/accessor-to-format.js.map +1 -1
- package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
- package/dist/adapter/helpers/get-bind-group.js +26 -10
- package/dist/adapter/helpers/get-bind-group.js.map +1 -1
- package/dist/adapter/helpers/get-vertex-buffer-layout.js +4 -4
- 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 +66 -68
- package/dist/adapter/helpers/webgpu-parameters.js.map +1 -1
- package/dist/adapter/resources/webgpu-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-buffer.js +12 -0
- package/dist/adapter/resources/webgpu-buffer.js.map +1 -1
- package/dist/adapter/resources/webgpu-command-buffer.d.ts +10 -0
- package/dist/adapter/resources/webgpu-command-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgpu-command-buffer.js +18 -0
- package/dist/adapter/resources/webgpu-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgpu-command-encoder.d.ts +12 -5
- package/dist/adapter/resources/webgpu-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-command-encoder.js +21 -5
- package/dist/adapter/resources/webgpu-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgpu-compute-pass.js +1 -1
- package/dist/adapter/resources/webgpu-compute-pass.js.map +1 -1
- package/dist/adapter/resources/webgpu-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-render-pass.js +2 -1
- package/dist/adapter/resources/webgpu-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgpu-sampler.js +1 -1
- package/dist/adapter/resources/webgpu-sampler.js.map +1 -1
- package/dist/adapter/resources/webgpu-texture-view.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-texture-view.js +16 -10
- package/dist/adapter/resources/webgpu-texture-view.js.map +1 -1
- package/dist/adapter/resources/webgpu-texture.d.ts +4 -37
- package/dist/adapter/resources/webgpu-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-texture.js +98 -124
- package/dist/adapter/resources/webgpu-texture.js.map +1 -1
- package/dist/adapter/resources/webgpu-vertex-array.d.ts +2 -2
- package/dist/adapter/resources/webgpu-vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-vertex-array.js +2 -2
- package/dist/adapter/resources/webgpu-vertex-array.js.map +1 -1
- package/dist/adapter/webgpu-adapter.d.ts +2 -3
- package/dist/adapter/webgpu-adapter.d.ts.map +1 -1
- package/dist/adapter/webgpu-adapter.js +19 -10
- package/dist/adapter/webgpu-adapter.js.map +1 -1
- package/dist/adapter/webgpu-canvas-context.d.ts +1 -7
- package/dist/adapter/webgpu-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgpu-canvas-context.js +13 -18
- package/dist/adapter/webgpu-canvas-context.js.map +1 -1
- package/dist/adapter/webgpu-device.d.ts +8 -25
- package/dist/adapter/webgpu-device.d.ts.map +1 -1
- package/dist/adapter/webgpu-device.js +31 -61
- package/dist/adapter/webgpu-device.js.map +1 -1
- package/dist/dist.dev.js +1657 -1389
- package/dist/dist.min.js +4 -4
- package/dist/index.cjs +1510 -1270
- package/dist/index.cjs.map +4 -4
- package/package.json +3 -3
- package/src/adapter/helpers/get-bind-group.ts +28 -11
- package/src/adapter/helpers/get-vertex-buffer-layout.ts +4 -4
- package/src/adapter/helpers/webgpu-parameters.ts +88 -97
- package/src/adapter/resources/webgpu-buffer.ts +12 -0
- package/src/adapter/resources/webgpu-command-buffer.ts +24 -0
- package/src/adapter/resources/webgpu-command-encoder.ts +27 -4
- package/src/adapter/resources/webgpu-compute-pass.ts +1 -1
- package/src/adapter/resources/webgpu-render-pass.ts +2 -1
- package/src/adapter/resources/webgpu-sampler.ts +1 -1
- package/src/adapter/resources/webgpu-texture-view.ts +15 -8
- package/src/adapter/resources/webgpu-texture.ts +106 -184
- package/src/adapter/resources/webgpu-vertex-array.ts +2 -2
- package/src/adapter/webgpu-adapter.ts +27 -14
- package/src/adapter/webgpu-canvas-context.ts +16 -20
- package/src/adapter/webgpu-device.ts +38 -99
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor-to-format.js","sourceRoot":"","sources":["../../../src/adapter/helpers/accessor-to-format.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmGE"}
|
|
1
|
+
{"version":3,"file":"accessor-to-format.js","sourceRoot":"","sources":["../../../src/adapter/helpers/accessor-to-format.ts"],"names":[],"mappings":";AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmGE"}
|
|
@@ -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,
|
|
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,CAad;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAC,GACnC,kBAAkB,GAAG,IAAI,CAS3B"}
|
|
@@ -18,10 +18,17 @@ export function makeBindGroupLayout(device, layout, bindings) {
|
|
|
18
18
|
*/
|
|
19
19
|
export function getBindGroup(device, bindGroupLayout, shaderLayout, bindings) {
|
|
20
20
|
const entries = getBindGroupEntries(bindings, shaderLayout);
|
|
21
|
-
|
|
21
|
+
device.pushErrorScope('validation');
|
|
22
|
+
const bindGroup = device.createBindGroup({
|
|
22
23
|
layout: bindGroupLayout,
|
|
23
24
|
entries
|
|
24
25
|
});
|
|
26
|
+
device.popErrorScope().then((error) => {
|
|
27
|
+
if (error) {
|
|
28
|
+
log.error(`createBindGroup validation failed: ${error.message}`)();
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return bindGroup;
|
|
25
32
|
}
|
|
26
33
|
export function getShaderLayoutBinding(shaderLayout, bindingName, options) {
|
|
27
34
|
const bindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName || `${binding.name}uniforms` === bindingName.toLocaleLowerCase());
|
|
@@ -39,14 +46,22 @@ function getBindGroupEntries(bindings, shaderLayout) {
|
|
|
39
46
|
for (const [bindingName, value] of Object.entries(bindings)) {
|
|
40
47
|
let bindingLayout = getShaderLayoutBinding(shaderLayout, bindingName);
|
|
41
48
|
if (bindingLayout) {
|
|
42
|
-
|
|
49
|
+
const entry = getBindGroupEntry(value, bindingLayout.location);
|
|
50
|
+
if (entry) {
|
|
51
|
+
entries.push(entry);
|
|
52
|
+
}
|
|
43
53
|
}
|
|
44
54
|
// TODO - hack to automatically bind samplers to supplied texture default samplers
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
if (value instanceof Texture) {
|
|
56
|
+
bindingLayout = getShaderLayoutBinding(shaderLayout, `${bindingName}Sampler`, {
|
|
57
|
+
ignoreWarnings: true
|
|
58
|
+
});
|
|
59
|
+
if (bindingLayout) {
|
|
60
|
+
const entry = getBindGroupEntry(value, bindingLayout.location, { sampler: true });
|
|
61
|
+
if (entry) {
|
|
62
|
+
entries.push(entry);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
50
65
|
}
|
|
51
66
|
}
|
|
52
67
|
return entries;
|
|
@@ -66,7 +81,7 @@ function getBindGroupEntry(binding, index, options) {
|
|
|
66
81
|
resource: binding.handle
|
|
67
82
|
};
|
|
68
83
|
}
|
|
69
|
-
|
|
84
|
+
if (binding instanceof Texture) {
|
|
70
85
|
if (options?.sampler) {
|
|
71
86
|
return {
|
|
72
87
|
binding: index,
|
|
@@ -75,9 +90,10 @@ function getBindGroupEntry(binding, index, options) {
|
|
|
75
90
|
}
|
|
76
91
|
return {
|
|
77
92
|
binding: index,
|
|
78
|
-
resource: binding.handle
|
|
93
|
+
resource: binding.view.handle
|
|
79
94
|
};
|
|
80
95
|
}
|
|
81
|
-
|
|
96
|
+
log.warn(`invalid binding ${name}`, binding);
|
|
97
|
+
return null;
|
|
82
98
|
}
|
|
83
99
|
//# sourceMappingURL=get-bind-group.js.map
|
|
@@ -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,GAAG,EAAC,MAAM,eAAe,CAAC;AAK5D;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,MAA0B,EAC1B,QAAmB;IAEnB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnC,wCAAwC;IACxC,YAAY;IACZ,2CAA2C;IAC3C,KAAK;AACP,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,eAAmC,EACnC,YAAiC,EACjC,QAAiC;IAEjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5D,
|
|
1
|
+
{"version":3,"file":"get-bind-group.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -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, getVertexFormatInfo } 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) {
|
|
@@ -45,7 +45,7 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
|
|
|
45
45
|
offset: attributeMapping.byteOffset,
|
|
46
46
|
shaderLocation: location
|
|
47
47
|
});
|
|
48
|
-
byteStride +=
|
|
48
|
+
byteStride += getVertexFormatInfo(format).byteLength;
|
|
49
49
|
}
|
|
50
50
|
// non-interleaved mapping (just set offset and stride)
|
|
51
51
|
}
|
|
@@ -54,7 +54,7 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
|
|
|
54
54
|
if (!attributeLayout) {
|
|
55
55
|
continue; // eslint-disable-line no-continue
|
|
56
56
|
}
|
|
57
|
-
byteStride =
|
|
57
|
+
byteStride = getVertexFormatInfo(format).byteLength;
|
|
58
58
|
stepMode =
|
|
59
59
|
attributeLayout.stepMode ||
|
|
60
60
|
(attributeLayout.name.startsWith('instance') ? 'instance' : 'vertex');
|
|
@@ -76,7 +76,7 @@ export function getVertexBufferLayout(shaderLayout, bufferLayout) {
|
|
|
76
76
|
for (const attribute of shaderLayout.attributes) {
|
|
77
77
|
if (!usedAttributes.has(attribute.name)) {
|
|
78
78
|
vertexBufferLayouts.push({
|
|
79
|
-
arrayStride:
|
|
79
|
+
arrayStride: getVertexFormatInfo('float32x3').byteLength,
|
|
80
80
|
stepMode: attribute.stepMode || (attribute.name.startsWith('instance') ? 'instance' : 'vertex'),
|
|
81
81
|
attributes: [
|
|
82
82
|
{
|
|
@@ -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,
|
|
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,EAAC,MAAM,eAAe,CAAC;AA2BzC;;;GAGG;AAEH,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,EAAC,MAAM,eAAe,CAAC;AA2BzC;;;GAGG;AAEH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,UAAU,EAAE,QAAQ,CAmM9D,CAAC;AAgCF,wBAAgB,yCAAyC,CACvD,kBAAkB,EAAE,2BAA2B,EAC/C,UAAU,GAAE,UAAe,GAC1B,IAAI,CAIN"}
|
|
@@ -30,134 +30,126 @@ function addDepthStencilBack(descriptor) {
|
|
|
30
30
|
// @ts-expect-error
|
|
31
31
|
export const PARAMETER_TABLE = {
|
|
32
32
|
// RASTERIZATION PARAMETERS
|
|
33
|
-
cullMode: (
|
|
33
|
+
cullMode: (_, value, descriptor) => {
|
|
34
34
|
descriptor.primitive = descriptor.primitive || {};
|
|
35
35
|
descriptor.primitive.cullMode = value;
|
|
36
36
|
},
|
|
37
|
-
frontFace: (
|
|
37
|
+
frontFace: (_, value, descriptor) => {
|
|
38
38
|
descriptor.primitive = descriptor.primitive || {};
|
|
39
39
|
descriptor.primitive.frontFace = value;
|
|
40
40
|
},
|
|
41
41
|
// DEPTH
|
|
42
|
-
depthWriteEnabled: (
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
depthWriteEnabled: (_, value, descriptor) => {
|
|
43
|
+
if (value) {
|
|
44
|
+
const depthStencil = addDepthStencil(descriptor);
|
|
45
|
+
depthStencil.depthWriteEnabled = value;
|
|
46
|
+
}
|
|
45
47
|
},
|
|
46
|
-
depthCompare: (
|
|
48
|
+
depthCompare: (_, value, descriptor) => {
|
|
47
49
|
const depthStencil = addDepthStencil(descriptor);
|
|
48
50
|
depthStencil.depthCompare = value;
|
|
49
51
|
},
|
|
50
|
-
depthFormat: (
|
|
52
|
+
depthFormat: (_, value, descriptor) => {
|
|
51
53
|
const depthStencil = addDepthStencil(descriptor);
|
|
52
54
|
depthStencil.format = value;
|
|
53
55
|
},
|
|
54
|
-
depthBias: (
|
|
56
|
+
depthBias: (_, value, descriptor) => {
|
|
55
57
|
const depthStencil = addDepthStencil(descriptor);
|
|
56
58
|
depthStencil.depthBias = value;
|
|
57
59
|
},
|
|
58
|
-
depthBiasSlopeScale: (
|
|
60
|
+
depthBiasSlopeScale: (_, value, descriptor) => {
|
|
59
61
|
const depthStencil = addDepthStencil(descriptor);
|
|
60
62
|
depthStencil.depthBiasSlopeScale = value;
|
|
61
63
|
},
|
|
62
|
-
depthBiasClamp: (
|
|
64
|
+
depthBiasClamp: (_, value, descriptor) => {
|
|
63
65
|
const depthStencil = addDepthStencil(descriptor);
|
|
64
66
|
depthStencil.depthBiasClamp = value;
|
|
65
67
|
},
|
|
66
68
|
// STENCIL
|
|
67
|
-
stencilReadMask: (
|
|
69
|
+
stencilReadMask: (_, value, descriptor) => {
|
|
68
70
|
const depthStencil = addDepthStencil(descriptor);
|
|
69
71
|
depthStencil.stencilReadMask = value;
|
|
70
72
|
},
|
|
71
|
-
stencilWriteMask: (
|
|
73
|
+
stencilWriteMask: (_, value, descriptor) => {
|
|
72
74
|
const depthStencil = addDepthStencil(descriptor);
|
|
73
75
|
depthStencil.stencilWriteMask = value;
|
|
74
76
|
},
|
|
75
|
-
stencilCompare: (
|
|
77
|
+
stencilCompare: (_, value, descriptor) => {
|
|
76
78
|
const stencilFront = addDepthStencilFront(descriptor);
|
|
77
79
|
const stencilBack = addDepthStencilBack(descriptor);
|
|
78
80
|
stencilFront.compare = value;
|
|
79
81
|
stencilBack.compare = value;
|
|
80
82
|
},
|
|
81
|
-
stencilPassOperation: (
|
|
83
|
+
stencilPassOperation: (_, value, descriptor) => {
|
|
82
84
|
const stencilFront = addDepthStencilFront(descriptor);
|
|
83
85
|
const stencilBack = addDepthStencilBack(descriptor);
|
|
84
86
|
stencilFront.passOp = value;
|
|
85
87
|
stencilBack.passOp = value;
|
|
86
88
|
},
|
|
87
|
-
stencilFailOperation: (
|
|
89
|
+
stencilFailOperation: (_, value, descriptor) => {
|
|
88
90
|
const stencilFront = addDepthStencilFront(descriptor);
|
|
89
91
|
const stencilBack = addDepthStencilBack(descriptor);
|
|
90
92
|
stencilFront.failOp = value;
|
|
91
93
|
stencilBack.failOp = value;
|
|
92
94
|
},
|
|
93
|
-
stencilDepthFailOperation: (
|
|
95
|
+
stencilDepthFailOperation: (_, value, descriptor) => {
|
|
94
96
|
const stencilFront = addDepthStencilFront(descriptor);
|
|
95
97
|
const stencilBack = addDepthStencilBack(descriptor);
|
|
96
98
|
stencilFront.depthFailOp = value;
|
|
97
99
|
stencilBack.depthFailOp = value;
|
|
98
100
|
},
|
|
99
101
|
// MULTISAMPLE
|
|
100
|
-
sampleCount: (
|
|
102
|
+
sampleCount: (_, value, descriptor) => {
|
|
101
103
|
descriptor.multisample = descriptor.multisample || {};
|
|
102
104
|
descriptor.multisample.count = value;
|
|
103
105
|
},
|
|
104
|
-
sampleMask: (
|
|
106
|
+
sampleMask: (_, value, descriptor) => {
|
|
105
107
|
descriptor.multisample = descriptor.multisample || {};
|
|
106
108
|
descriptor.multisample.mask = value;
|
|
107
109
|
},
|
|
108
|
-
sampleAlphaToCoverageEnabled: (
|
|
110
|
+
sampleAlphaToCoverageEnabled: (_, value, descriptor) => {
|
|
109
111
|
descriptor.multisample = descriptor.multisample || {};
|
|
110
112
|
descriptor.multisample.alphaToCoverageEnabled = value;
|
|
111
113
|
},
|
|
112
114
|
// COLOR
|
|
113
|
-
colorMask: (
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
colorMask: (_, value, descriptor) => {
|
|
116
|
+
const target = addColorState(descriptor, 0);
|
|
117
|
+
target.writeMask = value;
|
|
118
|
+
},
|
|
119
|
+
blend: (_, value, descriptor) => {
|
|
120
|
+
if (value) {
|
|
121
|
+
addBlendState(descriptor, 0);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
blendColorOperation: (_, value, descriptor) => {
|
|
125
|
+
const blend = addBlendState(descriptor, 0);
|
|
126
|
+
blend.color = blend.color || {};
|
|
127
|
+
blend.color.operation = value;
|
|
128
|
+
},
|
|
129
|
+
blendColorSrcFactor: (_, value, descriptor) => {
|
|
130
|
+
const blend = addBlendState(descriptor, 0);
|
|
131
|
+
blend.color = blend.color || {};
|
|
132
|
+
blend.color.srcFactor = value;
|
|
133
|
+
},
|
|
134
|
+
blendColorDstFactor: (_, value, descriptor) => {
|
|
135
|
+
const blend = addBlendState(descriptor, 0);
|
|
136
|
+
blend.color.dstFactor = value;
|
|
137
|
+
},
|
|
138
|
+
blendAlphaOperation: (_, value, descriptor) => {
|
|
139
|
+
const blend = addBlendState(descriptor, 0);
|
|
140
|
+
blend.alpha = blend.alpha || {};
|
|
141
|
+
blend.alpha.operation = value;
|
|
142
|
+
},
|
|
143
|
+
blendAlphaSrcFactor: (_, value, descriptor) => {
|
|
144
|
+
const blend = addBlendState(descriptor, 0);
|
|
145
|
+
blend.alpha = blend.alpha || {};
|
|
146
|
+
blend.alpha.srcFactor = value;
|
|
147
|
+
},
|
|
148
|
+
blendAlphaDstFactor: (_, value, descriptor) => {
|
|
149
|
+
const blend = addBlendState(descriptor, 0);
|
|
150
|
+
blend.alpha = blend.alpha || {};
|
|
151
|
+
blend.alpha.dstFactor = value;
|
|
124
152
|
}
|
|
125
|
-
/*
|
|
126
|
-
blendColorSrcTarget: (parameter, value, descriptor: GPURenderPipelineDescriptor) => {
|
|
127
|
-
addColorState(descriptor);
|
|
128
|
-
targets[0].blend = targets[0].blend || {};
|
|
129
|
-
targets[0].blend.color = targets[0].blend.color || {};
|
|
130
|
-
targets[0].blend.color.srcTarget = value;
|
|
131
|
-
},
|
|
132
|
-
|
|
133
|
-
blendColorDstTarget: (parameter, value, descriptor: GPURenderPipelineDescriptor) => {
|
|
134
|
-
addColorState(descriptor);
|
|
135
|
-
targets[0].blend = targets[0].blend || {};
|
|
136
|
-
targets[0].blend.color = targets[0].blend.color || {};
|
|
137
|
-
targets[0].blend.color.dstTarget = value;
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
blendAlphaOperation: (parameter, value, descriptor: GPURenderPipelineDescriptor) => {
|
|
141
|
-
addColorState(descriptor);
|
|
142
|
-
targets[0].blend = targets[0].blend || {};
|
|
143
|
-
targets[0].blend.alpha = targets[0].blend.alpha || {};
|
|
144
|
-
targets[0].blend.alpha.operation = value;
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
blendAlphaSrcTarget: (parameter, value, descriptor: GPURenderPipelineDescriptor) => {
|
|
148
|
-
addColorState(descriptor);
|
|
149
|
-
targets[0].blend = targets[0].blend || {};
|
|
150
|
-
targets[0].blend.alpha = targets[0].blend.alpha || {};
|
|
151
|
-
targets[0].blend.alpha.srcTarget = value;
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
blendAlphaDstTarget: (parameter, value, descriptor: GPURenderPipelineDescriptor) => {
|
|
155
|
-
addColorState(descriptor);
|
|
156
|
-
targets[0].blend = targets[0].blend || {};
|
|
157
|
-
targets[0].blend.alpha = targets[0].blend.alpha || {};
|
|
158
|
-
targets[0].blend.alpha.dstTarget = value;
|
|
159
|
-
},
|
|
160
|
-
*/
|
|
161
153
|
};
|
|
162
154
|
const DEFAULT_PIPELINE_DESCRIPTOR = {
|
|
163
155
|
// depthStencil: {
|
|
@@ -199,7 +191,8 @@ function setParameters(pipelineDescriptor, parameters) {
|
|
|
199
191
|
setterFunction(key, value, pipelineDescriptor);
|
|
200
192
|
}
|
|
201
193
|
}
|
|
202
|
-
|
|
194
|
+
/** @todo - support multiple color targets... */
|
|
195
|
+
function addColorState(descriptor, attachment) {
|
|
203
196
|
// @ts-ignore
|
|
204
197
|
descriptor.fragment.targets = descriptor.fragment?.targets || [];
|
|
205
198
|
if (!Array.isArray(descriptor.fragment?.targets)) {
|
|
@@ -208,6 +201,11 @@ function addColorState(descriptor) {
|
|
|
208
201
|
if (descriptor.fragment?.targets?.length === 0) {
|
|
209
202
|
descriptor.fragment.targets?.push({});
|
|
210
203
|
}
|
|
211
|
-
return descriptor.fragment?.targets;
|
|
204
|
+
return descriptor.fragment?.targets[0];
|
|
205
|
+
}
|
|
206
|
+
function addBlendState(descriptor, attachment) {
|
|
207
|
+
const target = addColorState(descriptor, attachment);
|
|
208
|
+
target.blend = target.blend || { color: {}, alpha: {} };
|
|
209
|
+
return target.blend;
|
|
212
210
|
}
|
|
213
211
|
//# sourceMappingURL=webgpu-parameters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-parameters.js","sourceRoot":"","sources":["../../../src/adapter/helpers/webgpu-parameters.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,SAAS,eAAe,CAAC,UAAuC;IAC9D,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI;QACnD,0BAA0B;QAC1B,MAAM,EAAE,aAAa;QACrB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,qFAAqF;QACrF,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,YAAY;KAC3B,CAAC;IACF,OAAO,UAAU,CAAC,YAAY,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAuC;IACnE,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACjD,aAAa;IACb,OAAO,YAAY,CAAC,YAAY,CAAC;AACnC,CAAC;AAED,SAAS,mBAAmB,CAAC,UAAuC;IAClE,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACjD,aAAa;IACb,OAAO,YAAY,CAAC,WAAW,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,mBAAmB;AACnB,MAAM,CAAC,MAAM,eAAe,GAAuC;IACjE,2BAA2B;IAE3B,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"webgpu-parameters.js","sourceRoot":"","sources":["../../../src/adapter/helpers/webgpu-parameters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAMnD,qBAAa,YAAa,SAAQ,MAAM;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"webgpu-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAMnD,qBAAa,YAAa,SAAQ,MAAM;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW;IA0C3C,OAAO,IAAI,IAAI;IAOf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,SAAI;IAUrC,SAAS,CACtB,UAAU,GAAE,MAAU,EACtB,UAAU,GAAE,MAAwB,GACnC,OAAO,CAAC,UAAU,CAAC;IAsBtB,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,cAAc,CAAC,MAAM,GAAE,MAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAI9D,KAAK,IAAI,IAAI;CAGd;AA4CD;;;;;;;;EAQE"}
|
|
@@ -16,6 +16,8 @@ export class WebGPUBuffer extends Buffer {
|
|
|
16
16
|
const mapBuffer = Boolean(props.data);
|
|
17
17
|
// WebGPU buffers must be aligned to 4 bytes
|
|
18
18
|
const size = Math.ceil(this.byteLength / 4) * 4;
|
|
19
|
+
this.device.handle.pushErrorScope('out-of-memory');
|
|
20
|
+
this.device.handle.pushErrorScope('validation');
|
|
19
21
|
this.handle =
|
|
20
22
|
this.props.handle ||
|
|
21
23
|
this.device.handle.createBuffer({
|
|
@@ -25,6 +27,16 @@ export class WebGPUBuffer extends Buffer {
|
|
|
25
27
|
mappedAtCreation: this.props.mappedAtCreation || mapBuffer,
|
|
26
28
|
label: this.props.id
|
|
27
29
|
});
|
|
30
|
+
this.device.handle.popErrorScope().then((error) => {
|
|
31
|
+
if (error) {
|
|
32
|
+
this.device.reportError(new Error(`Buffer validation failed: ${error.message}`), this);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
this.device.handle.popErrorScope().then((error) => {
|
|
36
|
+
if (error) {
|
|
37
|
+
this.device.reportError(new Error(`Buffer out of memory: ${error.message}`), this);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
28
40
|
if (props.data) {
|
|
29
41
|
this._writeMapped(props.data);
|
|
30
42
|
// this.handle.writeAsync({data: props.data, map: false, unmap: false});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-buffer.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAc,MAAM,eAAe,CAAC;AAGlD,SAAS,aAAa,CAAC,KAAkB;IACvC,OAAO,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,MAAM;IAC7B,MAAM,CAAe;IACrB,MAAM,CAAY;IAClB,UAAU,CAAS;IAE5B,YAAY,MAAoB,EAAE,KAAkB;QAClD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEtC,4CAA4C;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC9B,IAAI;oBACJ,2BAA2B;oBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;oBAC1E,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,SAAS;oBAC1D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;iBACrB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"webgpu-buffer.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CommandBufferProps } from '@luma.gl/core';
|
|
2
|
+
import { CommandBuffer } from '@luma.gl/core';
|
|
3
|
+
import { WebGPUDevice } from "../webgpu-device.js";
|
|
4
|
+
import type { WebGPUCommandEncoder } from "./webgpu-command-encoder.js";
|
|
5
|
+
export declare class WebGPUCommandBuffer extends CommandBuffer {
|
|
6
|
+
device: WebGPUDevice;
|
|
7
|
+
handle: GPUCommandBuffer;
|
|
8
|
+
constructor(commandEncoder: WebGPUCommandEncoder, props: CommandBufferProps);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=webgpu-command-buffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-command-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,KAAK,EAAC,oBAAoB,EAAC,oCAAiC;AAEnE,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,gBAAgB,CAAC;gBAEb,cAAc,EAAE,oBAAoB,EAAE,KAAK,EAAE,kBAAkB;CAS5E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { CommandBuffer } from '@luma.gl/core';
|
|
5
|
+
export class WebGPUCommandBuffer extends CommandBuffer {
|
|
6
|
+
device;
|
|
7
|
+
handle;
|
|
8
|
+
constructor(commandEncoder, props) {
|
|
9
|
+
super(commandEncoder.device, {});
|
|
10
|
+
this.device = commandEncoder.device;
|
|
11
|
+
this.handle =
|
|
12
|
+
this.props.handle ||
|
|
13
|
+
commandEncoder.handle.finish({
|
|
14
|
+
label: props?.id || 'unnamed-command-buffer'
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=webgpu-command-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-command-buffer.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-buffer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAK5C,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,MAAM,CAAe;IACrB,MAAM,CAAmB;IAEzB,YAAY,cAAoC,EAAE,KAAyB;QACzE,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,KAAK,CAAC,MAAM;gBACjB,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC3B,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,wBAAwB;iBAC7C,CAAC,CAAC;IACP,CAAC;CACF"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
import type { RenderPassProps, ComputePassProps, CopyTextureToTextureOptions, CopyTextureToBufferOptions } from '@luma.gl/core';
|
|
1
2
|
import { CommandEncoder, CommandEncoderProps, Buffer, Texture } from '@luma.gl/core';
|
|
2
|
-
import type { CopyTextureToTextureOptions, CopyTextureToBufferOptions } from '@luma.gl/core';
|
|
3
3
|
import { WebGPUDevice } from "../webgpu-device.js";
|
|
4
|
+
import { WebGPUCommandBuffer } from "./webgpu-command-buffer.js";
|
|
5
|
+
import { WebGPURenderPass } from "./webgpu-render-pass.js";
|
|
6
|
+
import { WebGPUComputePass } from "./webgpu-compute-pass.js";
|
|
4
7
|
import { WebGPUQuerySet } from "./webgpu-query-set.js";
|
|
5
8
|
export declare class WebGPUCommandEncoder extends CommandEncoder {
|
|
6
9
|
readonly device: WebGPUDevice;
|
|
7
10
|
readonly handle: GPUCommandEncoder;
|
|
8
|
-
constructor(device: WebGPUDevice, props
|
|
11
|
+
constructor(device: WebGPUDevice, props?: CommandEncoderProps);
|
|
9
12
|
destroy(): void;
|
|
10
|
-
finish(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
finish(props?: CommandEncoderProps): WebGPUCommandBuffer;
|
|
14
|
+
/**
|
|
15
|
+
* Allows a render pass to begin against a canvas context
|
|
16
|
+
* @todo need to support a "Framebuffer" equivalent (aka preconfigured RenderPassDescriptors?).
|
|
17
|
+
*/
|
|
18
|
+
beginRenderPass(props: RenderPassProps): WebGPURenderPass;
|
|
19
|
+
beginComputePass(props: ComputePassProps): WebGPUComputePass;
|
|
13
20
|
copyBufferToBuffer(options: {
|
|
14
21
|
sourceBuffer: Buffer;
|
|
15
22
|
sourceOffset?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-command-encoder.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AACnF,OAAO,
|
|
1
|
+
{"version":3,"file":"webgpu-command-encoder.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-command-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AACnF,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAExD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAEvB,MAAM,EAAE,YAAY,EAAE,KAAK,GAAE,mBAAwB;IAaxD,OAAO,IAAI,IAAI;IAExB,MAAM,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;IAMxD;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,gBAAgB;IAIzD,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB;IAO5D,kBAAkB,CAAC,OAAO,EAC1B;QACE,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,IAAI;IAYR,mBAAmB,CAAC,OAAO,EAC3B;QACE,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QAErB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,KAAK,GAAG,cAAc,GAAG,YAAY,CAAC;QAE/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9C,GAAG,IAAI;IAyBR,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAW9D,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI;IAWvD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIxC,aAAa,IAAI,IAAI;IAIrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI5C,eAAe,CACtB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GACA,IAAI;CAWR"}
|
|
@@ -2,23 +2,39 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { CommandEncoder } from '@luma.gl/core';
|
|
5
|
+
import { WebGPUCommandBuffer } from "./webgpu-command-buffer.js";
|
|
6
|
+
import { WebGPURenderPass } from "./webgpu-render-pass.js";
|
|
7
|
+
import { WebGPUComputePass } from "./webgpu-compute-pass.js";
|
|
5
8
|
export class WebGPUCommandEncoder extends CommandEncoder {
|
|
6
9
|
device;
|
|
7
10
|
handle;
|
|
8
|
-
constructor(device, props) {
|
|
11
|
+
constructor(device, props = {}) {
|
|
9
12
|
super(device, props);
|
|
10
13
|
this.device = device;
|
|
11
14
|
this.handle =
|
|
12
15
|
props.handle ||
|
|
13
16
|
this.device.handle.createCommandEncoder({
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
label: this.props.id
|
|
18
|
+
// TODO was this removed in standard?
|
|
19
|
+
// measureExecutionTime: this.props.measureExecutionTime
|
|
16
20
|
});
|
|
17
21
|
this.handle.label = this.props.id;
|
|
18
22
|
}
|
|
19
23
|
destroy() { }
|
|
20
|
-
finish(
|
|
21
|
-
return this
|
|
24
|
+
finish(props) {
|
|
25
|
+
return new WebGPUCommandBuffer(this, {
|
|
26
|
+
id: props?.id || 'unnamed-command-buffer'
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Allows a render pass to begin against a canvas context
|
|
31
|
+
* @todo need to support a "Framebuffer" equivalent (aka preconfigured RenderPassDescriptors?).
|
|
32
|
+
*/
|
|
33
|
+
beginRenderPass(props) {
|
|
34
|
+
return new WebGPURenderPass(this.device, props);
|
|
35
|
+
}
|
|
36
|
+
beginComputePass(props) {
|
|
37
|
+
return new WebGPUComputePass(this.device, props);
|
|
22
38
|
}
|
|
23
39
|
// beginRenderPass(GPURenderPassDescriptor descriptor): GPURenderPassEncoder;
|
|
24
40
|
// beginComputePass(optional GPUComputePassDescriptor descriptor = {}): GPUComputePassEncoder;
|
|
@@ -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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"}
|