Reuse loose geometry during selection (and other operations) from
previous calculation. Loose geometry stays the same, but was
recalculated to determine the size of GPU buffers. This patch would
reuse the previous loose geometry when geometry wasn't changed.
Although not the main bottleneck during selection it is measurable.
Master.
{F10133811}
`rdata 46ms iter 55ms (frame 410ms)`
This patch.
{F10133814}
`rdata 5ms iter 52ms (frame 342ms)`
## TODO
Current implementation uses a load/update + store approach. This could also be changed to loose_geometry_ensure + loose_geometry_load. Which makes it more clear that the geometry is owned by the cache.