branchrust_reboot/main/indirect_instancingcancel
221 Commits over 243 Days - 0.04cph!
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
Merge from ./command_buffer_indirect because I'm stupid
Merge from ./command_buffer_indirect
Added debug functions to get a list of the largest meshes in VRAM and a counter to keep track of transparent calls in indirect instancing.
- Added a crude way to estimate mesh VRAM and RAM usage
- Added a command to find duplicate meshes in the instancing system
Added a crude profiler that works in release builds
More toggleables: merge_damage (fixed), motion_list, remove_queue
Split MotionList in separate file
- fixed mip level calculation errors for fallback objects
- fixed fallback objects not properly updating when in motion
Implement texture streaming support for the instanced fallback renderer
Remove CombineTrivialDistancesJob
Fix NRE when trying to move an instance that previously failed the instancing checks
Prepare models and materials for instancing (once again)