3,588 Commits over 1,007 Days - 0.15cph!
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
Remove code that assigns material blocks every frame (good for testing, not for performance)
Only update material blocks when buffers have changed
Move from a ComputeBuffer for each type of vertex attribute to a single ComputeBuffer for all vertex data in a single struct
Move code that copies mesh to ComputeBuffer into GeometryBuffer.cs
Additional methods in GPUBuffer wrapper
Enable procedural instancing on blend shader
Log error when mesh used for instancing doesn't have read/write enabled
Ensure every prefab for instancing is warmed up in the editor
Mark every single building block mesh as read/write enable (NOTE: this cannot be merged to 2019!)
Add shader to InstancedScheduler (2021 prefabs not compatible with 2019)
Copy meshes into the single geometry buffer via a shader to deal with meshes with Read/Write disabled
Fix start vertex of multidraw being incorrect
Some cleanup
Show draw call count with multidraw in perf 7 properly
Move the temp manually assigning of computebuffers every frame above the loop that skips values
Fix mutlidraw count not being reset when new meshes are added
Ensure that non-multidraw instanced rendering still works to compare & see what is broken
Add all other mesh data to buffers & ensure they are assigned inside the shader: all uvs, normals, tangents, colors
Ensure all buffers are diposed
Fix draw calls so uvs at least work
Add MaterialCache so we can enable `RUST_PROCEDURAL_INSTANCING` on materials without modifying the source materials in the editor
Various fixes
Log when players mount & dismount vehicles
Log when burst mode is enabled & if the gunshot had burst mode on