69 Commits over 92 Days - 0.03cph!
Fix compilation error in StandardLayers.cginc
Renname ConVar.Batching.renderers → ConVar.Batching.enabled
Fix pass by reference in IndirectInstancingRenderer
Refresh RendererLOD, MeshLOD and MeshCull individually to reduce side effects
Improve and clarify Add() and Remove() handling in RendererBatch
Implement GetActiveComponent() to avoid processing disabled components when refreshing LODs
Pass instancing handle by reference to ensure it's always up to date
Rename LODCell.Timestamp → LastRefreshTimestamp
Pass instancing handle by reference to ensure it's always up-to-date
Make LODComponent's Hide() and Show() public
Make LODComponent's Hide() and Show() public
Merge from /indirect_instancing
Merge from /indirect_instancing (fix server build)
Merge from /main/indirect_instancing
Made indirect instancing system toggleable via ConVar indirect_instancing.enable and disabled by default
Fixed a bug collecting wrong statistics about unsupported shaders
Indirect Instancing: Add initial support for sub meshes
Indirect Instancing: Restored original bounds calculation (because draw order doesn't seem to matter) and other minor cleanups
Merge from branch /main/indirect_instancing to branch /Aux
DANGER: Enable Read/Write on ALL models project-wide
DANGER: Enable GPU instancing on ALL materials project-wide
Indirect instancing:
Add support for potentially any shader derived from Unity Standard, currently enabled for all shaders in the Standard/ folder.
Add support for MeshCull, RendererLOD and MeshLOD.
Add editor scripts to enable GPU instancing and Read/Write on all assets.
Use a nullable value for Color to allow future optimisations for non-coloured objects (most of them).
Add the camera component from code, but only once.
Rename instanding_id to instancing_handle.
Rename IndirectInstancingManager and IndirectInstancing to IndirectInstancing and IndirectInstancingCamera respectively for clariy.
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.