@aardworx/wombat.rendering 0.21.6 → 0.21.7
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/runtime/flattenTree.d.ts.map +1 -1
- package/dist/runtime/flattenTree.js +74 -10
- package/dist/runtime/flattenTree.js.map +1 -1
- package/dist/runtime/hybridScene.d.ts.map +1 -1
- package/dist/runtime/hybridScene.js +41 -37
- package/dist/runtime/hybridScene.js.map +1 -1
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flattenTree.d.ts","sourceRoot":"","sources":["../../src/runtime/flattenTree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flattenTree.d.ts","sourceRoot":"","sources":["../../src/runtime/flattenTree.ts"],"names":[],"mappings":"AAyBA,OAAO,EAGyD,KAAK,IAAI,EACxE,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAiHxD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CA0BtE"}
|
|
@@ -7,13 +7,22 @@
|
|
|
7
7
|
// (separate Render passes, in the Command list's declared order).
|
|
8
8
|
//
|
|
9
9
|
// Reactive variants (`Adaptive`, `OrderedFromList`, `UnorderedFromSet`)
|
|
10
|
-
// stay reactive: marks propagate through
|
|
10
|
+
// stay reactive: marks propagate through the fused reader, and the
|
|
11
11
|
// resulting aset reflects current tree state without a manual rebuild.
|
|
12
12
|
//
|
|
13
13
|
// `OrderedFromList`'s `alist<RenderTree>` is converted via
|
|
14
14
|
// `AListBridges.toASet` — this drops index/order info, which we
|
|
15
15
|
// wouldn't honor anyway.
|
|
16
|
-
|
|
16
|
+
//
|
|
17
|
+
// FUSION: a reactive child-set used to lower through FIVE aset stages
|
|
18
|
+
// (`filter(static).collectSeq(...)` ∪ `filter(!static).collect(...)`),
|
|
19
|
+
// each with its own History + full per-element state — at collection
|
|
20
|
+
// scale that is several complete N-element states of pure plumbing.
|
|
21
|
+
// `FlattenChildSetReader` fuses them into ONE reader: static subtrees
|
|
22
|
+
// (the overwhelmingly common case) enumerate their RenderObjects
|
|
23
|
+
// directly; reactive subtrees get an inner reader exactly like
|
|
24
|
+
// `ASet.collect`'s. One History, one state, two caches.
|
|
25
|
+
import { ASet, AbstractDirtyReader, Cache, HashSetDelta, SetOperation, hashSetDeltaMonoid, } from "@aardworx/wombat.adaptive";
|
|
17
26
|
import { AListBridges } from "@aardworx/wombat.adaptive";
|
|
18
27
|
/** True when `tree` contains no reactive nodes — its RenderObjects can
|
|
19
28
|
* be enumerated as a plain iterable (no inner aset / reader needed). */
|
|
@@ -46,15 +55,70 @@ function* staticObjects(tree) {
|
|
|
46
55
|
throw new Error(`staticObjects: reactive node '${tree.kind}'`);
|
|
47
56
|
}
|
|
48
57
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
*
|
|
53
|
-
*
|
|
58
|
+
const INNER_TAG = "FlattenInnerReader";
|
|
59
|
+
const _tagIsInnerTag = (tag) => tag === INNER_TAG;
|
|
60
|
+
/**
|
|
61
|
+
* Fused flattener for a reactive container of subtrees. Per child
|
|
62
|
+
* delta: a STATIC subtree contributes its objects directly (cached as
|
|
63
|
+
* an array so removal emits exactly what addition emitted); a
|
|
64
|
+
* reactive subtree contributes through an inner reader with
|
|
65
|
+
* `ASet.collect`'s dirty-tracking protocol.
|
|
66
|
+
*/
|
|
67
|
+
class FlattenChildSetReader extends AbstractDirtyReader {
|
|
68
|
+
_reader;
|
|
69
|
+
_static;
|
|
70
|
+
_inner;
|
|
71
|
+
constructor(children) {
|
|
72
|
+
super(hashSetDeltaMonoid(), _tagIsInnerTag);
|
|
73
|
+
this._reader = children.getReader();
|
|
74
|
+
this._static = new Cache((t) => [...staticObjects(t)]);
|
|
75
|
+
this._inner = new Cache((t) => {
|
|
76
|
+
const r = flattenRenderTree(t).getReader();
|
|
77
|
+
r.tag = INNER_TAG;
|
|
78
|
+
return r;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
compute(tok, dirty) {
|
|
82
|
+
let deltas = this._reader.getChanges(tok).collect((d) => {
|
|
83
|
+
const t = d.value;
|
|
84
|
+
if (d.count === 1) {
|
|
85
|
+
if (isStaticTree(t)) {
|
|
86
|
+
let out = HashSetDelta.empty();
|
|
87
|
+
for (const ro of this._static.invoke(t))
|
|
88
|
+
out = out.add(SetOperation.add(ro));
|
|
89
|
+
return out;
|
|
90
|
+
}
|
|
91
|
+
const r = this._inner.invoke(t);
|
|
92
|
+
dirty.delete(r);
|
|
93
|
+
return r.getChanges(tok);
|
|
94
|
+
}
|
|
95
|
+
if (d.count === -1) {
|
|
96
|
+
if (isStaticTree(t)) {
|
|
97
|
+
let out = HashSetDelta.empty();
|
|
98
|
+
for (const ro of this._static.revokeUnsafe(t))
|
|
99
|
+
out = out.add(SetOperation.rem(ro));
|
|
100
|
+
return out;
|
|
101
|
+
}
|
|
102
|
+
const r = this._inner.tryRevokeAndGetDeleted(t);
|
|
103
|
+
if (r === undefined)
|
|
104
|
+
return HashSetDelta.empty();
|
|
105
|
+
dirty.delete(r.value);
|
|
106
|
+
if (r.deleted) {
|
|
107
|
+
r.value.outputs.remove(this);
|
|
108
|
+
return r.value.state.removeAll();
|
|
109
|
+
}
|
|
110
|
+
return r.value.getChanges(tok);
|
|
111
|
+
}
|
|
112
|
+
throw new Error("flattenTree: unexpected delta count");
|
|
113
|
+
});
|
|
114
|
+
for (const d of dirty) {
|
|
115
|
+
deltas = deltas.combine(d.getChanges(tok));
|
|
116
|
+
}
|
|
117
|
+
return deltas;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
54
120
|
function flattenChildSet(children) {
|
|
55
|
-
|
|
56
|
-
const reactivePart = children.filter(t => !isStaticTree(t)).collect(flattenRenderTree);
|
|
57
|
-
return ASet.union(staticPart, reactivePart);
|
|
121
|
+
return ASet.ofReader(() => new FlattenChildSetReader(children));
|
|
58
122
|
}
|
|
59
123
|
export function flattenRenderTree(tree) {
|
|
60
124
|
switch (tree.kind) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flattenTree.js","sourceRoot":"","sources":["../../src/runtime/flattenTree.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,iEAAiE;AACjE,mEAAmE;AACnE,iEAAiE;AACjE,iEAAiE;AACjE,kEAAkE;AAClE,EAAE;AACF,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"flattenTree.js","sourceRoot":"","sources":["../../src/runtime/flattenTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybridScene.d.ts","sourceRoot":"","sources":["../../src/runtime/hybridScene.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hybridScene.d.ts","sourceRoot":"","sources":["../../src/runtime/hybridScene.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
// hybridScene — composes the heap-bucket fast path with the legacy
|
|
2
2
|
// per-RO path into a single render-pass renderer.
|
|
3
3
|
//
|
|
4
|
-
// Pipeline:
|
|
4
|
+
// Pipeline (fused — one aset stage per backend):
|
|
5
5
|
// 1. `flattenRenderTree(tree)` → `aset<RenderObject>` (drops intra-
|
|
6
6
|
// pass ordering by contract).
|
|
7
|
-
// 2. `
|
|
7
|
+
// 2. `flat.chooseA(ro => elig(ro).map(e => e ? spec : undefined))`
|
|
8
|
+
// → `aset<HeapDrawSpec>` fed to `buildHeapScene`; the adapter is
|
|
9
|
+
// memoized per-RO so the same RO always maps to the same spec
|
|
10
|
+
// object (delta-driven removal identifies the right entry).
|
|
8
11
|
// Reactive: an RO migrates when its eligibility predicate marks
|
|
9
12
|
// (e.g. an `aval<IBuffer>` flips host↔gpu).
|
|
10
|
-
// 3. `
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
// 4. `legacyAset` wrapped as `RenderTree.unorderedFromSet(map(leaf))`
|
|
15
|
-
// and fed to `ScenePass`. Same NodeWalker machinery that the
|
|
16
|
-
// legacy `RenderTask` uses.
|
|
13
|
+
// 3. `flat.chooseA(ro => elig(ro).map(e => e ? undefined : leaf))`
|
|
14
|
+
// wrapped as `RenderTree.unorderedFromSet` and fed to
|
|
15
|
+
// `ScenePass`. Same NodeWalker machinery as the legacy
|
|
16
|
+
// `RenderTask`.
|
|
17
17
|
//
|
|
18
18
|
// Per-frame:
|
|
19
19
|
// - `update(token)` runs both backends' update phases (CPU work
|
|
@@ -44,21 +44,25 @@ export function compileHybridScene(device, signature, tree, opts = {}) {
|
|
|
44
44
|
const fragmentOutputLayout = opts.fragmentOutputLayout ?? defaultFragmentOutputLayout(signature);
|
|
45
45
|
const compileEffect = opts.compileEffect ?? ((e, _sig) => e.compile({ target: "wgsl", fragmentOutputLayout }));
|
|
46
46
|
// ─── Partition ───────────────────────────────────────────────────
|
|
47
|
-
// Memoize the eligibility predicate per-RO so
|
|
48
|
-
// share one underlying observation.
|
|
49
|
-
//
|
|
50
|
-
//
|
|
51
|
-
//
|
|
47
|
+
// Memoize the eligibility predicate per-RO so both partition sides
|
|
48
|
+
// share one underlying observation. The per-RO eligibility is ANDed
|
|
49
|
+
// with the global `heapEnabled` toggle — flipping that off forces
|
|
50
|
+
// every RO to legacy.
|
|
51
|
+
//
|
|
52
|
+
// FUSION: each side is ONE `chooseA` straight off `flat` — the old
|
|
53
|
+
// `filterA(elig)` + `choose(spec)` (heap) and `filterA(notElig)` +
|
|
54
|
+
// `map(leaf)` (legacy) pipelines carried an intermediate aset each,
|
|
55
|
+
// i.e. a full History + per-element state of pure plumbing, plus a
|
|
56
|
+
// negation aval per RO. `chooseA`'s per-element wrapper rides
|
|
57
|
+
// `elig(ro).map(...)`, which for a CONSTANT eligibility (asserted
|
|
58
|
+
// rows under a constant `heapEnabled`, or fully-static ROs)
|
|
59
|
+
// collapses to a lazy constant — no adaptive node, no edges.
|
|
52
60
|
const heapEnabled = opts.heapEnabled ?? AVal.constant(true);
|
|
53
|
-
// Producer-asserted ROs (`heapAsserted: true`) skip the per-RO
|
|
54
|
-
// predicate entirely — they all share these TWO scene-level avals
|
|
55
|
-
// instead of two live avals each (see RenderObject.heapAsserted).
|
|
56
|
-
const notHeapEnabled = heapEnabled.isConstant
|
|
57
|
-
? AVal.constant(!heapEnabled.force( /* allow-force */))
|
|
58
|
-
: heapEnabled.map(b => !b);
|
|
59
61
|
const eligCache = new WeakMap();
|
|
60
|
-
const notEligCache = new WeakMap();
|
|
61
62
|
const elig = (ro) => {
|
|
63
|
+
// Producer-asserted ROs (`heapAsserted: true`) skip the per-RO
|
|
64
|
+
// predicate entirely — they all share the scene-level toggle aval
|
|
65
|
+
// (see RenderObject.heapAsserted).
|
|
62
66
|
if (ro.heapAsserted === true)
|
|
63
67
|
return heapEnabled;
|
|
64
68
|
let av = eligCache.get(ro);
|
|
@@ -73,20 +77,7 @@ export function compileHybridScene(device, signature, tree, opts = {}) {
|
|
|
73
77
|
}
|
|
74
78
|
return av;
|
|
75
79
|
};
|
|
76
|
-
const notElig = (ro) => {
|
|
77
|
-
if (ro.heapAsserted === true)
|
|
78
|
-
return notHeapEnabled;
|
|
79
|
-
let av = notEligCache.get(ro);
|
|
80
|
-
if (av === undefined) {
|
|
81
|
-
const e = elig(ro);
|
|
82
|
-
av = e.isConstant ? AVal.constant(!e.force( /* allow-force */)) : e.map(b => !b);
|
|
83
|
-
notEligCache.set(ro, av);
|
|
84
|
-
}
|
|
85
|
-
return av;
|
|
86
|
-
};
|
|
87
80
|
const flat = flattenRenderTree(tree);
|
|
88
|
-
const heapAset = flat.filterA(ro => elig(ro));
|
|
89
|
-
const legacyAset = flat.filterA(ro => notElig(ro));
|
|
90
81
|
// ─── Atlas pool ──────────────────────────────────────────────────
|
|
91
82
|
// Per-scene Tier-S atlas pool. Owned by this hybrid scene; disposed
|
|
92
83
|
// alongside the heap path. The adapter consults it to classify
|
|
@@ -109,7 +100,7 @@ export function compileHybridScene(device, signature, tree, opts = {}) {
|
|
|
109
100
|
// usually have freed atlas space). It costs a missing tile for a frame or two;
|
|
110
101
|
// the alternative was an exception in the frame callback, which killed the
|
|
111
102
|
// render loop outright.
|
|
112
|
-
const
|
|
103
|
+
const specOf = (ro) => {
|
|
113
104
|
let spec = specCache.get(ro);
|
|
114
105
|
if (spec === undefined) {
|
|
115
106
|
const built = renderObjectToHeapSpec(ro, AdaptiveToken.top, atlasPool, {
|
|
@@ -121,7 +112,9 @@ export function compileHybridScene(device, signature, tree, opts = {}) {
|
|
|
121
112
|
specCache.set(ro, spec);
|
|
122
113
|
}
|
|
123
114
|
return spec;
|
|
124
|
-
}
|
|
115
|
+
};
|
|
116
|
+
// ONE fused stage: eligibility routes straight into the spec.
|
|
117
|
+
const heapSpecAset = flat.chooseA((ro) => elig(ro).map((e) => (e ? specOf(ro) : undefined)));
|
|
125
118
|
const heapScene = buildHeapScene(device, signature, heapSpecAset, {
|
|
126
119
|
fragmentOutputLayout,
|
|
127
120
|
atlasPool,
|
|
@@ -137,7 +130,18 @@ export function compileHybridScene(device, signature, tree, opts = {}) {
|
|
|
137
130
|
// path inherits the same "no order inside a pass" contract. Re-using
|
|
138
131
|
// the existing NodeWalker machinery means RO preparation, caching,
|
|
139
132
|
// and resource ref-counting all behave exactly as the master path.
|
|
140
|
-
|
|
133
|
+
// ONE fused stage (ineligible → leaf); the leaf wrapper is memoized
|
|
134
|
+
// so eligibility flips re-emit the identical tree object.
|
|
135
|
+
const leafCache = new WeakMap();
|
|
136
|
+
const leafOf = (ro) => {
|
|
137
|
+
let l = leafCache.get(ro);
|
|
138
|
+
if (l === undefined) {
|
|
139
|
+
l = RenderTree.leaf(ro);
|
|
140
|
+
leafCache.set(ro, l);
|
|
141
|
+
}
|
|
142
|
+
return l;
|
|
143
|
+
};
|
|
144
|
+
const legacyTree = RenderTree.unorderedFromSet(flat.chooseA((ro) => elig(ro).map((e) => (e ? undefined : leafOf(ro)))));
|
|
141
145
|
const scenePass = new ScenePass(device, signature, legacyTree, compileEffect);
|
|
142
146
|
// DEBUG registry: per-hybrid-scene live draw counts (heap vs legacy) so
|
|
143
147
|
// multi-task pipelines (OIT) can be inspected from the console.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybridScene.js","sourceRoot":"","sources":["../../src/runtime/hybridScene.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,kDAAkD;AAClD,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"hybridScene.js","sourceRoot":"","sources":["../../src/runtime/hybridScene.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aardworx/wombat.rendering",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.7",
|
|
4
4
|
"description": "WebGPU rendering layer for the Wombat TypeScript stack — RenderObject/RenderTask/runtime + window glue, port of Aardvark.Rendering's lower layers on top of WebGPU and wombat.shader.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "krauthaufen",
|
|
@@ -65,5 +65,8 @@
|
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"access": "public"
|
|
67
67
|
},
|
|
68
|
-
"private": false
|
|
68
|
+
"private": false,
|
|
69
|
+
"scripts": {
|
|
70
|
+
"prepublishOnly": "cd ../.. && npm run typecheck && npm run build"
|
|
71
|
+
}
|
|
69
72
|
}
|