4,182 Commits over 1,157 Days - 0.15cph!
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
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