oidn-web 0.2.2 → 0.3.0
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/README.md +6 -3
- package/dist/oidn.js +3520 -3407
- package/dist/oidn.umd.cjs +474 -464
- package/lib/UNet.d.ts +22 -5
- package/lib/UNet.js +101 -74
- package/lib/UNet.js.map +1 -1
- package/lib/WGPUComputePass.d.ts +13 -3
- package/lib/WGPUComputePass.js +85 -29
- package/lib/WGPUComputePass.js.map +1 -1
- package/lib/backend.js +6 -1
- package/lib/backend.js.map +1 -1
- package/lib/helper.d.ts +3 -0
- package/lib/helper.js +6 -0
- package/lib/helper.js.map +1 -1
- package/lib/process.d.ts +14 -5
- package/lib/process.js +207 -86
- package/lib/process.js.map +1 -1
- package/package.json +1 -1
- package/src/UNet.ts +154 -100
- package/src/WGPUComputePass.ts +100 -38
- package/src/backend.ts +8 -2
- package/src/helper.ts +8 -0
- package/src/process.ts +227 -98
package/lib/WGPUComputePass.js
CHANGED
|
@@ -3,12 +3,14 @@ function isStorageParamsEqual(params, other) {
|
|
|
3
3
|
}
|
|
4
4
|
export const WORKGROUP_SIZE = 8;
|
|
5
5
|
export class WGPUComputePass {
|
|
6
|
+
autoUpdateOutputBuffer = true;
|
|
6
7
|
_label;
|
|
7
8
|
_device;
|
|
8
9
|
_outputBuffers = {};
|
|
9
10
|
_pipeline;
|
|
10
11
|
_bindGroups = [];
|
|
11
12
|
_needsUpdatePipeline = true;
|
|
13
|
+
_needsResizeBuffer = true;
|
|
12
14
|
_inputs = [];
|
|
13
15
|
_outputs = [];
|
|
14
16
|
_uniforms = [];
|
|
@@ -20,6 +22,11 @@ export class WGPUComputePass {
|
|
|
20
22
|
_csCode = '';
|
|
21
23
|
_csMain;
|
|
22
24
|
_csDefine;
|
|
25
|
+
_groupOffsets = {
|
|
26
|
+
inputs: 0,
|
|
27
|
+
uniforms: 1,
|
|
28
|
+
outputs: 2
|
|
29
|
+
};
|
|
23
30
|
constructor(label, device, opts) {
|
|
24
31
|
this._label = label;
|
|
25
32
|
this._device = device;
|
|
@@ -28,6 +35,7 @@ export class WGPUComputePass {
|
|
|
28
35
|
this._inputs = opts.inputs;
|
|
29
36
|
this._outputs = opts.outputs;
|
|
30
37
|
this._uniforms = opts.uniforms;
|
|
38
|
+
this.autoUpdateOutputBuffer = opts.autoUpdateOutputBuffer ?? true;
|
|
31
39
|
opts.uniforms.forEach((uniform) => {
|
|
32
40
|
this._uniformBuffers[uniform.label] = device.createBuffer({
|
|
33
41
|
label: this._label,
|
|
@@ -37,6 +45,11 @@ export class WGPUComputePass {
|
|
|
37
45
|
this._device.queue.writeBuffer(this._uniformBuffers[uniform.label], 0, uniform.data);
|
|
38
46
|
});
|
|
39
47
|
}
|
|
48
|
+
setCSCode({ csDefine, csMain }) {
|
|
49
|
+
this._csDefine = csDefine;
|
|
50
|
+
this._csMain = csMain;
|
|
51
|
+
this._needsUpdatePipeline = true;
|
|
52
|
+
}
|
|
40
53
|
setSize(width, height) {
|
|
41
54
|
width = Math.ceil(width);
|
|
42
55
|
height = Math.ceil(height);
|
|
@@ -44,7 +57,7 @@ export class WGPUComputePass {
|
|
|
44
57
|
this._width = width;
|
|
45
58
|
this._height = height;
|
|
46
59
|
if (sizeChanged) {
|
|
47
|
-
this.
|
|
60
|
+
this._needsResizeBuffer = true;
|
|
48
61
|
this._needsUpdatePipeline = true;
|
|
49
62
|
}
|
|
50
63
|
}
|
|
@@ -55,14 +68,29 @@ export class WGPUComputePass {
|
|
|
55
68
|
this._execHeight = height;
|
|
56
69
|
}
|
|
57
70
|
setOutputParams(outputParams) {
|
|
58
|
-
this.
|
|
71
|
+
if (this.autoUpdateOutputBuffer) {
|
|
72
|
+
this._updateOutputBuffers(outputParams);
|
|
73
|
+
}
|
|
59
74
|
this._needsUpdatePipeline = true;
|
|
60
75
|
}
|
|
76
|
+
setOutputBuffers(outputBuffers) {
|
|
77
|
+
this._outputBuffers = Object.keys(outputBuffers).reduce((obj, key) => {
|
|
78
|
+
obj[key] = {
|
|
79
|
+
buffer: outputBuffers[key],
|
|
80
|
+
params: { channels: 4 }
|
|
81
|
+
};
|
|
82
|
+
return obj;
|
|
83
|
+
}, {});
|
|
84
|
+
}
|
|
61
85
|
setUniform(label, data) {
|
|
62
86
|
const buffer = this._uniformBuffers[label];
|
|
63
87
|
this._device.queue.writeBuffer(buffer, 0, data);
|
|
64
88
|
}
|
|
65
|
-
|
|
89
|
+
getOutput(name) {
|
|
90
|
+
if (this._needsResizeBuffer && this.autoUpdateOutputBuffer) {
|
|
91
|
+
this._resizeOutputBuffers();
|
|
92
|
+
this._needsResizeBuffer = false;
|
|
93
|
+
}
|
|
66
94
|
return this._outputBuffers[name].buffer;
|
|
67
95
|
}
|
|
68
96
|
dispose() {
|
|
@@ -70,7 +98,7 @@ export class WGPUComputePass {
|
|
|
70
98
|
this._uniformBuffers[key].destroy();
|
|
71
99
|
});
|
|
72
100
|
Object.keys(this._outputBuffers).forEach((key) => {
|
|
73
|
-
this._outputBuffers[key].
|
|
101
|
+
this._outputBuffers[key].buffer.destroy();
|
|
74
102
|
});
|
|
75
103
|
}
|
|
76
104
|
_createBuffer(params) {
|
|
@@ -108,13 +136,13 @@ export class WGPUComputePass {
|
|
|
108
136
|
}
|
|
109
137
|
}
|
|
110
138
|
}
|
|
111
|
-
_updatePipeline(inputParams) {
|
|
139
|
+
_updatePipeline(inputParams, inputTypes) {
|
|
112
140
|
if (!this._needsUpdatePipeline) {
|
|
113
141
|
return;
|
|
114
142
|
}
|
|
115
143
|
this._needsUpdatePipeline = false;
|
|
116
144
|
const device = this._device;
|
|
117
|
-
const csCode = this._getFullCs(inputParams);
|
|
145
|
+
const csCode = this._getFullCs(inputParams, inputTypes);
|
|
118
146
|
if (csCode === this._csCode) {
|
|
119
147
|
return;
|
|
120
148
|
}
|
|
@@ -132,22 +160,41 @@ export class WGPUComputePass {
|
|
|
132
160
|
});
|
|
133
161
|
this._updateBindGroups();
|
|
134
162
|
}
|
|
135
|
-
_getFullCs(inputParams) {
|
|
163
|
+
_getFullCs(inputParams, inputTypes) {
|
|
136
164
|
const inputs = this._inputs;
|
|
137
|
-
const
|
|
165
|
+
const uniforms = this._uniforms;
|
|
166
|
+
let offset = 0;
|
|
167
|
+
const groupOffsets = (this._groupOffsets = {
|
|
168
|
+
inputs: 0,
|
|
169
|
+
uniforms: 0,
|
|
170
|
+
outputs: 0
|
|
171
|
+
});
|
|
172
|
+
if (inputs.length > 0) {
|
|
173
|
+
offset++;
|
|
174
|
+
}
|
|
175
|
+
if (uniforms.length > 0) {
|
|
176
|
+
groupOffsets.uniforms = offset;
|
|
177
|
+
offset++;
|
|
178
|
+
}
|
|
179
|
+
groupOffsets.outputs = offset;
|
|
138
180
|
const cs = `
|
|
139
181
|
${inputs
|
|
140
182
|
.sort()
|
|
141
|
-
.map((
|
|
142
|
-
|
|
143
|
-
|
|
183
|
+
.map((inputName, idx) => {
|
|
184
|
+
const bindingPrefix = `@group(${groupOffsets.inputs}) @binding(${idx}) `;
|
|
185
|
+
const varName = `in_${inputName}`;
|
|
186
|
+
// TODO more channels option.
|
|
187
|
+
return inputTypes[inputName] === 'texture'
|
|
188
|
+
? `${bindingPrefix} var ${varName}: texture_2d<f32>;`
|
|
189
|
+
: `${bindingPrefix} var<storage, read> ${varName}: array<vec${inputParams[inputName].channels}f>;`;
|
|
190
|
+
})
|
|
144
191
|
.join('\n')}
|
|
145
192
|
${this._uniforms
|
|
146
|
-
.map((uniform, idx) => `@group(${
|
|
193
|
+
.map((uniform, idx) => `@group(${groupOffsets.uniforms}) @binding(${idx}) var<uniform> ${uniform.label}: ${uniform.type};`)
|
|
147
194
|
.join('\n')}
|
|
148
195
|
|
|
149
196
|
${this._outputs
|
|
150
|
-
.map((name, idx) => `@group(${
|
|
197
|
+
.map((name, idx) => `@group(${groupOffsets.outputs}) @binding(${idx}) var<storage, read_write> out_${name}: array<vec${this._outputBuffers[name].params.channels}f>;`)
|
|
151
198
|
.join('\n')}
|
|
152
199
|
${this._csDefine ?? ''}
|
|
153
200
|
@compute @workgroup_size(${WORKGROUP_SIZE}, ${WORKGROUP_SIZE}, 1)
|
|
@@ -160,12 +207,11 @@ ${this._csMain}
|
|
|
160
207
|
_updateBindGroups() {
|
|
161
208
|
const bindGroups = [];
|
|
162
209
|
const device = this._device;
|
|
163
|
-
|
|
164
|
-
const uniformBindGroupIndex = this._inputs.length > 0 ? 1 : 0;
|
|
210
|
+
const groupOffsets = this._groupOffsets;
|
|
165
211
|
if (this._uniforms.length > 0) {
|
|
166
|
-
bindGroups[
|
|
212
|
+
bindGroups[groupOffsets.uniforms] = device.createBindGroup({
|
|
167
213
|
label: this._label,
|
|
168
|
-
layout: this._pipeline.getBindGroupLayout(
|
|
214
|
+
layout: this._pipeline.getBindGroupLayout(groupOffsets.uniforms),
|
|
169
215
|
entries: this._uniforms.map((uniform, idx) => ({
|
|
170
216
|
binding: idx,
|
|
171
217
|
resource: {
|
|
@@ -176,27 +222,37 @@ ${this._csMain}
|
|
|
176
222
|
}
|
|
177
223
|
this._bindGroups = bindGroups;
|
|
178
224
|
}
|
|
179
|
-
createPass(commandEncoder,
|
|
180
|
-
this.
|
|
181
|
-
|
|
225
|
+
createPass(commandEncoder, inputs) {
|
|
226
|
+
if (this._needsResizeBuffer && this.autoUpdateOutputBuffer) {
|
|
227
|
+
this._resizeOutputBuffers();
|
|
228
|
+
this._needsResizeBuffer = false;
|
|
229
|
+
}
|
|
230
|
+
const inputTypes = this._inputs.reduce((obj, inputName) => {
|
|
231
|
+
obj[inputName] = inputs[inputName].buffer ? 'buffer' : 'texture';
|
|
232
|
+
return obj;
|
|
233
|
+
}, {});
|
|
234
|
+
this._updatePipeline(inputs, inputTypes);
|
|
235
|
+
const groupOffsets = this._groupOffsets;
|
|
182
236
|
// TODO createBindGroup every time?
|
|
183
|
-
if (
|
|
184
|
-
this._bindGroups[
|
|
237
|
+
if (this._inputs.length > 0) {
|
|
238
|
+
this._bindGroups[groupOffsets.inputs] = this._device.createBindGroup({
|
|
185
239
|
label: this._label,
|
|
186
|
-
layout: this._pipeline.getBindGroupLayout(
|
|
187
|
-
entries: this._inputs.map((
|
|
240
|
+
layout: this._pipeline.getBindGroupLayout(groupOffsets.inputs),
|
|
241
|
+
entries: this._inputs.map((inputName, idx) => ({
|
|
188
242
|
binding: idx,
|
|
189
243
|
// TODO
|
|
190
|
-
resource:
|
|
191
|
-
|
|
192
|
-
|
|
244
|
+
resource: inputs[inputName].buffer
|
|
245
|
+
? {
|
|
246
|
+
buffer: inputs[inputName].buffer
|
|
247
|
+
}
|
|
248
|
+
: inputs[inputName].texture.createView()
|
|
193
249
|
}))
|
|
194
250
|
});
|
|
195
251
|
}
|
|
196
252
|
// Outputs
|
|
197
|
-
this._bindGroups[
|
|
253
|
+
this._bindGroups[groupOffsets.outputs] = this._device.createBindGroup({
|
|
198
254
|
label: this._label,
|
|
199
|
-
layout: this._pipeline.getBindGroupLayout(
|
|
255
|
+
layout: this._pipeline.getBindGroupLayout(groupOffsets.outputs),
|
|
200
256
|
entries: this._outputs.map((bufferName, idx) => ({
|
|
201
257
|
binding: idx,
|
|
202
258
|
resource: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WGPUComputePass.js","sourceRoot":"","sources":["../src/WGPUComputePass.ts"],"names":[],"mappings":"AAAA,SAAS,oBAAoB,CAC3B,MAA6B,EAC7B,KAA4B;IAE5B,OAAO,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WGPUComputePass.js","sourceRoot":"","sources":["../src/WGPUComputePass.ts"],"names":[],"mappings":"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"}
|
package/lib/backend.js
CHANGED
|
@@ -33,7 +33,12 @@ export async function initWebGPUBackend() {
|
|
|
33
33
|
catch (e) { }
|
|
34
34
|
}
|
|
35
35
|
export async function initWebGPUBackendWithDevice(device, adapter) {
|
|
36
|
-
|
|
36
|
+
// TODO multiple device and adapter in one backend
|
|
37
|
+
let backend = ENGINE.findBackend('webgpu-oidn');
|
|
38
|
+
if (backend != null) {
|
|
39
|
+
return backend;
|
|
40
|
+
}
|
|
41
|
+
backend = new WebGPUBackend(device, adapter);
|
|
37
42
|
ENGINE.registerBackend('webgpu-oidn', () => backend);
|
|
38
43
|
await ENGINE.setBackend('webgpu-oidn');
|
|
39
44
|
return backend;
|
package/lib/backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,WAAW,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,aAAa,GAA6B;YAC9C,eAAe,EAAE,kBAAkB;SACpC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAE,CAAC;QACrE,MAAM,gBAAgB,GAAwB,EAAE,CAAC;QAEjD,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,gBAAgB,CAAC,gBAAgB;YAC/B,gBAA4C,CAAC;QAE/C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,gBAAgB,CAAC,cAAc,GAAG;YAChC,8BAA8B,EAC5B,aAAa,CAAC,8BAA8B;YAC9C,gCAAgC,EAC9B,aAAa,CAAC,gCAAgC;YAChD,2BAA2B,EAAE,aAAa,CAAC,2BAA2B;YACtE,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,wBAAwB,EAAE,aAAa,CAAC,wBAAwB;YAChE,iCAAiC,EAC/B,aAAa,CAAC,iCAAiC;SAClD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAEvD,OAAO,2BAA2B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAiB,EACjB,OAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAE3D,OAAO,WAAW,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,aAAa,GAA6B;YAC9C,eAAe,EAAE,kBAAkB;SACpC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAE,CAAC;QACrE,MAAM,gBAAgB,GAAwB,EAAE,CAAC;QAEjD,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAC5C,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC/C,gBAAgB,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,gBAAgB,CAAC,gBAAgB;YAC/B,gBAA4C,CAAC;QAE/C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QACrC,gBAAgB,CAAC,cAAc,GAAG;YAChC,8BAA8B,EAC5B,aAAa,CAAC,8BAA8B;YAC9C,gCAAgC,EAC9B,aAAa,CAAC,gCAAgC;YAChD,2BAA2B,EAAE,aAAa,CAAC,2BAA2B;YACtE,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,wBAAwB,EAAE,aAAa,CAAC,wBAAwB;YAChE,iCAAiC,EAC/B,aAAa,CAAC,iCAAiC;SAClD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAEvD,OAAO,2BAA2B,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAiB,EACjB,OAAuB;IAEvB,kDAAkD;IAClD,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,OAAwB,CAAC;IAClC,CAAC;IAED,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEvC,OAAO,OAAwB,CAAC;AAClC,CAAC"}
|
package/lib/helper.d.ts
CHANGED
package/lib/helper.js
CHANGED
|
@@ -24,4 +24,10 @@ export function profileAndLogKernelCode(execute, disabled = true) {
|
|
|
24
24
|
console.log(code);
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
+
export function memory() {
|
|
28
|
+
return tfjs.memory();
|
|
29
|
+
}
|
|
30
|
+
export function tidy(f) {
|
|
31
|
+
return tfjs.tidy(f);
|
|
32
|
+
}
|
|
27
33
|
//# sourceMappingURL=helper.js.map
|
package/lib/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,MAAM,UAAU,uBAAuB,CAAC,OAAmB,EAAE,QAAQ,GAAG,IAAI;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,IAAI;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACvE,CACF,CAAC;QACF,SAAS,YAAY,CAAC,IAAY;YAChC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1D,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAChC,CAAC,IAAI,EAAE,EAAE,CACP,YAAY,YAAY,CACtB,IAAI,CACL,yDAAyD,IAAI,IAAI,CACrE,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG;IACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAErB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;GAEtB,CAAC;QACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,MAAM,UAAU,uBAAuB,CAAC,OAAmB,EAAE,QAAQ,GAAG,IAAI;IAC1E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IACD,IAAI;SACD,OAAO,CAAC,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,IAAI,GAAG,CACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CACvE,CACF,CAAC;QACF,SAAS,YAAY,CAAC,IAAY;YAChC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1D,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAChC,CAAC,IAAI,EAAE,EAAE,CACP,YAAY,YAAY,CACtB,IAAI,CACL,yDAAyD,IAAI,IAAI,CACrE,CAAC;QACF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,IAAI,GAAG;IACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAErB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;GAEtB,CAAC;QACE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAa;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
|
package/lib/process.d.ts
CHANGED
|
@@ -22,18 +22,27 @@ export declare function hdrTransferFuncInverseCPU({ data, channels, inputScale }
|
|
|
22
22
|
}): Float32Array;
|
|
23
23
|
export declare class GPUDataProcess {
|
|
24
24
|
private _device;
|
|
25
|
-
private
|
|
25
|
+
private _isHDR;
|
|
26
|
+
private _inputPassAux;
|
|
27
|
+
private _inputPassColor;
|
|
26
28
|
private _outputPass;
|
|
27
|
-
|
|
29
|
+
private _copyPass;
|
|
30
|
+
private _isInputTexture;
|
|
31
|
+
constructor(_device: GPUDevice, _isHDR: boolean);
|
|
32
|
+
private _updatePasses;
|
|
28
33
|
setImageSize(w: number, h: number): void;
|
|
29
34
|
setInputTile(tile: Tile): void;
|
|
30
35
|
setOutputTile(dstTile: Tile, srcTile: Tile): void;
|
|
31
|
-
forward(colorBuffer: GPUBuffer, albedoBuffer: GPUBuffer, normalBuffer: GPUBuffer): {
|
|
36
|
+
forward(colorBuffer: GPUBuffer | GPUTexture, albedoBuffer: GPUBuffer | GPUTexture | undefined, normalBuffer: GPUBuffer | GPUTexture | undefined, denoiseAlpha: boolean | undefined): {
|
|
32
37
|
color: GPUBuffer;
|
|
33
38
|
albedo: GPUBuffer;
|
|
34
39
|
normal: GPUBuffer;
|
|
40
|
+
} | {
|
|
41
|
+
color: GPUBuffer;
|
|
42
|
+
albedo?: undefined;
|
|
43
|
+
normal?: undefined;
|
|
35
44
|
};
|
|
36
|
-
inverse(buffer: GPUBuffer, raw: GPUBuffer): GPUBuffer;
|
|
37
|
-
copyInputDataToOutput(inputColorBuffer: GPUBuffer): void;
|
|
45
|
+
inverse(buffer: GPUBuffer, raw: GPUBuffer | GPUTexture): GPUBuffer;
|
|
46
|
+
copyInputDataToOutput(inputColorBuffer: GPUBuffer | GPUTexture): void;
|
|
38
47
|
dispose(): void;
|
|
39
48
|
}
|