branchrust_reboot/main/global_networked_basescancel
377 Commits over 153 Days - 0.10cph!
Fix wooden shopfront door
Fix all door prefabs
- external gates
- cell door
- garage door
- square + triangle ladder hatch
- fence door
- double doors
Remove `StripEmptyChildren` from garage door & ladder hatch to fix codelocks
Remove instanced rendering from sleeping bag
Added `OnKilled()` hook to BaseNetworkable so it broadcasts deleted building blocks outside of network range & doesn't send them when you reconnect
Change `LogError` to `LogWarning` when calling Initialize twice
Remove `StripEmptyChildren` component from doors: was causing NRE when trying to attach codelock / keylock
Change shadow material from `watersplash-1` to `shadows`
Some ints not reset when disconnecting from server
Missed clearing recycledCells list
Fixed some Dictionarys not cleared when disconnecting
Ensure initialization and destroy are called only once (to avoid nativearray dispose errors)
Fix `print_global_entities` not actually printing the output
Fix error / crash when reconnecting to server
Missing whitespace at end of .meta?
Renamed `StripChildren` to `StripEmptyChildren` to clear up function of component
Fix empty children stripping to ensure normal stripping runs before empty gameobject stripping
Fix GlobalNetworkHandler not picking up all entities when first loaded into an existing save
Merge from main -> global_networked_bases
Mark if mesh is the highest LOD
Don't scale highest LOD by FOV or quality setting (to ensure all prefabs cull at the same distance regardless of your settings)
Add `supportsComputeShaders` to client performance analytics
Fix menu slider for "building distance" not having correct translate phrase
Fix GPU culling data not being updated when visibility of mesh is changed (to hide windmills & sam site placeholders inside network range)
Added `global_networked_bases` convar to disable networking of global building blocks server side
Log time taken to send all global entities to players
Merge from main -> global_networked_bases
Fix instanced meshes with 0 count writing 0 index & the culling system reading "0-700k" as the range for that mesh
Change `sliceIndexes` from a uint to a struct that has `startIndex` and `length` instead of reading the next index
Rename `sliceIndexes` -> `renderSlices`
Rename `sliceLengths` -> `sliceCounts`
Reconvert building blocks for instanced rendering
Mark roofs & windows as "global networked" (again?)
Start removing instanced rendering configs from non building block entities
Move culling mesh counts to GPUCulling class
Remove all workshop skin support since it is causing issues & we can do it properly later
Change test_instanced_culling to spawn prefabs in a predetermined grid shape to identify patterns of meshes that fail to display / disappear
Increase gc.buffer default to 4096 in the editor so big maps don't take forever to load
Update DrawCall buffer from CPU every frame for stability
Fix typo in GPUBuffer<> wrapper
Refactor & organize computebuffers with GpuBuffer<T> wrapper to ensure type safety & standardize the way computebuffers are expanded & created
Always clear the full memory of a ComputeBuffer when it is created
Default copy the existing ComputeBuffer over to the new one when expanding it
Write the entire DrawCall array to the ComputeBuffer when it expands
Some more cleanup
Turns out the fix for clearing buffers somehow got undone which explains all the strange behavior I was seeing
Write IndirectArgs inside a separate compute shader
Fix submeshes not having their indirect args properly offset
Refactor to clean up compute shaders
Clear temp buffer before culling
Adding some debug while chasing down building blocks being rendered with the wrong mesh
Fix flickering by using a separate buffer in the middle of culling & clearing separate buffer with a separate compute shader
Small refactoring of compute shaders
Cherrypick
85500 &
85501 (2021 compile fixes & remove BeginWrite)
Merge gpu_culling into global_networked_bases
Rename all instanced debug commands & remove redundant ones
Reimplement debugging commands with the new class structure & cell allocator
Re-enable burst on culling jobs
Fix RendererArray having initial capacity of 32k instead of 512 (typo) causing other arrays not to be resized alongside it
Fix DrawCallArray not resizing immediately after adding draw call
Fix IndirectArgs not scaling to 5x the size of the draw calls (for 5 uint each draw call)
Disable burst for all culling jobs
Added instanced rendering inside the SceneView (only runs inside editor)
Merge cell_pooling -> global_networked_bases
Merge cell_pooling -> global_networked_bases