branchrust_reboot/main/indirect_instancingcancel
162 Commits over 212 Days - 0.03cph!
Added toggles to turn culling stages on and off
Small cleanups left over from a failed experiment
Make all buffer memory blocks have a Swap() function
Speed up instancing terrain culling by only walking a single wide ray from the top of the bounding box: "If you can't see the ears, then you can't see the cat."
Enable GPU instancing and Read/Write on 5913 assets
Removed references to RendererWrapper
Revert materials and meshes for merge
Implemented command reorganising: Ensures that indirect args that survived culling are contiguous in memory so that culled commands can be skipped. This speeds up the colour pass on the render thread by almost 2x.
Unify LOD showing/hiding logic and ensure that Hide() is called when a state is covered by instancing
do not copy shadow mode from renderer to avoid rendering shadows twice
Re-enabled instancing for the Nature/Cliff shaders
- Fixed invisible objects due to state information ending up wrong in the prefab pool
- Fixed method ambiguity build error in BufferList
- Merged aggressiveShadowLod optimisation into InstancedLODComponent
- Allow RendererLOD collapsing when instancing is enabled
- Added stats about fallback rendering to indirect instancing diagnostics
- Fixed shadow proxy detection
- Avoid leaking memory by actually destroying monster meshes before recreating them
- Found a way to unity instance adding/removal code under InstancedLODComponent. This is starting to look very solid now.
- Started extending BufferList to work with Span<T>
- Added ArrayPoolBufferList as an experiment
Fix compilation error about RecordUnsupportedMaterial
Removed some leftover debug stuff
- MeshCull, MeshLOD and RendererLOD are now able to add their states to the instancing system themselves without the need for a RustRenderer.
- Fully decoupled InstanceCreationInfo from *Renderer for more flexibility.
- Added an `autoconnect` ConVar (editor only) to speed up debugging on external servers
- Improved debugging by adding Robocop vision. New ConVar: indirect_instancing.debug
- Added InstancedLODComponent to cover the instancing needs of MeshCull, MeshLOD and RendererLOD
- Tools: Record unsupported materials during play mode so that they can be fixed later
- Tools: More progress bars for long operations
- InstancedDebugDraw: Fixed not updating properly due to missing damage tracking on the command buffer
- Introduced WrappedRenderer to intercept modifications from other parts of the code. It works, but I'm probably not going to keep this.
- Moved all the debug stuff to separate files
- Fixed a == vs. = typo in SoundDefinition.AutoAssignAudioClips
Enable instancing on all supported materials
Enable Read/Write on all prefab meshes
Don't fail builds when file timestamps could not be set
Improve automated indirect instancing tools
Bring back compute changes
Bring back supported shader changes and includes
Bring back prefab changes
Revert execution order changes
Revert changes to shader includes
Reverted changes to supported shaders
Revert changes to ProjectSettings
Remove instancing support from all non-standard shaders
Some .FBX.meta I didn't catch because they were uppercase
Revert even more .fbx.meta and .mat files to the state they have on /main
Subtract all .mat changes to investigate artifacting issues
Subtract all .fbx.meta changes to investigate artifacting issues
Fixed InstancedDebugDraw instance and command buffers initially bound to zero
Revert ProjectSettings.asset