branchrust_reboot/main/ui_store_slim_ramcancel
37 Commits over 30 Days - 0.05cph!
Bugfix(editor): StoreBundleTool - handle invalid paths
This can happen if the serialized path now points to renamed or deleted resource.
Tests: none, don't have a case like that right now.
Update(editor): StoreBundleTool - stage timings emit volume of work
Makes it easier to confirm if it's doing anything when there are no dirty changes
Tests: ran the tool
Clean(editor): remove Tools/Menu2
Checked both the editor pref by variable and by value, they're not used anywhere
Tests: none, trivial change
Update(editor): StoreBundleTool - scan scriptable objects
- fix assembly scanner skipping public fields if it's type is nested
Tests: created a dummy scriptable object, ran a scan - it got picked up
Updateeditor): StoreBundleTool - activate bundle assignment code
- removed extra logging
Tests: editor compiles
Update(editor): StoreBundleTool - scan for already-assigned-to-bundles resources
- fixed timer reporting invalid times for sections of code
Tests: ran it, doesn't find any diffs with my manual assignments from last month
Update(editor): StoreBundleTool - add proxy path scanning from existing prefabs
Tests: ran the code, checked some of the paths. gotta implement comparison to fully validate
Update(editor): StoreBundleTool - add support for array traversal
Tests: ran the tool, it found all annotated fields
Update(editor): StoreBundleTool - properly implement reflection shortcutting
Tests: stepped through how it's accumulated. will test more later
Update(editor): start of StoreBundleTool - automates bundle assignment for properties with ProxyPathFor attrib
- starting with assembly scanning
Idea is to scan the assembly, detect all the relevant fields, resolve them and assign referenced assets to the bundle
Tests: ran it, doesn't find all fields yet
Update: don't build UI bundle for server bundles
Tests: none, trivial change
Clean: get rid of StoreTakeover internal warmup count
It never goes past 1 since we fixed open order of store
Tests: stuck an assert and validated poked at different menus
Bugfix: ensure StoreItemGrid caches local source bundles
Fixes wrong imges displayed in the shop for specific items
Tests: navigated to store and clicked a bunch of pages. Compared before and after images
Update: reimplement UI_StoreItemGrid population
- Warmup completelly skips initialization of tiles
- Expanded the interface to permit existing custom usage (filtering via search, editor test tools)
Tests: Clicked through a bunch of tabs and tiles, used search
Update: remove extra CacheBundleIcons calls from store tabs
Previously were needed because tab could open before the store - since it was fixed, it's unnecessary
Tests: navigated to store tabs - no errors
Clean: StoreItemGrid.Warmup -> OnOpened
Review feedback pt 2
Tests: none, trivial change
Clean: rename WarmupIcons to CacheBundleIcons
Review feedback pt1
Tests: none, trivial change
Update: AssetDatabaseBackend - throw an error if trying to load an asset that's not part of a dynamic bundle
Tests: clicked through store in editor
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