branchrust_reboot/main/buoyancy_optimizationcancel

17 Commits over 0 Days - ∞cph!

17 Days Ago
merge from main
17 Days Ago
Burst the rest of buoyancy, now the batched version is 2-3x faster than the original. Still missing some edge cases but its functional for boats.
17 Days Ago
Remove flow map from shared burst data, I forgot to undo this change earlier.
17 Days Ago
- Reuse list buffer in water collision checks. - Add shared static accessor to TerrainMeta to access terrain position/size from burst. - Make more buoyancy native arrays persistent, reuse them. (temp job allocs seem a lot heavier than just temp allocs.) - Make GetFlowDirection easier to access from burst, not yet burst compiled - Burst compile GetBuoyancyWaterInfoBatched, temporarily remove deep underwater checks from it, we'll move deep water checks to a different code path. Things seem functional, but only slightly faster than the non batched version. A lot of terrain data access still isn't batched.
18 Days Ago
merge from main
18 Days Ago
Fix water collision jobs in buoyancy throwing exceptions due to temp allocator use.
18 Days Ago
Further optimize GetBuoyancyWaterInfoBatched, let topology queries run in burst(no batch yet), batch water ignores.
18 Days Ago
merge from main
18 Days Ago
Code clean up
18 Days Ago
Batched Buoyancy is now functional, but still missing some code and needs more optimization: - Move buoyancy data into persistent arrays and reuse them. - Add convar for switching between batched/old buoyancy. - Add 3D positions for water info step. - Add Ocean Simulation.GetHeights span overloads for interop with native arrays. (they still need a XZ3D step, otherwise we'd use the native arrays directly - TODO later.) - Add GetBuoyancyWaterInfoBatched. (wip, missing entity fast paths for inside terrain/above water) - Shim Ocean simulation into WaterSystem.GetHeightArray_Native, it's already batched, works for now.
19 Days Ago
Still heavily wip, run the watermap jobs from burst.
19 Days Ago
Start tracking buoyancy components to track them, split batches into deepsea/mainland.
19 Days Ago
merge from main to fix playmode
19 Days Ago
update from main
20 Days Ago
WIP, it's getting annoying to drag these changes across branches: - Move a good chunk of buoyancy into burst. - Add burst methods for filling buoyancy point data arrays. - Introduce methods for running buoyancy in a batch rather than on every component separately.
20 Days Ago
Make terrain height and shore vector methods readonly to indicate that they're pure.
20 Days Ago
Add indexer to pooled array, add extension for copying managed arrays into native arrays. (intended for smaller collections)