@aardworx/wombat.rendering 0.8.1 → 0.9.1
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/core/command.d.ts +7 -9
- package/dist/core/command.d.ts.map +1 -1
- package/dist/core/renderTask.d.ts +64 -1
- package/dist/core/renderTask.d.ts.map +1 -1
- package/dist/core/renderTask.js +3 -1
- package/dist/core/renderTask.js.map +1 -1
- package/dist/resources/preparedRenderObject.js +3 -3
- package/dist/resources/preparedRenderObject.js.map +1 -1
- package/dist/resources/uniformBuffer.d.ts.map +1 -1
- package/dist/resources/uniformBuffer.js +17 -0
- package/dist/resources/uniformBuffer.js.map +1 -1
- package/dist/runtime/derivedUniforms/dispatch.d.ts +105 -0
- package/dist/runtime/derivedUniforms/dispatch.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/dispatch.js +355 -0
- package/dist/runtime/derivedUniforms/dispatch.js.map +1 -0
- package/dist/runtime/derivedUniforms/index.d.ts +6 -0
- package/dist/runtime/derivedUniforms/index.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/index.js +26 -0
- package/dist/runtime/derivedUniforms/index.js.map +1 -0
- package/dist/runtime/derivedUniforms/recipes.d.ts +42 -0
- package/dist/runtime/derivedUniforms/recipes.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/recipes.js +134 -0
- package/dist/runtime/derivedUniforms/recipes.js.map +1 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.d.ts +56 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.js +171 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.js.map +1 -0
- package/dist/runtime/derivedUniforms/slotId.d.ts +15 -0
- package/dist/runtime/derivedUniforms/slotId.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/slotId.js +30 -0
- package/dist/runtime/derivedUniforms/slotId.js.map +1 -0
- package/dist/runtime/derivedUniforms/slots.d.ts +49 -0
- package/dist/runtime/derivedUniforms/slots.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/slots.js +123 -0
- package/dist/runtime/derivedUniforms/slots.js.map +1 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.d.ts +13 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.js +218 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.js.map +1 -0
- package/dist/runtime/flattenTree.d.ts +5 -0
- package/dist/runtime/flattenTree.d.ts.map +1 -0
- package/dist/runtime/flattenTree.js +45 -0
- package/dist/runtime/flattenTree.js.map +1 -0
- package/dist/runtime/heapAdapter.d.ts +16 -0
- package/dist/runtime/heapAdapter.d.ts.map +1 -0
- package/dist/runtime/heapAdapter.js +263 -0
- package/dist/runtime/heapAdapter.js.map +1 -0
- package/dist/runtime/heapEffect.d.ts +235 -0
- package/dist/runtime/heapEffect.d.ts.map +1 -0
- package/dist/runtime/heapEffect.js +529 -0
- package/dist/runtime/heapEffect.js.map +1 -0
- package/dist/runtime/heapEffectIR.d.ts +34 -0
- package/dist/runtime/heapEffectIR.d.ts.map +1 -0
- package/dist/runtime/heapEffectIR.js +1161 -0
- package/dist/runtime/heapEffectIR.js.map +1 -0
- package/dist/runtime/heapEligibility.d.ts +9 -0
- package/dist/runtime/heapEligibility.d.ts.map +1 -0
- package/dist/runtime/heapEligibility.js +195 -0
- package/dist/runtime/heapEligibility.js.map +1 -0
- package/dist/runtime/heapScene.d.ts +240 -31
- package/dist/runtime/heapScene.d.ts.map +1 -1
- package/dist/runtime/heapScene.js +3334 -265
- package/dist/runtime/heapScene.js.map +1 -1
- package/dist/runtime/heapShaderFamily.d.ts +132 -0
- package/dist/runtime/heapShaderFamily.d.ts.map +1 -0
- package/dist/runtime/heapShaderFamily.js +866 -0
- package/dist/runtime/heapShaderFamily.js.map +1 -0
- package/dist/runtime/hybridScene.d.ts +133 -0
- package/dist/runtime/hybridScene.d.ts.map +1 -0
- package/dist/runtime/hybridScene.js +159 -0
- package/dist/runtime/hybridScene.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +9 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/renderTask.d.ts +21 -4
- package/dist/runtime/renderTask.d.ts.map +1 -1
- package/dist/runtime/renderTask.js +127 -32
- package/dist/runtime/renderTask.js.map +1 -1
- package/dist/runtime/runtime.d.ts +33 -3
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +12 -3
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/scenePass.d.ts +28 -3
- package/dist/runtime/scenePass.d.ts.map +1 -1
- package/dist/runtime/scenePass.js +37 -4
- package/dist/runtime/scenePass.js.map +1 -1
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.d.ts +35 -0
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.js +247 -0
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.js.map +1 -0
- package/dist/runtime/textureAtlas/atlasPool.d.ts +240 -0
- package/dist/runtime/textureAtlas/atlasPool.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/atlasPool.js +798 -0
- package/dist/runtime/textureAtlas/atlasPool.js.map +1 -0
- package/dist/runtime/textureAtlas/bvhTree2d.d.ts +33 -0
- package/dist/runtime/textureAtlas/bvhTree2d.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/bvhTree2d.js +501 -0
- package/dist/runtime/textureAtlas/bvhTree2d.js.map +1 -0
- package/dist/runtime/textureAtlas/packer.d.ts +50 -0
- package/dist/runtime/textureAtlas/packer.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/packer.js +390 -0
- package/dist/runtime/textureAtlas/packer.js.map +1 -0
- package/dist/window/loop.d.ts +14 -0
- package/dist/window/loop.d.ts.map +1 -1
- package/dist/window/loop.js +18 -5
- package/dist/window/loop.js.map +1 -1
- package/package.json +6 -5
- package/src/core/command.ts +9 -9
- package/src/core/renderTask.ts +55 -2
- package/src/resources/preparedRenderObject.ts +3 -3
- package/src/resources/uniformBuffer.ts +15 -0
- package/src/runtime/derivedUniforms/dispatch.ts +407 -0
- package/src/runtime/derivedUniforms/index.ts +52 -0
- package/src/runtime/derivedUniforms/recipes.ts +159 -0
- package/src/runtime/derivedUniforms/sceneIntegration.ts +239 -0
- package/src/runtime/derivedUniforms/slotId.ts +35 -0
- package/src/runtime/derivedUniforms/slots.ts +155 -0
- package/src/runtime/derivedUniforms/uberKernel.wgsl.ts +220 -0
- package/src/runtime/flattenTree.ts +46 -0
- package/src/runtime/heapAdapter.ts +314 -0
- package/src/runtime/heapEffect.ts +728 -0
- package/src/runtime/heapEffectIR.ts +1211 -0
- package/src/runtime/heapEligibility.ts +189 -0
- package/src/runtime/heapScene.ts +3981 -349
- package/src/runtime/heapShaderFamily.ts +1102 -0
- package/src/runtime/hybridScene.ts +310 -0
- package/src/runtime/index.ts +45 -1
- package/src/runtime/renderTask.ts +167 -32
- package/src/runtime/runtime.ts +37 -4
- package/src/runtime/scenePass.ts +39 -4
- package/src/runtime/textureAtlas/atlasMipGutterKernel.ts +291 -0
- package/src/runtime/textureAtlas/atlasPool.ts +991 -0
- package/src/runtime/textureAtlas/bvhTree2d.ts +530 -0
- package/src/runtime/textureAtlas/packer.ts +429 -0
- package/src/window/loop.ts +32 -6
- package/dist/runtime/heapShader.d.ts +0 -12
- package/dist/runtime/heapShader.d.ts.map +0 -1
- package/dist/runtime/heapShader.js +0 -157
- package/dist/runtime/heapShader.js.map +0 -1
- package/src/runtime/heapShader.ts +0 -185
|
@@ -15,30 +15,32 @@ import { RenderContext, } from "../core/index.js";
|
|
|
15
15
|
import { beginPassDescriptor, clear } from "../commands/index.js";
|
|
16
16
|
import { AdaptiveToken } from "@aardworx/wombat.adaptive";
|
|
17
17
|
import { copy } from "./copy.js";
|
|
18
|
-
import {
|
|
18
|
+
import { compileHybridScene } from "./hybridScene.js";
|
|
19
19
|
class RenderTask {
|
|
20
20
|
ctx;
|
|
21
|
+
signature;
|
|
21
22
|
commands;
|
|
22
23
|
/**
|
|
23
|
-
* Cache of `
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
24
|
+
* Cache of `HybridScene`s keyed on the `Render` command itself.
|
|
25
|
+
* Each command compiles to a hybrid scene composing the heap-
|
|
26
|
+
* bucket fast path with the legacy per-RO path; reuse across
|
|
27
|
+
* frames preserves both backends' incremental state.
|
|
27
28
|
*/
|
|
28
29
|
_scenes = new Map();
|
|
29
30
|
_disposed = false;
|
|
30
|
-
constructor(ctx, commands) {
|
|
31
|
+
constructor(ctx, signature, commands) {
|
|
31
32
|
this.ctx = ctx;
|
|
33
|
+
this.signature = signature;
|
|
32
34
|
this.commands = commands;
|
|
33
35
|
}
|
|
34
|
-
run(token) {
|
|
36
|
+
run(framebuffer, token) {
|
|
35
37
|
if (this._disposed)
|
|
36
38
|
throw new Error("RenderTask: run after dispose");
|
|
37
39
|
const enc = this.ctx.device.createCommandEncoder();
|
|
38
|
-
this.encode(enc, token);
|
|
40
|
+
this.encode(enc, framebuffer, token);
|
|
39
41
|
this.ctx.device.queue.submit([enc.finish()]);
|
|
40
42
|
}
|
|
41
|
-
encode(enc, token) {
|
|
43
|
+
encode(enc, framebuffer, token) {
|
|
42
44
|
if (this._disposed)
|
|
43
45
|
throw new Error("RenderTask: encode after dispose");
|
|
44
46
|
RenderContext.withEncoder(enc, () => {
|
|
@@ -47,18 +49,110 @@ class RenderTask {
|
|
|
47
49
|
arr.push(c);
|
|
48
50
|
for (let i = 0; i < arr.length; i++) {
|
|
49
51
|
const c = arr[i];
|
|
52
|
+
// Coalesce a Clear immediately followed by a Render: both
|
|
53
|
+
// share the run-arg framebuffer now (no per-cmd output to
|
|
54
|
+
// disambiguate), so the merge is unconditional when the
|
|
55
|
+
// pair is adjacent.
|
|
50
56
|
if (c.kind === "Clear") {
|
|
51
57
|
const next = arr[i + 1];
|
|
52
|
-
if (next !== undefined && next.kind === "Render"
|
|
53
|
-
this.encodeRenderCommand(enc, next, token, c.values);
|
|
58
|
+
if (next !== undefined && next.kind === "Render") {
|
|
59
|
+
this.encodeRenderCommand(enc, next, framebuffer, token, c.values);
|
|
54
60
|
i++;
|
|
55
61
|
continue;
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
|
-
this.encodeCommand(enc, c, token);
|
|
64
|
+
this.encodeCommand(enc, c, framebuffer, token);
|
|
59
65
|
}
|
|
60
66
|
});
|
|
61
67
|
}
|
|
68
|
+
heapBucketCount() {
|
|
69
|
+
let total = 0;
|
|
70
|
+
for (const s of this._scenes.values())
|
|
71
|
+
total += s.heapBucketCount();
|
|
72
|
+
return total;
|
|
73
|
+
}
|
|
74
|
+
heapDerivedTimings() {
|
|
75
|
+
let pullMs = 0, uploadMs = 0, encodeMs = 0, records = 0;
|
|
76
|
+
for (const s of this._scenes.values()) {
|
|
77
|
+
const t = s.heapDerivedTimings();
|
|
78
|
+
pullMs += t.pullMs;
|
|
79
|
+
uploadMs += t.uploadMs;
|
|
80
|
+
encodeMs += t.encodeMs;
|
|
81
|
+
records += t.records;
|
|
82
|
+
}
|
|
83
|
+
return { pullMs, uploadMs, encodeMs, records };
|
|
84
|
+
}
|
|
85
|
+
async validateHeap() {
|
|
86
|
+
let arenaBytes = 0, okRefs = 0, badRefs = 0;
|
|
87
|
+
let drawTableRows = 0, drawTableErrs = 0, prefixSumErrs = 0;
|
|
88
|
+
let attrAllocsChecked = 0, attrAllocsBad = 0;
|
|
89
|
+
let tilesChecked = 0, tilesBad = 0;
|
|
90
|
+
let vidChecks = 0, vidBad = 0;
|
|
91
|
+
const indicesHashes = [];
|
|
92
|
+
const issues = [];
|
|
93
|
+
for (const s of this._scenes.values()) {
|
|
94
|
+
const r = await s.validateHeap();
|
|
95
|
+
arenaBytes += r.arenaBytes;
|
|
96
|
+
okRefs += r.okRefs;
|
|
97
|
+
badRefs += r.badRefs;
|
|
98
|
+
drawTableRows += r.drawTableRows;
|
|
99
|
+
drawTableErrs += r.drawTableErrs;
|
|
100
|
+
prefixSumErrs += r.prefixSumErrs;
|
|
101
|
+
attrAllocsChecked += r.attrAllocsChecked;
|
|
102
|
+
attrAllocsBad += r.attrAllocsBad;
|
|
103
|
+
tilesChecked += r.tilesChecked;
|
|
104
|
+
tilesBad += r.tilesBad;
|
|
105
|
+
vidChecks += r.vidChecks;
|
|
106
|
+
vidBad += r.vidBad;
|
|
107
|
+
indicesHashes.push(r.indicesHash);
|
|
108
|
+
for (const i of r.issues)
|
|
109
|
+
issues.push(i);
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
arenaBytes, issues, okRefs, badRefs,
|
|
113
|
+
drawTableRows, drawTableErrs, prefixSumErrs,
|
|
114
|
+
attrAllocsChecked, attrAllocsBad,
|
|
115
|
+
tilesChecked, tilesBad,
|
|
116
|
+
vidChecks, vidBad,
|
|
117
|
+
indicesHash: indicesHashes.join(","),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async simulateDraws(samples) {
|
|
121
|
+
let emitsChecked = 0, oob = 0;
|
|
122
|
+
const issues = [];
|
|
123
|
+
for (const s of this._scenes.values()) {
|
|
124
|
+
const r = await s.simulateDraws(samples);
|
|
125
|
+
emitsChecked += r.emitsChecked;
|
|
126
|
+
oob += r.oob;
|
|
127
|
+
for (const i of r.issues)
|
|
128
|
+
issues.push(i);
|
|
129
|
+
}
|
|
130
|
+
return { emitsChecked, oob, issues };
|
|
131
|
+
}
|
|
132
|
+
async probeBinarySearch(samples) {
|
|
133
|
+
let emitsChecked = 0, gpuMismatches = 0;
|
|
134
|
+
const issues = [];
|
|
135
|
+
for (const s of this._scenes.values()) {
|
|
136
|
+
const r = await s.probeBinarySearch(samples);
|
|
137
|
+
emitsChecked += r.emitsChecked;
|
|
138
|
+
gpuMismatches += r.gpuMismatches;
|
|
139
|
+
for (const i of r.issues)
|
|
140
|
+
issues.push(i);
|
|
141
|
+
}
|
|
142
|
+
return { emitsChecked, gpuMismatches, issues };
|
|
143
|
+
}
|
|
144
|
+
async checkTriangleCoherence(samples) {
|
|
145
|
+
let trianglesChecked = 0, crossSlot = 0;
|
|
146
|
+
const issues = [];
|
|
147
|
+
for (const s of this._scenes.values()) {
|
|
148
|
+
const r = await s.checkTriangleCoherence(samples);
|
|
149
|
+
trianglesChecked += r.trianglesChecked;
|
|
150
|
+
crossSlot += r.crossSlot;
|
|
151
|
+
for (const i of r.issues)
|
|
152
|
+
issues.push(i);
|
|
153
|
+
}
|
|
154
|
+
return { trianglesChecked, crossSlot, issues };
|
|
155
|
+
}
|
|
62
156
|
dispose() {
|
|
63
157
|
if (this._disposed)
|
|
64
158
|
return;
|
|
@@ -67,10 +161,10 @@ class RenderTask {
|
|
|
67
161
|
this._scenes.clear();
|
|
68
162
|
this._disposed = true;
|
|
69
163
|
}
|
|
70
|
-
encodeCommand(enc, c, token) {
|
|
164
|
+
encodeCommand(enc, c, framebuffer, token) {
|
|
71
165
|
switch (c.kind) {
|
|
72
166
|
case "Clear":
|
|
73
|
-
clear(enc,
|
|
167
|
+
clear(enc, framebuffer, c.values);
|
|
74
168
|
return;
|
|
75
169
|
case "Copy":
|
|
76
170
|
copy(enc, c.copy);
|
|
@@ -79,38 +173,39 @@ class RenderTask {
|
|
|
79
173
|
c.encode(enc);
|
|
80
174
|
return;
|
|
81
175
|
case "Render":
|
|
82
|
-
this.encodeRenderCommand(enc, c, token);
|
|
176
|
+
this.encodeRenderCommand(enc, c, framebuffer, token);
|
|
83
177
|
return;
|
|
84
178
|
}
|
|
85
179
|
}
|
|
86
|
-
encodeRenderCommand(enc, cmd, token, clearValues) {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (leaves.length === 0 && clearValues === undefined)
|
|
180
|
+
encodeRenderCommand(enc, cmd, framebuffer, token, clearValues) {
|
|
181
|
+
const scene = this.sceneFor(cmd, cmd.tree);
|
|
182
|
+
scene.update(token);
|
|
183
|
+
if (!scene.hasDraws() && clearValues === undefined)
|
|
91
184
|
return;
|
|
185
|
+
// Compute prep (drawTable prefix-sum) must happen outside any
|
|
186
|
+
// render pass — encode it before we open the pass.
|
|
187
|
+
scene.encodeComputePrep(enc, token);
|
|
92
188
|
// Either we have draws or we need to clear — open a single pass.
|
|
93
|
-
const pass = enc.beginRenderPass(beginPassDescriptor(
|
|
94
|
-
|
|
95
|
-
leaf.record(pass, token);
|
|
189
|
+
const pass = enc.beginRenderPass(beginPassDescriptor(framebuffer, clearValues));
|
|
190
|
+
scene.encodeIntoPass(pass, token);
|
|
96
191
|
pass.end();
|
|
97
192
|
}
|
|
98
|
-
sceneFor(cmd,
|
|
193
|
+
sceneFor(cmd, tree) {
|
|
99
194
|
let s = this._scenes.get(cmd);
|
|
100
195
|
if (s === undefined) {
|
|
101
|
-
s =
|
|
196
|
+
s = compileHybridScene(this.ctx.device, this.signature, tree, {
|
|
197
|
+
compileEffect: this.ctx.compileEffect,
|
|
198
|
+
...(this.ctx.heapEnabled !== undefined ? { heapEnabled: this.ctx.heapEnabled } : {}),
|
|
199
|
+
...(this.ctx.enableFamilyMerge === true ? { enableFamilyMerge: true } : {}),
|
|
200
|
+
...(this.ctx.enableDerivedUniforms === true ? { enableDerivedUniforms: true } : {}),
|
|
201
|
+
});
|
|
102
202
|
this._scenes.set(cmd, s);
|
|
103
203
|
}
|
|
104
204
|
return s;
|
|
105
|
-
// Note: `output.signature` is read here only to seed the
|
|
106
|
-
// ScenePass; subsequent frames continue to use this signature
|
|
107
|
-
// even if the framebuffer aval emits a different sig. That
|
|
108
|
-
// matches the `(RenderObject, signature)` cache invariant —
|
|
109
|
-
// changing signature requires a fresh Render command.
|
|
110
205
|
}
|
|
111
206
|
}
|
|
112
|
-
export function compileRenderTask(ctx, commands) {
|
|
113
|
-
return new RenderTask(ctx, commands);
|
|
207
|
+
export function compileRenderTask(ctx, signature, commands) {
|
|
208
|
+
return new RenderTask(ctx, signature, commands);
|
|
114
209
|
}
|
|
115
210
|
// `RenderTree` carries an `aval<RenderTree>` inside its `Adaptive`
|
|
116
211
|
// variant; this `void` reference keeps the `aval` import live.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderTask.js","sourceRoot":"","sources":["../../src/runtime/renderTask.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,eAAe;AACf,EAAE;AACF,kEAAkE;AAClE,0DAA0D;AAC1D,qEAAqE;AACrE,iEAAiE;AACjE,+DAA+D;AAC/D,uEAAuE;AACvE,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,uDAAuD;AAEvD,OAAO,EACL,aAAa,GASd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAyB,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"renderTask.js","sourceRoot":"","sources":["../../src/runtime/renderTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Command, CompiledEffect, Effect, FramebufferSignature, IRenderTask, RenderTree } from "../core/index.js";
|
|
2
|
-
import type { alist } from "@aardworx/wombat.adaptive";
|
|
2
|
+
import type { alist, aval } from "@aardworx/wombat.adaptive";
|
|
3
3
|
import { type RenderToOptions, type RenderToResult } from "./renderTo.js";
|
|
4
4
|
export interface RuntimeOptions {
|
|
5
5
|
readonly device: GPUDevice;
|
|
@@ -11,6 +11,30 @@ export interface RuntimeOptions {
|
|
|
11
11
|
* …).
|
|
12
12
|
*/
|
|
13
13
|
readonly compileEffect?: (effect: Effect, signature: FramebufferSignature) => CompiledEffect;
|
|
14
|
+
/**
|
|
15
|
+
* Global on/off toggle for the heap fast path. When `false`,
|
|
16
|
+
* every RO routes through the legacy per-RO renderer. Reactive:
|
|
17
|
+
* ROs migrate between heap and legacy subsets when the cval
|
|
18
|
+
* flips. Useful for A/B perf comparisons. Default: heap on.
|
|
19
|
+
*/
|
|
20
|
+
readonly heapEnabled?: aval<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* §6 family-merge opt-in. When `true`, all heap-eligible effects
|
|
23
|
+
* collapse into one bucket per pipelineState via layoutId-switch
|
|
24
|
+
* dispatch. Default `false`: each effect lands in its own bucket /
|
|
25
|
+
* shader / pipeline. Per-effect bucketing is at-or-better than
|
|
26
|
+
* merged on tested workloads; merge stays opt-in until the v2
|
|
27
|
+
* trace-based auto-trigger lands.
|
|
28
|
+
*/
|
|
29
|
+
readonly enableFamilyMerge?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* §7 derived-uniforms opt-in. When true, ModelView / ViewProj /
|
|
32
|
+
* ModelViewProj / NormalMatrix / *TrafoInv / etc. are produced by a
|
|
33
|
+
* df32 GPU compute pre-pass instead of being supplied per-RO by the
|
|
34
|
+
* uniform provider. ROs MUST supply ModelTrafo / ViewTrafo /
|
|
35
|
+
* ProjTrafo as `aval<Trafo3d>` for any derived they consume.
|
|
36
|
+
*/
|
|
37
|
+
readonly enableDerivedUniforms?: boolean;
|
|
14
38
|
}
|
|
15
39
|
export declare class Runtime {
|
|
16
40
|
private readonly ctx;
|
|
@@ -25,8 +49,14 @@ export declare class Runtime {
|
|
|
25
49
|
constructor(opts: RuntimeOptions);
|
|
26
50
|
get device(): GPUDevice;
|
|
27
51
|
get isDeviceLost(): boolean;
|
|
28
|
-
/**
|
|
29
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Compile an `alist<Command>` into a runnable `IRenderTask`. The
|
|
54
|
+
* `signature` is constant across the task's lifetime — pipelines
|
|
55
|
+
* specialise against it at compile time. Framebuffer instances are
|
|
56
|
+
* supplied at `task.run(framebuffer, token)`; their signatures
|
|
57
|
+
* must match.
|
|
58
|
+
*/
|
|
59
|
+
compile(signature: FramebufferSignature, commands: alist<Command>): IRenderTask;
|
|
30
60
|
/**
|
|
31
61
|
* Render `scene` into a freshly-allocated framebuffer, returning
|
|
32
62
|
* lazy `aval<ITexture>` handles for each color/depth attachment.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,EAAY,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,KAAK,cAAc,CAAC;IAC7F;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAeD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAEpC,IAAI,EAAE,cAAc;IA0BhC,IAAI,MAAM,IAAI,SAAS,CAA4B;IACnD,IAAI,YAAY,IAAI,OAAO,CAA6B;IAqBxD;;;;;;OAMG;IACH,OAAO,CAAC,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW;IAS/E;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,cAAc;IAKlE;;;;;;;OAOG;IACH,UAAU,IAAI,IAAI;CAQnB"}
|
package/dist/runtime/runtime.js
CHANGED
|
@@ -32,6 +32,9 @@ export class Runtime {
|
|
|
32
32
|
target: "wgsl",
|
|
33
33
|
fragmentOutputLayout: layoutFromSignature(sig),
|
|
34
34
|
})),
|
|
35
|
+
...(opts.heapEnabled !== undefined ? { heapEnabled: opts.heapEnabled } : {}),
|
|
36
|
+
...(opts.enableFamilyMerge === true ? { enableFamilyMerge: true } : {}),
|
|
37
|
+
...(opts.enableDerivedUniforms === true ? { enableDerivedUniforms: true } : {}),
|
|
35
38
|
};
|
|
36
39
|
// `device.lost` is a real-WebGPU promise; mock devices may not
|
|
37
40
|
// expose it. Treat as "never lost" in that case.
|
|
@@ -67,11 +70,17 @@ export class Runtime {
|
|
|
67
70
|
// prepared object's GPU handles are baked in at construction; the
|
|
68
71
|
// cleanest path is to discard the old Runtime and construct a new
|
|
69
72
|
// one from the same source `alist<Command>`.
|
|
70
|
-
/**
|
|
71
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Compile an `alist<Command>` into a runnable `IRenderTask`. The
|
|
75
|
+
* `signature` is constant across the task's lifetime — pipelines
|
|
76
|
+
* specialise against it at compile time. Framebuffer instances are
|
|
77
|
+
* supplied at `task.run(framebuffer, token)`; their signatures
|
|
78
|
+
* must match.
|
|
79
|
+
*/
|
|
80
|
+
compile(signature, commands) {
|
|
72
81
|
if (this._disposed)
|
|
73
82
|
throw new Error("Runtime: compile after disposeAll");
|
|
74
|
-
const task = compileRenderTask(this.ctx, commands);
|
|
83
|
+
const task = compileRenderTask(this.ctx, signature, commands);
|
|
75
84
|
this._tasks.add(task);
|
|
76
85
|
const origDispose = task.dispose.bind(task);
|
|
77
86
|
task.dispose = () => { origDispose(); this._tasks.delete(task); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,2DAA2D;AAC3D,gCAAgC;AAIhC,OAAO,EAAE,iBAAiB,EAAuB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,QAAQ,EAA6C,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,34 @@ export declare class ScenePass {
|
|
|
15
15
|
readonly stats: WalkerStats;
|
|
16
16
|
constructor(device: GPUDevice, signature: FramebufferSignature, tree: RenderTree, compileEffect: (e: Effect, signature: FramebufferSignature) => CompiledEffect);
|
|
17
17
|
/**
|
|
18
|
-
* Pull deltas from every dynamic subtree
|
|
19
|
-
* walkers
|
|
20
|
-
*
|
|
18
|
+
* Pull deltas from every dynamic subtree and splice the affected
|
|
19
|
+
* walkers. CPU-only — no GPU work. After this returns, the leaf
|
|
20
|
+
* set is current and any per-leaf prepared resources have been
|
|
21
|
+
* brought up to date. Idempotent on a clean adaptive graph.
|
|
22
|
+
*
|
|
23
|
+
* Hybrid composition: call this BEFORE opening the render pass,
|
|
24
|
+
* alongside any other backend's `update`. Then open the pass and
|
|
25
|
+
* call `encodeIntoPass`.
|
|
26
|
+
*/
|
|
27
|
+
update(token: AdaptiveToken): void;
|
|
28
|
+
/**
|
|
29
|
+
* The current ordered list of leaves. Reads the walker tree's
|
|
30
|
+
* cached state — does not pull deltas. Call `update(token)` first
|
|
31
|
+
* if avals may have marked since last collect.
|
|
32
|
+
*/
|
|
33
|
+
collect(): PreparedRenderObject[];
|
|
34
|
+
/**
|
|
35
|
+
* Encode each leaf's draw into an existing render pass. No
|
|
36
|
+
* begin/end; caller owns the pass. Hybrid renderers call this on
|
|
37
|
+
* the legacy path's pass alongside the heap path's `encodeIntoPass`.
|
|
38
|
+
*
|
|
39
|
+
* Must be preceded by `update(token)` in the same frame.
|
|
40
|
+
*/
|
|
41
|
+
encodeIntoPass(passEnc: GPURenderPassEncoder, token: AdaptiveToken): void;
|
|
42
|
+
/**
|
|
43
|
+
* Convenience: `update` + `collect`. The legacy entry point.
|
|
44
|
+
* Pre-existing callers keep working; new code paths prefer the
|
|
45
|
+
* split methods.
|
|
21
46
|
*/
|
|
22
47
|
resolve(token: AdaptiveToken): PreparedRenderObject[];
|
|
23
48
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenePass.d.ts","sourceRoot":"","sources":["../../src/runtime/scenePass.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,KAAK,aAAa,EAQnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAS/B;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAkMD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAuB;gBAGhD,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,oBAAoB,EAC/B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,KAAK,cAAc;IAM/E;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,oBAAoB,EAAE;
|
|
1
|
+
{"version":3,"file":"scenePass.d.ts","sourceRoot":"","sources":["../../src/runtime/scenePass.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,KAAK,aAAa,EAQnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,uBAAuB,CAAC;AAS/B;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAkMD,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAuB;gBAGhD,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,oBAAoB,EAC/B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,KAAK,cAAc;IAM/E;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAIlC;;;;OAIG;IACH,OAAO,IAAI,oBAAoB,EAAE;IAMjC;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAKzE;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,oBAAoB,EAAE;IAKrD,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -238,16 +238,49 @@ export class ScenePass {
|
|
|
238
238
|
this.root = build(tree, ctx);
|
|
239
239
|
}
|
|
240
240
|
/**
|
|
241
|
-
* Pull deltas from every dynamic subtree
|
|
242
|
-
* walkers
|
|
243
|
-
*
|
|
241
|
+
* Pull deltas from every dynamic subtree and splice the affected
|
|
242
|
+
* walkers. CPU-only — no GPU work. After this returns, the leaf
|
|
243
|
+
* set is current and any per-leaf prepared resources have been
|
|
244
|
+
* brought up to date. Idempotent on a clean adaptive graph.
|
|
245
|
+
*
|
|
246
|
+
* Hybrid composition: call this BEFORE opening the render pass,
|
|
247
|
+
* alongside any other backend's `update`. Then open the pass and
|
|
248
|
+
* call `encodeIntoPass`.
|
|
244
249
|
*/
|
|
245
|
-
|
|
250
|
+
update(token) {
|
|
246
251
|
this.root.update(token);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* The current ordered list of leaves. Reads the walker tree's
|
|
255
|
+
* cached state — does not pull deltas. Call `update(token)` first
|
|
256
|
+
* if avals may have marked since last collect.
|
|
257
|
+
*/
|
|
258
|
+
collect() {
|
|
247
259
|
const out = [];
|
|
248
260
|
this.root.emit(out);
|
|
249
261
|
return out;
|
|
250
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Encode each leaf's draw into an existing render pass. No
|
|
265
|
+
* begin/end; caller owns the pass. Hybrid renderers call this on
|
|
266
|
+
* the legacy path's pass alongside the heap path's `encodeIntoPass`.
|
|
267
|
+
*
|
|
268
|
+
* Must be preceded by `update(token)` in the same frame.
|
|
269
|
+
*/
|
|
270
|
+
encodeIntoPass(passEnc, token) {
|
|
271
|
+
const leaves = this.collect();
|
|
272
|
+
for (const leaf of leaves)
|
|
273
|
+
leaf.record(passEnc, token);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Convenience: `update` + `collect`. The legacy entry point.
|
|
277
|
+
* Pre-existing callers keep working; new code paths prefer the
|
|
278
|
+
* split methods.
|
|
279
|
+
*/
|
|
280
|
+
resolve(token) {
|
|
281
|
+
this.update(token);
|
|
282
|
+
return this.collect();
|
|
283
|
+
}
|
|
251
284
|
dispose() {
|
|
252
285
|
this.root.dispose();
|
|
253
286
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenePass.js","sourceRoot":"","sources":["../../src/runtime/scenePass.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scenePass.js","sourceRoot":"","sources":["../../src/runtime/scenePass.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-mip slot description. `origin`/`size` are in *bounding-rect-
|
|
3
|
+
* relative pixel coordinates* (not atlas-page coordinates) — the
|
|
4
|
+
* scratch buffer is laid out as the bounding rect with row stride
|
|
5
|
+
* `bufStrideU32` u32s per row. Mip 0's interior origin matches
|
|
6
|
+
* `acq.origin` − sub-rect origin.
|
|
7
|
+
*/
|
|
8
|
+
export interface MipSlot {
|
|
9
|
+
readonly origin: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
readonly size: {
|
|
14
|
+
w: number;
|
|
15
|
+
h: number;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build the mip pyramid + gutters on GPU and upload the result to a
|
|
20
|
+
* sub-rect of `page`. `srcPixels` is the raw RGBA8 source for mip 0
|
|
21
|
+
* (`srcW × srcH` pixels). The kernel:
|
|
22
|
+
* - Allocates a per-acquire scratch buffer.
|
|
23
|
+
* - Initialises the buffer at creation with mip-0 source pixels at
|
|
24
|
+
* the mip-0 interior offset.
|
|
25
|
+
* - Dispatches per-mip interior + gutter compute passes.
|
|
26
|
+
* - copyBufferToTexture into the page at (subRectX, subRectY).
|
|
27
|
+
*
|
|
28
|
+
* Caller must ensure the page has COPY_DST usage (atlas pages
|
|
29
|
+
* always do).
|
|
30
|
+
*
|
|
31
|
+
* Buffer is destroyed once submitted work completes (fire-and-forget
|
|
32
|
+
* via `onSubmittedWorkDone`).
|
|
33
|
+
*/
|
|
34
|
+
export declare function buildMipsAndGutterOnGpu(device: GPUDevice, page: GPUTexture, subRectX: number, subRectY: number, boundsW: number, boundsH: number, srcPixels: Uint8Array, srcW: number, srcH: number, mips: readonly MipSlot[]): void;
|
|
35
|
+
//# sourceMappingURL=atlasMipGutterKernel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atlasMipGutterKernel.d.ts","sourceRoot":"","sources":["../../../src/runtime/textureAtlas/atlasMipGutterKernel.ts"],"names":[],"mappings":"AA0IA;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAClC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAChC,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAC1B,IAAI,EAAE,SAAS,OAAO,EAAE,GACvB,IAAI,CAoHN"}
|