42 Commits over 61 Days - 0.03cph!
Merge from indirect_instancing (and main)
Load IndirectInstancing component in MainCamera.cs to avoid merge conflicts.
Disable certain features (layers, bounds, ...) in order to debug last week's performance regression.
merge from indirect instancing
Fixed unintended creation of material instances as well as unintended creation of command indexes when removing instances.
Merge from /indirect_instancing
Fixed a bug in the graphics buffer damage tracking where damage regions could be shrunk if they were adjacent to another smaller region, causing corrupted building parts to be rendered.
Various fixes about the colour buffer not being resized or copied correctly
merge from indirect_instancing
Add temporary debug error messages to diagnose the uninitialised component issue.
merge from indirect_instancing
Fix Awake() and OnDestroy() not being called for IndirectInstancing in standalone builds
merge from indirect_instancing
Add an additional null check when removing instances
Merge from indirect instancing
Indirect instancing fixes:
- Fixed shader compilation error (again)
- Fixed infinite loop condition causing application freeze
- Fixed colour buffer not being applied due to wrong type causing black building parts
- Fixed non-optimized instance buffer updates
- Fixed off-by-one bug preventing the very first building part from being rendered
- Fixed NullReferenceException when attempting to remove a renderer without a material
merge from indirect_instancing
Fixed missing namespace error in server build
/main/indirect_instancing:
merge from /indirect_instancing
Check if there is an instance of the indirect instancing component because apparently it's possible that we add/remove instances when there isn't an active camera.
merge from /indirect_instancing
Indirect instancing:
- Prevent NullReferenceException when attempting to remove instances without a MeshFilter component
- Fixed shader compilation error in the shadow pass
- Surround instancing code with `#ifdef CLIENT` for cleaner server builds
new merge from /main and /indirect_instancing
Added support for layers and per-instance colors to the indirect instanced renderer
Indirect Instancing:
- Remove delegate callbacks to avoid allocations at all costs
- Lots of clean-up / Removed some ugly hacks
- Use proper namespace namespaces
- Use a camera component for proper resource management
- Prefix all profiler regions with "Indirect." for an easy overview
re-merge from /indirect_instancing
Remove the massive lump of disabled code I forgot to delete
Merge indirect instancing
Implement indirect instanced rendering system
Enabled instancing on all materials.
merge /cpu_batching_instanced → /aux
Un-check Read/Write on all meshes
Added "Unmark Readable" Tool to remove Read/Write from meshes
Fixed instancing to work with non-read-write meshes
Merge /command_buffer_gc_fix to /main - Fix allocation of 62 bytes every frame
Merge from /main to continue old work