Write the ordering a commit draws with, and return the instance count to
draw NOW (below count only while a growth's draw is held). One rule for
Points, Lines and GSplats.
APPEND (fromInstance > 0): the texel upload stays suffix-only and the
draw is HELD at the previous population in its previous order until the
grown population's own ordering lands (holdSortedIndexDrawForAppend).
The old sorted prefix plus a storage-order suffix would render two
independently ordered populations, and a full storage-order reset draws
the whole node unsorted for the 75-225 ms a large sort takes.
seedOrdering (a full write into a GROWN geometry that extends the
previous population): the same hold, seeded with the previous geometry's
drawn permutation (holdSortedIndexDrawFromSeed).
preserveOrdering (the commit path decides) keeps a same-count prior
while its re-sort lands; skipping that write also registers no new update
range.
repairFromCount on a count CHANGE rebuilds the existing permutation over
the new population rather than discarding it — an nD re-slice changes the
resident count at almost every step, so this is what a timelapse takes.
A vouched prior on a geometry whose draw is still HELD is only valid over
the DRAWN prefix, so it is repaired from there instead.
Anything else resets to identity, which re-homes the geometry on slot 0.
The commit path must therefore call depthSort.noteCommit after this
update: its immediate syncSortedIndexSlot pushes the new slot to visual
and pick materials before either can draw, and it releases a hold no
ordering will come for (an order-independent mode, depth sort off).
Write the ordering a commit draws with, and return the instance count to draw NOW (below
countonly while a growth's draw is held). One rule for Points, Lines and GSplats.fromInstance > 0): the texel upload stays suffix-only and the draw is HELD at the previous population in its previous order until the grown population's own ordering lands (holdSortedIndexDrawForAppend). The old sorted prefix plus a storage-order suffix would render two independently ordered populations, and a full storage-order reset draws the whole node unsorted for the 75-225 ms a large sort takes.seedOrdering(a full write into a GROWN geometry that extends the previous population): the same hold, seeded with the previous geometry's drawn permutation (holdSortedIndexDrawFromSeed).preserveOrdering(the commit path decides) keeps a same-count prior while its re-sort lands; skipping that write also registers no new update range.repairFromCounton a count CHANGE rebuilds the existing permutation over the new population rather than discarding it — an nD re-slice changes the resident count at almost every step, so this is what a timelapse takes.depthSort.noteCommitafter this update: its immediate syncSortedIndexSlot pushes the new slot to visual and pick materials before either can draw, and it releases a hold no ordering will come for (an order-independent mode, depth sort off).