Conversation
- various improvements - lazily creates the UI wigets for categories when their parent is expanded
Allow builds to be manually triggered
- store cache keys as std::string to avoid dangling references - refresh parent entry on rename and skip unnamed views
- store cache keys as std::string to avoid dangling references - refresh parent entry on rename and skip unnamed views
#4893 Async Inventory review improvements
# Conflicts: # indra/llui/llview.h
| class LLViewerInventoryCategory; | ||
| class LLViewerRegion; | ||
|
|
||
| class LLAsyncInventorySkeletonLoader |
There was a problem hiding this comment.
This class appears to be doing the same thing as LLInventoryModelBackgroundFetch, but slower and takes cache into account?
There was a problem hiding this comment.
LLAsyncInventorySkeletonLoader serves a different lifecycle phase than LLInventoryModelBackgroundFetch. Background fetch runs post-login to gradually fill in the full inventory tree. The async skeleton loader runs during login to hydrate from cache, compare versions, and fetch only changed essential folders via AIS before the viewer considers inventory "ready." They could potentially be unified, but their concerns are distinct enough that merging them would complicate both.
akleshchev
left a comment
There was a problem hiding this comment.
Viewer sometimes freezes for multiple seconds while spamming following messages:
LLInventoryModel::findCategoryUUIDForTypeInRoot : Tried to find folder, type 23 but category does not exist
|
I suspect that when user searches for something, background fetch intiates and loads everything from net even if those items were supposed to be loaded from cache. |
|
I feel like this bundle of optimizations needs to be split into multiple separate ones and reviewer separately. |
Summary:
Introduces asynchronous inventory skeleton loading via AIS to accelerate login (up to 12s faster for 100k+ item inventories) by hydrating from cache, fetching essentials on-demand, and throttling UI updates. Adds debug settings for concurrency/timeouts, fixes cache persistence/dehydration, and optimizes UI with lazy folder widget creation (O(n) parent-child mapping via caching).
Testing:
QA-only
ForceAsyncInventorySkeletontoggle (enabled by default); monitor login times/cache integrity. No breaking changes.Additional test: