@aardworx/wombat.rendering 0.1.1 → 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/dist/core/index.d.ts +2 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/pipelineState.d.ts +93 -23
- package/dist/core/pipelineState.d.ts.map +1 -1
- package/dist/core/pipelineState.js +83 -1
- package/dist/core/pipelineState.js.map +1 -1
- package/dist/core/renderObject.d.ts +11 -4
- package/dist/core/renderObject.d.ts.map +1 -1
- package/dist/resources/preparedRenderObject.d.ts +37 -3
- package/dist/resources/preparedRenderObject.d.ts.map +1 -1
- package/dist/resources/preparedRenderObject.js +274 -91
- package/dist/resources/preparedRenderObject.js.map +1 -1
- package/dist/runtime/scenePass.d.ts.map +1 -1
- package/dist/runtime/scenePass.js +6 -1
- package/dist/runtime/scenePass.js.map +1 -1
- package/package.json +1 -1
- package/src/core/index.ts +10 -1
- package/src/core/pipelineState.ts +178 -24
- package/src/core/renderObject.ts +11 -4
- package/src/resources/preparedRenderObject.ts +358 -92
- package/src/runtime/scenePass.ts +6 -1
|
@@ -4,8 +4,15 @@
|
|
|
4
4
|
// Reads the wombat.shader `ProgramInterface` for everything needed
|
|
5
5
|
// to lay out vertex buffers, bind groups, color targets, and draw
|
|
6
6
|
// state.
|
|
7
|
+
//
|
|
8
|
+
// Pipeline state is fully reactive: the pipeline-influencing avals
|
|
9
|
+
// (rasterizer / depth / stencil ops / blends / alphaToCoverage) are
|
|
10
|
+
// snapshotted at token-evaluation time into a cache key; the
|
|
11
|
+
// resulting `GPURenderPipeline` is cached per-key in the
|
|
12
|
+
// PreparedRenderObject so flipping a non-pipeline-affecting field
|
|
13
|
+
// (`stencilReference`, `blendConstant`) does NOT trigger a recompile.
|
|
7
14
|
import { AdaptiveResource, } from "../core/index.js";
|
|
8
|
-
import { cval, } from "@aardworx/wombat.adaptive";
|
|
15
|
+
import { HashMap, AVal, cval, } from "@aardworx/wombat.adaptive";
|
|
9
16
|
import { prepareAdaptiveBuffer } from "./adaptiveBuffer.js";
|
|
10
17
|
import { prepareAdaptiveTexture } from "./adaptiveTexture.js";
|
|
11
18
|
import { prepareAdaptiveSampler } from "./adaptiveSampler.js";
|
|
@@ -47,8 +54,6 @@ function vertexFormatStride(fmt) {
|
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
56
|
function vertexBindingsFor(iface) {
|
|
50
|
-
// `iface.attributes` is already filtered to non-builtin vertex inputs
|
|
51
|
-
// by wombat.shader's interface builder.
|
|
52
57
|
return iface.attributes.map(a => ({
|
|
53
58
|
name: a.name,
|
|
54
59
|
slot: a.location,
|
|
@@ -56,15 +61,78 @@ function vertexBindingsFor(iface) {
|
|
|
56
61
|
byteSize: a.byteSize,
|
|
57
62
|
}));
|
|
58
63
|
}
|
|
59
|
-
function
|
|
64
|
+
function snapshotPipeline(ps, token) {
|
|
65
|
+
const r = ps.rasterizer;
|
|
66
|
+
const depthBias = r.depthBias !== undefined ? r.depthBias.getValue(token) : undefined;
|
|
67
|
+
let stencil;
|
|
68
|
+
if (ps.stencil !== undefined) {
|
|
69
|
+
const s = ps.stencil;
|
|
70
|
+
stencil = {
|
|
71
|
+
enabled: s.enabled.getValue(token),
|
|
72
|
+
readMask: s.readMask.getValue(token),
|
|
73
|
+
writeMask: s.writeMask.getValue(token),
|
|
74
|
+
front: {
|
|
75
|
+
compare: s.front.compare.getValue(token),
|
|
76
|
+
failOp: s.front.failOp.getValue(token),
|
|
77
|
+
depthFailOp: s.front.depthFailOp.getValue(token),
|
|
78
|
+
passOp: s.front.passOp.getValue(token),
|
|
79
|
+
},
|
|
80
|
+
back: {
|
|
81
|
+
compare: s.back.compare.getValue(token),
|
|
82
|
+
failOp: s.back.failOp.getValue(token),
|
|
83
|
+
depthFailOp: s.back.depthFailOp.getValue(token),
|
|
84
|
+
passOp: s.back.passOp.getValue(token),
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
let blends;
|
|
89
|
+
if (ps.blends !== undefined) {
|
|
90
|
+
const m = ps.blends.getValue(token);
|
|
91
|
+
const arr = [];
|
|
92
|
+
for (const [k, b] of m) {
|
|
93
|
+
arr.push([k, {
|
|
94
|
+
color: {
|
|
95
|
+
operation: b.color.operation.getValue(token),
|
|
96
|
+
srcFactor: b.color.srcFactor.getValue(token),
|
|
97
|
+
dstFactor: b.color.dstFactor.getValue(token),
|
|
98
|
+
},
|
|
99
|
+
alpha: {
|
|
100
|
+
operation: b.alpha.operation.getValue(token),
|
|
101
|
+
srcFactor: b.alpha.srcFactor.getValue(token),
|
|
102
|
+
dstFactor: b.alpha.dstFactor.getValue(token),
|
|
103
|
+
},
|
|
104
|
+
writeMask: b.writeMask.getValue(token),
|
|
105
|
+
}]);
|
|
106
|
+
}
|
|
107
|
+
arr.sort((x, y) => (x[0] < y[0] ? -1 : x[0] > y[0] ? 1 : 0));
|
|
108
|
+
blends = arr;
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
topology: r.topology.getValue(token),
|
|
112
|
+
cullMode: r.cullMode.getValue(token),
|
|
113
|
+
frontFace: r.frontFace.getValue(token),
|
|
114
|
+
depthBias,
|
|
115
|
+
depthWrite: ps.depth?.write.getValue(token),
|
|
116
|
+
depthCompare: ps.depth?.compare.getValue(token),
|
|
117
|
+
depthClamp: ps.depth?.clamp?.getValue(token),
|
|
118
|
+
stencil,
|
|
119
|
+
blends,
|
|
120
|
+
alphaToCoverage: ps.alphaToCoverage?.getValue(token) ?? false,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function pipelineKeyOf(snap) {
|
|
124
|
+
return JSON.stringify(snap);
|
|
125
|
+
}
|
|
126
|
+
function colorTargetsForSnap(iface, sig, blends) {
|
|
60
127
|
const out = [];
|
|
128
|
+
const blendMap = blends !== undefined ? new Map(blends) : undefined;
|
|
61
129
|
for (const o of iface.fragmentOutputs) {
|
|
62
130
|
const fmt = sig.colors.tryFind(o.name);
|
|
63
131
|
if (fmt === undefined) {
|
|
64
132
|
throw new Error(`prepareRenderObject: fragment output "${o.name}" has no matching signature attachment`);
|
|
65
133
|
}
|
|
66
134
|
const target = { format: fmt };
|
|
67
|
-
const blend =
|
|
135
|
+
const blend = blendMap?.get(o.name);
|
|
68
136
|
if (blend !== undefined) {
|
|
69
137
|
target.blend = {
|
|
70
138
|
color: { operation: blend.color.operation, srcFactor: blend.color.srcFactor, dstFactor: blend.color.dstFactor },
|
|
@@ -76,26 +144,26 @@ function colorTargetsFor(iface, sig, blends) {
|
|
|
76
144
|
}
|
|
77
145
|
return out;
|
|
78
146
|
}
|
|
79
|
-
function
|
|
147
|
+
function depthStencilStateForSnap(sig, snap) {
|
|
80
148
|
if (sig.depthStencil === undefined)
|
|
81
149
|
return undefined;
|
|
82
|
-
if (
|
|
150
|
+
if (snap.depthCompare === undefined && snap.depthWrite === undefined && snap.stencil === undefined)
|
|
83
151
|
return undefined;
|
|
84
152
|
const out = {
|
|
85
153
|
format: sig.depthStencil.format,
|
|
86
|
-
depthWriteEnabled:
|
|
87
|
-
depthCompare:
|
|
154
|
+
depthWriteEnabled: snap.depthWrite ?? false,
|
|
155
|
+
depthCompare: snap.depthCompare ?? "always",
|
|
88
156
|
};
|
|
89
|
-
if (
|
|
90
|
-
out.stencilFront =
|
|
91
|
-
out.stencilBack =
|
|
92
|
-
out.stencilReadMask =
|
|
93
|
-
out.stencilWriteMask =
|
|
157
|
+
if (snap.stencil !== undefined && snap.stencil.enabled) {
|
|
158
|
+
out.stencilFront = snap.stencil.front;
|
|
159
|
+
out.stencilBack = snap.stencil.back;
|
|
160
|
+
out.stencilReadMask = snap.stencil.readMask;
|
|
161
|
+
out.stencilWriteMask = snap.stencil.writeMask;
|
|
94
162
|
}
|
|
95
|
-
if (
|
|
96
|
-
out.depthBias =
|
|
97
|
-
out.depthBiasSlopeScale =
|
|
98
|
-
out.depthBiasClamp =
|
|
163
|
+
if (snap.depthBias !== undefined) {
|
|
164
|
+
out.depthBias = snap.depthBias.constant;
|
|
165
|
+
out.depthBiasSlopeScale = snap.depthBias.slopeScale;
|
|
166
|
+
out.depthBiasClamp = snap.depthBias.clamp;
|
|
99
167
|
}
|
|
100
168
|
return out;
|
|
101
169
|
}
|
|
@@ -109,9 +177,6 @@ function sampleTypeFor(type) {
|
|
|
109
177
|
return s.signed ? "sint" : "uint";
|
|
110
178
|
return "float";
|
|
111
179
|
}
|
|
112
|
-
// Storage textures don't have a sampleType in the binding-layout
|
|
113
|
-
// sense; this code path is only for sampled textures. If we see
|
|
114
|
-
// anything else default to filterable float.
|
|
115
180
|
return "float";
|
|
116
181
|
}
|
|
117
182
|
function buildGroups(device, descs) {
|
|
@@ -135,8 +200,7 @@ function buildGroups(device, descs) {
|
|
|
135
200
|
}
|
|
136
201
|
return out;
|
|
137
202
|
}
|
|
138
|
-
// Per-handle identity counter for the bind-group cache key.
|
|
139
|
-
// handles have no built-in id; we attach one via a WeakMap.
|
|
203
|
+
// Per-handle identity counter for the bind-group cache key.
|
|
140
204
|
const handleIds = new WeakMap();
|
|
141
205
|
let nextHandleId = 1;
|
|
142
206
|
function handleId(h) {
|
|
@@ -147,9 +211,38 @@ function handleId(h) {
|
|
|
147
211
|
}
|
|
148
212
|
return id;
|
|
149
213
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
214
|
+
function buildPipelineForSnap(ctx, snap) {
|
|
215
|
+
const colorTargets = colorTargetsForSnap(ctx.iface, ctx.signature, snap.blends);
|
|
216
|
+
const ds = depthStencilStateForSnap(ctx.signature, snap);
|
|
217
|
+
const multisample = ctx.signature.sampleCount > 1 || snap.alphaToCoverage
|
|
218
|
+
? {
|
|
219
|
+
count: ctx.signature.sampleCount,
|
|
220
|
+
...(snap.alphaToCoverage ? { alphaToCoverageEnabled: true } : {}),
|
|
221
|
+
}
|
|
222
|
+
: undefined;
|
|
223
|
+
const desc = {
|
|
224
|
+
...(ctx.label !== undefined ? { label: ctx.label } : {}),
|
|
225
|
+
...(ctx.effectId !== undefined ? { effectId: ctx.effectId } : {}),
|
|
226
|
+
vertexShaderSource: ctx.vsSource,
|
|
227
|
+
fragmentShaderSource: ctx.fsSource,
|
|
228
|
+
...(ctx.vsSourceMap ? { vertexSourceMap: ctx.vsSourceMap } : {}),
|
|
229
|
+
...(ctx.fsSourceMap ? { fragmentSourceMap: ctx.fsSourceMap } : {}),
|
|
230
|
+
vertexEntryPoint: ctx.vsEntry,
|
|
231
|
+
fragmentEntryPoint: ctx.fsEntry,
|
|
232
|
+
vertexBufferLayouts: ctx.vertexLayouts,
|
|
233
|
+
bindGroupLayouts: ctx.bindGroupLayouts,
|
|
234
|
+
colorTargets,
|
|
235
|
+
primitive: {
|
|
236
|
+
topology: snap.topology,
|
|
237
|
+
...(snap.cullMode !== "none" ? { cullMode: snap.cullMode } : {}),
|
|
238
|
+
frontFace: snap.frontFace,
|
|
239
|
+
...(snap.depthClamp === true ? { unclippedDepth: true } : {}),
|
|
240
|
+
},
|
|
241
|
+
...(ds !== undefined ? { depthStencil: ds } : {}),
|
|
242
|
+
...(multisample !== undefined ? { multisample } : {}),
|
|
243
|
+
};
|
|
244
|
+
return compileRenderPipeline(ctx.device, desc);
|
|
245
|
+
}
|
|
153
246
|
export class PreparedRenderObject {
|
|
154
247
|
device;
|
|
155
248
|
vertexBindings;
|
|
@@ -158,14 +251,22 @@ export class PreparedRenderObject {
|
|
|
158
251
|
indexFormat;
|
|
159
252
|
indices;
|
|
160
253
|
drawCall;
|
|
254
|
+
validity;
|
|
255
|
+
/**
|
|
256
|
+
* Most recently resolved pipeline. Set by `update(token)`. Reading
|
|
257
|
+
* this before `update` was ever called yields a sentinel object
|
|
258
|
+
* suitable only for identity comparison; the actual pipeline is
|
|
259
|
+
* resolved on the first `update`/`record` call.
|
|
260
|
+
*/
|
|
161
261
|
pipeline;
|
|
162
262
|
groups;
|
|
163
|
-
// Per-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
263
|
+
// Per-PreparedRO pipeline cache keyed by snapshot string.
|
|
264
|
+
_pipelineCache = new Map();
|
|
265
|
+
_pipelineCtx;
|
|
266
|
+
_pipelineState;
|
|
267
|
+
// Per-group bind group cache.
|
|
167
268
|
_bindGroupCache;
|
|
168
|
-
constructor(device, vertexBindings, vertexBuffers, indexBuffer, indexFormat, indices, groups, drawCall,
|
|
269
|
+
constructor(device, vertexBindings, vertexBuffers, indexBuffer, indexFormat, indices, groups, drawCall, pipelineCtx, pipelineState, validity) {
|
|
169
270
|
this.device = device;
|
|
170
271
|
this.vertexBindings = vertexBindings;
|
|
171
272
|
this.vertexBuffers = vertexBuffers;
|
|
@@ -173,10 +274,16 @@ export class PreparedRenderObject {
|
|
|
173
274
|
this.indexFormat = indexFormat;
|
|
174
275
|
this.indices = indices;
|
|
175
276
|
this.drawCall = drawCall;
|
|
176
|
-
this.
|
|
277
|
+
this.validity = validity;
|
|
177
278
|
this.groups = groups;
|
|
279
|
+
this._pipelineCtx = pipelineCtx;
|
|
280
|
+
this._pipelineState = pipelineState;
|
|
178
281
|
this._bindGroupCache = groups.map(() => ({ key: null, group: null }));
|
|
282
|
+
// Sentinel pipeline — replaced on the first `update(token)`.
|
|
283
|
+
this.pipeline = SENTINEL_PIPELINE;
|
|
179
284
|
}
|
|
285
|
+
/** Internal — exposed for tests. The PipelineState the RO is reading. */
|
|
286
|
+
get pipelineState() { return this._pipelineState; }
|
|
180
287
|
acquire() {
|
|
181
288
|
for (const r of this.vertexBuffers.values())
|
|
182
289
|
r.acquire();
|
|
@@ -195,14 +302,55 @@ export class PreparedRenderObject {
|
|
|
195
302
|
for (const e of g.entries)
|
|
196
303
|
e.resource.release();
|
|
197
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Resolve the pipeline for the current values of the
|
|
307
|
+
* pipeline-influencing avals. Updates `this.pipeline` so that the
|
|
308
|
+
* surrounding sort / record path can read it without forcing.
|
|
309
|
+
*/
|
|
310
|
+
update(token) {
|
|
311
|
+
// Pull validity into the upstream walker's dependency set so a
|
|
312
|
+
// key-set change on the reactive vertex-attribute aval propagates
|
|
313
|
+
// even when the shape happens not to influence the pipeline cache.
|
|
314
|
+
this.validity.getValue(token);
|
|
315
|
+
const snap = snapshotPipeline(this._pipelineState, token);
|
|
316
|
+
const key = pipelineKeyOf(snap);
|
|
317
|
+
let pipeline = this._pipelineCache.get(key);
|
|
318
|
+
if (pipeline === undefined) {
|
|
319
|
+
pipeline = buildPipelineForSnap(this._pipelineCtx, snap);
|
|
320
|
+
this._pipelineCache.set(key, pipeline);
|
|
321
|
+
}
|
|
322
|
+
this.pipeline = pipeline;
|
|
323
|
+
}
|
|
324
|
+
_warnedMissing = false;
|
|
198
325
|
record(pass, token) {
|
|
326
|
+
// Validity gate: when the reactive attribute set fails to cover
|
|
327
|
+
// the shader's required-input names, warn-once and skip the draw.
|
|
328
|
+
// Reading validity here keeps the dependency on the outer attr
|
|
329
|
+
// avals chained into the consumer's tracking.
|
|
330
|
+
if (!this.validity.getValue(token)) {
|
|
331
|
+
if (!this._warnedMissing) {
|
|
332
|
+
console.warn("[wombat.rendering] PreparedRenderObject.record: vertex-attribute set is missing one or more shader-required names; skipping draw.");
|
|
333
|
+
this._warnedMissing = true;
|
|
334
|
+
}
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
// Resolve current pipeline. If `update` was already called by the
|
|
338
|
+
// walker this is a no-op cache hit; otherwise we still pick the
|
|
339
|
+
// right pipeline for the token-evaluated values.
|
|
340
|
+
this.update(token);
|
|
199
341
|
pass.setPipeline(this.pipeline);
|
|
342
|
+
// Per-frame state — does NOT influence the pipeline cache key.
|
|
343
|
+
const ps = this._pipelineState;
|
|
344
|
+
if (ps.blendConstant !== undefined) {
|
|
345
|
+
const c = ps.blendConstant.getValue(token);
|
|
346
|
+
pass.setBlendConstant(c);
|
|
347
|
+
}
|
|
348
|
+
if (ps.stencil !== undefined) {
|
|
349
|
+
const ref = ps.stencil.reference.getValue(token);
|
|
350
|
+
pass.setStencilReference(ref);
|
|
351
|
+
}
|
|
200
352
|
for (let gi = 0; gi < this.groups.length; gi++) {
|
|
201
353
|
const g = this.groups[gi];
|
|
202
|
-
// Build a cache key from the resolved GPU handle identities;
|
|
203
|
-
// resources may be re-allocated by their AdaptiveResource on
|
|
204
|
-
// capacity growth or shape change, so we need to key on the
|
|
205
|
-
// CURRENT handles, not on the AdaptiveResource references.
|
|
206
354
|
let cacheKey = "";
|
|
207
355
|
const resolved = [];
|
|
208
356
|
for (const e of g.entries) {
|
|
@@ -217,10 +365,6 @@ export class PreparedRenderObject {
|
|
|
217
365
|
case "tex": {
|
|
218
366
|
const tex = e.resource.getValue(token);
|
|
219
367
|
cacheKey += `${e.binding}:t${handleId(tex)};`;
|
|
220
|
-
// We create a new view per record because views are cheap
|
|
221
|
-
// and texture identity already keys the cache. (A
|
|
222
|
-
// real-perf-tuned implementation would also cache the
|
|
223
|
-
// view per texture.)
|
|
224
368
|
resolved.push({ binding: e.binding, resource: tex.createView() });
|
|
225
369
|
break;
|
|
226
370
|
}
|
|
@@ -267,22 +411,47 @@ export class PreparedRenderObject {
|
|
|
267
411
|
export function prepareRenderObject(device, obj, effect, signature, opts = {}) {
|
|
268
412
|
const iface = effect.interface;
|
|
269
413
|
const vertexBindings = vertexBindingsFor(iface);
|
|
270
|
-
//
|
|
271
|
-
//
|
|
272
|
-
//
|
|
414
|
+
// Construction-boundary read of the outer attribute avals. We use
|
|
415
|
+
// these initial maps ONLY to determine per-binding step-mode
|
|
416
|
+
// (vertex vs instance) — that is structural and baked into the
|
|
417
|
+
// GPU pipeline's vertex-buffer layout, so it cannot be reactive
|
|
418
|
+
// without re-preparation. The buffers themselves AND the rest of
|
|
419
|
+
// the map (its key set) remain fully reactive on the live path.
|
|
420
|
+
const vertexAttributesAval = obj.vertexAttributes;
|
|
421
|
+
const instanceAttributesAval = obj.instanceAttributes
|
|
422
|
+
?? AVal.constant(emptyAttrMap());
|
|
423
|
+
const initialVertex = vertexAttributesAval.force();
|
|
424
|
+
const initialInstance = obj.instanceAttributes !== undefined
|
|
425
|
+
? obj.instanceAttributes.force()
|
|
426
|
+
: emptyAttrMap();
|
|
273
427
|
const vertexBuffers = new Map();
|
|
274
428
|
const vertexLayouts = [];
|
|
275
429
|
for (const vb of vertexBindings) {
|
|
276
|
-
const
|
|
277
|
-
const
|
|
278
|
-
|
|
279
|
-
if (av === undefined)
|
|
430
|
+
const inVertex = initialVertex.tryFind(vb.name) !== undefined;
|
|
431
|
+
const inInstance = initialInstance.tryFind(vb.name) !== undefined;
|
|
432
|
+
if (!inVertex && !inInstance) {
|
|
280
433
|
throw new Error(`prepareRenderObject: missing vertex attribute "${vb.name}"`);
|
|
281
|
-
|
|
434
|
+
}
|
|
435
|
+
const stepMode = inInstance && !inVertex ? "instance" : "vertex";
|
|
282
436
|
const stride = vb.byteSize !== undefined && vb.byteSize > 0
|
|
283
437
|
? vb.byteSize
|
|
284
438
|
: vertexFormatStride(vb.format);
|
|
285
|
-
|
|
439
|
+
// Reactive lookup: chain (outer map aval) → (inner BufferView aval)
|
|
440
|
+
// → buffer. AVal.bind preserves the dependency on the outer map
|
|
441
|
+
// so a key-set change re-runs the lookup without losing tracking.
|
|
442
|
+
// Missing-name on a frame is signalled via a sentinel that record()
|
|
443
|
+
// detects and skips the draw with a warn-once.
|
|
444
|
+
const bufAval = AVal.bind(vertexAttributesAval, vMap => {
|
|
445
|
+
const found = vMap.tryFind(vb.name);
|
|
446
|
+
if (found !== undefined)
|
|
447
|
+
return found.map(view => view.buffer);
|
|
448
|
+
return AVal.bind(instanceAttributesAval, iMap => {
|
|
449
|
+
const f2 = iMap.tryFind(vb.name);
|
|
450
|
+
if (f2 !== undefined)
|
|
451
|
+
return f2.map(view => view.buffer);
|
|
452
|
+
return AVal.constant(MISSING_BUFFER);
|
|
453
|
+
});
|
|
454
|
+
});
|
|
286
455
|
const res = prepareAdaptiveBuffer(device, bufAval, {
|
|
287
456
|
usage: BufferUsage.VERTEX,
|
|
288
457
|
...(opts.label !== undefined ? { label: `${opts.label}.${vb.name}` } : {}),
|
|
@@ -294,6 +463,17 @@ export function prepareRenderObject(device, obj, effect, signature, opts = {}) {
|
|
|
294
463
|
attributes: [{ shaderLocation: vb.slot, offset: 0, format: vb.format }],
|
|
295
464
|
};
|
|
296
465
|
}
|
|
466
|
+
// Validity aval: depends on the outer attribute avals so any key-set
|
|
467
|
+
// change re-runs the check. Used by record() to skip draws when the
|
|
468
|
+
// shader's required-input set isn't satisfied (warn-once).
|
|
469
|
+
const requiredNames = vertexBindings.map(b => b.name);
|
|
470
|
+
const validityAval = AVal.zip(vertexAttributesAval, instanceAttributesAval).map((vMap, iMap) => {
|
|
471
|
+
for (const n of requiredNames) {
|
|
472
|
+
if (vMap.tryFind(n) === undefined && iMap.tryFind(n) === undefined)
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
return true;
|
|
476
|
+
});
|
|
297
477
|
// Index buffer — `indexFormat` from BufferView wins; defaults to uint32.
|
|
298
478
|
let indexBuffer;
|
|
299
479
|
let indexFormat;
|
|
@@ -303,11 +483,13 @@ export function prepareRenderObject(device, obj, effect, signature, opts = {}) {
|
|
|
303
483
|
usage: BufferUsage.INDEX,
|
|
304
484
|
...(opts.label !== undefined ? { label: `${opts.label}.indices` } : {}),
|
|
305
485
|
});
|
|
486
|
+
// Construction-time read to discover the index format. The
|
|
487
|
+
// BufferView aval is expected to settle on a stable format —
|
|
488
|
+
// changing index format would require a fresh PreparedRO.
|
|
306
489
|
const initial = obj.indices.force();
|
|
307
490
|
indexFormat = initial.indexFormat
|
|
308
491
|
?? (initial.format === "uint16" ? "uint16" : "uint32");
|
|
309
492
|
}
|
|
310
|
-
// Per-group entry collection. Use `slot` (real shape) instead of `binding`.
|
|
311
493
|
const slotOf = (e) => e.slot;
|
|
312
494
|
const groupOf = (e) => e.group;
|
|
313
495
|
const maxGroup = Math.max(-1, ...iface.uniformBlocks.map(groupOf), ...iface.samplers.map(groupOf), ...iface.textures.map(groupOf), ...iface.storageBuffers.map(groupOf));
|
|
@@ -315,9 +497,6 @@ export function prepareRenderObject(device, obj, effect, signature, opts = {}) {
|
|
|
315
497
|
for (let g = 0; g <= maxGroup; g++)
|
|
316
498
|
perGroup.push([]);
|
|
317
499
|
for (const ub of iface.uniformBlocks) {
|
|
318
|
-
// Merge user-supplied uniforms (`obj.uniforms`) with effect-bound
|
|
319
|
-
// avals (`compiledEffect.avalBindings`). User entries win on name
|
|
320
|
-
// conflict — the rendering caller is the source of truth.
|
|
321
500
|
const merged = mergeUniformInputs(obj.uniforms, effect.avalBindings, ub);
|
|
322
501
|
const block = ubAsBlock(ub);
|
|
323
502
|
const res = prepareUniformBuffer(device, block, merged, {
|
|
@@ -354,44 +533,56 @@ export function prepareRenderObject(device, obj, effect, signature, opts = {}) {
|
|
|
354
533
|
perGroup[sb.group].push({ kind: "sbuf", binding: slotOf(sb), resource: res, access: sb.access });
|
|
355
534
|
}
|
|
356
535
|
const groups = buildGroups(device, perGroup);
|
|
357
|
-
// Pipeline
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
536
|
+
// Pipeline — set up the build context and produce the initial
|
|
537
|
+
// GPURenderPipeline. We snapshot via AdaptiveToken.top here; that's
|
|
538
|
+
// a one-time construction-boundary read, NOT inside an adaptive
|
|
539
|
+
// computation. Subsequent recompiles happen inside `update(token)`.
|
|
540
|
+
const vsStage = effect.stages.find(st => st.stage === "vertex");
|
|
541
|
+
const fsStage = effect.stages.find(st => st.stage === "fragment");
|
|
361
542
|
if (vsStage === undefined)
|
|
362
543
|
throw new Error("prepareRenderObject: CompiledEffect has no vertex stage");
|
|
363
544
|
if (fsStage === undefined)
|
|
364
545
|
throw new Error("prepareRenderObject: CompiledEffect has no fragment stage");
|
|
365
|
-
const
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
:
|
|
372
|
-
|
|
546
|
+
const pipelineCtx = {
|
|
547
|
+
device,
|
|
548
|
+
iface,
|
|
549
|
+
signature,
|
|
550
|
+
vertexLayouts,
|
|
551
|
+
bindGroupLayouts: groups.map(g => g.layout),
|
|
552
|
+
vsSource: vsStage.source,
|
|
553
|
+
fsSource: fsStage.source,
|
|
554
|
+
vsEntry: vsStage.entryName,
|
|
555
|
+
fsEntry: fsStage.entryName,
|
|
556
|
+
vsSourceMap: vsStage.sourceMap,
|
|
557
|
+
fsSourceMap: fsStage.sourceMap,
|
|
373
558
|
...(opts.label !== undefined ? { label: opts.label } : {}),
|
|
374
559
|
...(opts.effectId !== undefined ? { effectId: opts.effectId } : {}),
|
|
375
|
-
vertexShaderSource: vsStage.source,
|
|
376
|
-
fragmentShaderSource: fsStage.source,
|
|
377
|
-
...(vsStage.sourceMap ? { vertexSourceMap: vsStage.sourceMap } : {}),
|
|
378
|
-
...(fsStage.sourceMap ? { fragmentSourceMap: fsStage.sourceMap } : {}),
|
|
379
|
-
vertexEntryPoint: vsStage.entryName,
|
|
380
|
-
fragmentEntryPoint: fsStage.entryName,
|
|
381
|
-
vertexBufferLayouts: vertexLayouts,
|
|
382
|
-
bindGroupLayouts: groups.map(g => g.layout),
|
|
383
|
-
colorTargets,
|
|
384
|
-
primitive: {
|
|
385
|
-
topology: obj.pipelineState.rasterizer.topology,
|
|
386
|
-
...(obj.pipelineState.rasterizer.cullMode !== "none" ? { cullMode: obj.pipelineState.rasterizer.cullMode } : {}),
|
|
387
|
-
frontFace: obj.pipelineState.rasterizer.frontFace,
|
|
388
|
-
},
|
|
389
|
-
...(ds !== undefined ? { depthStencil: ds } : {}),
|
|
390
|
-
...(multisample !== undefined ? { multisample } : {}),
|
|
391
560
|
};
|
|
392
|
-
|
|
393
|
-
|
|
561
|
+
return new PreparedRenderObject(device, vertexBindings, vertexBuffers, indexBuffer, indexFormat, obj.indices, groups, obj.drawCall, pipelineCtx, obj.pipelineState, validityAval);
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Sentinel host-buffer returned by the per-attribute lookup aval when
|
|
565
|
+
* the named attribute is absent from a frame's outer attribute map.
|
|
566
|
+
* The PreparedRO's validity aval flips false in the same situation;
|
|
567
|
+
* record() observes the validity flip and skips the draw before any
|
|
568
|
+
* sentinel buffer is ever bound.
|
|
569
|
+
*/
|
|
570
|
+
const MISSING_BUFFER = {
|
|
571
|
+
kind: "host",
|
|
572
|
+
data: new Uint8Array(4),
|
|
573
|
+
sizeBytes: 4,
|
|
574
|
+
};
|
|
575
|
+
function emptyAttrMap() {
|
|
576
|
+
return HashMap.empty();
|
|
394
577
|
}
|
|
578
|
+
/**
|
|
579
|
+
* Sentinel pipeline placeholder. PreparedRenderObject's `pipeline`
|
|
580
|
+
* field is non-null for ergonomic typing; before the first
|
|
581
|
+
* `update(token)` it points at this sentinel which is only used as
|
|
582
|
+
* a sort-rank identity (never bound to a render pass — `record`
|
|
583
|
+
* always calls `update` first).
|
|
584
|
+
*/
|
|
585
|
+
const SENTINEL_PIPELINE = { __sentinel: "PreparedRenderObject.pipeline" };
|
|
395
586
|
// ---------------------------------------------------------------------------
|
|
396
587
|
// Uniform input merging — `obj.uniforms` wins; `avalBindings` is fallback.
|
|
397
588
|
// ---------------------------------------------------------------------------
|
|
@@ -406,8 +597,6 @@ function mergeUniformInputs(user, bindings, block) {
|
|
|
406
597
|
if (getter === undefined)
|
|
407
598
|
continue;
|
|
408
599
|
const v = getter();
|
|
409
|
-
// wombat.shader's avalBindings store either an `aval<T>` or a
|
|
410
|
-
// raw value; wrap the raw case as a constant aval.
|
|
411
600
|
if (isAval(v))
|
|
412
601
|
merged = merged.add(f.name, v);
|
|
413
602
|
else
|
|
@@ -418,12 +607,6 @@ function mergeUniformInputs(user, bindings, block) {
|
|
|
418
607
|
function isAval(v) {
|
|
419
608
|
return typeof v === "object" && v !== null && typeof v.getValue === "function";
|
|
420
609
|
}
|
|
421
|
-
/**
|
|
422
|
-
* Adapter — wombat.shader's `UniformBlockInfo` and our internal
|
|
423
|
-
* UBO packer expect the same field shape (`offset`, `size`, etc.),
|
|
424
|
-
* so this is just a structural pass-through. Keeps the call sites
|
|
425
|
-
* type-clean.
|
|
426
|
-
*/
|
|
427
610
|
function ubAsBlock(ub) {
|
|
428
611
|
return ub;
|
|
429
612
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preparedRenderObject.js","sourceRoot":"","sources":["../../src/resources/preparedRenderObject.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preparedRenderObject.js","sourceRoot":"","sources":["../../src/resources/preparedRenderObject.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,KAAK,cAAc;IAM9C;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,oBAAoB,EAAE;IAOrD,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -35,7 +35,12 @@ class LeafWalker extends NodeWalker {
|
|
|
35
35
|
this.prepared.acquire();
|
|
36
36
|
ctx.stats.prepareCount++;
|
|
37
37
|
}
|
|
38
|
-
update() {
|
|
38
|
+
update(token) {
|
|
39
|
+
// Resolve the current pipeline so the upstream sort comparator
|
|
40
|
+
// sees a stable identity for this frame's pipeline-influencing
|
|
41
|
+
// aval values.
|
|
42
|
+
this.prepared.update(token);
|
|
43
|
+
}
|
|
39
44
|
emit(out) { out.push(this.prepared); }
|
|
40
45
|
dispose() { this.prepared.release(); }
|
|
41
46
|
}
|