4,179 Commits over 1,157 Days - 0.15cph!
Check if deathInfo.attackerName is null (no idea why this appeared on aux2 but need to fix to keep testing)
Merge from global_networked_bases -> aux2
Enable GPU instancing on brick roof material
Run Initialize() when leaving server to cleanup all arrays
Cleanup code of all schedulers
Merge from global_networked_bases -> aux2
Try ComputeBuffer.SetData() instead of ComputeBuffer.BeginWrite() when expanding the compute buffer
Merge from global_networked_bases -> aux2
Fix MaterialPropertyBlocks not having new ComputeBuffers assigned when the ComputeBuffer is "resized"
Merge from global_networked_bases -> aux2
More cleanup & hopefully fixes
Merge from global_networked_bases -> aux2
Update global_networked_bases/2021
Fix stackoverflow from typo
Fix setting DrawCallCount to material count instead of submesh count
Refactor & fix writing IndirectArgs
Refactor & fix initialization / cleanup of arrays + compute buffers
Fix IndirectArgs not being rewritten after expanding the compute buffer
Support renderers that have more submeshes than materials
Remove redundant testing convars
Merge from global_networked_bases -> aux2
Trying to fix errors that appear in CLIENT mode but not CLIENT + SERVER on craggy
Merge from global_networked_bases -> aux2
Fix IndirectArgs ComputeBuffer not expanding because it is 5 uint each draw call
Merge from global_networked_bases -> aux2 (bbq loot panel)
Merge from main -> global_networked_bases
Merge from global_networked_bases -> aux2
Cherrypick
84979 (BeginWrite two new compute buffers)
Fix 2021 to use BeginWrite() & EndWrite() on the two new ComputeBuffers (IndirectArgs & InstanceOffsets)
Update global_networked_bases/2021
Merge from global_networked_bases -> aux2
Add `use_command_buffers` command to toggle between Graphics.DrawMeshInstancedIndirect() and CommandBuffers
Can use convar at runtime to switch back and forfth
Added manually submitting draw calls back as CommandBuffers broke lighting & were slower after first iteration
Finally fixed the rendering so opaque geometry & shadows are kept in separate command buffers... although I would need to add the shadow commandbuffer to each light now
Give name to the the instanced CommandBuffer & CommandBuffers created by `CommandBufferSystem`
It now renders with the command buffer, just gotta figure out incorrect lighting, multiple meshes overlapping & lighting turning off every 1s
Submit DrawCalls via `CommandBuffer` instead of `Graphics.DrawMeshInstancedIndirect()`
Hook `MainCamera.OnPreCull()` via a `InstancedCameraComponent` instead of static Action
Change shaders to use a commandBuffer to get the start index of each drawcall instead of passing an index into each MaterialPropertyBlock
(not completely done, more of a stash)
Remove instanced rendering from furnace & planters as they require an extra color to be passed in
Some materials missed
Merge from main -> global_networked_bases
Merge from global_networked_bases -> aux2
See if small tweak fixes "virtual mesh not found"
Enabling material instancing on a few electrical materials (not custom instancing)
Missed the other CS files for `print_prefabs` changes
Print number of prefabs added, removed & sort `print_prefabs` by number of prefabs missed
Merge from global_networked_bases -> aux2
Fix initializing & destroying instanced rendering system not working (at least in editor)
Use default skinId for ShadowOnly renderers
Merge from global_networked_bases -> aux2
After much debugging, turns out trees weren't showing outside of network range due to the foliage-billboard shader missing one bit of instancing setup code
Merge from main -> global_networked_bases
Merge from global_networked_bases -> aux2
Add debug to figure out why trees are not showing as billboards
Only scale preculling data by 50% over 32MB and fix it overwriting data (plan to put in a new allocation system later, for now it's maybe 100MB wasted ram)
Fix ConstructionPlaceholder not being removed from building blocks