split_into_stream_batches

Function split_into_stream_batches 

Source
pub fn split_into_stream_batches(geometry: &[u8]) -> Option<Vec<ReplayBatch>>
Expand description

Split a cached geometry blob into its batches for a CROSS-BATCH client (#5407): each batch keeps its whole-stream offsets and states the bases its vertex and index tables start at, exactly as the live cross-batch stream does. Works on a blob either kind of stream wrote, because a batch-local stream’s cache rows are whole-stream too and simply never point backwards.

The batches are the MESH table’s row groups; the vertex and index tables are not split by theirs. A batch whose every row points back emits no vertices, and an empty write adds no row group, so those two tables can hold fewer groups than there were batches. What locates a batch’s slice instead is the planner’s own invariant: a batch appends its new shapes contiguously at the running end, and every shape it emits is referenced by one of its rows, so the batch ends at the furthest range its rows name. The spans must tile both tables exactly, or the blob is refused (None).