@forgeax/engine-render-graph 0.1.32 → 0.1.34
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 +13 -1
- package/dist/builder.d.ts.map +1 -1
- package/dist/compiled-graph.d.ts +1 -0
- package/dist/compiled-graph.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +118 -11
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.ts +56 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/render-graph-builder.unit.test.ts +114 -0
- package/src/__tests__/render-graph.unit.test.ts +49 -40
- package/src/builder.ts +28 -13
- package/src/compiled-graph.ts +128 -2
- package/src/index.ts +4 -0
- package/src/types.ts +63 -0
package/dist/types.d.ts
CHANGED
|
@@ -138,6 +138,7 @@ export interface GraphAccessInfo {
|
|
|
138
138
|
readonly resource: string;
|
|
139
139
|
readonly usage: GraphBufferAccess | GraphTextureAccess;
|
|
140
140
|
}
|
|
141
|
+
export type CompiledResourceByteSizeUnknownReason = 'imported-owner' | 'format-or-layout-unknown' | 'not-allocated';
|
|
141
142
|
/** Detached physical allocation facts for one compiled graph resource. */
|
|
142
143
|
export type CompiledResourceDescriptor = {
|
|
143
144
|
readonly kind: 'texture';
|
|
@@ -175,6 +176,8 @@ export interface CompiledRenderGraphInfo {
|
|
|
175
176
|
readonly physicalAllocationKey?: string | undefined;
|
|
176
177
|
/** Descriptor-derived byte size when the format is uncompressed and known. */
|
|
177
178
|
readonly byteSize?: number | undefined;
|
|
179
|
+
/** Why byteSize is absent; no zero is fabricated for an unknown owner/format. */
|
|
180
|
+
readonly byteSizeUnknownReason?: CompiledResourceByteSizeUnknownReason | undefined;
|
|
178
181
|
/** Texture format retained for producer-owned resource inspection. */
|
|
179
182
|
readonly format?: TextureFormat | undefined;
|
|
180
183
|
/** Texture allocation facts retained for capability/lifetime inspection. */
|
|
@@ -187,6 +190,59 @@ export interface CompiledRenderGraphInfo {
|
|
|
187
190
|
}[];
|
|
188
191
|
/** Monotonic graph generation assigned when this graph was compiled. */
|
|
189
192
|
readonly generation: number;
|
|
193
|
+
/**
|
|
194
|
+
* Graph-owned logical allocation facts. Imported resources are counted only
|
|
195
|
+
* as references; their physical bytes stay with the importing owner.
|
|
196
|
+
*/
|
|
197
|
+
readonly resourceAllocation?: RenderGraphResourceAllocationInspection | undefined;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* RenderGraph-owned logical allocation facts. Byte totals include only
|
|
201
|
+
* descriptor-derived sizes known by this package; physical GPU residency and
|
|
202
|
+
* imported-resource bytes remain unknown by contract.
|
|
203
|
+
*/
|
|
204
|
+
export interface RenderGraphResourceAllocationInspection {
|
|
205
|
+
readonly unit: 'engine-allocation-bytes';
|
|
206
|
+
readonly physicalResidency: 'unknown';
|
|
207
|
+
readonly liveBytes: number;
|
|
208
|
+
readonly pendingRetirementBytes: number;
|
|
209
|
+
readonly peakBytes: number;
|
|
210
|
+
readonly successfulAllocationCount: number;
|
|
211
|
+
readonly successfulAllocationBytes: number;
|
|
212
|
+
readonly pendingRetirementCount: number;
|
|
213
|
+
readonly retiredBytes: number;
|
|
214
|
+
readonly failedAllocationRollbacks: number;
|
|
215
|
+
readonly failedAllocationRollbackBytes: number;
|
|
216
|
+
readonly unknownByteSizeCount: number;
|
|
217
|
+
readonly importedResourceCount: number;
|
|
218
|
+
}
|
|
219
|
+
/** One graph generation included in the renderer-wide replacement ledger. */
|
|
220
|
+
export interface RenderGraphGenerationAllocationEntry {
|
|
221
|
+
readonly generation: number;
|
|
222
|
+
/** A graph may be both the current active graph and an unsubmitted candidate. */
|
|
223
|
+
readonly roles: readonly ('active' | 'candidate' | 'retiring')[];
|
|
224
|
+
readonly retirement: 'active' | 'pending' | 'failed';
|
|
225
|
+
readonly allocation: RenderGraphResourceAllocationInspection;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Renderer-wide logical allocation facts across graph generations. Current
|
|
229
|
+
* live and pending bytes are summed across the generations that overlap;
|
|
230
|
+
* peakBytes is captured from simultaneous owner events instead of summing
|
|
231
|
+
* historical per-graph peaks. This does not estimate physical VRAM or include
|
|
232
|
+
* imported owner bytes.
|
|
233
|
+
*/
|
|
234
|
+
export interface RenderGraphGenerationAllocationInspection {
|
|
235
|
+
readonly unit: 'engine-allocation-bytes';
|
|
236
|
+
readonly physicalResidency: 'unknown';
|
|
237
|
+
readonly availability: 'complete' | 'partial' | 'unavailable';
|
|
238
|
+
readonly unavailableGenerationCount: number;
|
|
239
|
+
readonly entries: readonly RenderGraphGenerationAllocationEntry[];
|
|
240
|
+
readonly liveBytes: number;
|
|
241
|
+
readonly pendingRetirementBytes: number;
|
|
242
|
+
/** Peak simultaneous logical bytes observed by this renderer owner. */
|
|
243
|
+
readonly peakBytes: number;
|
|
244
|
+
readonly failedRetirementCount: number;
|
|
245
|
+
readonly failedRetirementBytes: number;
|
|
190
246
|
}
|
|
191
247
|
export interface RenderGraphFrame {
|
|
192
248
|
readonly encoder: RhiCommandEncoder;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgeax/engine-render-graph",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.34",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
"LICENSE"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@forgeax/engine-rhi": "0.1.
|
|
26
|
-
"@forgeax/engine-types": "0.1.
|
|
25
|
+
"@forgeax/engine-rhi": "0.1.34",
|
|
26
|
+
"@forgeax/engine-types": "0.1.34",
|
|
27
27
|
"@webgpu/types": "^0.1.71"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@forgeax/engine-rhi-null": "0.1.
|
|
30
|
+
"@forgeax/engine-rhi-null": "0.1.34"
|
|
31
31
|
},
|
|
32
32
|
"forgeax": {
|
|
33
33
|
"metrics": {
|
|
@@ -823,6 +823,89 @@ describe('RenderGraphBuilder capability, execution, and lifecycle contracts', ()
|
|
|
823
823
|
expect(destroyed).toHaveLength(1);
|
|
824
824
|
});
|
|
825
825
|
|
|
826
|
+
it('uses array-layer and 3d depth semantics when projecting mip bytes', () => {
|
|
827
|
+
const compile = (dimension: GPUTextureDimension) => {
|
|
828
|
+
const graph = new RenderGraphBuilder<Frame>();
|
|
829
|
+
const texture = value(
|
|
830
|
+
graph.createTexture(`${dimension}-texture`, {
|
|
831
|
+
format: 'rgba8unorm',
|
|
832
|
+
size: { width: 4, height: 4, depthOrArrayLayers: 4 },
|
|
833
|
+
dimension,
|
|
834
|
+
mipLevelCount: 3,
|
|
835
|
+
}),
|
|
836
|
+
);
|
|
837
|
+
const view = value(
|
|
838
|
+
graph.view(texture, { dimension: dimension === '3d' ? '3d' : '2d-array' }),
|
|
839
|
+
);
|
|
840
|
+
graph.addRasterPass('write', {
|
|
841
|
+
accesses: [{ resource: view, usage: 'color-attachment' }],
|
|
842
|
+
colorAttachments: [{ view, loadOp: 'clear', storeOp: 'store' }],
|
|
843
|
+
encode: () => undefined,
|
|
844
|
+
});
|
|
845
|
+
return value(graph.compile({ device: mockDevice(), surfaceSize: { width: 1, height: 1 } }));
|
|
846
|
+
};
|
|
847
|
+
|
|
848
|
+
expect(compile('2d').inspect().resources[0]?.byteSize).toBe(336);
|
|
849
|
+
expect(compile('3d').inspect().resources[0]?.byteSize).toBe(292);
|
|
850
|
+
});
|
|
851
|
+
|
|
852
|
+
it('projects graph-owned allocation bytes and keeps imported ownership explicit', async () => {
|
|
853
|
+
let resolveFence: (() => void) | undefined;
|
|
854
|
+
const fence = new Promise<void>((resolve) => {
|
|
855
|
+
resolveFence = resolve;
|
|
856
|
+
});
|
|
857
|
+
const graph = new RenderGraphBuilder<Frame>();
|
|
858
|
+
const created = value(graph.createBuffer('created', { size: 32 }));
|
|
859
|
+
const imported = value(
|
|
860
|
+
graph.importBuffer('imported', { size: 64, usage: 0x0004 }, (frame) => frame.imported),
|
|
861
|
+
);
|
|
862
|
+
graph.addCopyPass('seed', {
|
|
863
|
+
accesses: [
|
|
864
|
+
{ resource: created, usage: 'copy-dst' },
|
|
865
|
+
{ resource: imported, usage: 'copy-src' },
|
|
866
|
+
],
|
|
867
|
+
encode: () => undefined,
|
|
868
|
+
});
|
|
869
|
+
const device = mockDevice({
|
|
870
|
+
queue: { onSubmittedWorkDone: () => fence } as never,
|
|
871
|
+
});
|
|
872
|
+
const compiled = value(graph.compile({ device, surfaceSize: { width: 1, height: 1 } }));
|
|
873
|
+
const info = compiled.inspect();
|
|
874
|
+
const createdInfo = info.resources.find(({ label }) => label === 'created');
|
|
875
|
+
const importedInfo = info.resources.find(({ label }) => label === 'imported');
|
|
876
|
+
expect(createdInfo?.byteSize).toBe(32);
|
|
877
|
+
expect(importedInfo?.byteSize).toBeUndefined();
|
|
878
|
+
expect(importedInfo?.byteSizeUnknownReason).toBe('imported-owner');
|
|
879
|
+
expect(info.resourceAllocation).toMatchObject({
|
|
880
|
+
unit: 'engine-allocation-bytes',
|
|
881
|
+
physicalResidency: 'unknown',
|
|
882
|
+
liveBytes: 32,
|
|
883
|
+
pendingRetirementBytes: 0,
|
|
884
|
+
peakBytes: 32,
|
|
885
|
+
successfulAllocationCount: 1,
|
|
886
|
+
successfulAllocationBytes: 32,
|
|
887
|
+
importedResourceCount: 1,
|
|
888
|
+
unknownByteSizeCount: 0,
|
|
889
|
+
});
|
|
890
|
+
|
|
891
|
+
const retiring = compiled.retire();
|
|
892
|
+
await Promise.resolve();
|
|
893
|
+
expect(compiled.inspect().resourceAllocation).toMatchObject({
|
|
894
|
+
liveBytes: 0,
|
|
895
|
+
pendingRetirementBytes: 32,
|
|
896
|
+
pendingRetirementCount: 1,
|
|
897
|
+
peakBytes: 32,
|
|
898
|
+
});
|
|
899
|
+
resolveFence?.();
|
|
900
|
+
expect((await retiring).ok).toBe(true);
|
|
901
|
+
expect(compiled.inspect().resourceAllocation).toMatchObject({
|
|
902
|
+
liveBytes: 0,
|
|
903
|
+
pendingRetirementBytes: 0,
|
|
904
|
+
pendingRetirementCount: 0,
|
|
905
|
+
retiredBytes: 32,
|
|
906
|
+
});
|
|
907
|
+
});
|
|
908
|
+
|
|
826
909
|
it('destroys graph-created resources once and never destroys imported resources', async () => {
|
|
827
910
|
const destroyedBuffers: Buffer[] = [];
|
|
828
911
|
const device = mockDevice({
|
|
@@ -854,6 +937,37 @@ describe('RenderGraphBuilder capability, execution, and lifecycle contracts', ()
|
|
|
854
937
|
expect(compiled.execute({ imported: {} as Buffer, encoder: mockEncoder() }).ok).toBe(false);
|
|
855
938
|
});
|
|
856
939
|
|
|
940
|
+
it('retains graph allocation tokens when destruction refuses or throws', async () => {
|
|
941
|
+
for (const destroy of [
|
|
942
|
+
() => ({ ok: false, error: { code: 'webgpu-runtime-error' } }) as never,
|
|
943
|
+
() => {
|
|
944
|
+
throw new Error('destroy refused');
|
|
945
|
+
},
|
|
946
|
+
]) {
|
|
947
|
+
const graph = new RenderGraphBuilder<Frame>();
|
|
948
|
+
const created = value(graph.createBuffer('created', { size: 32 }));
|
|
949
|
+
graph.addCopyPass('seed', {
|
|
950
|
+
accesses: [{ resource: created, usage: 'copy-dst' }],
|
|
951
|
+
encode: () => undefined,
|
|
952
|
+
});
|
|
953
|
+
const compiled = value(
|
|
954
|
+
graph.compile({
|
|
955
|
+
device: mockDevice({ destroyBuffer: destroy }),
|
|
956
|
+
surfaceSize: { width: 1, height: 1 },
|
|
957
|
+
}),
|
|
958
|
+
);
|
|
959
|
+
|
|
960
|
+
const result = await compiled.retire();
|
|
961
|
+
expect(result.ok).toBe(false);
|
|
962
|
+
expect(compiled.inspect().resourceAllocation).toMatchObject({
|
|
963
|
+
liveBytes: 0,
|
|
964
|
+
pendingRetirementBytes: 32,
|
|
965
|
+
pendingRetirementCount: 1,
|
|
966
|
+
retiredBytes: 0,
|
|
967
|
+
});
|
|
968
|
+
}
|
|
969
|
+
});
|
|
970
|
+
|
|
857
971
|
it('keeps a failed retirement result stable across repeated calls', async () => {
|
|
858
972
|
const graph = new RenderGraphBuilder<Frame>();
|
|
859
973
|
const created = value(graph.createBuffer('created', { size: 16 }));
|
|
@@ -327,16 +327,19 @@ import { RenderGraph } from '../graph.js';
|
|
|
327
327
|
g.addResource('fxaaIntermediate', { kind: 'texture', lifetime: 'transient' });
|
|
328
328
|
g.addResource('hdrColor', { kind: 'texture', lifetime: 'transient' });
|
|
329
329
|
g.addResource('hdrComposited', { kind: 'texture', lifetime: 'transient' });
|
|
330
|
-
g.addResource('
|
|
331
|
-
g.addResource('
|
|
332
|
-
g.addResource('
|
|
330
|
+
g.addResource('bloomDownsample0', { kind: 'texture', lifetime: 'transient' });
|
|
331
|
+
g.addResource('bloomDownsample1', { kind: 'texture', lifetime: 'transient' });
|
|
332
|
+
g.addResource('bloomUpsample0', { kind: 'texture', lifetime: 'transient' });
|
|
333
333
|
g.addPass('shadow', { reads: [], writes: ['shadowDepth'] });
|
|
334
334
|
g.addPass('main', { reads: ['shadowDepth'], writes: ['hdrColor', 'depth'] });
|
|
335
|
-
g.addPass('bloom-
|
|
336
|
-
g.addPass('bloom-
|
|
337
|
-
|
|
335
|
+
g.addPass('bloom-downsample-0', { reads: ['hdrColor'], writes: ['bloomDownsample0'] });
|
|
336
|
+
g.addPass('bloom-downsample-1', {
|
|
337
|
+
reads: ['bloomDownsample0'],
|
|
338
|
+
writes: ['bloomDownsample1'],
|
|
339
|
+
});
|
|
340
|
+
g.addPass('bloom-upsample-0', { reads: ['bloomDownsample1'], writes: ['bloomUpsample0'] });
|
|
338
341
|
g.addPass('bloom-composite', {
|
|
339
|
-
reads: ['hdrColor', '
|
|
342
|
+
reads: ['hdrColor', 'bloomUpsample0'],
|
|
340
343
|
writes: ['hdrComposited'],
|
|
341
344
|
});
|
|
342
345
|
g.addPass('tonemap', { reads: ['hdrComposited'], writes: [] });
|
|
@@ -350,11 +353,11 @@ import { RenderGraph } from '../graph.js';
|
|
|
350
353
|
const g = new RenderGraph();
|
|
351
354
|
g.addResource('hdrColor', { kind: 'texture', lifetime: 'transient' });
|
|
352
355
|
g.addResource('hdrComposited', { kind: 'texture', lifetime: 'transient' });
|
|
353
|
-
g.addResource('
|
|
356
|
+
g.addResource('bloomUpsample0', { kind: 'texture', lifetime: 'transient' });
|
|
354
357
|
g.addPass('main', { reads: [], writes: ['hdrColor'] });
|
|
355
|
-
g.addPass('
|
|
358
|
+
g.addPass('bloom-upsample-0', { reads: [], writes: ['bloomUpsample0'] });
|
|
356
359
|
g.addPass('bloom-composite', {
|
|
357
|
-
reads: ['hdrColor', '
|
|
360
|
+
reads: ['hdrColor', 'bloomUpsample0'],
|
|
358
361
|
writes: ['hdrComposited'],
|
|
359
362
|
});
|
|
360
363
|
g.addPass('tonemap', { reads: ['hdrComposited'], writes: [] });
|
|
@@ -368,19 +371,22 @@ import { RenderGraph } from '../graph.js';
|
|
|
368
371
|
expect(compIdx).toBeLessThan(tonemapIdx);
|
|
369
372
|
});
|
|
370
373
|
|
|
371
|
-
it('preserves bloom chain order:
|
|
374
|
+
it('preserves bloom chain order: downsample-0 < downsample-1 < upsample-0 < composite', () => {
|
|
372
375
|
const g = new RenderGraph();
|
|
373
376
|
g.addResource('hdrColor', { kind: 'texture', lifetime: 'transient' });
|
|
374
377
|
g.addResource('hdrComposited', { kind: 'texture', lifetime: 'transient' });
|
|
375
|
-
g.addResource('
|
|
376
|
-
g.addResource('
|
|
377
|
-
g.addResource('
|
|
378
|
+
g.addResource('bloomDownsample0', { kind: 'texture', lifetime: 'transient' });
|
|
379
|
+
g.addResource('bloomDownsample1', { kind: 'texture', lifetime: 'transient' });
|
|
380
|
+
g.addResource('bloomUpsample0', { kind: 'texture', lifetime: 'transient' });
|
|
378
381
|
g.addPass('main', { reads: [], writes: ['hdrColor'] });
|
|
379
|
-
g.addPass('bloom-
|
|
380
|
-
g.addPass('bloom-
|
|
381
|
-
|
|
382
|
+
g.addPass('bloom-downsample-0', { reads: ['hdrColor'], writes: ['bloomDownsample0'] });
|
|
383
|
+
g.addPass('bloom-downsample-1', {
|
|
384
|
+
reads: ['bloomDownsample0'],
|
|
385
|
+
writes: ['bloomDownsample1'],
|
|
386
|
+
});
|
|
387
|
+
g.addPass('bloom-upsample-0', { reads: ['bloomDownsample1'], writes: ['bloomUpsample0'] });
|
|
382
388
|
g.addPass('bloom-composite', {
|
|
383
|
-
reads: ['hdrColor', '
|
|
389
|
+
reads: ['hdrColor', 'bloomUpsample0'],
|
|
384
390
|
writes: ['hdrComposited'],
|
|
385
391
|
});
|
|
386
392
|
|
|
@@ -388,35 +394,38 @@ import { RenderGraph } from '../graph.js';
|
|
|
388
394
|
expect(r.ok).toBe(true);
|
|
389
395
|
if (!r.ok) return;
|
|
390
396
|
const order = r.value.passes.map((p) => p.name);
|
|
391
|
-
const
|
|
392
|
-
const
|
|
393
|
-
const
|
|
397
|
+
const downsample0Idx = order.indexOf('bloom-downsample-0');
|
|
398
|
+
const downsample1Idx = order.indexOf('bloom-downsample-1');
|
|
399
|
+
const upsample0Idx = order.indexOf('bloom-upsample-0');
|
|
394
400
|
const compIdx = order.indexOf('bloom-composite');
|
|
395
|
-
expect(
|
|
396
|
-
expect(
|
|
397
|
-
expect(
|
|
401
|
+
expect(downsample0Idx).toBeLessThan(downsample1Idx);
|
|
402
|
+
expect(downsample1Idx).toBeLessThan(upsample0Idx);
|
|
403
|
+
expect(upsample0Idx).toBeLessThan(compIdx);
|
|
398
404
|
});
|
|
399
405
|
|
|
400
406
|
it('uses hdrComposited to make the temporal version explicit', () => {
|
|
401
|
-
// bloom-
|
|
402
|
-
// bloom-composite reads hdrColor +
|
|
407
|
+
// bloom-downsample-0 reads the hdrColor version written by main.
|
|
408
|
+
// bloom-composite reads hdrColor + bloomUpsample0, writes hdrComposited.
|
|
403
409
|
// tonemap reads hdrComposited.
|
|
404
|
-
// The chain: main ->
|
|
410
|
+
// The chain: main -> downsample-0 -> downsample-1 -> upsample-0 -> composite -> tonemap.
|
|
405
411
|
// The hdrComposited resource name makes the post-composite version explicit while keeping the real
|
|
406
412
|
// GPU texture the same hdrColor slot (composite writes in-place, tonemap
|
|
407
413
|
// reads from it).
|
|
408
414
|
const g = new RenderGraph();
|
|
409
415
|
g.addResource('hdrColor', { kind: 'texture', lifetime: 'transient' });
|
|
410
416
|
g.addResource('hdrComposited', { kind: 'texture', lifetime: 'transient' });
|
|
411
|
-
g.addResource('
|
|
412
|
-
g.addResource('
|
|
413
|
-
g.addResource('
|
|
417
|
+
g.addResource('bloomDownsample0', { kind: 'texture', lifetime: 'transient' });
|
|
418
|
+
g.addResource('bloomDownsample1', { kind: 'texture', lifetime: 'transient' });
|
|
419
|
+
g.addResource('bloomUpsample0', { kind: 'texture', lifetime: 'transient' });
|
|
414
420
|
g.addPass('main', { reads: [], writes: ['hdrColor'] });
|
|
415
|
-
g.addPass('bloom-
|
|
416
|
-
g.addPass('bloom-
|
|
417
|
-
|
|
421
|
+
g.addPass('bloom-downsample-0', { reads: ['hdrColor'], writes: ['bloomDownsample0'] });
|
|
422
|
+
g.addPass('bloom-downsample-1', {
|
|
423
|
+
reads: ['bloomDownsample0'],
|
|
424
|
+
writes: ['bloomDownsample1'],
|
|
425
|
+
});
|
|
426
|
+
g.addPass('bloom-upsample-0', { reads: ['bloomDownsample1'], writes: ['bloomUpsample0'] });
|
|
418
427
|
g.addPass('bloom-composite', {
|
|
419
|
-
reads: ['hdrColor', '
|
|
428
|
+
reads: ['hdrColor', 'bloomUpsample0'],
|
|
420
429
|
writes: ['hdrComposited'],
|
|
421
430
|
});
|
|
422
431
|
g.addPass('tonemap', { reads: ['hdrComposited'], writes: [] });
|
|
@@ -425,14 +434,14 @@ import { RenderGraph } from '../graph.js';
|
|
|
425
434
|
expect(r.ok).toBe(true);
|
|
426
435
|
if (!r.ok) return;
|
|
427
436
|
const order = r.value.passes.map((p) => p.name);
|
|
428
|
-
const
|
|
429
|
-
const
|
|
430
|
-
const
|
|
437
|
+
const downsample0Idx = order.indexOf('bloom-downsample-0');
|
|
438
|
+
const downsample1Idx = order.indexOf('bloom-downsample-1');
|
|
439
|
+
const upsample0Idx = order.indexOf('bloom-upsample-0');
|
|
431
440
|
const compIdx = order.indexOf('bloom-composite');
|
|
432
441
|
const tmapIdx = order.indexOf('tonemap');
|
|
433
|
-
expect(
|
|
434
|
-
expect(
|
|
435
|
-
expect(
|
|
442
|
+
expect(downsample0Idx).toBeLessThan(downsample1Idx);
|
|
443
|
+
expect(downsample1Idx).toBeLessThan(upsample0Idx);
|
|
444
|
+
expect(upsample0Idx).toBeLessThan(compIdx);
|
|
436
445
|
expect(compIdx).toBeLessThan(tmapIdx);
|
|
437
446
|
});
|
|
438
447
|
});
|
package/src/builder.ts
CHANGED
|
@@ -63,8 +63,10 @@ let nextGeneration = 1;
|
|
|
63
63
|
|
|
64
64
|
function textureByteSize(
|
|
65
65
|
format: GPUTextureFormat,
|
|
66
|
+
dimension: GPUTextureDimension,
|
|
66
67
|
extent: { readonly width: number; readonly height: number; readonly depthOrArrayLayers: number },
|
|
67
68
|
mipLevelCount: number,
|
|
69
|
+
sampleCount: number,
|
|
68
70
|
): number | undefined {
|
|
69
71
|
const bytesPerTexel =
|
|
70
72
|
format === 'r8unorm' || format === 'r8snorm' || format === 'r8uint' || format === 'r8sint'
|
|
@@ -107,10 +109,12 @@ function textureByteSize(
|
|
|
107
109
|
let height = extent.height;
|
|
108
110
|
let depth = extent.depthOrArrayLayers;
|
|
109
111
|
for (let level = 0; level < mipLevelCount; level += 1) {
|
|
110
|
-
bytes += width * height * depth * bytesPerTexel;
|
|
112
|
+
bytes += width * height * depth * bytesPerTexel * sampleCount;
|
|
111
113
|
width = Math.max(1, Math.floor(width / 2));
|
|
112
114
|
height = Math.max(1, Math.floor(height / 2));
|
|
113
|
-
|
|
115
|
+
// Array layers are independent images and retain their layer count at
|
|
116
|
+
// every mip. Only a true 3D allocation reduces its depth axis.
|
|
117
|
+
if (dimension === '3d') depth = Math.max(1, Math.floor(depth / 2));
|
|
114
118
|
}
|
|
115
119
|
return bytes;
|
|
116
120
|
}
|
|
@@ -453,6 +457,26 @@ export class RenderGraphBuilder<FrameCtx extends RenderGraphFrame> {
|
|
|
453
457
|
const allocationKey = physicalKey(resource);
|
|
454
458
|
const extent =
|
|
455
459
|
texture === undefined ? undefined : this.resolveExtent(texture.size, options.surfaceSize);
|
|
460
|
+
const knownByteSize =
|
|
461
|
+
resource.record.origin === 'imported' || resource.usage === 0
|
|
462
|
+
? undefined
|
|
463
|
+
: texture === undefined
|
|
464
|
+
? buffer?.size
|
|
465
|
+
: textureByteSize(
|
|
466
|
+
texture.format,
|
|
467
|
+
texture.dimension ?? '2d',
|
|
468
|
+
this.resolveExtent(texture.size, options.surfaceSize),
|
|
469
|
+
texture.mipLevelCount ?? 1,
|
|
470
|
+
texture.sampleCount ?? 1,
|
|
471
|
+
);
|
|
472
|
+
const byteSizeUnknownReason =
|
|
473
|
+
resource.record.origin === 'imported'
|
|
474
|
+
? ('imported-owner' as const)
|
|
475
|
+
: resource.usage === 0
|
|
476
|
+
? ('not-allocated' as const)
|
|
477
|
+
: knownByteSize === undefined
|
|
478
|
+
? ('format-or-layout-unknown' as const)
|
|
479
|
+
: undefined;
|
|
456
480
|
return {
|
|
457
481
|
label: resource.record.label,
|
|
458
482
|
kind: resource.record.kind,
|
|
@@ -479,17 +503,8 @@ export class RenderGraphBuilder<FrameCtx extends RenderGraphFrame> {
|
|
|
479
503
|
derivedUsage: resource.usage,
|
|
480
504
|
...(allocationKey === undefined ? {} : { physicalAllocationKey: allocationKey }),
|
|
481
505
|
...(texture === undefined ? {} : { format: texture.format }),
|
|
482
|
-
...(
|
|
483
|
-
|
|
484
|
-
? {}
|
|
485
|
-
: { byteSize: buffer.size }
|
|
486
|
-
: {
|
|
487
|
-
byteSize: textureByteSize(
|
|
488
|
-
texture.format,
|
|
489
|
-
this.resolveExtent(texture.size, options.surfaceSize),
|
|
490
|
-
texture.mipLevelCount ?? 1,
|
|
491
|
-
),
|
|
492
|
-
}),
|
|
506
|
+
...(knownByteSize === undefined ? {} : { byteSize: knownByteSize }),
|
|
507
|
+
...(byteSizeUnknownReason === undefined ? {} : { byteSizeUnknownReason }),
|
|
493
508
|
...(texture === undefined
|
|
494
509
|
? {}
|
|
495
510
|
: {
|