Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0006626opensim[REGION] OpenSim Corepublic2013-05-08 13:152013-06-24 16:54
Assigned Tocmickeyb 
PlatformOSOS Version
Product Versionmaster (dev code) 
Target Versionmaster (dev code)Fixed in Version 
Summary0006626: Refactor LLClientView to allow handling of CachedTexture packets in AvatarFactory
DescriptionThe attached patch adds an event and a method so that handling of the CachedTexture packet can be pulled out of LLClientView and moved to AvatarFactory. The first pass at reusing textures (turned off by default) is included. When reusing textures, if the baked textures from a previous login are still in the asset service (which generally means that they are in the simulator's cache) then the avatar will not need to rebake. This is both a performance improvement (specifically that an avatars baked textures do not need to be sent to other users who have the old textures cached) and a resource improvement (don't have to deal with duplicate bakes in the asset service cache).
TagsNo tags attached.
Git Revision or version number601aa9116348a88e8fe4d33f7dd7408ddc6fee28
Run Mode Grid (Multiple Regions per Sim)
Physics EngineBulletSim
Script Engine
EnvironmentMono / Linux32
Mono Version2.10
Attached Filespatch file icon reusetextures.patch [^] (19,580 bytes) 2013-05-08 13:16 [Show Content]
patch file icon 0001-Adds-support-for-comparing-texture-hashes-for-the-pu.patch [^] (24,736 bytes) 2013-05-15 16:53 [Show Content]

- Relationships

-  Notes
cmickeyb (administrator)
2013-05-15 16:56

The second patch exposes the cached texture hashes through the SetAppearance packet. This does mean a change to IClientAPI. The patch does not save the hashes in the robust store which means that its unlikely to help much with Robust deployments. With bakes persisted (even persisted in a disk based local cache for example) and the hashes persisted, then bakes on login should only happen if the appearance has changed since the last visit to a region. That has been verified with Simian where the appearance is saved.
cmickeyb (administrator)
2013-05-23 12:18

FYI... the only reason ROBUST won't benefit is that hash saving is not hooked up in the appearance database code.
justincc (administrator)
2013-05-23 14:30

A few minor comments for reusetextures.patch:

* I would say that in LLClientView.SendCachedTextureResponse() could require an IScenePresence rather than an ISceneEntity and then always doing a cast check. But it turns out the argument is entirely unused! Why is it there?

* Some of the argument lines don't have spaces after the commas (as per standard opensim coding formatting).

And for 0001:

* It would seem better to me to overload AvatarFactoryModule.SetAppearance() again rather than create a new AvatarFactoryModule.DoSetAppearance() even if the overload will be protected. All those other SetAppearance() methods do just call down to it after all (unless this kind of thing isn't allowed by the compiler).

As for actually storing and repopulating it in Robust, I believe storing could be done by adding key:value pairs to the Data dictionary in the AvatarData(AvatarAppearance appearance) constructor in IAvatarService. This Data dictionary is later used to fill out the entries in the Avatar db table.

Repopulating would be done in ToAvatarAppearance() in the same class, using the key:value pairs received back from the Avatar db entries. A sensible, extensible format which doesn't produce too bizarre XML (see [1]) would be great.

[1] [^]

- Issue History
Date Modified Username Field Change
2013-05-08 13:15 cmickeyb New Issue
2013-05-08 13:15 cmickeyb Status new => assigned
2013-05-08 13:15 cmickeyb Assigned To => cmickeyb
2013-05-08 13:16 cmickeyb File Added: reusetextures.patch
2013-05-08 13:16 cmickeyb Status assigned => patch included
2013-05-15 16:53 cmickeyb File Added: 0001-Adds-support-for-comparing-texture-hashes-for-the-pu.patch
2013-05-15 16:56 cmickeyb Note Added: 0023904
2013-05-23 12:18 cmickeyb Note Added: 0023932
2013-05-23 14:30 justincc Note Added: 0023933
2013-05-23 14:30 justincc Status patch included => patch feedback
2013-06-24 16:54 justincc Status patch feedback => closed
2013-06-24 16:54 justincc Resolution open => fixed

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker