4,374 Commits over 1,249 Days - 0.15cph!
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
Set dynamic_occlusion_pausing to enabled instead of disabled
merge from industrial_pipe_batching -> main
Add `print_memory_batching_detailed` command to print out memory usage of individual batches
- can supply filter to filter based on material name
merge from industrial_pipe_batching -> main
Make `batch_industrial_pipes` a non-admin convar
Add `print_memory_industrial` and `print_memory_batching` commands to show how much memory is being used by batching and industrial pipe meshes respectfully
- batching will include both inactive renderers and active renderers since mesh memory is still used while the renderer is turned off
merge from optimize_sprinklers -> main
Add `skinned_placeholder` convar to control if sprinklers will use static placeholders or not
- default enabled
- refresh_renderers will update placeholders if convar is changed
Fix DeferredDecal component not being stripped from server entities
Refactor copypaste into multiple methods to try and figure out why certain foundations and walls are missing from pastes
- unsure if it's a problem with copying or pasting so starting with pasting
- move RemoveOpthanedChildren() above when we start to spawn entities
- try to spawn entities in multiple passes to ensure parents are all spawned before children
- add more logging
Switch certain dynamic occlusion entities to static occludees when we know they can't move
- convar `dynamic_occlusion_pausing` (0 = off, 1 = codelocks + industrial adapters on boxes, 2 = codelocks on doors)
- currently (and by default) every entity is considered dynamic if parented
- now certain entities can indicate if they are static (like boxes)
- converts codelocks to dynamic while the door is opening, converts back to static once finished
- will check all parents so a box parented to a tugboat will still be considered dynamic since it will find the tugboat as root parent
- reduces dynamic ocludee count by 80% (417->74) on a sample base (converts nearly all codelocks and industrial adapters)
- refresh entity dynamic status when running `refresh_renderers`