195 Commits over 182 Days - 0.04cph!
Hotfix: Clamp texture streaming budget to at least 4096 MB
Add terrain occlusion culling to the instanced renderer (WIP)
Add frustum culling to the instanced calls
Cherry pick quality_level_squash
Add texture streaming support to indirect instanced rendering
Automatically remove any meshes from the instancing system that have been destroyed by Unity for whatever reason.
Port all new fixes and refactors from InstancedDebugDraw to IndirectInstancing
Merge from quality_level_squash: Remove all quality levels but one
Merge from quality_level_squash
Remove all quality levels except one
Fix compilation due to renaming of FastDebugDraw to InstancedDebugDraw
Merge from vram_budget: Revamp texture streaming system
Disable texture streaming for ground_plants
Finalised texture streaming changes, removed complicated switching logic, added ground_plants atlas to exclude list
Merge from fast_debug_draw: More fixes
Various fixes and assertions to prevent further issues. I think we're good now. (Famous last words)
Merge from fast_debug_draw: Fix memory leak in DamageTracker
Fixed memory leak in DamageTracker
Merge from fast_debug_draw: Fix shaders on Mac/Metal
Move #pragma instructions from .cginc back to shader file to avoid confusing Unity.
Hopefully fix shader compilation on Metal due to missing support for geometry shaders. I can't test it, because literally every other platform supports geometry shaders.
Merge from vram_budget: Enable building atlasses for streaming
Started work on graphical texture optimisation tools (very much WIP). This will come in handy for future tuning of the texture streaming system. Especially once we get back to instancing. Hoo boy.
Enable building atlasses for mip level streaming. This might be a pandora's box, but it brings non-streaming texture memory to less than 1 GB, leaving plenty of room for streaming textures.
Merge from vram_budget: Improve texture selection
Change 4883 texture metadata for streaming
TextureOptimizationTools: Add function that changes only textures that should be streamable but aren't
Various fixes to the texture optimisation tools
Merge from vram_budget: Experimental new texture streaming
Apply "Make All Streamable" to 8294 textures
Add option "Make All Streamable" to texture optimisation tools based on Diogo's filter functions
Force texture mipmap streaming to be always on (experiment) and set the memory budget equal to available graphics memory.
Merge from fix_texture_streaming_2: Super cautious texture streaming enablement!
Be very cautious about enabling texture streaming. Only enable it if Texture.streamingTextureLoadingCount = 0 and Texture.allowThreadedTextureCreation = false. If not, set Texture.allowThreadedTextureCreation = false and try again in 1 second. One second is enough to upload a few textures, right?
Merge from fix_texture_streaming_2
Remove checking of Texture.streamingTextureLoadingCount during TextureStreaming.Update()