372 Commits over 304 Days - 0.05cph!
Implement indirect instancing without requiring monster meshes
Set correct stencil states in all sub shaders that are used by indirect instancing in order to emulate what Unity normally does during the GBuffer pass
Implement indirect instancing without requiring monster meshes:
- Use a command buffer to submit indirect draw calls referring to individual meshes
- Monster meshes are disabled by default
- Mesh Read/Write is no longer required
- Should reclaim ~3 GB of VRAM and RAM
- Calculate UV distribution metrics based on individual meshes rather than monster meshes
Instancing shaders now always access the IndirectDrawIndexedArgs buffer in order to retrieve the startInstance parameter which is no longer passed to Unity.
MegaMesh approach (1+2) WIP
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.
Add a function to estimate memory usage to the batching system
Move EstimateMeshBytes to an extension.
Allow drawing instances without making use of monster meshes.
Allow drawing instances without making use of monster meshes.
- 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
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
- 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
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)
Revert materials and models
Implemented support for instances in motion and other fixes
Culling performance improvements
Eliminate the need to update call indices because they are stable and can be stored with each command
Made `count` property report the highest populated index instead of the allocated space.
WIP work to speed up culling (AVX fix)
WIP work to speed up culling (AVX fix)
WIP work to speed up culling
WIP work to speed up culling
WIP work to speed up culling
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."
merge from indirect_instancing
Enable GPU instancing and Read/Write on 5913 assets
Removed references to RendererWrapper