@forgeax/engine-render-graph 0.1.2
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/LICENSE +202 -0
- package/README.md +184 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/graph-pass-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/graph-pass-kind-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/observation-lifetime-state-owner.test-d.d.ts +2 -0
- package/dist/__tests__/observation-lifetime-state-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/observation.unit.test.d.ts +2 -0
- package/dist/__tests__/observation.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-alias-source.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph-alias-source.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-builder.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph-builder.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-capability-owner.test-d.d.ts +2 -0
- package/dist/__tests__/render-graph-capability-owner.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-graph-errors.test-d.d.ts +2 -0
- package/dist/__tests__/render-graph-errors.test-d.d.ts.map +1 -0
- package/dist/__tests__/render-graph-regressions.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph-regressions.unit.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph-rhi-null.integration.test.d.ts +2 -0
- package/dist/__tests__/render-graph-rhi-null.integration.test.d.ts.map +1 -0
- package/dist/__tests__/render-graph.unit.test.d.ts +2 -0
- package/dist/__tests__/render-graph.unit.test.d.ts.map +1 -0
- package/dist/__tests__/resource-declaration-collision.test.d.ts +2 -0
- package/dist/__tests__/resource-declaration-collision.test.d.ts.map +1 -0
- package/dist/__tests__/resource-kind-owner.test-d.d.ts +2 -0
- package/dist/__tests__/resource-kind-owner.test-d.d.ts.map +1 -0
- package/dist/builder.d.ts +42 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/compiled-graph.d.ts +23 -0
- package/dist/compiled-graph.d.ts.map +1 -0
- package/dist/errors.d.ts +148 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/graph.d.ts +404 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +2256 -0
- package/dist/index.mjs.map +1 -0
- package/dist/kernel-internal.d.ts +84 -0
- package/dist/kernel-internal.d.ts.map +1 -0
- package/dist/observation.d.ts +38 -0
- package/dist/observation.d.ts.map +1 -0
- package/dist/pass-registry.d.ts +12 -0
- package/dist/pass-registry.d.ts.map +1 -0
- package/dist/pipeline/__tests__/color-value-domain.test.d.ts +2 -0
- package/dist/pipeline/__tests__/color-value-domain.test.d.ts.map +1 -0
- package/dist/pipeline/color-value-domain.d.ts +35 -0
- package/dist/pipeline/color-value-domain.d.ts.map +1 -0
- package/dist/resource-registry.d.ts +61 -0
- package/dist/resource-registry.d.ts.map +1 -0
- package/dist/types.d.ts +171 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +61 -0
- package/src/__tests__/graph-pass-kind-owner.test-d.ts +35 -0
- package/src/__tests__/observation-lifetime-state-owner.test-d.ts +39 -0
- package/src/__tests__/observation.unit.test.ts +103 -0
- package/src/__tests__/render-graph-alias-source.unit.test.ts +118 -0
- package/src/__tests__/render-graph-builder.unit.test.ts +664 -0
- package/src/__tests__/render-graph-capability-owner.test-d.ts +32 -0
- package/src/__tests__/render-graph-errors.test-d.ts +169 -0
- package/src/__tests__/render-graph-regressions.unit.test.ts +126 -0
- package/src/__tests__/render-graph-rhi-null.integration.test.ts +86 -0
- package/src/__tests__/render-graph.unit.test.ts +2549 -0
- package/src/__tests__/resource-declaration-collision.test.ts +151 -0
- package/src/__tests__/resource-kind-owner.test-d.ts +38 -0
- package/src/builder.ts +1009 -0
- package/src/compiled-graph.ts +383 -0
- package/src/errors.ts +205 -0
- package/src/graph.ts +1270 -0
- package/src/index.ts +97 -0
- package/src/kernel-internal.ts +148 -0
- package/src/observation.ts +134 -0
- package/src/pass-registry.ts +43 -0
- package/src/pipeline/__tests__/color-value-domain.test.ts +43 -0
- package/src/pipeline/color-value-domain.ts +139 -0
- package/src/resource-registry.ts +173 -0
- package/src/types.ts +217 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-graph-rhi-null.integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/render-graph-rhi-null.integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-graph.unit.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/render-graph.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-declaration-collision.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/resource-declaration-collision.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-kind-owner.test-d.d.ts","sourceRoot":"","sources":["../../src/__tests__/resource-kind-owner.test-d.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Buffer, Texture } from '@forgeax/engine-rhi';
|
|
2
|
+
import { RenderGraphError, type Result } from './errors.js';
|
|
3
|
+
import type { CompiledRenderGraph, ComputeGraphPass, CopyGraphPass, GraphBuffer, GraphBufferDescriptor, GraphTexture, GraphTextureDescriptor, GraphTextureView, GraphTextureViewDescriptor, ImportedBufferDescriptor, ImportedTextureDescriptor, ImportedTextureViewResolver, RasterGraphPass, RenderGraphCompileOptions, RenderGraphFrame } from './types.js';
|
|
4
|
+
export declare class RenderGraphBuilder<FrameCtx extends RenderGraphFrame> {
|
|
5
|
+
private readonly owner;
|
|
6
|
+
private readonly labels;
|
|
7
|
+
private readonly resources;
|
|
8
|
+
private readonly views;
|
|
9
|
+
private readonly passes;
|
|
10
|
+
private readonly passNames;
|
|
11
|
+
private nextId;
|
|
12
|
+
private sealed;
|
|
13
|
+
createTexture(label: string, descriptor: GraphTextureDescriptor): Result<GraphTexture, RenderGraphError>;
|
|
14
|
+
importTexture(label: string, descriptor: ImportedTextureDescriptor, resolve: (frame: FrameCtx) => Texture): Result<GraphTexture, RenderGraphError>;
|
|
15
|
+
createBuffer(label: string, descriptor: GraphBufferDescriptor): Result<GraphBuffer, RenderGraphError>;
|
|
16
|
+
importBuffer(label: string, descriptor: ImportedBufferDescriptor, resolve: (frame: FrameCtx) => Buffer): Result<GraphBuffer, RenderGraphError>;
|
|
17
|
+
view(texture: GraphTexture, descriptor?: GraphTextureViewDescriptor): Result<GraphTextureView, RenderGraphError>;
|
|
18
|
+
importView(texture: GraphTexture, descriptor: GraphTextureViewDescriptor, resolve: ImportedTextureViewResolver<FrameCtx>): Result<GraphTextureView, RenderGraphError>;
|
|
19
|
+
addRasterPass(name: string, descriptor: RasterGraphPass<FrameCtx>): Result<void, RenderGraphError>;
|
|
20
|
+
addComputePass(name: string, descriptor: ComputeGraphPass<FrameCtx>): Result<void, RenderGraphError>;
|
|
21
|
+
addCopyPass(name: string, descriptor: CopyGraphPass<FrameCtx>): Result<void, RenderGraphError>;
|
|
22
|
+
compile(options: RenderGraphCompileOptions): Result<CompiledRenderGraph<FrameCtx>, RenderGraphError>;
|
|
23
|
+
private addPass;
|
|
24
|
+
private validateAccessHandle;
|
|
25
|
+
private analyze;
|
|
26
|
+
private normalizeAccess;
|
|
27
|
+
private accessModeForPass;
|
|
28
|
+
private validateCapabilities;
|
|
29
|
+
private capabilityError;
|
|
30
|
+
private validatePassAccesses;
|
|
31
|
+
private validateAttachments;
|
|
32
|
+
private missingAttachmentAccess;
|
|
33
|
+
private findPriorWrite;
|
|
34
|
+
private findWriteDependencies;
|
|
35
|
+
private validateDescriptors;
|
|
36
|
+
private allocate;
|
|
37
|
+
private resolveExtent;
|
|
38
|
+
private ensureWritable;
|
|
39
|
+
private reserveLabel;
|
|
40
|
+
private foreignHandleError;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RhiDevice } from '@forgeax/engine-rhi';
|
|
2
|
+
import { RenderGraphError, type Result } from './errors.js';
|
|
3
|
+
import type { CompiledPass, CompiledResource, CompiledView } from './kernel-internal.js';
|
|
4
|
+
import type { CompiledRenderGraph, CompiledRenderGraphInfo, RenderGraphFrame, RenderGraphPassRunner } from './types.js';
|
|
5
|
+
export declare class CompiledRenderGraphImpl<FrameCtx extends RenderGraphFrame> implements CompiledRenderGraph<FrameCtx> {
|
|
6
|
+
private readonly generation;
|
|
7
|
+
private readonly owner;
|
|
8
|
+
private readonly device;
|
|
9
|
+
private readonly resources;
|
|
10
|
+
private readonly views;
|
|
11
|
+
private readonly passes;
|
|
12
|
+
private readonly info;
|
|
13
|
+
private retired;
|
|
14
|
+
private retireResult;
|
|
15
|
+
constructor(generation: number, owner: object, device: RhiDevice, resources: ReadonlyMap<number, CompiledResource<FrameCtx>>, views: ReadonlyMap<number, CompiledView<FrameCtx>>, passes: readonly CompiledPass<FrameCtx>[], info: CompiledRenderGraphInfo);
|
|
16
|
+
inspect(): CompiledRenderGraphInfo;
|
|
17
|
+
execute(frame: FrameCtx, runPass?: RenderGraphPassRunner): Result<void, RenderGraphError>;
|
|
18
|
+
retire(): Promise<Result<void, RenderGraphError>>;
|
|
19
|
+
private finishRetire;
|
|
20
|
+
private resolveFrameResources;
|
|
21
|
+
private createPassResolver;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=compiled-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-graph.d.ts","sourceRoot":"","sources":["../src/compiled-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAW,gBAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EAEb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EAKvB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAiBpB,qBAAa,uBAAuB,CAAC,QAAQ,SAAS,gBAAgB,CACpE,YAAW,mBAAmB,CAAC,QAAQ,CAAC;IAMtC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAsD;gBAGvD,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAC1D,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,EAClD,MAAM,EAAE,SAAS,YAAY,CAAC,QAAQ,CAAC,EAAE,EACzC,IAAI,EAAE,uBAAuB;IAGhD,OAAO,IAAI,uBAAuB;IAIlC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAkJzF,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAOnC,YAAY;IA+C1B,OAAO,CAAC,qBAAqB;IAiD7B,OAAO,CAAC,kBAAkB;CAwE3B"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Private code-to-detail authority for the complete RenderGraphError surface.
|
|
3
|
+
*
|
|
4
|
+
* The two resource-key errors intentionally share DanglingReadDetail. Keeping
|
|
5
|
+
* that fact in this map lets the public code and detail unions, plus the
|
|
6
|
+
* constructor arguments, derive from one authority without
|
|
7
|
+
* exporting a framework or runtime registry.
|
|
8
|
+
*/
|
|
9
|
+
interface RenderGraphErrorDetailByCode {
|
|
10
|
+
'dangling-read': DanglingReadDetail;
|
|
11
|
+
'cap-missing': CapMissingDetail;
|
|
12
|
+
'duplicate-resource': DuplicateResourceDetail;
|
|
13
|
+
'alias-source-missing': AliasSourceDetail;
|
|
14
|
+
'unknown-resource': DanglingReadDetail;
|
|
15
|
+
'resource-alloc-failed': ResourceAllocFailedDetail;
|
|
16
|
+
'invalid-format': InvalidFormatDetail;
|
|
17
|
+
'observation-absent': ObservationDetail;
|
|
18
|
+
'observation-invalid-format': ObservationDetail;
|
|
19
|
+
'observation-invalid-size': ObservationDetail;
|
|
20
|
+
'observation-missing-copy-src': ObservationDetail;
|
|
21
|
+
'observation-stale': ObservationDetail;
|
|
22
|
+
'observation-retired': ObservationDetail;
|
|
23
|
+
'invalid-color-domain': ColorDomainDetail;
|
|
24
|
+
'missing-color-domain': ColorDomainDetail;
|
|
25
|
+
'color-domain-mismatch': ColorDomainDetail;
|
|
26
|
+
'duplicate-pass-name': DeclarationDetail;
|
|
27
|
+
'duplicate-resource-label': DeclarationDetail;
|
|
28
|
+
'builder-sealed': DeclarationDetail;
|
|
29
|
+
'foreign-resource-handle': ResourceAccessDetail;
|
|
30
|
+
'resource-not-declared-by-pass': ResourceAccessDetail;
|
|
31
|
+
'uninitialized-read': ResourceAccessDetail;
|
|
32
|
+
'access-conflict': ResourceAccessDetail;
|
|
33
|
+
'capability-missing': CapabilityDetail;
|
|
34
|
+
'resource-descriptor-invalid': DescriptorDetail;
|
|
35
|
+
'import-usage-mismatch': DescriptorDetail;
|
|
36
|
+
'resource-allocation-failed': ResourceAllocFailedDetail;
|
|
37
|
+
'resource-resolution-failed': ResourceAccessDetail;
|
|
38
|
+
'pass-encode-failed': PassFailureDetail;
|
|
39
|
+
'compiled-graph-retired': LifecycleDetail;
|
|
40
|
+
'resource-retire-failed': LifecycleDetail;
|
|
41
|
+
}
|
|
42
|
+
/** Closed RenderGraphErrorCode union derived from the private detail map. */
|
|
43
|
+
export type RenderGraphErrorCode = keyof RenderGraphErrorDetailByCode;
|
|
44
|
+
/** Detail union projected from the private code-to-detail map. */
|
|
45
|
+
export type RenderGraphErrorDetail = RenderGraphErrorDetailByCode[RenderGraphErrorCode];
|
|
46
|
+
/**
|
|
47
|
+
* Constructor arguments correlated by code. `detail` remains optional to
|
|
48
|
+
* preserve the existing envelope behavior for callers that only need the
|
|
49
|
+
* top-level fields.
|
|
50
|
+
*/
|
|
51
|
+
type RenderGraphErrorConstructorArgs = {
|
|
52
|
+
[Code in RenderGraphErrorCode]: {
|
|
53
|
+
code: Code;
|
|
54
|
+
expected: string;
|
|
55
|
+
hint: string;
|
|
56
|
+
detail?: RenderGraphErrorDetailByCode[Code] | undefined;
|
|
57
|
+
};
|
|
58
|
+
}[RenderGraphErrorCode];
|
|
59
|
+
/** Detail variant for dangling-read and unknown-resource errors. */
|
|
60
|
+
export interface DanglingReadDetail {
|
|
61
|
+
readonly resourceKey: string;
|
|
62
|
+
readonly passName: string;
|
|
63
|
+
}
|
|
64
|
+
/** Detail variant for cap-missing errors. */
|
|
65
|
+
export interface CapMissingDetail {
|
|
66
|
+
readonly cap: 'compute' | 'storageBuffer';
|
|
67
|
+
readonly passName: string;
|
|
68
|
+
}
|
|
69
|
+
/** Detail variant for duplicate-resource errors. */
|
|
70
|
+
export interface DuplicateResourceDetail {
|
|
71
|
+
readonly resourceKey: string;
|
|
72
|
+
}
|
|
73
|
+
/** Detail variant for aliases whose source is not a registered color target. */
|
|
74
|
+
export interface AliasSourceDetail {
|
|
75
|
+
readonly aliasKey: string;
|
|
76
|
+
readonly sourceKey: string;
|
|
77
|
+
}
|
|
78
|
+
/** Detail variant for resource-alloc-failed errors. */
|
|
79
|
+
export interface ResourceAllocFailedDetail {
|
|
80
|
+
readonly resourceKey: string;
|
|
81
|
+
readonly passName?: string | undefined;
|
|
82
|
+
readonly rhiCode?: string | undefined;
|
|
83
|
+
}
|
|
84
|
+
/** Detail variant for invalid-format errors. */
|
|
85
|
+
export interface InvalidFormatDetail {
|
|
86
|
+
readonly resourceKey: string;
|
|
87
|
+
readonly format: string;
|
|
88
|
+
readonly expected: readonly string[];
|
|
89
|
+
}
|
|
90
|
+
/** Generic current-frame observation failures. */
|
|
91
|
+
export interface ObservationDetail {
|
|
92
|
+
readonly frameId?: number | undefined;
|
|
93
|
+
readonly expected?: string | undefined;
|
|
94
|
+
}
|
|
95
|
+
export interface ColorDomainDetail {
|
|
96
|
+
readonly value?: string | undefined;
|
|
97
|
+
readonly resourceKey?: string | undefined;
|
|
98
|
+
readonly sourceDomain?: string | undefined;
|
|
99
|
+
readonly destinationDomain?: string | undefined;
|
|
100
|
+
}
|
|
101
|
+
export interface DeclarationDetail {
|
|
102
|
+
readonly passName?: string | undefined;
|
|
103
|
+
readonly resourceLabel?: string | undefined;
|
|
104
|
+
}
|
|
105
|
+
export interface ResourceAccessDetail {
|
|
106
|
+
readonly passName?: string | undefined;
|
|
107
|
+
readonly resourceLabel?: string | undefined;
|
|
108
|
+
readonly usage?: string | undefined;
|
|
109
|
+
readonly accesses?: readonly string[] | undefined;
|
|
110
|
+
}
|
|
111
|
+
export interface CapabilityDetail extends ResourceAccessDetail {
|
|
112
|
+
readonly capability: 'compute' | 'storage-buffer' | 'storage-texture' | 'indirect';
|
|
113
|
+
}
|
|
114
|
+
export interface DescriptorDetail {
|
|
115
|
+
readonly resourceLabel: string;
|
|
116
|
+
readonly field: string;
|
|
117
|
+
readonly expected: string;
|
|
118
|
+
readonly actual?: string | number | undefined;
|
|
119
|
+
}
|
|
120
|
+
export interface PassFailureDetail {
|
|
121
|
+
readonly passName: string;
|
|
122
|
+
readonly passKind: 'raster' | 'compute' | 'copy';
|
|
123
|
+
readonly cause: unknown;
|
|
124
|
+
}
|
|
125
|
+
export interface LifecycleDetail {
|
|
126
|
+
readonly generation: number;
|
|
127
|
+
readonly resourceLabel?: string | undefined;
|
|
128
|
+
readonly cause?: unknown;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Structured RenderGraph error.
|
|
132
|
+
*
|
|
133
|
+
* Four readonly fields aligned with AGENTS.md "Errors are structured"
|
|
134
|
+
* and RhiError (research Finding 8):
|
|
135
|
+
* - `.code` — closed union member (L1 key signal).
|
|
136
|
+
* - `.expected` — expected-state description (L2 detail).
|
|
137
|
+
* - `.hint` — actionable recovery guidance (L2 detail).
|
|
138
|
+
* - `.detail` — narrowed payload per code variant.
|
|
139
|
+
*/
|
|
140
|
+
export declare class RenderGraphError extends Error {
|
|
141
|
+
readonly code: RenderGraphErrorCode;
|
|
142
|
+
readonly expected: string;
|
|
143
|
+
readonly hint: string;
|
|
144
|
+
readonly detail: RenderGraphErrorDetail | undefined;
|
|
145
|
+
constructor(args: RenderGraphErrorConstructorArgs);
|
|
146
|
+
}
|
|
147
|
+
export { err, ok, type Result, type ResultErr, type ResultOk, } from '@forgeax/engine-types';
|
|
148
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|