[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