@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.
Files changed (74) hide show
  1. package/dist/core/buffer.d.ts.map +1 -1
  2. package/dist/core/buffer.js +65 -5
  3. package/dist/core/buffer.js.map +1 -1
  4. package/dist/core/index.d.ts +2 -0
  5. package/dist/core/index.d.ts.map +1 -1
  6. package/dist/core/index.js +1 -0
  7. package/dist/core/index.js.map +1 -1
  8. package/dist/core/provider.d.ts +38 -0
  9. package/dist/core/provider.d.ts.map +1 -0
  10. package/dist/core/provider.js +104 -0
  11. package/dist/core/provider.js.map +1 -0
  12. package/dist/core/renderObject.d.ts +17 -10
  13. package/dist/core/renderObject.d.ts.map +1 -1
  14. package/dist/core/sampler.d.ts.map +1 -1
  15. package/dist/core/sampler.js +71 -2
  16. package/dist/core/sampler.js.map +1 -1
  17. package/dist/core/texture.d.ts +9 -0
  18. package/dist/core/texture.d.ts.map +1 -1
  19. package/dist/core/texture.js +0 -0
  20. package/dist/core/texture.js.map +1 -1
  21. package/dist/resources/adaptiveTexture.d.ts.map +1 -1
  22. package/dist/resources/adaptiveTexture.js +7 -0
  23. package/dist/resources/adaptiveTexture.js.map +1 -1
  24. package/dist/resources/preparedRenderObject.d.ts.map +1 -1
  25. package/dist/resources/preparedRenderObject.js +20 -18
  26. package/dist/resources/preparedRenderObject.js.map +1 -1
  27. package/dist/resources/uniformBuffer.d.ts.map +1 -1
  28. package/dist/resources/uniformBuffer.js +23 -0
  29. package/dist/resources/uniformBuffer.js.map +1 -1
  30. package/dist/runtime/derivedUniforms/slots.d.ts.map +1 -1
  31. package/dist/runtime/derivedUniforms/slots.js +4 -0
  32. package/dist/runtime/derivedUniforms/slots.js.map +1 -1
  33. package/dist/runtime/heapAdapter.d.ts.map +1 -1
  34. package/dist/runtime/heapAdapter.js +72 -29
  35. package/dist/runtime/heapAdapter.js.map +1 -1
  36. package/dist/runtime/heapDecoder.d.ts +52 -0
  37. package/dist/runtime/heapDecoder.d.ts.map +1 -0
  38. package/dist/runtime/heapDecoder.js +363 -0
  39. package/dist/runtime/heapDecoder.js.map +1 -0
  40. package/dist/runtime/heapEffectIR.d.ts.map +1 -1
  41. package/dist/runtime/heapEffectIR.js +300 -3
  42. package/dist/runtime/heapEffectIR.js.map +1 -1
  43. package/dist/runtime/heapEligibility.d.ts.map +1 -1
  44. package/dist/runtime/heapEligibility.js +42 -5
  45. package/dist/runtime/heapEligibility.js.map +1 -1
  46. package/dist/runtime/heapIrBuilders.d.ts +64 -0
  47. package/dist/runtime/heapIrBuilders.d.ts.map +1 -0
  48. package/dist/runtime/heapIrBuilders.js +311 -0
  49. package/dist/runtime/heapIrBuilders.js.map +1 -0
  50. package/dist/runtime/heapScene.d.ts.map +1 -1
  51. package/dist/runtime/heapScene.js +329 -112
  52. package/dist/runtime/heapScene.js.map +1 -1
  53. package/dist/runtime/textureAtlas/atlasPool.d.ts +67 -4
  54. package/dist/runtime/textureAtlas/atlasPool.d.ts.map +1 -1
  55. package/dist/runtime/textureAtlas/atlasPool.js +152 -18
  56. package/dist/runtime/textureAtlas/atlasPool.js.map +1 -1
  57. package/package.json +3 -3
  58. package/src/core/buffer.ts +58 -6
  59. package/src/core/index.ts +11 -0
  60. package/src/core/provider.ts +143 -0
  61. package/src/core/renderObject.ts +17 -10
  62. package/src/core/sampler.ts +64 -2
  63. package/src/core/texture.ts +0 -0
  64. package/src/resources/adaptiveTexture.ts +7 -0
  65. package/src/resources/preparedRenderObject.ts +21 -16
  66. package/src/resources/uniformBuffer.ts +21 -0
  67. package/src/runtime/derivedUniforms/slots.ts +4 -0
  68. package/src/runtime/heapAdapter.ts +63 -29
  69. package/src/runtime/heapDecoder.ts +446 -0
  70. package/src/runtime/heapEffectIR.ts +314 -3
  71. package/src/runtime/heapEligibility.ts +34 -5
  72. package/src/runtime/heapIrBuilders.ts +365 -0
  73. package/src/runtime/heapScene.ts +338 -96
  74. package/src/runtime/textureAtlas/atlasPool.ts +152 -16
@@ -1 +1 @@
1
- {"version":3,"file":"heapEligibility.js","sourceRoot":"","sources":["../../src/runtime/heapEligibility.ts"],"names":[],"mappings":"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"}
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":"AAeA,OAAO,EACL,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAE/C,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,KAAK,EAAE,IAAuB,CAAC;AAC5C,eAAO,MAAM,KAAK,MAAe,CAAC;AAClC,eAAO,MAAM,KAAK,MAAe,CAAC;AAClC,eAAO,MAAM,KAAK,MAAe,CAAC;AAClC,eAAO,MAAM,KAAK,EAAmE,IAAI,CAAC;AAC1F,eAAO,MAAM,OAAO,EAAG,IAAkE,CAAC;AAC1F,eAAO,MAAM,OAAO,EAAG,IAAkE,CAAC;AAC1F,eAAO,MAAM,QAAQ,EAAE,IAAmE,CAAC;AAI3F,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,KAAG,IAEnC,CAAC;AACH,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,KAAG,IAEnC,CAAC;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,GAAG,OAAO,GAAG,SAAS,EACtC,MAAM,MAAM,EACZ,MAAM,IAAI,KACT,IAAkD,CAAC;AAItD,eAAO,MAAM,IAAI,GAAI,QAAQ,IAAI,EAAE,OAAO,IAAI,EAAE,UAAU,IAAI,KAAG,IAE/D,CAAC;AACH,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,KAAG,IAAyC,CAAC;AACjG,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,KAAG,IAAyC,CAAC;AACjG,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,KAAG,IAAyC,CAAC;AACjG,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,KAAG,IAAyC,CAAC;AACjG,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,KAAG,IAAyC,CAAC;AACjG,eAAO,MAAM,KAAK,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,KAAG,IAA+C,CAAC;AAC7F,eAAO,MAAM,KAAK,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,KAAG,IAA+C,CAAC;AAC7F,eAAO,MAAM,KAAK,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,KAAG,IAA+C,CAAC;AAC7F,eAAO,MAAM,GAAG,GAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,KAAG,IAErD,CAAC;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,IAAI,EAAE,QAAQ,IAAI,EAAE,SAAS,IAAI,EAAE,MAAM,IAAI,KAAG,IAE3E,CAAC;AACH,eAAO,MAAM,MAAM,GAAI,YAAY,IAAI,EAAE,EAAE,MAAM,IAAI,KAAG,IAEtD,CAAC;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,EAAE,EAAE,MAAM,IAAI,KAAG,IAErD,CAAC;AAIH,eAAO,MAAM,OAAO,MAAmD,CAAC;AACxE,eAAO,MAAM,UAAU,MAAgD,CAAC;AACxE,eAAO,MAAM,OAAO,MAAmD,CAAC;AACxE,eAAO,MAAM,OAAO,MAAoD,CAAC;AACzE,eAAO,MAAM,SAAS,MAA0D,CAAC;AACjF,eAAO,MAAM,YAAY,MAAuD,CAAC;AACjF,eAAO,MAAM,eAAe,MAAoD,CAAC;AAcjF,wBAAgB,qBAAqB,IAAI,QAAQ,EAAE,CAOlD;AAED,wBAAgB,0BAA0B,IAAI,QAAQ,EAAE,CAMvD;AAID,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQ7F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAmCvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA+CpF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuCpF;AAcD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;CACnB;AAKD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,GAAG;IAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CA6E7F"}
@@ -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":"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"}
1
+ {"version":3,"file":"heapScene.d.ts","sourceRoot":"","sources":["../../src/runtime/heapScene.ts"],"names":[],"mappings":"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"}