88 Commits over 92 Days - 0.04cph!
Cherry-pick marking DamageTracker `public`
Mark DamageTracker `public` (third attempt 😤 )
Mark DamageTracker `public` (again 🙄)
Mark DamageTracker `public`
Cherry-pick MemoryBlock, AllocatingMemoryBlock and DamageTracker to be used in FastDebugDraw
(Add) Pull out MemoryBlock, AllocatingMemoryBlock and DamageTracker into separate files so they can be reused. In a different directory this time, so Plastic may allow me to cherry-pick, please.
(Remove) Pull out MemoryBlock, AllocatingMemoryBlock and DamageTracker into separate files so they can be reused. In a different directory this time, so Plastic may allow me to cherry-pick, please.
FastDebugDraw WIP with fucking new files
Add Assets/Scripts/Rendering/Instancing/Indirect directory, hoping that Plastic shuts up about stupid directory conflicts
(Add) Pull out MemoryBlock, AllocatingMemoryBlock and DamageTracker into separate files so they can be reused by /main/fast_debug_draw
(Remove) Pull out MemoryBlock, AllocatingMemoryBlock and DamageTracker into separate files so they can be reused by /main/fast_debug_draw
Use FastDebugDraw to draw debugging information of IndirectInstancing
Merge from /fast_debug_draw
First iteration of the FastDebugDraw component, shader and material
Collect debug information about whether the color supplied by RendererBatch matches the color in the material property block
Restructure handling of debug code in IndirectInstancingCamera
Indirect Instancing: Initial support for material propery blocks (only _Color so far)
Fix shader compilation issue in Particles/Pixel Lit 6-Point shader
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.