@aardworx/wombat.rendering 0.19.23 → 0.19.25
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/elementType.d.ts +2 -0
- package/dist/core/elementType.d.ts.map +1 -1
- package/dist/core/elementType.js +10 -0
- package/dist/core/elementType.js.map +1 -1
- package/dist/core/provider.d.ts.map +1 -1
- package/dist/core/provider.js +65 -32
- package/dist/core/provider.js.map +1 -1
- package/dist/core/renderObject.d.ts +9 -0
- package/dist/core/renderObject.d.ts.map +1 -1
- package/dist/resources/preparedRenderObject.d.ts.map +1 -1
- package/dist/resources/preparedRenderObject.js +19 -2
- package/dist/resources/preparedRenderObject.js.map +1 -1
- package/dist/runtime/derivedModes/modeKeyCpu.d.ts +2 -12
- package/dist/runtime/derivedModes/modeKeyCpu.d.ts.map +1 -1
- package/dist/runtime/derivedModes/modeKeyCpu.js +30 -13
- package/dist/runtime/derivedModes/modeKeyCpu.js.map +1 -1
- package/dist/runtime/derivedModes/partitionDispatcher.d.ts +11 -0
- package/dist/runtime/derivedModes/partitionDispatcher.d.ts.map +1 -1
- package/dist/runtime/derivedModes/partitionDispatcher.js +31 -0
- package/dist/runtime/derivedModes/partitionDispatcher.js.map +1 -1
- package/dist/runtime/derivedUniforms/dispatch.d.ts +5 -1
- package/dist/runtime/derivedUniforms/dispatch.d.ts.map +1 -1
- package/dist/runtime/derivedUniforms/dispatch.js +28 -13
- package/dist/runtime/derivedUniforms/dispatch.js.map +1 -1
- package/dist/runtime/derivedUniforms/records.d.ts +15 -0
- package/dist/runtime/derivedUniforms/records.d.ts.map +1 -1
- package/dist/runtime/derivedUniforms/records.js +81 -14
- package/dist/runtime/derivedUniforms/records.js.map +1 -1
- package/dist/runtime/derivedUniforms/sceneIntegration.d.ts +6 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.d.ts.map +1 -1
- package/dist/runtime/derivedUniforms/sceneIntegration.js +9 -0
- package/dist/runtime/derivedUniforms/sceneIntegration.js.map +1 -1
- package/dist/runtime/flattenTree.d.ts.map +1 -1
- package/dist/runtime/flattenTree.js +46 -2
- package/dist/runtime/flattenTree.js.map +1 -1
- package/dist/runtime/heapAdapter.d.ts +3 -1
- package/dist/runtime/heapAdapter.d.ts.map +1 -1
- package/dist/runtime/heapAdapter.js +42 -4
- package/dist/runtime/heapAdapter.js.map +1 -1
- package/dist/runtime/heapDecoder.d.ts.map +1 -1
- package/dist/runtime/heapDecoder.js +8 -3
- package/dist/runtime/heapDecoder.js.map +1 -1
- package/dist/runtime/heapEffect.d.ts +14 -1
- package/dist/runtime/heapEffect.d.ts.map +1 -1
- package/dist/runtime/heapEffect.js +13 -1
- package/dist/runtime/heapEffect.js.map +1 -1
- package/dist/runtime/heapEffectIR.d.ts.map +1 -1
- package/dist/runtime/heapEffectIR.js +18 -9
- package/dist/runtime/heapEffectIR.js.map +1 -1
- package/dist/runtime/heapEligibility.d.ts.map +1 -1
- package/dist/runtime/heapEligibility.js +64 -12
- package/dist/runtime/heapEligibility.js.map +1 -1
- package/dist/runtime/heapIrBuilders.d.ts +8 -0
- package/dist/runtime/heapIrBuilders.d.ts.map +1 -1
- package/dist/runtime/heapIrBuilders.js +47 -2
- package/dist/runtime/heapIrBuilders.js.map +1 -1
- package/dist/runtime/heapScene/chunkedArena.d.ts +20 -28
- package/dist/runtime/heapScene/chunkedArena.d.ts.map +1 -1
- package/dist/runtime/heapScene/chunkedArena.js +28 -91
- package/dist/runtime/heapScene/chunkedArena.js.map +1 -1
- package/dist/runtime/heapScene/freelist.d.ts +1 -1
- package/dist/runtime/heapScene/freelist.js +3 -3
- package/dist/runtime/heapScene/freelist.js.map +1 -1
- package/dist/runtime/heapScene/pools.d.ts +103 -59
- package/dist/runtime/heapScene/pools.d.ts.map +1 -1
- package/dist/runtime/heapScene/pools.js +335 -194
- package/dist/runtime/heapScene/pools.js.map +1 -1
- package/dist/runtime/heapScene.d.ts +116 -1
- package/dist/runtime/heapScene.d.ts.map +1 -1
- package/dist/runtime/heapScene.js +581 -125
- package/dist/runtime/heapScene.js.map +1 -1
- package/dist/runtime/hybridScene.d.ts.map +1 -1
- package/dist/runtime/hybridScene.js +19 -3
- package/dist/runtime/hybridScene.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/package.json +1 -1
- package/src/core/elementType.ts +10 -0
- package/src/core/provider.ts +56 -28
- package/src/core/renderObject.ts +9 -0
- package/src/resources/preparedRenderObject.ts +22 -3
- package/src/runtime/derivedModes/modeKeyCpu.ts +26 -11
- package/src/runtime/derivedModes/partitionDispatcher.ts +30 -0
- package/src/runtime/derivedUniforms/dispatch.ts +26 -10
- package/src/runtime/derivedUniforms/records.ts +70 -15
- package/src/runtime/derivedUniforms/sceneIntegration.ts +10 -0
- package/src/runtime/flattenTree.ts +47 -2
- package/src/runtime/heapAdapter.ts +40 -5
- package/src/runtime/heapDecoder.ts +8 -3
- package/src/runtime/heapEffect.ts +15 -1
- package/src/runtime/heapEffectIR.ts +18 -9
- package/src/runtime/heapEligibility.ts +39 -12
- package/src/runtime/heapIrBuilders.ts +50 -2
- package/src/runtime/heapScene/chunkedArena.ts +29 -94
- package/src/runtime/heapScene/freelist.ts +3 -3
- package/src/runtime/heapScene/pools.ts +340 -218
- package/src/runtime/heapScene.ts +717 -141
- package/src/runtime/hybridScene.ts +20 -3
- package/src/runtime/index.ts +5 -0
|
@@ -197,19 +197,33 @@ export function compileHybridScene(
|
|
|
197
197
|
// toggle — flipping that off forces every RO to legacy.
|
|
198
198
|
const heapEnabled = opts.heapEnabled ?? AVal.constant(true);
|
|
199
199
|
const eligCache = new WeakMap<RenderObject, aval<boolean>>();
|
|
200
|
+
const notEligCache = new WeakMap<RenderObject, aval<boolean>>();
|
|
200
201
|
const elig = (ro: RenderObject): aval<boolean> => {
|
|
201
202
|
let av = eligCache.get(ro);
|
|
202
203
|
if (av === undefined) {
|
|
203
204
|
const perRO = isHeapEligible(ro);
|
|
204
|
-
|
|
205
|
+
// Constant collapse (static RO + constant heapEnabled): a plain
|
|
206
|
+
// constant instead of a custom aval + two subscriptions per RO.
|
|
207
|
+
av = heapEnabled.isConstant && perRO.isConstant
|
|
208
|
+
? AVal.constant(heapEnabled.force(/* allow-force */) && perRO.force(/* allow-force */))
|
|
209
|
+
: AVal.custom(t => heapEnabled.getValue(t) && perRO.getValue(t));
|
|
205
210
|
eligCache.set(ro, av);
|
|
206
211
|
}
|
|
207
212
|
return av;
|
|
208
213
|
};
|
|
214
|
+
const notElig = (ro: RenderObject): aval<boolean> => {
|
|
215
|
+
let av = notEligCache.get(ro);
|
|
216
|
+
if (av === undefined) {
|
|
217
|
+
const e = elig(ro);
|
|
218
|
+
av = e.isConstant ? AVal.constant(!e.force(/* allow-force */)) : e.map(b => !b);
|
|
219
|
+
notEligCache.set(ro, av);
|
|
220
|
+
}
|
|
221
|
+
return av;
|
|
222
|
+
};
|
|
209
223
|
|
|
210
224
|
const flat = flattenRenderTree(tree);
|
|
211
225
|
const heapAset = flat.filterA(ro => elig(ro));
|
|
212
|
-
const legacyAset = flat.filterA(ro =>
|
|
226
|
+
const legacyAset = flat.filterA(ro => notElig(ro));
|
|
213
227
|
|
|
214
228
|
// ─── Atlas pool ──────────────────────────────────────────────────
|
|
215
229
|
// Per-scene Tier-S atlas pool. Owned by this hybrid scene; disposed
|
|
@@ -231,7 +245,9 @@ export function compileHybridScene(
|
|
|
231
245
|
const heapSpecAset = heapAset.map((ro: RenderObject) => {
|
|
232
246
|
let spec = specCache.get(ro);
|
|
233
247
|
if (spec === undefined) {
|
|
234
|
-
spec = renderObjectToHeapSpec(ro, AdaptiveToken.top, atlasPool
|
|
248
|
+
spec = renderObjectToHeapSpec(ro, AdaptiveToken.top, atlasPool, {
|
|
249
|
+
enableDerivedUniforms: opts.enableDerivedUniforms !== false,
|
|
250
|
+
});
|
|
235
251
|
specCache.set(ro, spec);
|
|
236
252
|
}
|
|
237
253
|
return spec;
|
|
@@ -291,6 +307,7 @@ export function compileHybridScene(
|
|
|
291
307
|
__legacyCount(): number {
|
|
292
308
|
return scenePass.collect().length;
|
|
293
309
|
},
|
|
310
|
+
|
|
294
311
|
heapDerivedTimings() {
|
|
295
312
|
const s = heapScene.stats;
|
|
296
313
|
return {
|
package/src/runtime/index.ts
CHANGED