@luma.gl/webgpu 9.1.5 → 9.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/helpers/get-bind-group.d.ts.map +1 -1
- package/dist/adapter/helpers/get-bind-group.js +2 -1
- package/dist/adapter/helpers/get-bind-group.js.map +1 -1
- package/dist/adapter/resources/webgpu-pipeline-layout.d.ts +10 -0
- package/dist/adapter/resources/webgpu-pipeline-layout.d.ts.map +1 -0
- package/dist/adapter/resources/webgpu-pipeline-layout.js +101 -0
- package/dist/adapter/resources/webgpu-pipeline-layout.js.map +1 -0
- package/dist/adapter/resources/webgpu-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgpu-render-pipeline.js +4 -1
- package/dist/adapter/resources/webgpu-render-pipeline.js.map +1 -1
- package/dist/adapter/webgpu-device.d.ts +3 -1
- package/dist/adapter/webgpu-device.d.ts.map +1 -1
- package/dist/adapter/webgpu-device.js +4 -1
- package/dist/adapter/webgpu-device.js.map +1 -1
- package/dist/dist.dev.js +117 -15
- package/dist/dist.min.js +5 -5
- package/dist/index.cjs +117 -15
- package/dist/index.cjs.map +4 -4
- package/package.json +2 -2
- package/src/adapter/helpers/get-bind-group.ts +2 -1
- package/src/adapter/resources/webgpu-pipeline-layout.ts +125 -0
- package/src/adapter/resources/webgpu-render-pipeline.ts +5 -1
- package/src/adapter/webgpu-device.ts +7 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-bind-group.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAMpF;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,OAAO,EAAE,GAClB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,kBAAkB,EACnC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAMd;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,GAClB,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"get-bind-group.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAMpF;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,OAAO,EAAE,GAClB,kBAAkB,CAMpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,kBAAkB,EACnC,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAMd;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,MAAM,GAClB,kBAAkB,GAAG,IAAI,CAU3B"}
|
|
@@ -24,7 +24,8 @@ export function getBindGroup(device, bindGroupLayout, shaderLayout, bindings) {
|
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
export function getShaderLayoutBinding(shaderLayout, bindingName) {
|
|
27
|
-
const bindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName ||
|
|
27
|
+
const bindingLayout = shaderLayout.bindings.find(binding => binding.name === bindingName ||
|
|
28
|
+
`${binding.name.toLocaleLowerCase()}uniforms` === bindingName.toLocaleLowerCase());
|
|
28
29
|
if (!bindingLayout) {
|
|
29
30
|
log.warn(`Binding ${bindingName} not set: Not found in shader layout.`)();
|
|
30
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-bind-group.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"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,OAAO,MAAM,CAAC,eAAe,CAAC;QAC5B,MAAM,EAAE,eAAe;QACvB,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,YAAiC,EACjC,WAAmB;IAEnB,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAC9C,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,IAAI,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"get-bind-group.js","sourceRoot":"","sources":["../../../src/adapter/helpers/get-bind-group.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PipelineLayout, PipelineLayoutProps } from '@luma.gl/core';
|
|
2
|
+
import { WebGPUDevice } from "../webgpu-device.js";
|
|
3
|
+
export declare class WebGPUPipelineLayout extends PipelineLayout {
|
|
4
|
+
device: WebGPUDevice;
|
|
5
|
+
handle: GPUPipelineLayout;
|
|
6
|
+
constructor(device: WebGPUDevice, props: PipelineLayoutProps);
|
|
7
|
+
destroy(): void;
|
|
8
|
+
protected mapShaderLayoutToBindGroupEntries(): GPUBindGroupLayoutEntry[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=webgpu-pipeline-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-pipeline-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-pipeline-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EAGpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAI9C,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;gBAEd,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IAqBnD,OAAO,IAAI,IAAI;IAMxB,SAAS,CAAC,iCAAiC,IAAI,uBAAuB,EAAE;CA6EzE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { PipelineLayout } from '@luma.gl/core';
|
|
2
|
+
const VISIBILITY_ALL = GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT | GPUShaderStage.COMPUTE;
|
|
3
|
+
export class WebGPUPipelineLayout extends PipelineLayout {
|
|
4
|
+
device;
|
|
5
|
+
handle;
|
|
6
|
+
constructor(device, props) {
|
|
7
|
+
super(device, props);
|
|
8
|
+
this.device = device;
|
|
9
|
+
const bindGroupEntries = this.mapShaderLayoutToBindGroupEntries();
|
|
10
|
+
this.handle = this.device.handle.createPipelineLayout({
|
|
11
|
+
label: props?.id ?? 'unnamed-pipeline-layout',
|
|
12
|
+
bindGroupLayouts: [
|
|
13
|
+
// TODO (kaapp): We can cache these to re-use them across
|
|
14
|
+
// layers, particularly if using a separate group for injected
|
|
15
|
+
// bindings (e.g. project/lighting)
|
|
16
|
+
this.device.handle.createBindGroupLayout({
|
|
17
|
+
label: 'bind-group-layout',
|
|
18
|
+
entries: bindGroupEntries
|
|
19
|
+
})
|
|
20
|
+
]
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
destroy() {
|
|
24
|
+
// WebGPUPipelineLayout has no destroy method.
|
|
25
|
+
// @ts-expect-error
|
|
26
|
+
this.handle = null;
|
|
27
|
+
}
|
|
28
|
+
mapShaderLayoutToBindGroupEntries() {
|
|
29
|
+
// Set up the pipeline layout
|
|
30
|
+
// TODO (kaapp): This only supports the first group, but so does the rest of the code
|
|
31
|
+
const bindGroupEntries = [];
|
|
32
|
+
for (let i = 0; i < this.props.shaderLayout.bindings.length; i++) {
|
|
33
|
+
const binding = this.props.shaderLayout.bindings[i];
|
|
34
|
+
const bindingTypeInfo = {};
|
|
35
|
+
switch (binding.type) {
|
|
36
|
+
case 'uniform': {
|
|
37
|
+
bindingTypeInfo.buffer = {
|
|
38
|
+
type: 'uniform',
|
|
39
|
+
hasDynamicOffset: binding.hasDynamicOffset,
|
|
40
|
+
minBindingSize: binding.minBindingSize
|
|
41
|
+
};
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case 'read-only-storage': {
|
|
45
|
+
bindingTypeInfo.buffer = {
|
|
46
|
+
type: 'read-only-storage',
|
|
47
|
+
hasDynamicOffset: binding.hasDynamicOffset,
|
|
48
|
+
minBindingSize: binding.minBindingSize
|
|
49
|
+
};
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'sampler': {
|
|
53
|
+
bindingTypeInfo.sampler = {
|
|
54
|
+
type: binding.samplerType
|
|
55
|
+
};
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
case 'storage': {
|
|
59
|
+
if (isStorageTextureBindingLayout(binding)) {
|
|
60
|
+
bindingTypeInfo.storageTexture = {
|
|
61
|
+
// TODO (kaapp): Not all formats in the binding layout are supported
|
|
62
|
+
// by WebGPU, but at least it will provide a clear error for now.
|
|
63
|
+
format: binding.format,
|
|
64
|
+
access: binding.access,
|
|
65
|
+
viewDimension: binding.viewDimension
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
bindingTypeInfo.buffer = {
|
|
70
|
+
type: 'storage',
|
|
71
|
+
hasDynamicOffset: binding.hasDynamicOffset,
|
|
72
|
+
minBindingSize: binding.minBindingSize
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
case 'texture': {
|
|
78
|
+
bindingTypeInfo.texture = {
|
|
79
|
+
multisampled: binding.multisampled,
|
|
80
|
+
sampleType: binding.sampleType,
|
|
81
|
+
viewDimension: binding.viewDimension
|
|
82
|
+
};
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
default: {
|
|
86
|
+
console.warn('unhandled binding type when creating pipeline descriptor');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
bindGroupEntries.push({
|
|
90
|
+
binding: binding.location,
|
|
91
|
+
visibility: binding.visibility || VISIBILITY_ALL,
|
|
92
|
+
...bindingTypeInfo
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return bindGroupEntries;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
const isStorageTextureBindingLayout = (maybe) => {
|
|
99
|
+
return maybe.format !== undefined;
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=webgpu-pipeline-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgpu-pipeline-layout.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-pipeline-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAM,MAAM,eAAe,CAAC;AASvE,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAEnD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAKlD,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IA2BnD,OAAO,IAAI,IAAI;IAMxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,kDAAkD;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IA6CX,iDAAiD;IACjD,aAAa;IAiBb;;OAEG;IACH,SAAS,CAAC,4BAA4B;
|
|
1
|
+
{"version":3,"file":"webgpu-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAM,MAAM,eAAe,CAAC;AASvE,OAAO,KAAK,EAAC,YAAY,EAAC,4BAAyB;AAEnD,OAAO,KAAK,EAAC,YAAY,EAAC,2BAAwB;AAKlD,2DAA2D;AAC3D,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAE1B,EAAE,EAAE,YAAY,CAAC;IACjB,EAAE,EAAE,YAAY,GAAG,IAAI,CAAQ;IAE/B,4CAA4C;IAC5C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAA6B;gBAEnC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB;IA2BnD,OAAO,IAAI,IAAI;IAMxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,kDAAkD;IAClD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IA6CX,iDAAiD;IACjD,aAAa;IAiBb;;OAEG;IACH,SAAS,CAAC,4BAA4B;CA+CvC;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyCE"}
|
|
@@ -116,6 +116,9 @@ export class WebGPURenderPipeline extends RenderPipeline {
|
|
|
116
116
|
}
|
|
117
117
|
]
|
|
118
118
|
};
|
|
119
|
+
const layout = this.device.createPipelineLayout({
|
|
120
|
+
shaderLayout: this.shaderLayout
|
|
121
|
+
});
|
|
119
122
|
// Create a partially populated descriptor
|
|
120
123
|
const descriptor = {
|
|
121
124
|
vertex,
|
|
@@ -123,7 +126,7 @@ export class WebGPURenderPipeline extends RenderPipeline {
|
|
|
123
126
|
primitive: {
|
|
124
127
|
topology: this.props.topology
|
|
125
128
|
},
|
|
126
|
-
layout:
|
|
129
|
+
layout: layout.handle
|
|
127
130
|
};
|
|
128
131
|
if (this.props.parameters.depthWriteEnabled && this.props.parameters.depthCompare) {
|
|
129
132
|
descriptor.depthStencil = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webgpu-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-render-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DeviceInfo, DeviceLimits, DeviceTextureFormatCapabilities, CanvasContextProps, BufferProps, SamplerProps, ShaderProps, Texture, TextureProps, ExternalTextureProps, FramebufferProps, RenderPipelineProps, ComputePipelineProps, RenderPassProps, ComputePassProps, VertexArrayProps, TransformFeedback, TransformFeedbackProps, QuerySet, QuerySetProps, DeviceProps } from '@luma.gl/core';
|
|
1
|
+
import type { DeviceInfo, DeviceLimits, DeviceTextureFormatCapabilities, CanvasContextProps, BufferProps, SamplerProps, ShaderProps, Texture, TextureProps, ExternalTextureProps, FramebufferProps, RenderPipelineProps, ComputePipelineProps, RenderPassProps, ComputePassProps, VertexArrayProps, TransformFeedback, TransformFeedbackProps, QuerySet, QuerySetProps, DeviceProps, PipelineLayoutProps } from '@luma.gl/core';
|
|
2
2
|
import { Device, DeviceFeatures } from '@luma.gl/core';
|
|
3
3
|
import { WebGPUBuffer } from "./resources/webgpu-buffer.js";
|
|
4
4
|
import { WebGPUTexture } from "./resources/webgpu-texture.js";
|
|
@@ -12,6 +12,7 @@ import { WebGPURenderPass } from "./resources/webgpu-render-pass.js";
|
|
|
12
12
|
import { WebGPUComputePass } from "./resources/webgpu-compute-pass.js";
|
|
13
13
|
import { WebGPUVertexArray } from "./resources/webgpu-vertex-array.js";
|
|
14
14
|
import { WebGPUCanvasContext } from "./webgpu-canvas-context.js";
|
|
15
|
+
import { WebGPUPipelineLayout } from "./resources/webgpu-pipeline-layout.js";
|
|
15
16
|
/** WebGPU Device implementation */
|
|
16
17
|
export declare class WebGPUDevice extends Device {
|
|
17
18
|
/** type of this device */
|
|
@@ -52,6 +53,7 @@ export declare class WebGPUDevice extends Device {
|
|
|
52
53
|
createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;
|
|
53
54
|
createQuerySet(props: QuerySetProps): QuerySet;
|
|
54
55
|
createCanvasContext(props: CanvasContextProps): WebGPUCanvasContext;
|
|
56
|
+
createPipelineLayout(props: PipelineLayoutProps): WebGPUPipelineLayout;
|
|
55
57
|
submit(): void;
|
|
56
58
|
protected _getInfo(): DeviceInfo;
|
|
57
59
|
protected _getFeatures(): DeviceFeatures;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EAEZ,+BAA+B,EAC/B,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAEhB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,QAAQ,EACR,aAAa,EACb,WAAW,
|
|
1
|
+
{"version":3,"file":"webgpu-device.d.ts","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import { WebGPUComputePass } from "./resources/webgpu-compute-pass.js";
|
|
|
16
16
|
import { WebGPUVertexArray } from "./resources/webgpu-vertex-array.js";
|
|
17
17
|
import { WebGPUCanvasContext } from "./webgpu-canvas-context.js";
|
|
18
18
|
import { WebGPUQuerySet } from "./resources/webgpu-query-set.js";
|
|
19
|
+
import { WebGPUPipelineLayout } from "./resources/webgpu-pipeline-layout.js";
|
|
19
20
|
/** WebGPU Device implementation */
|
|
20
21
|
export class WebGPUDevice extends Device {
|
|
21
22
|
/** type of this device */
|
|
@@ -128,6 +129,9 @@ export class WebGPUDevice extends Device {
|
|
|
128
129
|
createCanvasContext(props) {
|
|
129
130
|
return new WebGPUCanvasContext(this, this.adapter, props);
|
|
130
131
|
}
|
|
132
|
+
createPipelineLayout(props) {
|
|
133
|
+
return new WebGPUPipelineLayout(this, props);
|
|
134
|
+
}
|
|
131
135
|
submit() {
|
|
132
136
|
const commandBuffer = this.commandEncoder?.finish();
|
|
133
137
|
if (commandBuffer) {
|
|
@@ -139,7 +143,6 @@ export class WebGPUDevice extends Device {
|
|
|
139
143
|
}
|
|
140
144
|
});
|
|
141
145
|
}
|
|
142
|
-
this.commandEncoder = null;
|
|
143
146
|
}
|
|
144
147
|
// PRIVATE METHODS
|
|
145
148
|
_getInfo() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu-device.js","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"webgpu-device.js","sourceRoot":"","sources":["../../src/adapter/webgpu-device.ts"],"names":[],"mappings":"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"}
|
package/dist/dist.dev.js
CHANGED
|
@@ -57,10 +57,10 @@ var __exports__ = (() => {
|
|
|
57
57
|
__reExport(bundle_exports, __toESM(require_core(), 1));
|
|
58
58
|
|
|
59
59
|
// src/adapter/webgpu-adapter.ts
|
|
60
|
-
var
|
|
60
|
+
var import_core20 = __toESM(require_core(), 1);
|
|
61
61
|
|
|
62
62
|
// src/adapter/webgpu-device.ts
|
|
63
|
-
var
|
|
63
|
+
var import_core19 = __toESM(require_core(), 1);
|
|
64
64
|
|
|
65
65
|
// src/adapter/resources/webgpu-buffer.ts
|
|
66
66
|
var import_core = __toESM(require_core(), 1);
|
|
@@ -692,7 +692,7 @@ var __exports__ = (() => {
|
|
|
692
692
|
}
|
|
693
693
|
function getShaderLayoutBinding(shaderLayout, bindingName) {
|
|
694
694
|
const bindingLayout = shaderLayout.bindings.find(
|
|
695
|
-
(binding) => binding.name === bindingName || `${binding.name}uniforms` === bindingName.toLocaleLowerCase()
|
|
695
|
+
(binding) => binding.name === bindingName || `${binding.name.toLocaleLowerCase()}uniforms` === bindingName.toLocaleLowerCase()
|
|
696
696
|
);
|
|
697
697
|
if (!bindingLayout) {
|
|
698
698
|
import_core8.log.warn(`Binding ${bindingName} not set: Not found in shader layout.`)();
|
|
@@ -928,13 +928,16 @@ var __exports__ = (() => {
|
|
|
928
928
|
}
|
|
929
929
|
]
|
|
930
930
|
};
|
|
931
|
+
const layout = this.device.createPipelineLayout({
|
|
932
|
+
shaderLayout: this.shaderLayout
|
|
933
|
+
});
|
|
931
934
|
const descriptor = {
|
|
932
935
|
vertex,
|
|
933
936
|
fragment,
|
|
934
937
|
primitive: {
|
|
935
938
|
topology: this.props.topology
|
|
936
939
|
},
|
|
937
|
-
layout:
|
|
940
|
+
layout: layout.handle
|
|
938
941
|
};
|
|
939
942
|
if (this.props.parameters.depthWriteEnabled && this.props.parameters.depthCompare) {
|
|
940
943
|
descriptor.depthStencil = {
|
|
@@ -1481,8 +1484,105 @@ var __exports__ = (() => {
|
|
|
1481
1484
|
}
|
|
1482
1485
|
};
|
|
1483
1486
|
|
|
1487
|
+
// src/adapter/resources/webgpu-pipeline-layout.ts
|
|
1488
|
+
var import_core18 = __toESM(require_core(), 1);
|
|
1489
|
+
var VISIBILITY_ALL = GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT | GPUShaderStage.COMPUTE;
|
|
1490
|
+
var WebGPUPipelineLayout = class extends import_core18.PipelineLayout {
|
|
1491
|
+
device;
|
|
1492
|
+
handle;
|
|
1493
|
+
constructor(device, props) {
|
|
1494
|
+
super(device, props);
|
|
1495
|
+
this.device = device;
|
|
1496
|
+
const bindGroupEntries = this.mapShaderLayoutToBindGroupEntries();
|
|
1497
|
+
this.handle = this.device.handle.createPipelineLayout({
|
|
1498
|
+
label: props?.id ?? "unnamed-pipeline-layout",
|
|
1499
|
+
bindGroupLayouts: [
|
|
1500
|
+
// TODO (kaapp): We can cache these to re-use them across
|
|
1501
|
+
// layers, particularly if using a separate group for injected
|
|
1502
|
+
// bindings (e.g. project/lighting)
|
|
1503
|
+
this.device.handle.createBindGroupLayout({
|
|
1504
|
+
label: "bind-group-layout",
|
|
1505
|
+
entries: bindGroupEntries
|
|
1506
|
+
})
|
|
1507
|
+
]
|
|
1508
|
+
});
|
|
1509
|
+
}
|
|
1510
|
+
destroy() {
|
|
1511
|
+
this.handle = null;
|
|
1512
|
+
}
|
|
1513
|
+
mapShaderLayoutToBindGroupEntries() {
|
|
1514
|
+
const bindGroupEntries = [];
|
|
1515
|
+
for (let i = 0; i < this.props.shaderLayout.bindings.length; i++) {
|
|
1516
|
+
const binding = this.props.shaderLayout.bindings[i];
|
|
1517
|
+
const bindingTypeInfo = {};
|
|
1518
|
+
switch (binding.type) {
|
|
1519
|
+
case "uniform": {
|
|
1520
|
+
bindingTypeInfo.buffer = {
|
|
1521
|
+
type: "uniform",
|
|
1522
|
+
hasDynamicOffset: binding.hasDynamicOffset,
|
|
1523
|
+
minBindingSize: binding.minBindingSize
|
|
1524
|
+
};
|
|
1525
|
+
break;
|
|
1526
|
+
}
|
|
1527
|
+
case "read-only-storage": {
|
|
1528
|
+
bindingTypeInfo.buffer = {
|
|
1529
|
+
type: "read-only-storage",
|
|
1530
|
+
hasDynamicOffset: binding.hasDynamicOffset,
|
|
1531
|
+
minBindingSize: binding.minBindingSize
|
|
1532
|
+
};
|
|
1533
|
+
break;
|
|
1534
|
+
}
|
|
1535
|
+
case "sampler": {
|
|
1536
|
+
bindingTypeInfo.sampler = {
|
|
1537
|
+
type: binding.samplerType
|
|
1538
|
+
};
|
|
1539
|
+
break;
|
|
1540
|
+
}
|
|
1541
|
+
case "storage": {
|
|
1542
|
+
if (isStorageTextureBindingLayout(binding)) {
|
|
1543
|
+
bindingTypeInfo.storageTexture = {
|
|
1544
|
+
// TODO (kaapp): Not all formats in the binding layout are supported
|
|
1545
|
+
// by WebGPU, but at least it will provide a clear error for now.
|
|
1546
|
+
format: binding.format,
|
|
1547
|
+
access: binding.access,
|
|
1548
|
+
viewDimension: binding.viewDimension
|
|
1549
|
+
};
|
|
1550
|
+
} else {
|
|
1551
|
+
bindingTypeInfo.buffer = {
|
|
1552
|
+
type: "storage",
|
|
1553
|
+
hasDynamicOffset: binding.hasDynamicOffset,
|
|
1554
|
+
minBindingSize: binding.minBindingSize
|
|
1555
|
+
};
|
|
1556
|
+
}
|
|
1557
|
+
break;
|
|
1558
|
+
}
|
|
1559
|
+
case "texture": {
|
|
1560
|
+
bindingTypeInfo.texture = {
|
|
1561
|
+
multisampled: binding.multisampled,
|
|
1562
|
+
sampleType: binding.sampleType,
|
|
1563
|
+
viewDimension: binding.viewDimension
|
|
1564
|
+
};
|
|
1565
|
+
break;
|
|
1566
|
+
}
|
|
1567
|
+
default: {
|
|
1568
|
+
console.warn("unhandled binding type when creating pipeline descriptor");
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
bindGroupEntries.push({
|
|
1572
|
+
binding: binding.location,
|
|
1573
|
+
visibility: binding.visibility || VISIBILITY_ALL,
|
|
1574
|
+
...bindingTypeInfo
|
|
1575
|
+
});
|
|
1576
|
+
}
|
|
1577
|
+
return bindGroupEntries;
|
|
1578
|
+
}
|
|
1579
|
+
};
|
|
1580
|
+
var isStorageTextureBindingLayout = (maybe) => {
|
|
1581
|
+
return maybe.format !== void 0;
|
|
1582
|
+
};
|
|
1583
|
+
|
|
1484
1584
|
// src/adapter/webgpu-device.ts
|
|
1485
|
-
var WebGPUDevice = class extends
|
|
1585
|
+
var WebGPUDevice = class extends import_core19.Device {
|
|
1486
1586
|
/** type of this device */
|
|
1487
1587
|
type = "webgpu";
|
|
1488
1588
|
/** The underlying WebGPU device */
|
|
@@ -1520,7 +1620,7 @@ var __exports__ = (() => {
|
|
|
1520
1620
|
this._isLost = true;
|
|
1521
1621
|
resolve({ reason: "destroyed", message: lostInfo.message });
|
|
1522
1622
|
});
|
|
1523
|
-
const canvasContextProps =
|
|
1623
|
+
const canvasContextProps = import_core19.Device._getCanvasContextProps(props);
|
|
1524
1624
|
if (canvasContextProps) {
|
|
1525
1625
|
this.canvasContext = new WebGPUCanvasContext(this, this.adapter, canvasContextProps);
|
|
1526
1626
|
}
|
|
@@ -1588,6 +1688,9 @@ var __exports__ = (() => {
|
|
|
1588
1688
|
createCanvasContext(props) {
|
|
1589
1689
|
return new WebGPUCanvasContext(this, this.adapter, props);
|
|
1590
1690
|
}
|
|
1691
|
+
createPipelineLayout(props) {
|
|
1692
|
+
return new WebGPUPipelineLayout(this, props);
|
|
1693
|
+
}
|
|
1591
1694
|
submit() {
|
|
1592
1695
|
const commandBuffer = this.commandEncoder?.finish();
|
|
1593
1696
|
if (commandBuffer) {
|
|
@@ -1599,7 +1702,6 @@ var __exports__ = (() => {
|
|
|
1599
1702
|
}
|
|
1600
1703
|
});
|
|
1601
1704
|
}
|
|
1602
|
-
this.commandEncoder = null;
|
|
1603
1705
|
}
|
|
1604
1706
|
// PRIVATE METHODS
|
|
1605
1707
|
_getInfo() {
|
|
@@ -1645,7 +1747,7 @@ var __exports__ = (() => {
|
|
|
1645
1747
|
for (const feature of WEBGPU_ALWAYS_FEATURES) {
|
|
1646
1748
|
features.add(feature);
|
|
1647
1749
|
}
|
|
1648
|
-
return new
|
|
1750
|
+
return new import_core19.DeviceFeatures(Array.from(features), this.props._disabledFeatures);
|
|
1649
1751
|
}
|
|
1650
1752
|
_getDeviceSpecificTextureFormatCapabilities(capabilities) {
|
|
1651
1753
|
const { format } = capabilities;
|
|
@@ -1697,7 +1799,7 @@ var __exports__ = (() => {
|
|
|
1697
1799
|
};
|
|
1698
1800
|
|
|
1699
1801
|
// src/adapter/webgpu-adapter.ts
|
|
1700
|
-
var WebGPUAdapter = class extends
|
|
1802
|
+
var WebGPUAdapter = class extends import_core20.Adapter {
|
|
1701
1803
|
/** type of device's created by this adapter */
|
|
1702
1804
|
type = "webgpu";
|
|
1703
1805
|
constructor() {
|
|
@@ -1714,7 +1816,7 @@ var __exports__ = (() => {
|
|
|
1714
1816
|
"WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu"
|
|
1715
1817
|
);
|
|
1716
1818
|
}
|
|
1717
|
-
|
|
1819
|
+
import_core20.log.groupCollapsed(1, "WebGPUDevice created")();
|
|
1718
1820
|
const adapter = await navigator.gpu.requestAdapter({
|
|
1719
1821
|
powerPreference: "high-performance"
|
|
1720
1822
|
// forceSoftware: false
|
|
@@ -1724,7 +1826,7 @@ var __exports__ = (() => {
|
|
|
1724
1826
|
}
|
|
1725
1827
|
const adapterInfo = adapter.info || // @ts-ignore Chrome has removed this function
|
|
1726
1828
|
await adapter.requestAdapterInfo?.();
|
|
1727
|
-
|
|
1829
|
+
import_core20.log.probe(2, "Adapter available", adapterInfo)();
|
|
1728
1830
|
const requiredFeatures = [];
|
|
1729
1831
|
const requiredLimits = {};
|
|
1730
1832
|
if (props._requestMaxLimits) {
|
|
@@ -1744,14 +1846,14 @@ var __exports__ = (() => {
|
|
|
1744
1846
|
requiredFeatures,
|
|
1745
1847
|
requiredLimits
|
|
1746
1848
|
});
|
|
1747
|
-
|
|
1849
|
+
import_core20.log.probe(1, "GPUDevice available")();
|
|
1748
1850
|
const device = new WebGPUDevice(props, gpuDevice, adapter, adapterInfo);
|
|
1749
|
-
|
|
1851
|
+
import_core20.log.probe(
|
|
1750
1852
|
1,
|
|
1751
1853
|
"Device created. For more info, set chrome://flags/#enable-webgpu-developer-features"
|
|
1752
1854
|
)();
|
|
1753
|
-
|
|
1754
|
-
|
|
1855
|
+
import_core20.log.table(1, device.info)();
|
|
1856
|
+
import_core20.log.groupEnd(1)();
|
|
1755
1857
|
return device;
|
|
1756
1858
|
}
|
|
1757
1859
|
async attach(handle) {
|