branchrust_reboot/main/indirect_instancingcancel
237 Commits over 243 Days - 0.04cph!
- Don't perform `graphics.aggressiveshadowlod` optimisation on shadow proxies.
- Only respect `indirect_instancing.shadows` when Indirect Instancing is enabled.
Force disable HLOD while Indirect Instancing is enabled
Remove unused compute shader from indirect instancing
Fix indirect instancing tools never actually applying material changes. (Again, because I love Plastic but it doesn't love me back)
Remove Standard+Wind from the list of supported shaders for indirect instancing as it caused some foliage to be rendered white.
Revert instancing flags on materials that were using Standard+Wind to their original state.
Set correct mip map bias when using indirect instancing
Make sure indirect instancing ConVars are disabled by default and saved
Fix a shader error in certain terrain shaders using _SecondaryDetail_Color
Remove RustRenderer (for now)
Implement IRefreshable and BroadcastRefresh as a better way to refresh InstancedLODComponent after colour changes.
Remove old damage tracker code and rename NativeDamageTracker → DamageTracker
Move `autoconnect` variable to `client.autoconnect`.
▉▆▇▋▅ ▅▋▍▇ ▍▌▊█▉▌▉▄_█▌▆▅▅▇▍_▇▊▅▅▅
Remove dead code and other cleanups from the code review
Revert shader changes that turned out to be not required for indirect instancing. (I'm glad. They didn't make any sense, either.)
Remove old unused LOD fading variant
Clean up instancing shader code and remove old instancing code
▆▋█▇▄▄-▇▅▄█ ▍▇▄▋▋▉█▇▅▋.▌▍▇▉▉ ▊▄▅
- Add support for material property blocks in the fallback renderer
- Fix retro tool cupboard transparency-related rendering issues
Enable more materials for instancing that weren't caught previously because of a buggy automation in indirect instancing tools
Linearise colour values before storing them in the instance data buffer
Cleanup/polish indirect instancing tools
Small Cleanups:
- use Mathf.NextPowerOfTwo in BufferList
- remove CommandMemoryBase.damage_bitmap
- revert changes to MainCamera
- remove FormerlySerializedAs in RendererLOD
Keep instancing disabled by default
Strip debug code out into separate files
Remove old unused job code
- Properly support material property blocks (for real this time)
- Disregard LOD minimum distance for the 0th LOD entry to prevent objects hiding from getting too close to them.
- Fix ConVars
- Various cleanups
Split crude profiler and memory tally into separate files as they should
- Add more ConVars and explainations to indirect instancing
- Disable indirect instancing by default
- Disable debug info by default
- Fix multiple NREs when returning to the main menu
- Add assertions to catch use after free with the crude profiler / memory tally
Check for AVX2 support instead of FMA because Burst won't compile for FMA specifically.
Enable 3052 materials for instancing
Final SIMD frustum culling implementation for x86/AVX and untested implementation for ARM/Neon
Fix ARM/Neon SIMD (and non-SIMD) code for frustum culling.
Implement NativeArray.ReinterpretLoad() for NativeArray.ReadOnly to avoid triggering concurrency checks.
Fix unity_BaseCommandID not being set on Mac
Fix stencil buffer incompatibility in Standard and Standard-Terrain