branchrust_reboot/main/ui_store_slim_ramcancel
68 Commits over 334 Days - 0.01cph!
Update: feed dynamic bundle hashset externally to AssetBundleBackend
This allows us to reuse the const instead of hardcoding a raw string
Tests: compiles in editor
Clean: pre-review cleanup
- got rid of unit test as it doesn't prove anything and relied on API that's not promoted (or needed atm)
- formatting fixes, dead code removal
- got rid of fallback inspector code
Tests: editor compiles in all configs
Merge: from storetakeover_icons
- Storetakeovers and related resources now can be dynamically loaded/unloaded
Tests: navigated through the store and inventory while taking memory snapshots
Merge: from storetakeover_icons
- Converts more store logic to use dynamic bundles, reducing ram usage
Tests: took memory snapshot in stnadalone build for Store and Home pages
Update: FilySystemBackend supports "dynamic" asset bundles
- updated store overlay pages to use it
Was able to succesfully load up Abyss store page, observed no stutters. Confirmed with memory profiler that abyss textures were loaded only on entering the page, but discovered that they remain afterwards despite unload (as they're still owned by asserscenes.bundle somehow) despite ui/store.bundle being unloaded. That'll be next.
Tests: used both normal and bundle backends in editor and navigated to Abyss page. Built a debug client and navigated to Abyss page, took snapshots. Built Release client to see if stutters are present.
Bugfix: fix UI_Takeover overriding with null values
Tests: ran in editor
Hack: skip explicitly loading ui/store.bundle at boot
Using this to check if we no longer have a bunch of media textures loading in. Memory Profiler shows -87 textures/-1.2GB loaded. Need to implement dynamic bundle loading, and see if it breaks anything else.
Tests: memory profiled a standalone client. Couldn't get to Abyss page (but that's expected).
Update: assign UI store overlay page prefabs to ui/store.bundle
- Ensure when we generate bundles, we chuck the assigned assets to ui/store.bundle
Tests: generated bundles, used bundle mode in editor and was able to navigate to the Abyss store page.
Update: UI_Store - drop UI_StoreItemOverlayPage references
- resaved prefab
Doesn't help with reducing RAM pressure, but allows us to take the next step of dnyamically loaded/unloaded bundles.
Tests: Went to Abyss page in Editor. Built standalone, took a memory snapshot from main menu - offending assets still there
Update: FileSystemBackend.Load<T> - option to skip caching of loaded asset
Using this to try to avoid caching of store assets
Tests: opened and closed Abyss page a couple times with DB backend
Clean: reorganize UI_Store.CloseStoreOverlayPage
- added a todo to revisit
Tests: none, trivial change
Bugfix: Ensure active UI_StoreItemOverlayPage gets properly cleaned up
Tests: tried a bunch of main menu interactions
Update: UI_Store - load overlay page dynamically from path
Doesn't do unloading yet (gets cached in the asset backend). Also there's a bug with CloseStoreOverlayPage not being called in all cases.
Tests: In Editor, loaded Abyss overlay page in store
Update: UI_StoreTakeover - store paths instead of guids
- ran Update Paths
Our filesystem backends only work with paths, so GUIDs were useless.
Tests: none, trivial change
Update: UI_StoreTakeover - store GUIDs to referenced prefabs
- Ran Update GUIDs on MenuUI2_Store
same goal as before, try to dynamically load/unload store pages.
Tests: In editor, opened Abyss store page
Update: Run "Update GUIDs" on all store overlay page prefabs
Tests: loaded Abyss store page in Editor
Update: UI_StoreItemOverlayPage - store GUIDs of textures
- Added utility to fetch GUIDs from already assigned textures and saving to disk
Getting ready to switch to guid resource tracking instead of relying on unity to always load textures
Tests: Loaded into bootstrap scene in editor and opened Abyss store page