7,043 Commits over 912 Days - 0.32cph!
merge from iteration_optims
Fix no domain reload and compile simulator toolbar buttons disappearing randomly for real this time
Fixed nre when main menu is disabled when entering playmode in a playable scene
merge from iteration_optims
In editor, reuse preprocessed persistent prefab instances instead of instantiating them again. Only applies to big prefabs like GameUI, MenuUI2, EngineUI2 and SkinViewer2
Saves ~500ms when entering playmode on average
merge from hasunlocked_optims
PlayerBlueprints.HasUnlocked optims: we now cache owned workshop skin items, avoiding full steam definition scans during UI refresh and craft validation, save 1s on LocalPlayer.HasUnlocked when entering playmode
Also saves time in client and server call when validating craft and unlocking
merge from iteration_optims
Added Disable Analytics Upload editor prefs
Saves a second when exiting playmode
Swapped a UnloadUnusedAssets in WorldSetup to ConVar.GC.unload, so it respects the Disable Unloading Assets editor pref
Was taking around 600ms when entering playground
merge from console_optims
Fixed pasting a large string in the console input field being slow
ConsoleTMPInputField handles pasting itself by processing everything in one go
merge from bootstrap_optims
Fixed skin viewer trying to load prefabs from the prefab asset scene when its not loaded yet
Added a safeguard in GUIDToObject, any request from a non loaded asset scene won't cache the null miss
merge from menuwarmup_editor_optims
Fixed home's hero video init issue when using no menu warmup mode
Added Disable Game UI editor pref, disables the game ui (don't need it sometimes when working on main menu stuff)
Saves around a sec
Added Disable Dev Tools Warmup editor pref, skips the dev tools tabs warmup until first opened
Saves ~0.3s when entering playmode
Disable menu ui warmup editor pref now skips instantiation of the menu pages completely, they get created on first navigation instead
Saves ~2.5 seconds when entering playmode, without disabling the menu ui completely (at the expense of stalls when opening the menu tabs for the first time)
merge from server_inventorydeserializing_optims
Server skips fetching all the properties of players steam items when deserializing their inventory
Speeds up entering playmode (and runtime server inventory deserializing), can be slow depending on your inv size
merge from bootstrap_optims
Removed the forced world and prefabs asset scenes activation from bootstrap (they still stream in the background, bootstrap no longer waits on them)
Skin viewer activates the prefabs scene when opened for the first time, it keeps waiting for it to be loaded if its not ready to be activated
Skin viewer loads bundled workshop skins through a sync path when the async bundle queue is blocked (the world scene holds the queue until its activated it when connecting to a server)
merge from console_optims
Console autocomplete optims
Console: no more truncated combatlog, big perf improvements (only reparse changed rows, flex texts can use the measure fast path)
merge from mainmenu_toggle_optims
Applied the same system to the F1 menu
- ~12ms -> ~4.20ms
- GC ~115KB -> ~10KB
- Added a fast path for root canvas toggling, that lets us toggle the main menu root canvas without triggering a lot of stuff on every graphic
- Graphic::CacheCanvas walks up and stops at the first enabled canvas instead of doing a nasty GetComponentsInParent, saves ~560KB of GC per menu toggle
- Each main menu page now has a canvas component too
Toggling the menu:
- ~134ms → ~45ms
- GC ~600KB -> 24KB
SoftMask optims:
- Don't bother updating disabled soft masks from OnCanvasHierarchyChanged
- NearestMask cache disabled masks, so we can skip the second walk
SoftMask.OnCanvasHierarchyChanged 30ms -> 0.03ms when opening the main menu
Also updated wire slack and snap attraction point game tip to use tokenized binds
Added support for tokenized phrase in settings tooltips, updated deployable snapping tooltip to use [+snapping]
Added snapping to the keybinds menu
Added a dedicated realmed bind for snapping, used by the wire tool and deployable snapping
Fixed autorun causing issues with wire tools
Fixed no domain reload editor topbar button disappearing constantly
merge from defaultbinds_fix
Fixed bind_default not being bind realms aware (fixes +prevskin and +nextskin not bound by default)
Fixed loadout not refreshing correctly when deleted/created by another admin when the f1 menu is closed
merge from steaminventory_nre_fix
Fixed Steamworks.SteamInventory.GetAllItems NRE
Steam inventory screen fails gracefully when Steam is not reachable
merge from demofolder_macos_fix
merge from automated_testing
Better log for the test list step when building the bundles