4,179 Commits over 1,157 Days - 0.15cph!
Disable burst for all culling jobs
Added instanced rendering inside the SceneView (only runs inside editor)
Merge cell_pooling -> global_networked_bases
Return List<CellId> to pool when a partition removes the last cell in it's list
Merge cell_pooling -> global_networked_bases
Fix "RemovePackedCell" -> "RemoveCellWithSpace"
Fix protobuf generated code
Merge from global_networked_bases -> aux2
Re-convert building block prefabs after merge from main
Added warning instead of error when calling BeginWrite twice
Fixed typo and assigning IndirectArgs twice (instead of IndirectExtraArg)
Reimplement BeginWrite / EndWrite & 2021 compile errors fixed
Subtract
85263 (merge from global_networked_bases)
Update global_networked_bases/2021
Merge from global_networked_bases -> aux2
Move CellPartition to it's own cs file
Add pooling to cell allocator system
Merge from main -> global_networked_bases
Fixed meshes randomly disappearing due to using draw call index instead of renderer index
Merging rewrite back into global_networked_bases
Reconverted all building block prefabs & now all roofs work
Fixed converter not overwriting buildingblock prefabs when using converting tool
Reimplemented LOD level inside InstancedLODState config class
Fixed NativeArray of render data not being resized when the computebuffer is resized
Fix IndirectExtraArg being multiplied by 5, causing meshes to render on top of eachother
Fix typo causing distance culling to use fov scale instead of max distance (culling everything)
Fix & refactor cell removal code
More refactoring & fixes
Fixed IndirectArgs buffer being set to Structured accidently (which silently fails)
Rewrote "MeshScheduler" into 5+ different classes and split responsibilities
Replaced block allocator with fixed size cell allocator
Refactored tons of code to make it readable, organized and reliable
Add `force_lod_level` convar to force the culling system to only accept certain LOD levels (and bypass culling for them) to narrow down why certain LODs are disappearing "randomly"
Store LOD level of each mesh in `InstanceLODState`
Still debugging mesh culling randomly breaking
Merge from global_networked_bases -> aux2
Region out client analytics variables that are "assigned but never used" when compiling client
Move shadows to their own grids
Distance cull both meshes & shadows
Only frustum cull meshes
Merge from global_networked_bases -> aux2
Fix `test_instancing_culling` spawning prefabs outside of the map and overloading the "out of map" grid
Fix "outside of map" grid not having a gridId set and looking like grid #0
Refactor RendererJobData to store ShadowMode instead of "IsOnlyShadow"
Refactor culling system to completely ignore shadows
Change InstancedScheduler script update order to near the end
Count number of meshes & shadows separately
Add number of rendered meshes, shadows & draw calls for instancing to `perf 8`
Add average number of meshes & shadows drawn to client performance analytics
Add `print_instanced_grid {id}` and `print_instanced_grids` to print meshes per grid for debugging
Add menu option for instanced rendering called "Building Distance" (it also handles cliffs but yea)
Clamp instanced rendering distance from 500 - 2500
Take lower of draw distance vs instanced render distance when culling
Run codegen to apply convar descriptions
Add description to all convars
Merge from global_networked_bases -> aux2
Add clientside performance analytics for instanced rendering
- culling time
- draw calls
- render distance
- size of compute buffers & arrays
- mesh count
- prefab count
- entity count
Merge bbq loot panel prefab fix from main
84947 -> aux1
Fix armored double door & triangle ladder hatch prefabs getting "deleted" during a merge from attack heli and then throwing error when you try to respawn
Add `shadow_culling` convar to toggle culling of shadows for instanced rendering
Disable shadow culling by default
Fix meshes with skins registering a extra renderer
Add `instanced_memory_usage` command to print off size & memory usage of every array used for instanced rendering
Remove some redundant convars
Add `--instanced-rendering` convar to turn instanced rendering on (if we need it default disabled)
Merge lifestory fix to aux2