4,053 Commits over 1,127 Days - 0.15cph!
Change tooltip for global rendering option & add tooltip for global render distance
Add menu option to turn instanced rendering on and off (called global rendering)
Rename `building_distance` to `global_render_distance`
Add `instanced_rendering` convar that is saved but only applies at startup
Merge from main -> global_networked_bases
Cherrypick
86832 (compile fixes)
Split InstancedPrefabConverter into 2 classes
Fix compile errors
Update global_networked_bases/2021
Increase initial size of mutlidraw buffer
Log info instead of error when resizing since it seems to work
Cherrypick
86780 (cache meshes for multidraw)
Fix multidraw convar so it's enabled by default
Cache meshes so we don't copy the same one to the GPU multiple times
Add memory usage of multidraw buffer
Tool to list all shaders (so we know what shaders to pay attention to)
Fix shaders to make cliffs work with multidraw
Set default mode of copying meshes via GPU (CPU mode has incorrect indicies for cliffs)
Standardize the way we detect meshes with read/write disabled
Update global_networked_bases/2021
Mark instancing meshes readable
Change path of prefab converter to only prefabs to speed it up
Update global_networked_bases/2021
Add `upload_multidraw_meshes_mode = 0` to control whether meshes are uploaded via the CPU or GPU
default to CPU upload meshes
Mark meshes readable for instancing
Add tool to ensure every single mesh used for instancing is marked read/write enabled
Fix global entities being hidden when leaving network range
Cherrypick
86740 (ensure mesh is uploaded to GPU)
Ensure mesh is uploaded to the GPU before we copy it to our ComputeBuffer
Fix twig foundation having renderers disabled in prefab
Only run StripEmptyChildren when instancing is enabled (don't believe this is the problem but better safe)
Update global_networked_bases/2021
Fix junkpile_i being invisible by cancelling instancing sooner when it is disabled via config
Don't global network parented entities (to fix tugboats)
Disable instancing on ice throne chair
Zero the entire `VertexData` struct instead of only color when copying the mesh on the GPU
Reimplement `#if UNITY_2021` after implementing GPU copy of meshes
Cherrypick
86650,
86651,86655 from global_networked_bases/2021 (compile fixes & GPU copy mesh for multidraw)
Merge gpu_copy_mesh -> global_networked_bases/2021
Copy mesh geometry to multidraw compute buffers via the GPU (avoids requirement of setting every mesh read/write enabled)
Fix compile errors in 2021
Update global_networked_bases/2021
More `#if UNITY_2021` checks
Bunch of `#if UNITY_2021` conditional compilation to keep it working on 2019
Merge from 2021 -> global_networked_bases
Merge from multidraw -> global_networked_bases/2021
Subtract
86589 (mark every building mesh as read/write enabled)
Fix demos not deleting instanced entities when changing keyframes
Cherrypick demo fix from global_networked_bases/2021/multidraw so they work in editor (and client?)
Merge from main -> global_networked_bases
Initialize & Dipose GeometryBuffer properly
Initialize instancing system when opening a demo (because you don't connect to server)
Add demo with fair amount of building blocks to test
Can specify normal rendering via GameSetup prefab in editor
Ensure ConstructionPlanner doesn't throw errors when instanced rendering is distanced via startup parameter
Fix material blocks still rebuilding every frame
Add some profiler samples
Enable shader keywords once per frame instead of once per draw call