@aardworx/wombat.rendering 0.9.2 → 0.9.4
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/buffer.d.ts.map +1 -1
- package/dist/core/buffer.js +65 -5
- package/dist/core/buffer.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- 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/provider.d.ts +38 -0
- package/dist/core/provider.d.ts.map +1 -0
- package/dist/core/provider.js +104 -0
- package/dist/core/provider.js.map +1 -0
- package/dist/core/renderObject.d.ts +17 -10
- package/dist/core/renderObject.d.ts.map +1 -1
- package/dist/core/sampler.d.ts.map +1 -1
- package/dist/core/sampler.js +71 -2
- package/dist/core/sampler.js.map +1 -1
- package/dist/core/texture.d.ts +9 -0
- package/dist/core/texture.d.ts.map +1 -1
- package/dist/core/texture.js +0 -0
- package/dist/core/texture.js.map +1 -1
- package/dist/resources/adaptiveTexture.d.ts.map +1 -1
- package/dist/resources/adaptiveTexture.js +7 -0
- package/dist/resources/adaptiveTexture.js.map +1 -1
- package/dist/resources/preparedRenderObject.d.ts.map +1 -1
- package/dist/resources/preparedRenderObject.js +20 -18
- package/dist/resources/preparedRenderObject.js.map +1 -1
- package/dist/resources/uniformBuffer.d.ts.map +1 -1
- package/dist/resources/uniformBuffer.js +23 -0
- package/dist/resources/uniformBuffer.js.map +1 -1
- package/dist/runtime/derivedUniforms/slots.d.ts.map +1 -1
- package/dist/runtime/derivedUniforms/slots.js +4 -0
- package/dist/runtime/derivedUniforms/slots.js.map +1 -1
- package/dist/runtime/heapAdapter.d.ts.map +1 -1
- package/dist/runtime/heapAdapter.js +72 -29
- package/dist/runtime/heapAdapter.js.map +1 -1
- package/dist/runtime/heapDecoder.d.ts +52 -0
- package/dist/runtime/heapDecoder.d.ts.map +1 -0
- package/dist/runtime/heapDecoder.js +363 -0
- package/dist/runtime/heapDecoder.js.map +1 -0
- package/dist/runtime/heapEffectIR.d.ts.map +1 -1
- package/dist/runtime/heapEffectIR.js +300 -3
- package/dist/runtime/heapEffectIR.js.map +1 -1
- package/dist/runtime/heapEligibility.d.ts.map +1 -1
- package/dist/runtime/heapEligibility.js +42 -5
- package/dist/runtime/heapEligibility.js.map +1 -1
- package/dist/runtime/heapIrBuilders.d.ts +64 -0
- package/dist/runtime/heapIrBuilders.d.ts.map +1 -0
- package/dist/runtime/heapIrBuilders.js +311 -0
- package/dist/runtime/heapIrBuilders.js.map +1 -0
- package/dist/runtime/heapScene.d.ts.map +1 -1
- package/dist/runtime/heapScene.js +329 -112
- package/dist/runtime/heapScene.js.map +1 -1
- package/dist/runtime/textureAtlas/atlasPool.d.ts +67 -4
- package/dist/runtime/textureAtlas/atlasPool.d.ts.map +1 -1
- package/dist/runtime/textureAtlas/atlasPool.js +152 -18
- package/dist/runtime/textureAtlas/atlasPool.js.map +1 -1
- package/package.json +3 -3
- package/src/core/buffer.ts +58 -6
- package/src/core/index.ts +11 -0
- package/src/core/provider.ts +143 -0
- package/src/core/renderObject.ts +17 -10
- package/src/core/sampler.ts +64 -2
- package/src/core/texture.ts +0 -0
- package/src/resources/adaptiveTexture.ts +7 -0
- package/src/resources/preparedRenderObject.ts +21 -16
- package/src/resources/uniformBuffer.ts +21 -0
- package/src/runtime/derivedUniforms/slots.ts +4 -0
- package/src/runtime/heapAdapter.ts +63 -29
- package/src/runtime/heapDecoder.ts +446 -0
- package/src/runtime/heapEffectIR.ts +314 -3
- package/src/runtime/heapEligibility.ts +34 -5
- package/src/runtime/heapIrBuilders.ts +365 -0
- package/src/runtime/heapScene.ts +338 -96
- package/src/runtime/textureAtlas/atlasPool.ts +152 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heapEligibility.js","sourceRoot":"","sources":["../../src/runtime/heapEligibility.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAC/B,kEAAkE;AAClE,+DAA+D;AAC/D,kDAAkD;AAClD,iEAAiE;AACjE,gEAAgE;AAChE,6CAA6C;AAC7C,mEAAmE;AACnE,wEAAwE;AACxE,iEAAiE;AACjE,kEAAkE;AAClE,mEAAmE;AACnE,kEAAkE;AAClE,kEAAkE;AAClE,iEAAiE;AACjE,kEAAkE;AAClE,mEAAmE;AACnE,kEAAkE;AAClE,yDAAyD;AACzD,EAAE;AACF,mEAAmE;AACnE,uCAAuC;AACvC,8DAA8D;AAC9D,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,+CAA+C;AAC/C,EAAE;AACF,iEAAiE;AACjE,8DAA8D;AAC9D,sCAAsC;AAEtC,OAAO,EAAE,IAAI,EAAa,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"heapEligibility.js","sourceRoot":"","sources":["../../src/runtime/heapEligibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type Expr, type Stmt, type Type, type ValueDef } from "@aardworx/wombat.shader/ir";
|
|
2
|
+
export declare const Tbool: Type;
|
|
3
|
+
export declare const Tvec2: Type;
|
|
4
|
+
export declare const Tvec3: Type;
|
|
5
|
+
export declare const Tvec4: Type;
|
|
6
|
+
export declare const Tmat4: Type;
|
|
7
|
+
export declare const TarrU32: Type;
|
|
8
|
+
export declare const TarrF32: Type;
|
|
9
|
+
export declare const TarrVec4: Type;
|
|
10
|
+
export declare const constU32: (n: number) => Expr;
|
|
11
|
+
export declare const constF32: (n: number) => Expr;
|
|
12
|
+
export declare const readScope: (scope: "Uniform" | "Input" | "Builtin", name: string, type: Type) => Expr;
|
|
13
|
+
export declare const item: (target: Expr, index: Expr, elemType: Type) => Expr;
|
|
14
|
+
export declare const add: (lhs: Expr, rhs: Expr, type: Type) => Expr;
|
|
15
|
+
export declare const sub: (lhs: Expr, rhs: Expr, type: Type) => Expr;
|
|
16
|
+
export declare const mul: (lhs: Expr, rhs: Expr, type: Type) => Expr;
|
|
17
|
+
export declare const div: (lhs: Expr, rhs: Expr, type: Type) => Expr;
|
|
18
|
+
export declare const mod: (lhs: Expr, rhs: Expr, type: Type) => Expr;
|
|
19
|
+
export declare const eqU32: (lhs: Expr, rhs: Expr) => Expr;
|
|
20
|
+
export declare const geU32: (lhs: Expr, rhs: Expr) => Expr;
|
|
21
|
+
export declare const leU32: (lhs: Expr, rhs: Expr) => Expr;
|
|
22
|
+
export declare const shr: (lhs: Expr, rhs: Expr, type: Type) => Expr;
|
|
23
|
+
export declare const select: (cond: Expr, ifTrue: Expr, ifFalse: Expr, type: Type) => Expr;
|
|
24
|
+
export declare const newVec: (components: Expr[], type: Type) => Expr;
|
|
25
|
+
export declare const matFromRows: (rows: Expr[], type: Type) => Expr;
|
|
26
|
+
export declare const heapU32: Expr;
|
|
27
|
+
export declare const headersU32: Expr;
|
|
28
|
+
export declare const heapF32: Expr;
|
|
29
|
+
export declare const heapV4f: Expr;
|
|
30
|
+
export declare const drawTable: Expr;
|
|
31
|
+
export declare const indexStorage: Expr;
|
|
32
|
+
export declare const firstDrawInTile: Expr;
|
|
33
|
+
export declare function heapArenaStorageDecls(): ValueDef[];
|
|
34
|
+
export declare function megacallLookupStorageDecls(): ValueDef[];
|
|
35
|
+
/** `headersU32[drawIdx * stride + offset]` — a u32 ref slot in the drawHeader. */
|
|
36
|
+
export declare function loadHeaderRef(drawIdx: Expr, fieldByteOffset: number, strideU32: number): Expr;
|
|
37
|
+
/**
|
|
38
|
+
* Load a per-draw uniform value from the heap given its `u32` ref.
|
|
39
|
+
* Matrix → 4 vec4 columns from heapV4f; vec4 → one heapV4f read;
|
|
40
|
+
* vec3/2/scalar → heapF32 reads + NewVector.
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadUniformByRef(refIdent: Expr, wgslType: string): Expr;
|
|
43
|
+
/**
|
|
44
|
+
* Cyclic per-vertex/per-instance attribute load. `idx` is the vertex or
|
|
45
|
+
* instance index. The allocation header at `ref/4 + 1` holds the
|
|
46
|
+
* element length so `idx % length` broadcasts length-1 allocations.
|
|
47
|
+
*/
|
|
48
|
+
export declare function loadAttributeByRef(refIdent: Expr, idx: Expr, wgslType: string): Expr;
|
|
49
|
+
/**
|
|
50
|
+
* Per-instance uniform/attribute load: read element `iidx` from the
|
|
51
|
+
* allocation (no cyclic-modulo wrap — instance count is exact).
|
|
52
|
+
*/
|
|
53
|
+
export declare function loadInstanceByRef(refIdent: Expr, iidx: Expr, wgslType: string): Expr;
|
|
54
|
+
import type { Var } from "@aardworx/wombat.shader/ir";
|
|
55
|
+
export interface MegacallLocals {
|
|
56
|
+
readonly heapDrawIdx: Var;
|
|
57
|
+
readonly instId: Var;
|
|
58
|
+
readonly vid: Var;
|
|
59
|
+
}
|
|
60
|
+
export declare function buildMegacallPrelude(emitIdx: Expr): {
|
|
61
|
+
stmts: Stmt[];
|
|
62
|
+
locals: MegacallLocals;
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=heapIrBuilders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heapIrBuilders.d.ts","sourceRoot":"","sources":["../../src/runtime/heapIrBuilders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
// Shared IR builders for the heap-rendering path.
|
|
2
|
+
//
|
|
3
|
+
// Centralises the tiny utility helpers (constU32 / item / add / …) plus
|
|
4
|
+
// the heap-load expressions (loadHeaderRef / loadUniformByRef /
|
|
5
|
+
// loadAttributeByRef / loadInstanceByRef). Both `heapEffectIR.ts` (the
|
|
6
|
+
// substitute-based legacy path) and `heapDecoder.ts` (the
|
|
7
|
+
// composition-based decoder synthesis) consume these.
|
|
8
|
+
//
|
|
9
|
+
// Storage buffers heapU32 / headersU32 / heapF32 / heapV4f are exposed
|
|
10
|
+
// as `ReadInput("Uniform", name)` of array<...> type; indexing is
|
|
11
|
+
// `Item(buffer, index)`. The buffers themselves are added as
|
|
12
|
+
// StorageBuffer ValueDefs (see `heapStorageBufferDecls`) so the WGSL
|
|
13
|
+
// emitter materialises the `@group(0) @binding(N) var<storage, read>`
|
|
14
|
+
// declarations.
|
|
15
|
+
import { Tu32, Tf32, Vec, } from "@aardworx/wombat.shader/ir";
|
|
16
|
+
// ─── Type shorthands ───────────────────────────────────────────────────
|
|
17
|
+
export const Tbool = { kind: "Bool" };
|
|
18
|
+
export const Tvec2 = Vec(Tf32, 2);
|
|
19
|
+
export const Tvec3 = Vec(Tf32, 3);
|
|
20
|
+
export const Tvec4 = Vec(Tf32, 4);
|
|
21
|
+
export const Tmat4 = { kind: "Matrix", element: Tf32, rows: 4, cols: 4 };
|
|
22
|
+
export const TarrU32 = { kind: "Array", element: Tu32, length: "runtime" };
|
|
23
|
+
export const TarrF32 = { kind: "Array", element: Tf32, length: "runtime" };
|
|
24
|
+
export const TarrVec4 = { kind: "Array", element: Tvec4, length: "runtime" };
|
|
25
|
+
// ─── Const + leaf expression builders ─────────────────────────────────
|
|
26
|
+
export const constU32 = (n) => ({
|
|
27
|
+
kind: "Const", type: Tu32, value: { kind: "Int", signed: false, value: n },
|
|
28
|
+
});
|
|
29
|
+
export const constF32 = (n) => ({
|
|
30
|
+
kind: "Const", type: Tf32, value: { kind: "Float", value: n },
|
|
31
|
+
});
|
|
32
|
+
export const readScope = (scope, name, type) => ({ kind: "ReadInput", scope, name, type });
|
|
33
|
+
// ─── Compound expression builders ─────────────────────────────────────
|
|
34
|
+
export const item = (target, index, elemType) => ({
|
|
35
|
+
kind: "Item", target, index, type: elemType,
|
|
36
|
+
});
|
|
37
|
+
export const add = (lhs, rhs, type) => ({ kind: "Add", lhs, rhs, type });
|
|
38
|
+
export const sub = (lhs, rhs, type) => ({ kind: "Sub", lhs, rhs, type });
|
|
39
|
+
export const mul = (lhs, rhs, type) => ({ kind: "Mul", lhs, rhs, type });
|
|
40
|
+
export const div = (lhs, rhs, type) => ({ kind: "Div", lhs, rhs, type });
|
|
41
|
+
export const mod = (lhs, rhs, type) => ({ kind: "Mod", lhs, rhs, type });
|
|
42
|
+
export const eqU32 = (lhs, rhs) => ({ kind: "Eq", lhs, rhs, type: Tbool });
|
|
43
|
+
export const geU32 = (lhs, rhs) => ({ kind: "Ge", lhs, rhs, type: Tbool });
|
|
44
|
+
export const leU32 = (lhs, rhs) => ({ kind: "Le", lhs, rhs, type: Tbool });
|
|
45
|
+
export const shr = (lhs, rhs, type) => ({
|
|
46
|
+
kind: "ShiftRight", lhs, rhs, type,
|
|
47
|
+
});
|
|
48
|
+
export const select = (cond, ifTrue, ifFalse, type) => ({
|
|
49
|
+
kind: "Conditional", cond, ifTrue, ifFalse, type,
|
|
50
|
+
});
|
|
51
|
+
export const newVec = (components, type) => ({
|
|
52
|
+
kind: "NewVector", components, type,
|
|
53
|
+
});
|
|
54
|
+
export const matFromRows = (rows, type) => ({
|
|
55
|
+
kind: "MatrixFromRows", rows, type,
|
|
56
|
+
});
|
|
57
|
+
// ─── Storage-buffer references (Expr-form) ────────────────────────────
|
|
58
|
+
export const heapU32 = readScope("Uniform", "heapU32", TarrU32);
|
|
59
|
+
export const headersU32 = readScope("Uniform", "headersU32", TarrU32);
|
|
60
|
+
export const heapF32 = readScope("Uniform", "heapF32", TarrF32);
|
|
61
|
+
export const heapV4f = readScope("Uniform", "heapV4f", TarrVec4);
|
|
62
|
+
export const drawTable = readScope("Uniform", "drawTable", TarrU32);
|
|
63
|
+
export const indexStorage = readScope("Uniform", "indexStorage", TarrU32);
|
|
64
|
+
export const firstDrawInTile = readScope("Uniform", "firstDrawInTile", TarrU32);
|
|
65
|
+
// ─── Storage-buffer ValueDefs ─────────────────────────────────────────
|
|
66
|
+
//
|
|
67
|
+
// Bindings 0..3 are heap-arena typed views; 4..6 are megacall lookup
|
|
68
|
+
// buffers. Order matches the BindGroupLayout entries the runtime sets
|
|
69
|
+
// up — both sides walk module ValueDefs in declaration order and increment
|
|
70
|
+
// a slot counter to derive `@binding(N)`.
|
|
71
|
+
// `keep: true` on every heap-rendering binding: the host-side
|
|
72
|
+
// BindGroupLayout pins these at slots 0..6, so the WGSL must declare
|
|
73
|
+
// them at the same slots whether or not any code path on the current
|
|
74
|
+
// effect happens to reference each one (e.g. a shader with no mat4
|
|
75
|
+
// uniforms doesn't touch heapV4f, but the BGL still has slot 3).
|
|
76
|
+
export function heapArenaStorageDecls() {
|
|
77
|
+
return [
|
|
78
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 0 }, name: "heapU32", layout: TarrU32, access: "read", keep: true },
|
|
79
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 1 }, name: "headersU32", layout: TarrU32, access: "read", keep: true },
|
|
80
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 2 }, name: "heapF32", layout: TarrF32, access: "read", keep: true },
|
|
81
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 3 }, name: "heapV4f", layout: TarrVec4, access: "read", keep: true },
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
export function megacallLookupStorageDecls() {
|
|
85
|
+
return [
|
|
86
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 4 }, name: "drawTable", layout: TarrU32, access: "read", keep: true },
|
|
87
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 5 }, name: "indexStorage", layout: TarrU32, access: "read", keep: true },
|
|
88
|
+
{ kind: "StorageBuffer", binding: { group: 0, slot: 6 }, name: "firstDrawInTile", layout: TarrU32, access: "read", keep: true },
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
// ─── Heap-load address builders ───────────────────────────────────────
|
|
92
|
+
/** `headersU32[drawIdx * stride + offset]` — a u32 ref slot in the drawHeader. */
|
|
93
|
+
export function loadHeaderRef(drawIdx, fieldByteOffset, strideU32) {
|
|
94
|
+
const fieldU32 = fieldByteOffset / 4;
|
|
95
|
+
if (!Number.isInteger(fieldU32)) {
|
|
96
|
+
throw new Error(`loadHeaderRef: byteOffset ${fieldByteOffset} is not 4-byte aligned`);
|
|
97
|
+
}
|
|
98
|
+
const drawOff = mul(drawIdx, constU32(strideU32), Tu32);
|
|
99
|
+
const idx = fieldU32 === 0 ? drawOff : add(drawOff, constU32(fieldU32), Tu32);
|
|
100
|
+
return item(headersU32, idx, Tu32);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Load a per-draw uniform value from the heap given its `u32` ref.
|
|
104
|
+
* Matrix → 4 vec4 columns from heapV4f; vec4 → one heapV4f read;
|
|
105
|
+
* vec3/2/scalar → heapF32 reads + NewVector.
|
|
106
|
+
*/
|
|
107
|
+
export function loadUniformByRef(refIdent, wgslType) {
|
|
108
|
+
switch (wgslType) {
|
|
109
|
+
case "mat4x4<f32>": {
|
|
110
|
+
const base = div(add(refIdent, constU32(16), Tu32), constU32(16), Tu32);
|
|
111
|
+
const cols = [];
|
|
112
|
+
for (let i = 0; i < 4; i++) {
|
|
113
|
+
const idx = i === 0 ? base : add(base, constU32(i), Tu32);
|
|
114
|
+
cols.push(item(heapV4f, idx, Tvec4));
|
|
115
|
+
}
|
|
116
|
+
return matFromRows(cols, Tmat4);
|
|
117
|
+
}
|
|
118
|
+
case "vec4<f32>":
|
|
119
|
+
return item(heapV4f, div(add(refIdent, constU32(16), Tu32), constU32(16), Tu32), Tvec4);
|
|
120
|
+
case "vec3<f32>": {
|
|
121
|
+
const base = div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32);
|
|
122
|
+
return newVec([
|
|
123
|
+
item(heapF32, base, Tf32),
|
|
124
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
125
|
+
item(heapF32, add(base, constU32(2), Tu32), Tf32),
|
|
126
|
+
], Tvec3);
|
|
127
|
+
}
|
|
128
|
+
case "vec2<f32>": {
|
|
129
|
+
const base = div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32);
|
|
130
|
+
return newVec([
|
|
131
|
+
item(heapF32, base, Tf32),
|
|
132
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
133
|
+
], Tvec2);
|
|
134
|
+
}
|
|
135
|
+
case "f32":
|
|
136
|
+
return item(heapF32, div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32), Tf32);
|
|
137
|
+
case "u32":
|
|
138
|
+
return item(heapU32, div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32), Tu32);
|
|
139
|
+
default:
|
|
140
|
+
throw new Error(`heap: no IR loader for uniform type '${wgslType}'`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Cyclic per-vertex/per-instance attribute load. `idx` is the vertex or
|
|
145
|
+
* instance index. The allocation header at `ref/4 + 1` holds the
|
|
146
|
+
* element length so `idx % length` broadcasts length-1 allocations.
|
|
147
|
+
*/
|
|
148
|
+
export function loadAttributeByRef(refIdent, idx, wgslType) {
|
|
149
|
+
const dataF32Base = div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32);
|
|
150
|
+
const cyclic = (elemSize) => {
|
|
151
|
+
const length = item(heapU32, add(div(refIdent, constU32(4), Tu32), constU32(1), Tu32), Tu32);
|
|
152
|
+
return mul(mod(idx, length, Tu32), constU32(elemSize), Tu32);
|
|
153
|
+
};
|
|
154
|
+
switch (wgslType) {
|
|
155
|
+
case "vec3<f32>": {
|
|
156
|
+
const base = add(dataF32Base, cyclic(3), Tu32);
|
|
157
|
+
return newVec([
|
|
158
|
+
item(heapF32, base, Tf32),
|
|
159
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
160
|
+
item(heapF32, add(base, constU32(2), Tu32), Tf32),
|
|
161
|
+
], Tvec3);
|
|
162
|
+
}
|
|
163
|
+
case "vec4<f32>": {
|
|
164
|
+
const strideBytes = item(heapU32, add(div(refIdent, constU32(4), Tu32), constU32(2), Tu32), Tu32);
|
|
165
|
+
const strideF = div(strideBytes, constU32(4), Tu32);
|
|
166
|
+
const cycled = mod(idx, item(heapU32, add(div(refIdent, constU32(4), Tu32), constU32(1), Tu32), Tu32), Tu32);
|
|
167
|
+
const off = mul(cycled, strideF, Tu32);
|
|
168
|
+
const base = add(dataF32Base, off, Tu32);
|
|
169
|
+
const w = select(eqU32(strideF, constU32(4)), item(heapF32, add(base, constU32(3), Tu32), Tf32), constF32(1.0), Tf32);
|
|
170
|
+
return newVec([
|
|
171
|
+
item(heapF32, base, Tf32),
|
|
172
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
173
|
+
item(heapF32, add(base, constU32(2), Tu32), Tf32),
|
|
174
|
+
w,
|
|
175
|
+
], Tvec4);
|
|
176
|
+
}
|
|
177
|
+
case "vec2<f32>": {
|
|
178
|
+
const base = add(dataF32Base, cyclic(2), Tu32);
|
|
179
|
+
return newVec([
|
|
180
|
+
item(heapF32, base, Tf32),
|
|
181
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
182
|
+
], Tvec2);
|
|
183
|
+
}
|
|
184
|
+
case "f32": {
|
|
185
|
+
const base = add(dataF32Base, cyclic(1), Tu32);
|
|
186
|
+
return item(heapF32, base, Tf32);
|
|
187
|
+
}
|
|
188
|
+
case "u32": {
|
|
189
|
+
const base = add(div(refIdent, constU32(4), Tu32), add(constU32(4), cyclic(1), Tu32), Tu32);
|
|
190
|
+
return item(heapU32, base, Tu32);
|
|
191
|
+
}
|
|
192
|
+
default:
|
|
193
|
+
throw new Error(`heap: no IR loader for attribute type '${wgslType}'`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Per-instance uniform/attribute load: read element `iidx` from the
|
|
198
|
+
* allocation (no cyclic-modulo wrap — instance count is exact).
|
|
199
|
+
*/
|
|
200
|
+
export function loadInstanceByRef(refIdent, iidx, wgslType) {
|
|
201
|
+
const dataF32Base = div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32);
|
|
202
|
+
const dataVec4Base = div(add(refIdent, constU32(16), Tu32), constU32(16), Tu32);
|
|
203
|
+
switch (wgslType) {
|
|
204
|
+
case "mat4x4<f32>": {
|
|
205
|
+
const off = mul(iidx, constU32(4), Tu32);
|
|
206
|
+
const base = add(dataVec4Base, off, Tu32);
|
|
207
|
+
const cols = [];
|
|
208
|
+
for (let i = 0; i < 4; i++) {
|
|
209
|
+
cols.push(item(heapV4f, add(base, constU32(i), Tu32), Tvec4));
|
|
210
|
+
}
|
|
211
|
+
return matFromRows(cols, Tmat4);
|
|
212
|
+
}
|
|
213
|
+
case "vec4<f32>":
|
|
214
|
+
return item(heapV4f, add(dataVec4Base, iidx, Tu32), Tvec4);
|
|
215
|
+
case "vec3<f32>": {
|
|
216
|
+
const off = mul(iidx, constU32(3), Tu32);
|
|
217
|
+
const base = add(dataF32Base, off, Tu32);
|
|
218
|
+
return newVec([
|
|
219
|
+
item(heapF32, base, Tf32),
|
|
220
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
221
|
+
item(heapF32, add(base, constU32(2), Tu32), Tf32),
|
|
222
|
+
], Tvec3);
|
|
223
|
+
}
|
|
224
|
+
case "vec2<f32>": {
|
|
225
|
+
const off = mul(iidx, constU32(2), Tu32);
|
|
226
|
+
const base = add(dataF32Base, off, Tu32);
|
|
227
|
+
return newVec([
|
|
228
|
+
item(heapF32, base, Tf32),
|
|
229
|
+
item(heapF32, add(base, constU32(1), Tu32), Tf32),
|
|
230
|
+
], Tvec2);
|
|
231
|
+
}
|
|
232
|
+
case "f32":
|
|
233
|
+
return item(heapF32, add(dataF32Base, iidx, Tu32), Tf32);
|
|
234
|
+
case "u32":
|
|
235
|
+
return item(heapU32, add(div(add(refIdent, constU32(16), Tu32), constU32(4), Tu32), iidx, Tu32), Tu32);
|
|
236
|
+
default:
|
|
237
|
+
throw new Error(`heap: no IR loader for per-instance type '${wgslType}'`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
const TILE_BITS = 6; // 64 emits per tile — must match the scan kernel.
|
|
241
|
+
const RECORD_U32 = 5; // drawTable record stride — must match heapScene.
|
|
242
|
+
export function buildMegacallPrelude(emitIdx) {
|
|
243
|
+
// Local Var declarations. `mutable: false` for the result locals;
|
|
244
|
+
// `mutable: true` for the lo/hi loop indices.
|
|
245
|
+
const tileIdx = { name: "_tileIdx", type: Tu32, mutable: false };
|
|
246
|
+
const lo = { name: "lo", type: Tu32, mutable: true };
|
|
247
|
+
const hi = { name: "hi", type: Tu32, mutable: true };
|
|
248
|
+
const mid = { name: "_mid", type: Tu32, mutable: false };
|
|
249
|
+
const slot = { name: "_slot", type: Tu32, mutable: false };
|
|
250
|
+
const firstEmit = { name: "_firstEmit", type: Tu32, mutable: false };
|
|
251
|
+
const heapDrawIdx = { name: "heap_drawIdx", type: Tu32, mutable: false };
|
|
252
|
+
const indexStart = { name: "_indexStart", type: Tu32, mutable: false };
|
|
253
|
+
const indexCount = { name: "_indexCount", type: Tu32, mutable: false };
|
|
254
|
+
const localOff = { name: "_local", type: Tu32, mutable: false };
|
|
255
|
+
const instId = { name: "instId", type: Tu32, mutable: false };
|
|
256
|
+
const vid = { name: "vid", type: Tu32, mutable: false };
|
|
257
|
+
const varExpr = (v) => ({ kind: "Var", var: v, type: v.type });
|
|
258
|
+
const stmts = [];
|
|
259
|
+
// let _tileIdx = emitIdx >> 6u;
|
|
260
|
+
stmts.push({ kind: "Declare", var: tileIdx, init: { kind: "Expr", value: shr(emitIdx, constU32(TILE_BITS), Tu32) } });
|
|
261
|
+
// var lo: u32 = firstDrawInTile[_tileIdx];
|
|
262
|
+
stmts.push({ kind: "Declare", var: lo, init: { kind: "Expr", value: item(firstDrawInTile, varExpr(tileIdx), Tu32) } });
|
|
263
|
+
// var hi: u32 = firstDrawInTile[_tileIdx + 1u];
|
|
264
|
+
stmts.push({ kind: "Declare", var: hi, init: { kind: "Expr", value: item(firstDrawInTile, add(varExpr(tileIdx), constU32(1), Tu32), Tu32) } });
|
|
265
|
+
// loop {
|
|
266
|
+
// if (lo >= hi) { break; }
|
|
267
|
+
// let _mid = (lo + hi + 1u) >> 1u;
|
|
268
|
+
// if (drawTable[_mid * 5u] <= emitIdx) { lo = _mid; } else { hi = _mid - 1u; }
|
|
269
|
+
// }
|
|
270
|
+
const loopBody = [];
|
|
271
|
+
loopBody.push({
|
|
272
|
+
kind: "If",
|
|
273
|
+
cond: geU32(varExpr(lo), varExpr(hi)),
|
|
274
|
+
then: { kind: "Break" },
|
|
275
|
+
});
|
|
276
|
+
// (lo + hi + 1) >> 1 — half-up midpoint
|
|
277
|
+
const midInit = shr(add(add(varExpr(lo), varExpr(hi), Tu32), constU32(1), Tu32), constU32(1), Tu32);
|
|
278
|
+
loopBody.push({ kind: "Declare", var: mid, init: { kind: "Expr", value: midInit } });
|
|
279
|
+
// drawTable[_mid * 5u]
|
|
280
|
+
const midDrawStart = item(drawTable, mul(varExpr(mid), constU32(RECORD_U32), Tu32), Tu32);
|
|
281
|
+
loopBody.push({
|
|
282
|
+
kind: "If",
|
|
283
|
+
cond: leU32(midDrawStart, emitIdx),
|
|
284
|
+
then: { kind: "Write", target: { kind: "LVar", var: lo, type: Tu32 }, value: varExpr(mid) },
|
|
285
|
+
else: { kind: "Write", target: { kind: "LVar", var: hi, type: Tu32 }, value: sub(varExpr(mid), constU32(1), Tu32) },
|
|
286
|
+
});
|
|
287
|
+
stmts.push({ kind: "Loop", body: { kind: "Sequential", body: loopBody } });
|
|
288
|
+
// let _slot = lo;
|
|
289
|
+
stmts.push({ kind: "Declare", var: slot, init: { kind: "Expr", value: varExpr(lo) } });
|
|
290
|
+
const slotBase = mul(varExpr(slot), constU32(RECORD_U32), Tu32);
|
|
291
|
+
// let _firstEmit = drawTable[_slot * 5u + 0u];
|
|
292
|
+
stmts.push({ kind: "Declare", var: firstEmit, init: { kind: "Expr", value: item(drawTable, slotBase, Tu32) } });
|
|
293
|
+
// let heap_drawIdx = drawTable[_slot * 5u + 1u];
|
|
294
|
+
stmts.push({ kind: "Declare", var: heapDrawIdx, init: { kind: "Expr", value: item(drawTable, add(slotBase, constU32(1), Tu32), Tu32) } });
|
|
295
|
+
// let _indexStart = drawTable[_slot * 5u + 2u];
|
|
296
|
+
stmts.push({ kind: "Declare", var: indexStart, init: { kind: "Expr", value: item(drawTable, add(slotBase, constU32(2), Tu32), Tu32) } });
|
|
297
|
+
// let _indexCount = drawTable[_slot * 5u + 3u];
|
|
298
|
+
stmts.push({ kind: "Declare", var: indexCount, init: { kind: "Expr", value: item(drawTable, add(slotBase, constU32(3), Tu32), Tu32) } });
|
|
299
|
+
// let _local = emitIdx - _firstEmit;
|
|
300
|
+
stmts.push({ kind: "Declare", var: localOff, init: { kind: "Expr", value: sub(emitIdx, varExpr(firstEmit), Tu32) } });
|
|
301
|
+
// let instId = _local / _indexCount;
|
|
302
|
+
stmts.push({ kind: "Declare", var: instId, init: { kind: "Expr", value: div(varExpr(localOff), varExpr(indexCount), Tu32) } });
|
|
303
|
+
// let vid = indexStorage[_indexStart + (_local % _indexCount)];
|
|
304
|
+
stmts.push({
|
|
305
|
+
kind: "Declare",
|
|
306
|
+
var: vid,
|
|
307
|
+
init: { kind: "Expr", value: item(indexStorage, add(varExpr(indexStart), mod(varExpr(localOff), varExpr(indexCount), Tu32), Tu32), Tu32) },
|
|
308
|
+
});
|
|
309
|
+
return { stmts, locals: { heapDrawIdx, instId, vid } };
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=heapIrBuilders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heapIrBuilders.js","sourceRoot":"","sources":["../../src/runtime/heapIrBuilders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heapScene.d.ts","sourceRoot":"","sources":["../../src/runtime/heapScene.ts"],"names":[],"mappings":"AA4CA,OAAO,EAA2B,KAAK,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAwB,aAAa,
|
|
1
|
+
{"version":3,"file":"heapScene.d.ts","sourceRoot":"","sources":["../../src/runtime/heapScene.ts"],"names":[],"mappings":"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"}
|