4,537 Commits over 1,280 Days - 0.15cph!
Cherrypick
134447 (fix steam being accessed too soon in client analytics)
merge from fix_steam_init_analytics -> naval_update
Fix steam analytics occasionally throwing errors due to trying to get the steam ID for analytics before steam has been initialized in the editor
merge from fix_terrain_texturing_alloc -> main
Switch TerrainTexturing from managed array Color[] to NativeArray<Color> and use the temp allocator
- reduces heap watermark being pushed up while loading map, though watermark is pushed higher by other parts of client loading still
merge from fix_deep_sea_portal_far -> naval_update
Try to keep the deep sea portal 600m from the edge of the map so it leaves space for oil rigs rather than being 1.5km+ from shore
- still clamp to maximum distance of 4km from center of map
merge from fix_deep_sea_network_layer -> naval_update
Fix not being subscribed to deep sea network group, switch from using center of network grid bounds to using the layer
Fix deep sea network groups being visible if you get close enough to the border, and vise-versa for main island network groups
- move deep sea groups onto their own layer despite being in the same physical height
merge from fix_ghost_ship_parenting -> naval_update
Add a couple of `parent.ShouldChildrenInheritNetworkGroup()` that were missing beside existing `ShouldInheritNetworkGroup()` calls
- should fix NPCs parented to ghost ships being global networked instead of local
merge from qol_dump_improvements -> main
Potential fix for DontDestroyInScene having too many objects
More improvements
- add profiler samples around each area so you can see why the whole dump takes 5+ seconds
- add Hierarchy.Total that shows total size of each part of hierarchy + all children (so you can see what hierarchy has 100k+ components)
merge from main -> qol_dump_improvments
merge from fix_blueprint_itemid -> main
Revert advanced BP fragment to old item id and apply FreezeItemid label
Prevent ItemDefinition from recaulating it's ItemId if the asset has the `FreezeItemId` label
- exposing as label instead of bool so people don't actively use this hack
Number of improvements to the dump command
- TLDR sometimes the scene files were correct, sometimes the overall information was correct, now scenes & overall information should be correct
- create a dump for the "DontDestroyOnLoad" scene (it's not really a scene but contains all our PrefabWarmup components)
- for certain dump text files, create separate files for active vs inactive objects
- fix only dumping the active roots and not all roots, active & inactive
merge from fix_chat_message_logs -> main
Try to fix linux compile error again
merge from fix_chat_messages_logs -> main
Fix compile error on linux server build
Fix chat messages not being logged to the logfile, only to the server console
merge from update_manifest_oct_25 -> main
Prefab changes after generating manifest
Delete client_modding ophaned prefab to fix GenerateManifest() throwing exception
merge from optimize_water_body_culling -> main
Add a bunch of profiler samples to other things in OnPreCull() and code that uses CommandBufferManager to clarify profiling output
Fix typo in CommandBuffer.EndSample() name
Start with simple culling of frustum planes on main thread
- cuts command buffer from 0.40ms -> 0.10ms (0.20ms on 2.5km render range?), increases creation of CommandBuffer from 0.10ms -> 0.13ms
- add more profiler samples
Add sample names to the FillCommandBuffer_Depth CommandBuffer so you can see how long the WaterCamera part of the command buffer takes and how long specifically for lakes and rivers to render
merge from optimize_auth_list -> main
merge from optimize_findbyid -> main
merge from naval_update -> deep_sea
merge from fix_boat_drift -> naval_update
Shrink ValidBounds back to 8km * 8km (old size) and rely on ValidBounds checking the DeepSeaBounds separately (we already added it but were both increasing the size & checking if the entity was inside the deep sea)
Try again because I didn't realize we check both worldBounds (hardcoded physx area) and TerrainMeta.Margin (TerrainSize * 3) inside ValidBounds, so need to account for both of those
Modify distance portal spawns so it always spawns far enough inside that the world repel force won't affect it
Expose world boundary repel force as convars instead of hardcoded
- world_boundary_force_start_distance
- world_boundary_force_offset
Lock behind `boat_drift_deep_sea` convar instead of hardcoded blocking it
Prevent boats from doing normal drifting to shore in the deep sea until we are sure that the shore vectors are correct
Fix NONE compile error in Shield.cs
merge from dynamic_occlusion_pausing -> main