@aardworx/wombat.rendering 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/command.d.ts +7 -9
- package/dist/core/command.d.ts.map +1 -1
- package/dist/core/renderTask.d.ts +64 -1
- package/dist/core/renderTask.d.ts.map +1 -1
- package/dist/core/renderTask.js +3 -1
- package/dist/core/renderTask.js.map +1 -1
- package/dist/resources/preparedRenderObject.js +3 -3
- package/dist/resources/preparedRenderObject.js.map +1 -1
- package/dist/resources/uniformBuffer.d.ts.map +1 -1
- package/dist/resources/uniformBuffer.js +17 -0
- package/dist/resources/uniformBuffer.js.map +1 -1
- package/dist/runtime/derivedUniforms/dispatch.d.ts +105 -0
- package/dist/runtime/derivedUniforms/dispatch.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/dispatch.js +355 -0
- package/dist/runtime/derivedUniforms/dispatch.js.map +1 -0
- package/dist/runtime/derivedUniforms/index.d.ts +6 -0
- package/dist/runtime/derivedUniforms/index.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/index.js +26 -0
- package/dist/runtime/derivedUniforms/index.js.map +1 -0
- package/dist/runtime/derivedUniforms/recipes.d.ts +42 -0
- package/dist/runtime/derivedUniforms/recipes.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/recipes.js +134 -0
- package/dist/runtime/derivedUniforms/recipes.js.map +1 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.d.ts +56 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.js +171 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.js.map +1 -0
- package/dist/runtime/derivedUniforms/slotId.d.ts +15 -0
- package/dist/runtime/derivedUniforms/slotId.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/slotId.js +30 -0
- package/dist/runtime/derivedUniforms/slotId.js.map +1 -0
- package/dist/runtime/derivedUniforms/slots.d.ts +49 -0
- package/dist/runtime/derivedUniforms/slots.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/slots.js +123 -0
- package/dist/runtime/derivedUniforms/slots.js.map +1 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.d.ts +13 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.d.ts.map +1 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.js +218 -0
- package/dist/runtime/derivedUniforms/uberKernel.wgsl.js.map +1 -0
- package/dist/runtime/flattenTree.d.ts +5 -0
- package/dist/runtime/flattenTree.d.ts.map +1 -0
- package/dist/runtime/flattenTree.js +45 -0
- package/dist/runtime/flattenTree.js.map +1 -0
- package/dist/runtime/heapAdapter.d.ts +16 -0
- package/dist/runtime/heapAdapter.d.ts.map +1 -0
- package/dist/runtime/heapAdapter.js +263 -0
- package/dist/runtime/heapAdapter.js.map +1 -0
- package/dist/runtime/heapEffect.d.ts +235 -0
- package/dist/runtime/heapEffect.d.ts.map +1 -0
- package/dist/runtime/heapEffect.js +518 -0
- package/dist/runtime/heapEffect.js.map +1 -0
- package/dist/runtime/heapEffectIR.d.ts +34 -0
- package/dist/runtime/heapEffectIR.d.ts.map +1 -0
- package/dist/runtime/heapEffectIR.js +1161 -0
- package/dist/runtime/heapEffectIR.js.map +1 -0
- package/dist/runtime/heapEligibility.d.ts +9 -0
- package/dist/runtime/heapEligibility.d.ts.map +1 -0
- package/dist/runtime/heapEligibility.js +195 -0
- package/dist/runtime/heapEligibility.js.map +1 -0
- package/dist/runtime/heapScene.d.ts +240 -31
- package/dist/runtime/heapScene.d.ts.map +1 -1
- package/dist/runtime/heapScene.js +3334 -265
- package/dist/runtime/heapScene.js.map +1 -1
- package/dist/runtime/heapShaderFamily.d.ts +132 -0
- package/dist/runtime/heapShaderFamily.d.ts.map +1 -0
- package/dist/runtime/heapShaderFamily.js +866 -0
- package/dist/runtime/heapShaderFamily.js.map +1 -0
- package/dist/runtime/hybridScene.d.ts +133 -0
- package/dist/runtime/hybridScene.d.ts.map +1 -0
- package/dist/runtime/hybridScene.js +159 -0
- package/dist/runtime/hybridScene.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +9 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/renderTask.d.ts +21 -4
- package/dist/runtime/renderTask.d.ts.map +1 -1
- package/dist/runtime/renderTask.js +127 -32
- package/dist/runtime/renderTask.js.map +1 -1
- package/dist/runtime/runtime.d.ts +33 -3
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +12 -3
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/scenePass.d.ts +28 -3
- package/dist/runtime/scenePass.d.ts.map +1 -1
- package/dist/runtime/scenePass.js +37 -4
- package/dist/runtime/scenePass.js.map +1 -1
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.d.ts +35 -0
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.js +247 -0
- package/dist/runtime/textureAtlas/atlasMipGutterKernel.js.map +1 -0
- package/dist/runtime/textureAtlas/atlasPool.d.ts +240 -0
- package/dist/runtime/textureAtlas/atlasPool.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/atlasPool.js +798 -0
- package/dist/runtime/textureAtlas/atlasPool.js.map +1 -0
- package/dist/runtime/textureAtlas/bvhTree2d.d.ts +33 -0
- package/dist/runtime/textureAtlas/bvhTree2d.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/bvhTree2d.js +501 -0
- package/dist/runtime/textureAtlas/bvhTree2d.js.map +1 -0
- package/dist/runtime/textureAtlas/packer.d.ts +50 -0
- package/dist/runtime/textureAtlas/packer.d.ts.map +1 -0
- package/dist/runtime/textureAtlas/packer.js +390 -0
- package/dist/runtime/textureAtlas/packer.js.map +1 -0
- package/dist/window/loop.d.ts +14 -0
- package/dist/window/loop.d.ts.map +1 -1
- package/dist/window/loop.js +18 -5
- package/dist/window/loop.js.map +1 -1
- package/package.json +5 -4
- package/src/core/command.ts +9 -9
- package/src/core/renderTask.ts +55 -2
- package/src/resources/preparedRenderObject.ts +3 -3
- package/src/resources/uniformBuffer.ts +15 -0
- package/src/runtime/derivedUniforms/dispatch.ts +407 -0
- package/src/runtime/derivedUniforms/index.ts +52 -0
- package/src/runtime/derivedUniforms/recipes.ts +159 -0
- package/src/runtime/derivedUniforms/sceneIntegration.ts +239 -0
- package/src/runtime/derivedUniforms/slotId.ts +35 -0
- package/src/runtime/derivedUniforms/slots.ts +155 -0
- package/src/runtime/derivedUniforms/uberKernel.wgsl.ts +220 -0
- package/src/runtime/flattenTree.ts +46 -0
- package/src/runtime/heapAdapter.ts +314 -0
- package/src/runtime/heapEffect.ts +719 -0
- package/src/runtime/heapEffectIR.ts +1211 -0
- package/src/runtime/heapEligibility.ts +189 -0
- package/src/runtime/heapScene.ts +3981 -349
- package/src/runtime/heapShaderFamily.ts +1102 -0
- package/src/runtime/hybridScene.ts +310 -0
- package/src/runtime/index.ts +46 -0
- package/src/runtime/renderTask.ts +167 -32
- package/src/runtime/runtime.ts +37 -4
- package/src/runtime/scenePass.ts +39 -4
- package/src/runtime/textureAtlas/atlasMipGutterKernel.ts +291 -0
- package/src/runtime/textureAtlas/atlasPool.ts +991 -0
- package/src/runtime/textureAtlas/bvhTree2d.ts +530 -0
- package/src/runtime/textureAtlas/packer.ts +429 -0
- package/src/window/loop.ts +32 -6
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { Effect } from "@aardworx/wombat.shader";
|
|
2
|
+
export interface HeapEffectInput {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly wgslType: string;
|
|
5
|
+
readonly byteSize: number;
|
|
6
|
+
readonly location?: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* One field of the VS-output / FS-input inter-stage struct ("VsOut"
|
|
10
|
+
* conventionally). Drives the per-effect VsOut struct generated into
|
|
11
|
+
* the prelude — no hardcoded clipPos/worldPos/etc. The runtime stays
|
|
12
|
+
* agnostic to varying names, just like uniforms.
|
|
13
|
+
*/
|
|
14
|
+
export interface HeapVarying {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly wgslType: string;
|
|
17
|
+
readonly location?: number;
|
|
18
|
+
readonly builtin?: string;
|
|
19
|
+
readonly interpolation?: "smooth" | "flat" | "centroid" | "sample" | "no-perspective";
|
|
20
|
+
}
|
|
21
|
+
/** One texture binding the effect declares (post link + DCE). */
|
|
22
|
+
export interface HeapTextureBinding {
|
|
23
|
+
readonly name: string;
|
|
24
|
+
/** WGSL type expression, e.g. "texture_2d<f32>", "texture_cube<f32>". */
|
|
25
|
+
readonly wgslType: string;
|
|
26
|
+
}
|
|
27
|
+
/** One sampler binding the effect declares (post link + DCE). */
|
|
28
|
+
export interface HeapSamplerBinding {
|
|
29
|
+
readonly name: string;
|
|
30
|
+
/** WGSL type — "sampler" or "sampler_comparison". */
|
|
31
|
+
readonly wgslType: string;
|
|
32
|
+
}
|
|
33
|
+
export interface HeapEffectSchema {
|
|
34
|
+
readonly attributes: readonly HeapEffectInput[];
|
|
35
|
+
readonly uniforms: readonly HeapEffectInput[];
|
|
36
|
+
readonly varyings: readonly HeapVarying[];
|
|
37
|
+
readonly fragmentOutputs: readonly {
|
|
38
|
+
readonly name: string;
|
|
39
|
+
readonly location: number;
|
|
40
|
+
readonly wgslType: string;
|
|
41
|
+
}[];
|
|
42
|
+
readonly textures: readonly HeapTextureBinding[];
|
|
43
|
+
readonly samplers: readonly HeapSamplerBinding[];
|
|
44
|
+
}
|
|
45
|
+
export interface CompiledHeapEffect {
|
|
46
|
+
readonly rawVs: string;
|
|
47
|
+
readonly rawFs: string;
|
|
48
|
+
readonly schema: HeapEffectSchema;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Maps fragment-output names to framebuffer locations. Outputs not
|
|
52
|
+
* in the map are pruned by `linkFragmentOutputs`, which cascades
|
|
53
|
+
* through `pruneCrossStage` / `reduceUniforms` — uniforms that only
|
|
54
|
+
* fed the dropped outputs vanish from the schema entirely.
|
|
55
|
+
*/
|
|
56
|
+
export interface FragmentOutputLayout {
|
|
57
|
+
readonly locations: ReadonlyMap<string, number>;
|
|
58
|
+
}
|
|
59
|
+
export declare function compileHeapEffect(effect: Effect, fragmentOutputLayout?: FragmentOutputLayout): CompiledHeapEffect;
|
|
60
|
+
export interface DrawHeaderField {
|
|
61
|
+
readonly name: string;
|
|
62
|
+
readonly wgslName: string;
|
|
63
|
+
readonly wgslType: string;
|
|
64
|
+
readonly byteOffset: number;
|
|
65
|
+
readonly byteSize: number;
|
|
66
|
+
readonly kind: "uniform-ref" | "attribute-ref" | "texture-ref";
|
|
67
|
+
/**
|
|
68
|
+
* For `uniform-ref`: the uniform's underlying WGSL type. The
|
|
69
|
+
* rewriter uses this to pick the right inline read expression
|
|
70
|
+
* (mat4x4 → 4 vec4 reads, vec3 → 3 f32 reads, etc.).
|
|
71
|
+
*/
|
|
72
|
+
readonly uniformWgslType?: string;
|
|
73
|
+
/**
|
|
74
|
+
* For `attribute-ref`: the attribute's declared WGSL type. Drives
|
|
75
|
+
* the inline `attributeLoadExpr` when generating preamble lets.
|
|
76
|
+
*/
|
|
77
|
+
readonly attributeWgslType?: string;
|
|
78
|
+
/**
|
|
79
|
+
* For `texture-ref`: which sub-entry this is. Atlas-variant texture
|
|
80
|
+
* bindings expand into four contiguous drawHeader entries —
|
|
81
|
+
* `pageRef` (u32 slot index), `formatBits` (u32 packed sampler
|
|
82
|
+
* state + mip + format), `origin` (vec2<f32>, mip-0 top-left in
|
|
83
|
+
* normalized atlas coords), `size` (vec2<f32>, mip-0 size). The
|
|
84
|
+
* runtime packs these as inline values (not pool refs); the
|
|
85
|
+
* shader pass that consumes them lands in a follow-up PR.
|
|
86
|
+
*/
|
|
87
|
+
readonly textureSub?: "pageRef" | "formatBits" | "origin" | "size";
|
|
88
|
+
/** For `texture-ref`: the schema's logical texture binding name (shared by all four sub-entries). */
|
|
89
|
+
readonly textureBindingName?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface BucketLayout {
|
|
92
|
+
readonly drawHeaderFields: readonly DrawHeaderField[];
|
|
93
|
+
readonly drawHeaderBytes: number;
|
|
94
|
+
/** Generated WGSL prelude — bindings + per-effect VsOut struct. No helper fns, no DrawHeader struct. */
|
|
95
|
+
readonly preludeWgsl: string;
|
|
96
|
+
/** DrawHeader stride in u32 elements (drawHeaderBytes / 4). */
|
|
97
|
+
readonly strideU32: number;
|
|
98
|
+
/**
|
|
99
|
+
* Names (schema-side) of uniforms that vary per instance. Populated
|
|
100
|
+
* from `spec.instances.values` at addDraw time; the rewriter pulls
|
|
101
|
+
* these via `instanceLoadExpr` instead of `uniformLoadExpr`.
|
|
102
|
+
*/
|
|
103
|
+
readonly perInstanceUniforms: ReadonlySet<string>;
|
|
104
|
+
/**
|
|
105
|
+
* Names (schema-side) of attributes that vary per instance. Populated
|
|
106
|
+
* from `spec.instanceAttributes` at addDraw time. The rewriter
|
|
107
|
+
* indexes per-instance attribute reads by `iidx` (= `instance_index`
|
|
108
|
+
* the megacall path) instead of `vid`.
|
|
109
|
+
*/
|
|
110
|
+
readonly perInstanceAttributes: ReadonlySet<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Texture bindings: name + WGSL type + bind-group binding number
|
|
113
|
+
* (allocated starting at TEX_BINDING_START, after the four heap-
|
|
114
|
+
* data bindings 0–3 and the three megacall bindings 4–6).
|
|
115
|
+
*/
|
|
116
|
+
readonly textureBindings: readonly {
|
|
117
|
+
readonly name: string;
|
|
118
|
+
readonly wgslType: string;
|
|
119
|
+
readonly binding: number;
|
|
120
|
+
}[];
|
|
121
|
+
/** Sampler bindings, allocated after textures. */
|
|
122
|
+
readonly samplerBindings: readonly {
|
|
123
|
+
readonly name: string;
|
|
124
|
+
readonly wgslType: string;
|
|
125
|
+
readonly binding: number;
|
|
126
|
+
}[];
|
|
127
|
+
/**
|
|
128
|
+
* Atlas-routed texture binding names, exposed for the FS rewriter so
|
|
129
|
+
* it can substitute `textureSample(name, smp, uv)` with the heap
|
|
130
|
+
* `atlasSample(...)` helper for these names only.
|
|
131
|
+
*/
|
|
132
|
+
readonly atlasTextureBindings: ReadonlySet<string>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* First texture binding number; samplers come after the textures.
|
|
136
|
+
* Bindings 0–3 are the four heap arena views, 4–6 are megacall
|
|
137
|
+
* (drawTable, indexStorage, firstDrawInTile).
|
|
138
|
+
*/
|
|
139
|
+
export declare const HEAP_TEX_BINDING_START = 7;
|
|
140
|
+
/**
|
|
141
|
+
* Number of independent pages per format. Drives both the BGL slot
|
|
142
|
+
* count (N consecutive linear bindings + N consecutive srgb bindings
|
|
143
|
+
* + 1 sampler) and the shader's `switch pageRef` ladder. Must match
|
|
144
|
+
* `ATLAS_MAX_PAGES_PER_FORMAT` in `textureAtlas/atlasPool.ts`.
|
|
145
|
+
*/
|
|
146
|
+
export declare const ATLAS_ARRAY_SIZE = 8;
|
|
147
|
+
/** First atlas binding (linear texture for page 0). */
|
|
148
|
+
export declare const ATLAS_LINEAR_BINDING_BASE = 11;
|
|
149
|
+
/** First srgb atlas binding (= linear base + N). */
|
|
150
|
+
export declare const ATLAS_SRGB_BINDING_BASE: number;
|
|
151
|
+
/** Atlas sampler binding (= linear base + 2N). */
|
|
152
|
+
export declare const ATLAS_SAMPLER_BINDING: number;
|
|
153
|
+
export declare function buildBucketLayout(schema: HeapEffectSchema, _hasTextures: boolean, opts?: {
|
|
154
|
+
perInstanceUniforms?: ReadonlySet<string>;
|
|
155
|
+
perInstanceAttributes?: ReadonlySet<string>;
|
|
156
|
+
/**
|
|
157
|
+
* Names of schema texture bindings routed via the atlas binding-array
|
|
158
|
+
* path. Each such binding is dropped from `textureBindings` /
|
|
159
|
+
* `samplerBindings` and replaced with four `texture-ref` drawHeader
|
|
160
|
+
* fields (pageRef / formatBits / origin / size). Pass an empty set
|
|
161
|
+
* (default) for the standalone texture path.
|
|
162
|
+
*/
|
|
163
|
+
atlasTextureBindings?: ReadonlySet<string>;
|
|
164
|
+
}): BucketLayout;
|
|
165
|
+
/**
|
|
166
|
+
* Atlas prelude: declares N independent `texture_2d<f32>` bindings
|
|
167
|
+
* per format (linear + srgb), plus a shared atlas sampler. The N-way
|
|
168
|
+
* `switch pageRef` ladder picks the matching texture pair for each
|
|
169
|
+
* draw. Each atlas page is its own `GPUTexture` — adding pages to a
|
|
170
|
+
* format is just a fresh allocation slotted into the next BGL entry,
|
|
171
|
+
* no GPU-side `copyTextureToTexture` required.
|
|
172
|
+
*
|
|
173
|
+
* `binding_array<texture_2d<f32>, N>` would collapse the switch into
|
|
174
|
+
* a runtime index but requires Chrome's experimental bindless
|
|
175
|
+
* feature; the N-consecutive-bindings + switch pattern is native
|
|
176
|
+
* WebGPU 1.0.
|
|
177
|
+
*
|
|
178
|
+
* Mip filtering is software (the GPU's mip walk would walk the
|
|
179
|
+
* texture's mip chain, not our embedded Iliffe pyramid). LOD is
|
|
180
|
+
* computed from screen-space derivatives of `uv * size_px` in mip-0
|
|
181
|
+
* texels-per-screen-pixel.
|
|
182
|
+
*
|
|
183
|
+
* Sample math (verified by `tests-browser/atlas-sampling-conformance.test.ts`
|
|
184
|
+
* to match native hardware bilinear within 1 LSB across clamp/repeat/
|
|
185
|
+
* mirror at any uv):
|
|
186
|
+
* - Clamp: atlas_p = origin_px + clamp(uv, 0, 1) * size_px
|
|
187
|
+
* - Mirror: atlas_p = origin_px + mirrorUv(uv) * size_px
|
|
188
|
+
* - Repeat: atlas_p = origin_px + fract(uv) * size_px, then shift ∓1
|
|
189
|
+
* if within 0.5 atlas-pixel of the sub-rect edge, so
|
|
190
|
+
* hardware bilinear straddles the outer wrap-gutter ring.
|
|
191
|
+
* `origin_px` / `size_px` are atlas-pixel coordinates of mip-0, NOT
|
|
192
|
+
* normalized. Mip-k rect is computed by walking the integer floor-
|
|
193
|
+
* halving sequence that matches the CPU packer's pyramid layout.
|
|
194
|
+
* Each sub-rect (incl. every mip slot) carries a 2-px gutter (inner
|
|
195
|
+
* ring = clamp-replicate edge, outer ring = wrap = opposite edge)
|
|
196
|
+
* filled by the upload kernel; without it bilinear at the edges
|
|
197
|
+
* bleeds across sub-rect boundaries.
|
|
198
|
+
*/
|
|
199
|
+
export declare function generateAtlasPrelude(): string;
|
|
200
|
+
/**
|
|
201
|
+
* Emit `2 * ATLAS_ARRAY_SIZE + 1` binding declarations: N linear
|
|
202
|
+
* `texture_2d<f32>`, N srgb `texture_2d<f32>`, then the shared
|
|
203
|
+
* atlas sampler.
|
|
204
|
+
*/
|
|
205
|
+
export declare function generateAtlasBindings(): string;
|
|
206
|
+
/**
|
|
207
|
+
* Emit the `switch pageRef` ladder body for `atlasSampleAtMip`. Each
|
|
208
|
+
* case picks the matching `atlasLinear<i>` / `atlasSrgb<i>` decl and
|
|
209
|
+
* blends on `format == 1u`. The fallback (page out of range) is the
|
|
210
|
+
* function-level `vec4<f32>(0.0)` after the switch.
|
|
211
|
+
*/
|
|
212
|
+
export declare function generateAtlasSwitch(): string;
|
|
213
|
+
/** Atlas-texture varying names used by the VS→FS threading + FS preamble. */
|
|
214
|
+
export declare function atlasVaryingNames(name: string): {
|
|
215
|
+
pageRef: string;
|
|
216
|
+
formatBits: string;
|
|
217
|
+
origin: string;
|
|
218
|
+
size: string;
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Megacall VS prelude: binary-search `drawTable` (one record per slot,
|
|
222
|
+
* 5 u32s: firstEmit, drawIdx, indexStart, indexCount, instanceCount)
|
|
223
|
+
* for the slot owning the given `emitIdx`, then split the in-record
|
|
224
|
+
* offset into `(instId, vid)` so per-RO instancing collapses to one
|
|
225
|
+
* record + one drawIndirect. Defines:
|
|
226
|
+
* - `heap_drawIdx` — per-RO selector for header reads.
|
|
227
|
+
* - `instId` — instance index in [0, instanceCount-1].
|
|
228
|
+
* - `vid` — vertex index pulled from indexStorage.
|
|
229
|
+
*
|
|
230
|
+
* Layout: each record emits `indexCount * instanceCount` vertices.
|
|
231
|
+
* `local = emitIdx - firstEmit`, `instId = local / indexCount`,
|
|
232
|
+
* `vid = indices[indexStart + local % indexCount]`.
|
|
233
|
+
*/
|
|
234
|
+
export declare function megacallSearchPrelude(): string;
|
|
235
|
+
//# sourceMappingURL=heapEffect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heapEffect.d.ts","sourceRoot":"","sources":["../../src/runtime/heapEffect.ts"],"names":[],"mappings":"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"}
|