@aardworx/wombat.rendering 0.19.10 → 0.19.11

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.
@@ -56,6 +56,8 @@ export declare class PreparedRenderObject {
56
56
  private readonly indices;
57
57
  private readonly drawCall;
58
58
  private readonly active;
59
+ private readonly modeRules;
60
+ private readonly modeUniformReader;
59
61
  /**
60
62
  * Most recently resolved pipeline. Set by `update(token)`. Reading
61
63
  * this before `update` was ever called yields a sentinel object
@@ -68,9 +70,17 @@ export declare class PreparedRenderObject {
68
70
  private _pipelineCtx;
69
71
  private _pipelineState;
70
72
  private readonly _bindGroupCache;
71
- constructor(device: GPUDevice, vertexBindings: readonly VertexBindingInfo[], vertexBuffers: ReadonlyMap<string, AdaptiveResource<GPUBuffer>>, vertexViews: ReadonlyMap<string, BufferView>, indexBuffer: AdaptiveResource<GPUBuffer> | undefined, indexFormat: GPUIndexFormat | undefined, indices: BufferView | undefined, groups: readonly GroupDesc[], drawCall: aval<import("../core/index.js").DrawCall>, pipelineCtx: PipelineBuildContext, pipelineState: import("../core/index.js").PipelineState, active?: aval<boolean> | undefined);
73
+ constructor(device: GPUDevice, vertexBindings: readonly VertexBindingInfo[], vertexBuffers: ReadonlyMap<string, AdaptiveResource<GPUBuffer>>, vertexViews: ReadonlyMap<string, BufferView>, indexBuffer: AdaptiveResource<GPUBuffer> | undefined, indexFormat: GPUIndexFormat | undefined, indices: BufferView | undefined, groups: readonly GroupDesc[], drawCall: aval<import("../core/index.js").DrawCall>, pipelineCtx: PipelineBuildContext, pipelineState: import("../core/index.js").PipelineState, active?: aval<boolean> | undefined, modeRules?: import("../core/renderObject.js").RenderObject["modeRules"], modeUniformReader?: ((name: string, token: AdaptiveToken) => unknown) | undefined);
72
74
  /** Internal — exposed for tests. The PipelineState the RO is reading. */
73
75
  get pipelineState(): import("../core/index.js").PipelineState;
76
+ /**
77
+ * Override pipeline-axis values with CPU-evaluated derived-mode rules.
78
+ * Each rule reads per-RO uniforms + the SG-declared default; evaluating
79
+ * under `token` registers the dependency so a uniform/declared change
80
+ * re-keys the pipeline (recompile via the snapshot cache). The heap path
81
+ * does this on a GPU partition kernel — this is the legacy per-RO answer.
82
+ */
83
+ private applyModeRules;
74
84
  acquire(): void;
75
85
  release(): void;
76
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"preparedRenderObject.d.ts","sourceRoot":"","sources":["../../src/resources/preparedRenderObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preparedRenderObject.d.ts","sourceRoot":"","sources":["../../src/resources/preparedRenderObject.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { HashMap, cval, AVal, } from "@aardworx/wombat.adaptive";
16
16
  import { isDerivedRule } from "../runtime/derivedUniforms/rule.js";
17
17
  import { STANDARD_DERIVED_RULES, STANDARD_TRAFO_LEAVES } from "../runtime/derivedUniforms/recipes.js";
18
18
  import { interpretExpr } from "../runtime/derivedUniforms/cpuEval.js";
19
+ import { evaluateModeRule } from "../runtime/derivedModes/cpuEval.js";
19
20
  import { prepareAdaptiveBuffer } from "./adaptiveBuffer.js";
20
21
  import { prepareAdaptiveTexture } from "./adaptiveTexture.js";
21
22
  import { prepareAdaptiveSampler } from "./adaptiveSampler.js";
@@ -228,6 +229,8 @@ export class PreparedRenderObject {
228
229
  indices;
229
230
  drawCall;
230
231
  active;
232
+ modeRules;
233
+ modeUniformReader;
231
234
  /**
232
235
  * Most recently resolved pipeline. Set by `update(token)`. Reading
233
236
  * this before `update` was ever called yields a sentinel object
@@ -242,7 +245,7 @@ export class PreparedRenderObject {
242
245
  _pipelineState;
243
246
  // Per-group bind group cache.
244
247
  _bindGroupCache;
245
- constructor(device, vertexBindings, vertexBuffers, vertexViews, indexBuffer, indexFormat, indices, groups, drawCall, pipelineCtx, pipelineState, active = undefined) {
248
+ constructor(device, vertexBindings, vertexBuffers, vertexViews, indexBuffer, indexFormat, indices, groups, drawCall, pipelineCtx, pipelineState, active = undefined, modeRules = undefined, modeUniformReader = undefined) {
246
249
  this.device = device;
247
250
  this.vertexBindings = vertexBindings;
248
251
  this.vertexBuffers = vertexBuffers;
@@ -252,6 +255,8 @@ export class PreparedRenderObject {
252
255
  this.indices = indices;
253
256
  this.drawCall = drawCall;
254
257
  this.active = active;
258
+ this.modeRules = modeRules;
259
+ this.modeUniformReader = modeUniformReader;
255
260
  this.groups = groups;
256
261
  this._pipelineCtx = pipelineCtx;
257
262
  this._pipelineState = pipelineState;
@@ -261,6 +266,34 @@ export class PreparedRenderObject {
261
266
  }
262
267
  /** Internal — exposed for tests. The PipelineState the RO is reading. */
263
268
  get pipelineState() { return this._pipelineState; }
269
+ /**
270
+ * Override pipeline-axis values with CPU-evaluated derived-mode rules.
271
+ * Each rule reads per-RO uniforms + the SG-declared default; evaluating
272
+ * under `token` registers the dependency so a uniform/declared change
273
+ * re-keys the pipeline (recompile via the snapshot cache). The heap path
274
+ * does this on a GPU partition kernel — this is the legacy per-RO answer.
275
+ */
276
+ applyModeRules(snap, token) {
277
+ const mr = this.modeRules;
278
+ const ru = this.modeUniformReader;
279
+ if (mr === undefined || ru === undefined)
280
+ return snap;
281
+ const read = (name) => ru(name, token);
282
+ const ov = {};
283
+ if (mr.cull !== undefined)
284
+ ov.cullMode = evaluateModeRule(mr.cull, read, token);
285
+ if (mr.frontFace !== undefined)
286
+ ov.frontFace = evaluateModeRule(mr.frontFace, read, token);
287
+ if (mr.topology !== undefined)
288
+ ov.topology = evaluateModeRule(mr.topology, read, token);
289
+ if (mr.depthWrite !== undefined)
290
+ ov.depthWrite = evaluateModeRule(mr.depthWrite, read, token);
291
+ if (mr.depthCompare !== undefined)
292
+ ov.depthCompare = evaluateModeRule(mr.depthCompare, read, token);
293
+ if (mr.alphaToCoverage !== undefined)
294
+ ov.alphaToCoverage = evaluateModeRule(mr.alphaToCoverage, read, token);
295
+ return { ...snap, ...ov };
296
+ }
264
297
  acquire() {
265
298
  for (const r of this.vertexBuffers.values())
266
299
  r.acquire();
@@ -285,7 +318,7 @@ export class PreparedRenderObject {
285
318
  * surrounding sort / record path can read it without forcing.
286
319
  */
287
320
  update(token) {
288
- const snap = snapshotPipeline(this._pipelineState, token);
321
+ const snap = this.applyModeRules(snapshotPipeline(this._pipelineState, token), token);
289
322
  const key = pipelineKeyOf(snap);
290
323
  let pipeline = this._pipelineCache.get(key);
291
324
  if (pipeline === undefined) {
@@ -570,7 +603,22 @@ export function prepareRenderObject(device, obj, effect, signature, opts = {}) {
570
603
  ...(opts.label !== undefined ? { label: opts.label } : {}),
571
604
  ...(opts.effectId !== undefined ? { effectId: opts.effectId } : {}),
572
605
  };
573
- return new PreparedRenderObject(device, vertexBindings, vertexBuffers, vertexViews, indexBuffer, indexFormat, obj.indices, groups, obj.drawCall, pipelineCtx, obj.pipelineState, obj.active);
606
+ // Derived-mode rules (cull/frontFace/… as a function of per-RO uniforms)
607
+ // are evaluated CPU-side in the legacy path. Build a uniform reader over
608
+ // the RO's provider (resolving nested derived-uniform rules too).
609
+ let modeUniformReader;
610
+ if (obj.modeRules !== undefined) {
611
+ const uniProv = asUniformProvider(obj.uniforms);
612
+ modeUniformReader = (name, token) => {
613
+ const v = uniProv.tryGet(name);
614
+ if (v === undefined)
615
+ return undefined;
616
+ if (isDerivedRule(v))
617
+ return interpretExpr(v.ir, (n) => readLeaf(n, uniProv, effect.avalBindings, token));
618
+ return v.getValue(token);
619
+ };
620
+ }
621
+ return new PreparedRenderObject(device, vertexBindings, vertexBuffers, vertexViews, indexBuffer, indexFormat, obj.indices, groups, obj.drawCall, pipelineCtx, obj.pipelineState, obj.active, obj.modeRules, modeUniformReader);
574
622
  }
575
623
  /**
576
624
  * Sentinel pipeline placeholder. PreparedRenderObject's `pipeline`
@@ -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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"}
@@ -0,0 +1,21 @@
1
+ import type { AdaptiveToken } from "@aardworx/wombat.adaptive";
2
+ import type { DerivedModeRule, ModeAxis } from "./rule.js";
3
+ /** u32 index → mode value, per axis. `blend` has no canonical table —
4
+ * blend rules return object literals directly (see resolveAxisValue). */
5
+ export declare const AXIS_ENUM_TABLE: {
6
+ readonly [A in ModeAxis]: ReadonlyArray<unknown>;
7
+ };
8
+ /**
9
+ * Map a rule's resolved output to its axis-shape value:
10
+ * - object → already the full axis value (e.g. a blend AttachmentBlend).
11
+ * - number → enum-table lookup for enum axes; pass-through otherwise.
12
+ */
13
+ export declare function resolveAxisValue<A extends ModeAxis>(rule: DerivedModeRule<A>, value: unknown): unknown;
14
+ /**
15
+ * Resolve a rule's `declared` SG-context value to its u32 index:
16
+ * - omitted → 0 (axis canonical zero).
17
+ * - number → passed through.
18
+ * - aval / string / boolean → looked up in the canonical enum table.
19
+ */
20
+ export declare function declaredToU32<A extends ModeAxis>(rule: DerivedModeRule<A>, tok: AdaptiveToken): number;
21
+ //# sourceMappingURL=axisEnum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisEnum.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedModes/axisEnum.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAQ,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3D;0EAC0E;AAC1E,eAAO,MAAM,eAAe,EAAE;IAAE,QAAQ,EAAE,CAAC,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC;CAQ/E,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAWtG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAgBtG"}
@@ -0,0 +1,64 @@
1
+ // Canonical per-axis enum tables + value mapping for derived modes.
2
+ //
3
+ // Used by the legacy CPU-eval path (derivedModes/cpuEval). heapScene's
4
+ // GPU-routing path keeps a parallel inline copy of this table + helpers
5
+ // (heapScene.ts ~AXIS_ENUM_TABLE / resolveAxisValue / resolveDeclaredU32);
6
+ // they must stay in sync — fold both onto this module when convenient.
7
+ // The index↔value mapping is the WebGPU enum order; a rule body returns a
8
+ // u32 index and the renderer maps it to the concrete mode value here.
9
+ /** u32 index → mode value, per axis. `blend` has no canonical table —
10
+ * blend rules return object literals directly (see resolveAxisValue). */
11
+ export const AXIS_ENUM_TABLE = {
12
+ cull: ["none", "front", "back"],
13
+ frontFace: ["ccw", "cw"],
14
+ topology: ["point-list", "line-list", "line-strip", "triangle-list", "triangle-strip"],
15
+ depthCompare: ["never", "less", "equal", "less-equal", "greater", "not-equal", "greater-equal", "always"],
16
+ depthWrite: [false, true],
17
+ alphaToCoverage: [false, true],
18
+ blend: [],
19
+ };
20
+ /**
21
+ * Map a rule's resolved output to its axis-shape value:
22
+ * - object → already the full axis value (e.g. a blend AttachmentBlend).
23
+ * - number → enum-table lookup for enum axes; pass-through otherwise.
24
+ */
25
+ export function resolveAxisValue(rule, value) {
26
+ if (typeof value === "object" && value !== null)
27
+ return value;
28
+ if (typeof value === "number") {
29
+ const table = AXIS_ENUM_TABLE[rule.axis];
30
+ if (table.length > 0) {
31
+ const v = table[value];
32
+ if (v !== undefined)
33
+ return v;
34
+ }
35
+ return value;
36
+ }
37
+ return value;
38
+ }
39
+ /**
40
+ * Resolve a rule's `declared` SG-context value to its u32 index:
41
+ * - omitted → 0 (axis canonical zero).
42
+ * - number → passed through.
43
+ * - aval / string / boolean → looked up in the canonical enum table.
44
+ */
45
+ export function declaredToU32(rule, tok) {
46
+ const d = rule.declared;
47
+ if (d === undefined)
48
+ return 0;
49
+ const v = (typeof d === "object" && d !== null && "getValue" in d)
50
+ ? d.getValue(tok)
51
+ : d;
52
+ if (typeof v === "number")
53
+ return v >>> 0;
54
+ const table = AXIS_ENUM_TABLE[rule.axis];
55
+ if (table.length === 0) {
56
+ throw new Error(`derivedModes: axis '${rule.axis}' has no canonical enum table; pass \`declared\` as a u32 index or omit it`);
57
+ }
58
+ const i = table.indexOf(v);
59
+ if (i < 0) {
60
+ throw new Error(`derivedModes: declared value '${String(v)}' for axis '${rule.axis}' not in canonical enum table ${JSON.stringify(table)}`);
61
+ }
62
+ return i;
63
+ }
64
+ //# sourceMappingURL=axisEnum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisEnum.js","sourceRoot":"","sources":["../../../src/runtime/derivedModes/axisEnum.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,uEAAuE;AACvE,0EAA0E;AAC1E,sEAAsE;AAKtE;0EAC0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAyD;IACnF,IAAI,EAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAC1C,SAAS,EAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9B,QAAQ,EAAS,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC7F,YAAY,EAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,CAAC;IAC5G,UAAU,EAAO,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9B,eAAe,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;IAC9B,KAAK,EAAY,EAAE;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAqB,IAAwB,EAAE,KAAc;IAC3F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAqB,IAAwB,EAAE,GAAkB;IAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACxB,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,UAAU,IAAK,CAAY,CAAC;QAC5E,CAAC,CAAE,CAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC;QACpC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,IAAI,4EAA4E,CAAC,CAAC;IAChI,CAAC;IACD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,iCAAiC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9I,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { AdaptiveToken } from "@aardworx/wombat.adaptive";
2
+ import type { DerivedModeRule, ModeAxis, ModeValue } from "./rule.js";
3
+ /**
4
+ * Evaluate a derived-mode rule to its concrete axis value for one RO.
5
+ * `readUniform(name)` returns the RO's current value for a `u.<name>` leaf
6
+ * (Trafo3d / M44f / number / …); reading it under `token` registers the
7
+ * dependency so the pipeline re-keys when it changes. Returns the mapped
8
+ * mode value (e.g. "back", or `true` for depthWrite).
9
+ */
10
+ export declare function evaluateModeRule<A extends ModeAxis>(rule: DerivedModeRule<A>, readUniform: (name: string) => unknown, token: AdaptiveToken): ModeValue<A>;
11
+ //# sourceMappingURL=cpuEval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpuEval.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedModes/cpuEval.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAYtE;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EACjD,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACtC,KAAK,EAAE,aAAa,GACnB,SAAS,CAAC,CAAC,CAAC,CA+Dd"}
@@ -0,0 +1,98 @@
1
+ // CPU evaluation of a derived-MODE rule for the legacy per-RO path.
2
+ //
3
+ // A `derivedMode(...)` rule is a RuleExpr whose body computes a pipeline-axis
4
+ // value (cull / frontFace / …) from per-RO uniforms (e.g. determinant of the
5
+ // model matrix) and the SG-declared default. The heap path lowers this to a
6
+ // GPU partition kernel; the legacy per-RO path has no kernel, so we evaluate
7
+ // the rule body on the CPU here — the "v1 evaluates rules CPU-side" design in
8
+ // core/renderObject.ts.
9
+ //
10
+ // Reuses the matrix-aware expression interpreter (derivedUniforms/cpuEval) and
11
+ // adds a small Stmt walker (locals + control flow) plus user-function `Call`
12
+ // resolution against the rule's own Module (helpers like `flipCull` are NOT
13
+ // inlined — they're separate Function items in template.values).
14
+ import { interpretExpr } from "../derivedUniforms/cpuEval.js";
15
+ import { declaredToU32, resolveAxisValue } from "./axisEnum.js";
16
+ const NO_RETURN = Symbol("no-return");
17
+ function truthy(v) {
18
+ return typeof v === "boolean" ? v : typeof v === "number" ? v !== 0 : true;
19
+ }
20
+ /**
21
+ * Evaluate a derived-mode rule to its concrete axis value for one RO.
22
+ * `readUniform(name)` returns the RO's current value for a `u.<name>` leaf
23
+ * (Trafo3d / M44f / number / …); reading it under `token` registers the
24
+ * dependency so the pipeline re-keys when it changes. Returns the mapped
25
+ * mode value (e.g. "back", or `true` for depthWrite).
26
+ */
27
+ export function evaluateModeRule(rule, readUniform, token) {
28
+ // Collect helper functions + the entry body from the rule's Module.
29
+ const fns = new Map();
30
+ let body;
31
+ for (const v of rule.expr.template.values) {
32
+ if (v.kind === "Function")
33
+ fns.set(v.signature.name, { params: v.signature.parameters.map((p) => p.name), body: v.body });
34
+ else if (v.kind === "Entry")
35
+ body = v.entry.body;
36
+ }
37
+ if (body === undefined) {
38
+ throw new Error(`derivedModes: rule for axis '${rule.axis}' has no Entry in its template`);
39
+ }
40
+ const declaredU32 = declaredToU32(rule, token);
41
+ const readLeaf = (name) => (name === "declared" ? declaredU32 : readUniform(name));
42
+ // Mutually-recursive: an expr `Call` runs a function body; a function body
43
+ // evaluates exprs via interpretExpr with `callFn` wired back here.
44
+ const callFn = (name, args) => {
45
+ const fn = fns.get(name);
46
+ if (fn === undefined)
47
+ throw new Error(`derivedModes: rule calls unknown function '${name}'`);
48
+ const locals = new Map();
49
+ fn.params.forEach((p, i) => { if (args[i] !== undefined)
50
+ locals.set(p, args[i]); });
51
+ return evalBody(fn.body, locals);
52
+ };
53
+ const evalExpr = (e, locals) => interpretExpr(e, readLeaf, { locals, callFn });
54
+ const run = (s, locals) => {
55
+ switch (s.kind) {
56
+ case "Sequential":
57
+ case "Isolated": {
58
+ for (const c of s.body) {
59
+ const r = run(c, locals);
60
+ if (r !== NO_RETURN)
61
+ return r;
62
+ }
63
+ return NO_RETURN;
64
+ }
65
+ case "Declare": {
66
+ if (s.init !== undefined && s.init.kind === "Expr")
67
+ locals.set(s.var.name, evalExpr(s.init.value, locals));
68
+ return NO_RETURN;
69
+ }
70
+ case "Write": {
71
+ if (s.target.kind === "LVar")
72
+ locals.set(s.target.var.name, evalExpr(s.value, locals));
73
+ return NO_RETURN;
74
+ }
75
+ case "If": {
76
+ if (truthy(evalExpr(s.cond, locals)))
77
+ return run(s.then, locals);
78
+ return s.else !== undefined ? run(s.else, locals) : NO_RETURN;
79
+ }
80
+ case "ReturnValue": return evalExpr(s.value, locals);
81
+ case "Expression":
82
+ case "Nop":
83
+ case "Return":
84
+ return NO_RETURN;
85
+ default:
86
+ throw new Error(`derivedModes: unsupported statement '${s.kind}' in rule body`);
87
+ }
88
+ };
89
+ const evalBody = (b, locals) => {
90
+ const r = run(b, locals);
91
+ if (r === NO_RETURN)
92
+ throw new Error(`derivedModes: rule body for axis '${rule.axis}' produced no return value`);
93
+ return r;
94
+ };
95
+ const raw = evalBody(body, new Map());
96
+ return resolveAxisValue(rule, raw);
97
+ }
98
+ //# sourceMappingURL=cpuEval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpuEval.js","sourceRoot":"","sources":["../../../src/runtime/derivedModes/cpuEval.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,16 @@ export type LeafReader = (name: string) => unknown;
10
10
  * `readLeaf`. Returns a host double value (`M44d` / `V3d` / number / …) that
11
11
  * `writeField` narrows to f32 when packing the UBO.
12
12
  */
13
- export declare function interpretExpr(ir: Expr, readLeaf: LeafReader): EvalValue;
13
+ /**
14
+ * Optional evaluation context. `locals` resolves `Var` nodes (function
15
+ * params / `let` bindings); `callFn` resolves a user-function `Call` to a
16
+ * value (its name + already-evaluated args). Derived UNIFORMS pass neither
17
+ * (their rules are leaf-and-op only); derived MODES pass both (rule bodies
18
+ * have locals and call helpers like `flipCull`). See derivedModes/cpuEval.
19
+ */
20
+ export interface EvalOpts {
21
+ readonly locals?: ReadonlyMap<string, EvalValue>;
22
+ readonly callFn?: (name: string, args: EvalValue[]) => EvalValue;
23
+ }
24
+ export declare function interpretExpr(ir: Expr, readLeaf: LeafReader, opts?: EvalOpts): EvalValue;
14
25
  //# sourceMappingURL=cpuEval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cpuEval.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/cpuEval.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExE,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhF;mDACmD;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AA8KnD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,GAAG,SAAS,CAgDvE"}
1
+ {"version":3,"file":"cpuEval.d.ts","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/cpuEval.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAQ,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExE,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhF;mDACmD;AACnD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AA8KnD;;;;GAIG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,SAAS,CAAC;CAClE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,GAAE,QAAa,GAAG,SAAS,CA0D5F"}
@@ -226,12 +226,7 @@ function intrinsic(name, a) {
226
226
  default: throw new Error("derived eval: unsupported intrinsic '" + name + "'");
227
227
  }
228
228
  }
229
- /**
230
- * Interpret a derived-uniform rule IR, reading `u.<name>` leaves via
231
- * `readLeaf`. Returns a host double value (`M44d` / `V3d` / number / …) that
232
- * `writeField` narrows to f32 when packing the UBO.
233
- */
234
- export function interpretExpr(ir, readLeaf) {
229
+ export function interpretExpr(ir, readLeaf, opts = {}) {
235
230
  const ev = (e) => {
236
231
  switch (e.kind) {
237
232
  case "Const": {
@@ -243,13 +238,24 @@ export function interpretExpr(ir, readLeaf) {
243
238
  throw new Error("derived eval: null const");
244
239
  }
245
240
  case "ReadInput": {
246
- if (e.scope !== "Uniform")
247
- throw new Error("derived eval: non-uniform leaf scope " + e.scope);
241
+ // Scope-agnostic: the readLeaf decides what a name resolves to
242
+ // (uniforms for derived uniforms; uniforms + `declared` for modes).
248
243
  const raw = readLeaf(e.name);
249
244
  if (raw === undefined)
250
- throw new Error("derived eval: missing uniform leaf '" + e.name + "'");
245
+ throw new Error("derived eval: missing leaf '" + e.name + "'");
251
246
  return coerce(raw, e.type);
252
247
  }
248
+ case "Var": {
249
+ const v = opts.locals?.get(e.var.name);
250
+ if (v === undefined)
251
+ throw new Error("derived eval: unbound local '" + e.var.name + "'");
252
+ return v;
253
+ }
254
+ case "Call": {
255
+ if (opts.callFn === undefined)
256
+ throw new Error("derived eval: Call '" + e.fn.signature.name + "' but no callFn provided");
257
+ return opts.callFn(e.fn.signature.name, e.args.map(ev));
258
+ }
253
259
  case "Neg": return negate(ev(e.value));
254
260
  case "Not": return !ev(e.value);
255
261
  case "Add": return elementwise(ev(e.lhs), ev(e.rhs), (x, y) => x + y);
@@ -1 +1 @@
1
- {"version":3,"file":"cpuEval.js","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/cpuEval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpuEval.js","sourceRoot":"","sources":["../../../src/runtime/derivedUniforms/cpuEval.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.19.10",
3
+ "version": "0.19.11",
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",
@@ -35,6 +35,7 @@ import type { Type } from "@aardworx/wombat.shader/ir";
35
35
  import { isDerivedRule } from "../runtime/derivedUniforms/rule.js";
36
36
  import { STANDARD_DERIVED_RULES, STANDARD_TRAFO_LEAVES } from "../runtime/derivedUniforms/recipes.js";
37
37
  import { interpretExpr } from "../runtime/derivedUniforms/cpuEval.js";
38
+ import { evaluateModeRule } from "../runtime/derivedModes/cpuEval.js";
38
39
  import { prepareAdaptiveBuffer } from "./adaptiveBuffer.js";
39
40
  import { prepareAdaptiveTexture } from "./adaptiveTexture.js";
40
41
  import { prepareAdaptiveSampler } from "./adaptiveSampler.js";
@@ -369,6 +370,8 @@ export class PreparedRenderObject {
369
370
  pipelineCtx: PipelineBuildContext,
370
371
  pipelineState: import("../core/index.js").PipelineState,
371
372
  private readonly active: aval<boolean> | undefined = undefined,
373
+ private readonly modeRules: import("../core/renderObject.js").RenderObject["modeRules"] = undefined,
374
+ private readonly modeUniformReader: ((name: string, token: AdaptiveToken) => unknown) | undefined = undefined,
372
375
  ) {
373
376
  this.groups = groups;
374
377
  this._pipelineCtx = pipelineCtx;
@@ -381,6 +384,28 @@ export class PreparedRenderObject {
381
384
  /** Internal — exposed for tests. The PipelineState the RO is reading. */
382
385
  get pipelineState(): import("../core/index.js").PipelineState { return this._pipelineState; }
383
386
 
387
+ /**
388
+ * Override pipeline-axis values with CPU-evaluated derived-mode rules.
389
+ * Each rule reads per-RO uniforms + the SG-declared default; evaluating
390
+ * under `token` registers the dependency so a uniform/declared change
391
+ * re-keys the pipeline (recompile via the snapshot cache). The heap path
392
+ * does this on a GPU partition kernel — this is the legacy per-RO answer.
393
+ */
394
+ private applyModeRules(snap: PipelineSnap, token: AdaptiveToken): PipelineSnap {
395
+ const mr = this.modeRules;
396
+ const ru = this.modeUniformReader;
397
+ if (mr === undefined || ru === undefined) return snap;
398
+ const read = (name: string): unknown => ru(name, token);
399
+ const ov: Record<string, unknown> = {};
400
+ if (mr.cull !== undefined) ov.cullMode = evaluateModeRule(mr.cull, read, token);
401
+ if (mr.frontFace !== undefined) ov.frontFace = evaluateModeRule(mr.frontFace, read, token);
402
+ if (mr.topology !== undefined) ov.topology = evaluateModeRule(mr.topology, read, token);
403
+ if (mr.depthWrite !== undefined) ov.depthWrite = evaluateModeRule(mr.depthWrite, read, token);
404
+ if (mr.depthCompare !== undefined) ov.depthCompare = evaluateModeRule(mr.depthCompare, read, token);
405
+ if (mr.alphaToCoverage !== undefined) ov.alphaToCoverage = evaluateModeRule(mr.alphaToCoverage, read, token);
406
+ return { ...snap, ...ov };
407
+ }
408
+
384
409
  acquire(): void {
385
410
  for (const r of this.vertexBuffers.values()) r.acquire();
386
411
  if (this.indexBuffer !== undefined) this.indexBuffer.acquire();
@@ -399,7 +424,7 @@ export class PreparedRenderObject {
399
424
  * surrounding sort / record path can read it without forcing.
400
425
  */
401
426
  update(token: AdaptiveToken): void {
402
- const snap = snapshotPipeline(this._pipelineState, token);
427
+ const snap = this.applyModeRules(snapshotPipeline(this._pipelineState, token), token);
403
428
  const key = pipelineKeyOf(snap);
404
429
  let pipeline = this._pipelineCache.get(key);
405
430
  if (pipeline === undefined) {
@@ -751,6 +776,20 @@ export function prepareRenderObject(
751
776
  ...(opts.effectId !== undefined ? { effectId: opts.effectId } : {}),
752
777
  };
753
778
 
779
+ // Derived-mode rules (cull/frontFace/… as a function of per-RO uniforms)
780
+ // are evaluated CPU-side in the legacy path. Build a uniform reader over
781
+ // the RO's provider (resolving nested derived-uniform rules too).
782
+ let modeUniformReader: ((name: string, token: AdaptiveToken) => unknown) | undefined;
783
+ if (obj.modeRules !== undefined) {
784
+ const uniProv = asUniformProvider(obj.uniforms);
785
+ modeUniformReader = (name: string, token: AdaptiveToken): unknown => {
786
+ const v = uniProv.tryGet(name);
787
+ if (v === undefined) return undefined;
788
+ if (isDerivedRule(v)) return interpretExpr(v.ir, (n) => readLeaf(n, uniProv, effect.avalBindings, token));
789
+ return (v as aval<unknown>).getValue(token);
790
+ };
791
+ }
792
+
754
793
  return new PreparedRenderObject(
755
794
  device,
756
795
  vertexBindings, vertexBuffers, vertexViews,
@@ -760,6 +799,8 @@ export function prepareRenderObject(
760
799
  pipelineCtx,
761
800
  obj.pipelineState,
762
801
  obj.active,
802
+ obj.modeRules,
803
+ modeUniformReader,
763
804
  );
764
805
  }
765
806
 
@@ -0,0 +1,65 @@
1
+ // Canonical per-axis enum tables + value mapping for derived modes.
2
+ //
3
+ // Used by the legacy CPU-eval path (derivedModes/cpuEval). heapScene's
4
+ // GPU-routing path keeps a parallel inline copy of this table + helpers
5
+ // (heapScene.ts ~AXIS_ENUM_TABLE / resolveAxisValue / resolveDeclaredU32);
6
+ // they must stay in sync — fold both onto this module when convenient.
7
+ // The index↔value mapping is the WebGPU enum order; a rule body returns a
8
+ // u32 index and the renderer maps it to the concrete mode value here.
9
+
10
+ import type { aval, AdaptiveToken } from "@aardworx/wombat.adaptive";
11
+ import type { DerivedModeRule, ModeAxis } from "./rule.js";
12
+
13
+ /** u32 index → mode value, per axis. `blend` has no canonical table —
14
+ * blend rules return object literals directly (see resolveAxisValue). */
15
+ export const AXIS_ENUM_TABLE: { readonly [A in ModeAxis]: ReadonlyArray<unknown> } = {
16
+ cull: ["none", "front", "back"],
17
+ frontFace: ["ccw", "cw"],
18
+ topology: ["point-list", "line-list", "line-strip", "triangle-list", "triangle-strip"],
19
+ depthCompare: ["never", "less", "equal", "less-equal", "greater", "not-equal", "greater-equal", "always"],
20
+ depthWrite: [false, true],
21
+ alphaToCoverage: [false, true],
22
+ blend: [],
23
+ };
24
+
25
+ /**
26
+ * Map a rule's resolved output to its axis-shape value:
27
+ * - object → already the full axis value (e.g. a blend AttachmentBlend).
28
+ * - number → enum-table lookup for enum axes; pass-through otherwise.
29
+ */
30
+ export function resolveAxisValue<A extends ModeAxis>(rule: DerivedModeRule<A>, value: unknown): unknown {
31
+ if (typeof value === "object" && value !== null) return value;
32
+ if (typeof value === "number") {
33
+ const table = AXIS_ENUM_TABLE[rule.axis];
34
+ if (table.length > 0) {
35
+ const v = table[value];
36
+ if (v !== undefined) return v;
37
+ }
38
+ return value;
39
+ }
40
+ return value;
41
+ }
42
+
43
+ /**
44
+ * Resolve a rule's `declared` SG-context value to its u32 index:
45
+ * - omitted → 0 (axis canonical zero).
46
+ * - number → passed through.
47
+ * - aval / string / boolean → looked up in the canonical enum table.
48
+ */
49
+ export function declaredToU32<A extends ModeAxis>(rule: DerivedModeRule<A>, tok: AdaptiveToken): number {
50
+ const d = rule.declared;
51
+ if (d === undefined) return 0;
52
+ const v = (typeof d === "object" && d !== null && "getValue" in (d as object))
53
+ ? (d as aval<unknown>).getValue(tok)
54
+ : d;
55
+ if (typeof v === "number") return v >>> 0;
56
+ const table = AXIS_ENUM_TABLE[rule.axis];
57
+ if (table.length === 0) {
58
+ throw new Error(`derivedModes: axis '${rule.axis}' has no canonical enum table; pass \`declared\` as a u32 index or omit it`);
59
+ }
60
+ const i = table.indexOf(v);
61
+ if (i < 0) {
62
+ throw new Error(`derivedModes: declared value '${String(v)}' for axis '${rule.axis}' not in canonical enum table ${JSON.stringify(table)}`);
63
+ }
64
+ return i;
65
+ }
@@ -0,0 +1,104 @@
1
+ // CPU evaluation of a derived-MODE rule for the legacy per-RO path.
2
+ //
3
+ // A `derivedMode(...)` rule is a RuleExpr whose body computes a pipeline-axis
4
+ // value (cull / frontFace / …) from per-RO uniforms (e.g. determinant of the
5
+ // model matrix) and the SG-declared default. The heap path lowers this to a
6
+ // GPU partition kernel; the legacy per-RO path has no kernel, so we evaluate
7
+ // the rule body on the CPU here — the "v1 evaluates rules CPU-side" design in
8
+ // core/renderObject.ts.
9
+ //
10
+ // Reuses the matrix-aware expression interpreter (derivedUniforms/cpuEval) and
11
+ // adds a small Stmt walker (locals + control flow) plus user-function `Call`
12
+ // resolution against the rule's own Module (helpers like `flipCull` are NOT
13
+ // inlined — they're separate Function items in template.values).
14
+
15
+ import type { Expr, Stmt, ValueDef } from "@aardworx/wombat.shader/ir";
16
+ import type { AdaptiveToken } from "@aardworx/wombat.adaptive";
17
+ import { interpretExpr, type EvalValue } from "../derivedUniforms/cpuEval.js";
18
+ import type { DerivedModeRule, ModeAxis, ModeValue } from "./rule.js";
19
+ import { declaredToU32, resolveAxisValue } from "./axisEnum.js";
20
+
21
+ const NO_RETURN = Symbol("no-return");
22
+ type RunResult = EvalValue | typeof NO_RETURN;
23
+
24
+ interface FnDef { readonly params: readonly string[]; readonly body: Stmt; }
25
+
26
+ function truthy(v: EvalValue): boolean {
27
+ return typeof v === "boolean" ? v : typeof v === "number" ? v !== 0 : true;
28
+ }
29
+
30
+ /**
31
+ * Evaluate a derived-mode rule to its concrete axis value for one RO.
32
+ * `readUniform(name)` returns the RO's current value for a `u.<name>` leaf
33
+ * (Trafo3d / M44f / number / …); reading it under `token` registers the
34
+ * dependency so the pipeline re-keys when it changes. Returns the mapped
35
+ * mode value (e.g. "back", or `true` for depthWrite).
36
+ */
37
+ export function evaluateModeRule<A extends ModeAxis>(
38
+ rule: DerivedModeRule<A>,
39
+ readUniform: (name: string) => unknown,
40
+ token: AdaptiveToken,
41
+ ): ModeValue<A> {
42
+ // Collect helper functions + the entry body from the rule's Module.
43
+ const fns = new Map<string, FnDef>();
44
+ let body: Stmt | undefined;
45
+ for (const v of rule.expr.template.values as readonly ValueDef[]) {
46
+ if (v.kind === "Function") fns.set(v.signature.name, { params: v.signature.parameters.map((p) => p.name), body: v.body });
47
+ else if (v.kind === "Entry") body = v.entry.body;
48
+ }
49
+ if (body === undefined) {
50
+ throw new Error(`derivedModes: rule for axis '${rule.axis}' has no Entry in its template`);
51
+ }
52
+
53
+ const declaredU32 = declaredToU32(rule, token);
54
+ const readLeaf = (name: string): unknown => (name === "declared" ? declaredU32 : readUniform(name));
55
+
56
+ // Mutually-recursive: an expr `Call` runs a function body; a function body
57
+ // evaluates exprs via interpretExpr with `callFn` wired back here.
58
+ const callFn = (name: string, args: EvalValue[]): EvalValue => {
59
+ const fn = fns.get(name);
60
+ if (fn === undefined) throw new Error(`derivedModes: rule calls unknown function '${name}'`);
61
+ const locals = new Map<string, EvalValue>();
62
+ fn.params.forEach((p, i) => { if (args[i] !== undefined) locals.set(p, args[i]!); });
63
+ return evalBody(fn.body, locals);
64
+ };
65
+ const evalExpr = (e: Expr, locals: Map<string, EvalValue>): EvalValue =>
66
+ interpretExpr(e, readLeaf, { locals, callFn });
67
+
68
+ const run = (s: Stmt, locals: Map<string, EvalValue>): RunResult => {
69
+ switch (s.kind) {
70
+ case "Sequential":
71
+ case "Isolated": {
72
+ for (const c of s.body) { const r = run(c, locals); if (r !== NO_RETURN) return r; }
73
+ return NO_RETURN;
74
+ }
75
+ case "Declare": {
76
+ if (s.init !== undefined && s.init.kind === "Expr") locals.set(s.var.name, evalExpr(s.init.value, locals));
77
+ return NO_RETURN;
78
+ }
79
+ case "Write": {
80
+ if (s.target.kind === "LVar") locals.set(s.target.var.name, evalExpr(s.value, locals));
81
+ return NO_RETURN;
82
+ }
83
+ case "If": {
84
+ if (truthy(evalExpr(s.cond, locals))) return run(s.then, locals);
85
+ return s.else !== undefined ? run(s.else, locals) : NO_RETURN;
86
+ }
87
+ case "ReturnValue": return evalExpr(s.value, locals);
88
+ case "Expression":
89
+ case "Nop":
90
+ case "Return":
91
+ return NO_RETURN;
92
+ default:
93
+ throw new Error(`derivedModes: unsupported statement '${s.kind}' in rule body`);
94
+ }
95
+ };
96
+ const evalBody = (b: Stmt, locals: Map<string, EvalValue>): EvalValue => {
97
+ const r = run(b, locals);
98
+ if (r === NO_RETURN) throw new Error(`derivedModes: rule body for axis '${rule.axis}' produced no return value`);
99
+ return r;
100
+ };
101
+
102
+ const raw = evalBody(body, new Map());
103
+ return resolveAxisValue(rule, raw) as ModeValue<A>;
104
+ }
@@ -198,7 +198,19 @@ function intrinsic(name: string, a: EvalValue[]): EvalValue {
198
198
  * `readLeaf`. Returns a host double value (`M44d` / `V3d` / number / …) that
199
199
  * `writeField` narrows to f32 when packing the UBO.
200
200
  */
201
- export function interpretExpr(ir: Expr, readLeaf: LeafReader): EvalValue {
201
+ /**
202
+ * Optional evaluation context. `locals` resolves `Var` nodes (function
203
+ * params / `let` bindings); `callFn` resolves a user-function `Call` to a
204
+ * value (its name + already-evaluated args). Derived UNIFORMS pass neither
205
+ * (their rules are leaf-and-op only); derived MODES pass both (rule bodies
206
+ * have locals and call helpers like `flipCull`). See derivedModes/cpuEval.
207
+ */
208
+ export interface EvalOpts {
209
+ readonly locals?: ReadonlyMap<string, EvalValue>;
210
+ readonly callFn?: (name: string, args: EvalValue[]) => EvalValue;
211
+ }
212
+
213
+ export function interpretExpr(ir: Expr, readLeaf: LeafReader, opts: EvalOpts = {}): EvalValue {
202
214
  const ev = (e: Expr): EvalValue => {
203
215
  switch (e.kind) {
204
216
  case "Const": {
@@ -208,11 +220,21 @@ export function interpretExpr(ir: Expr, readLeaf: LeafReader): EvalValue {
208
220
  throw new Error("derived eval: null const");
209
221
  }
210
222
  case "ReadInput": {
211
- if (e.scope !== "Uniform") throw new Error("derived eval: non-uniform leaf scope " + e.scope);
223
+ // Scope-agnostic: the readLeaf decides what a name resolves to
224
+ // (uniforms for derived uniforms; uniforms + `declared` for modes).
212
225
  const raw = readLeaf(e.name);
213
- if (raw === undefined) throw new Error("derived eval: missing uniform leaf '" + e.name + "'");
226
+ if (raw === undefined) throw new Error("derived eval: missing leaf '" + e.name + "'");
214
227
  return coerce(raw, e.type);
215
228
  }
229
+ case "Var": {
230
+ const v = opts.locals?.get(e.var.name);
231
+ if (v === undefined) throw new Error("derived eval: unbound local '" + e.var.name + "'");
232
+ return v;
233
+ }
234
+ case "Call": {
235
+ if (opts.callFn === undefined) throw new Error("derived eval: Call '" + e.fn.signature.name + "' but no callFn provided");
236
+ return opts.callFn(e.fn.signature.name, e.args.map(ev));
237
+ }
216
238
  case "Neg": return negate(ev(e.value));
217
239
  case "Not": return !(ev(e.value) as boolean);
218
240
  case "Add": return elementwise(ev(e.lhs), ev(e.rhs), (x, y) => x + y);