3,110 Commits over 915 Days - 0.14cph!
Merge from main -> full_server_demos
Pass prefab import context into DoPrepare but didn't end up speeding up imports or builds
Apply `IDoPrepare` interface to all components with the reflection "DoPrepare"
Change `Rust.Editor.ForceLabel()` to not save the asset (you can't save to disk when importing)
Remove all "SavePrefabAsset()" calls inside `DoPrepare()` methods
Remove all `SetDirty()` calls inside `DoPrepare()`
See if we can skip the "PreparePrefabs" part of build process by moving prefab processing from build step -> import step
- add AssetPostprocessor to call "DoPrepare" methods while assets are being imported
- add IDoPrepare interface to replce the reflection based method
merge optimize_build_generate_manifest -> main
(test if it makes a difference)
Apply `AssetDatabase.StartAssetEditing()` to the entire "Update Game Manifest" instead of just "Prefab Prefabs"
Merge from main -> full_server_demos
Don't upload demos when `upload_demos` is set false or when `upload_url` is unset
Rename variables inside `FullServerDemos.cs` to be as readable as possible
Add `upload_demos` convar to turn off uploading and keep it on disk
Missed one file for CS0197
Fix CS0197 warnings
- change static method `NetRead.Free( ref NetRead )` to `NetRead.RemoveReference()`
- move `Interlocked.Increment()` into `NetRead.AddReference()`
Fix the server recording inbound packets twice: once from decryption thread & once on the main thread
Don't split up PacketId and the rest of the packet
Cleanup variable names
Fix writing packet length directly to the FileStream instead of the Writer.BaseStream
Improve benchmark demo command
Merge from main -> full_server_demos
Disable global networked bases until we get a fully custom rendering pipeline
Add `benchmark_demo_upload` to ensure we don't overload the game server when uploading blobs
Prevent assets from reimporting (by calling AssetDatabase.StartAssetEditing) when calling `PreparePrefabs` during build
Cut down time from 1000s -> 30s: will it work in practice?
Fix NRE when trying to access null string ConVars (changed codegen)
Run codegen
▇▉█▋█ ▍▍▌▄█▆▇▇ ▍▅▌▄▅▅██▇▇ ▅▉█▉█ ▅▅▇▆▉▉▍ ██▉▄▄▉▄▄▌▇▋ ▊▆▄▉ ▆▄▅▇▋▍ / ▅▇▅▍▇▉▊▍▅ ▍▌ ▋▍▊ ▇▉▄▅▍▇
Merge from main -> full_server_demos
Try catch all parts of demo thread (incase of error on startup)
Try to create demo directory in multiple places (incase it gets deleted or changed by users)
(this will also kick off a new build)
Don't record raknet packets used to establish a connection
Change default flush interval from 1 min -> 5 min
Store session start timestamp (when demo recording started) in header
Use connection Guid instead of dictionary in player lookup (to avoid players reconnecting causing issues)
- change DemoPlayerInfo.SteamId -> Guid (ulong technically)
Change path to `server-demos/{serverid}/sessions/{sessionid}/{chunkid}.sdem` (to make it easier to navigate in azure)
Fix compressedSize in demo header being incorrect (FileStream.Length > FileStream.Position)
Switch from `demo_server_id` -> `server_id` convar
- save across restarts
- set server_id on startup if not set
Remove `upload_token` convar, rely on putting SAS token in upload endpoint for now (can polish later once we figure out how we want to refresh tokens)
Fix hardcoded "test" container and use the container from the SAS url
Merge from main -> full_server_demos
Refactor into multiple .cs files as the code has grown
Delete demos off disk past a certain quota to avoid consuming entire disk during upload failure
Add `server_demo_disk_space_gb` (default 30GB)
Allow server demos to be turned on and off at runtime
Only disable frustum culling if one of the mirrors cameras is enabled (to avoid an inactive/disabled camera turning off frustum culling)
Mark new building meshes as readable = true so they work with multidraw
Add `print_instanced_draw_calls` to print draw calls (including how many are batched by multidraw)
Allows us to spot materials that have the wrong settings to help reduce draw calls needing to be submitted by the CPU
Merge from gnb_shadow_material_improvements -> gnb_support_new_building_skins
Enable instancing on building skin materials
Re-run converter on building block prefabs to convert all new building skins to instanced rendering
merge from test_gnb_memory_leak -> main
(fix GNB memory leak)
Fix the shadow materials of a bunch of building block renderers
Add additional funcitonality to `List Shadow Materials` to fix the materials (convert all ShadowOnly materials to use "shadow" material)
Fix GNB memory leak (submitting draw calls to disabled cameras will leak memory)
Add `instantiate_test` command to test new InstantiateAsync() method
Update CurrentVersion.cs to 2022.3
12k .meta files after it reimported a bunch of textures
ProjectVersion 2021.3.35f1 -> 2022.3.20f1
Manually commenting out audio import deprecation so it compiles
Unity auto-upgrading C# from 2021->2022