[sldev] Improving rendering sequence

Dave Parks davep at lindenlab.com
Tue Jan 8 11:32:20 PST 2008


Matthew Dowd wrote:
> Are sculpt textures prioritised over non-sculpt textures in the download queue?
>   
Yes.


Textures are prioritized based on how many pixels they cover on the 
screen, and the priority is "boosted" based on different flags defined 
in this enum (from llviewerimage.h):

enum
    {
        BOOST_NONE             = 0,
        BOOST_AVATAR_BAKED    = 1,
        BOOST_AVATAR        = 2,
        BOOST_CLOUDS        = 3,
        BOOST_SCULPTED      = 4,
       
        BOOST_HIGH             = 10,
        BOOST_TERRAIN        = 11, // has to be high priority for 
minimap / low detail
        BOOST_SELECTED        = 12,
        BOOST_HUD            = 13,
        BOOST_AVATAR_BAKED_SELF    = 14,
        BOOST_UI            = 15,
        BOOST_PREVIEW        = 16,
        BOOST_MAP            = 17,
        BOOST_MAP_LAYER        = 18,
        BOOST_AVATAR_SELF    = 19, // needed for baking avatar
        BOOST_MAX_LEVEL
    };

So, sculpt textures are prioritized before avatar skins, clouds, and all 
"normal" textures.  If you alt-zoom or left click on something, its 
texture becomes high priority.  Right clicking on it (selection) gives 
it a higher priority than the terrain.  You get the idea.

Looking at the code, it looks like the sculpt textures might have a 5 
second delay between the texture being available and it actually being 
applied to the prim, since mSculptChanged is the flag used to determine 
when a sculpt gets rebuilt, and it only gets set in 
LLVOVolume::updateTextures, which only gets called every 5 seconds or on 
LOD switches or on vertex buffer rebuilds, whichever comes first.  Room 
for improvement there.




More information about the SLDev mailing list