Move cache to drawable for more benefit. Reduces CPU overhead when rendering
shadows and materials by caching the jointmatrixpallette.
Sacrifices some potential cache locality but savings seem to outweigh this.
FIXED.
It's a very important on each cycle on Drawable::update form(), when object
remained in move, list update the CurrentScale member, because if do not do that,
it remained in this list forever or when the delta time between two frames
a become a sufficiently large (due to interpolation)
for overcome the MIN_INTERPOLATE_DISTANCE_SQUARED.
Comments:
- Fix based on "RenderAutoMuteByteLimit" setting.
- File indra/llxml/llcontrol.h - add all signals to 0 group.
It garanty that handlers (in indra/newview/llviewercontrol.cpp) will be called last.
MAINT-6910 - [MAINT-RC] Some mesh turns invisible when camera is moved on the Maint-RC viewer only - caused by fix for MAINT-6125.
Commulative fix.
Fixed for booth ticket's in indra/newview/llvovolume.cpp
Remained fixed, it's a small code improvements which is not related to
MAINT-6125, MAINT-6910
MAINT-6910 - [MAINT-RC] Some mesh turns invisible when camera is moved on the Maint-RC viewer only - caused by fix for MAINT-6125.
Commulative fix.
Fixed for booth ticket's in indra/newview/llvovolume.cpp
Remained fixed, it's a small code improvements which is not related to
MAINT-6125, MAINT-6910
* Don't render shadows for impostors
* Show muted avatars as impostors (fix if RenderAvatarMaxNonImpostors = 0 = no limit)
* No detailed attachment updates for muted avatars if using no impostors
* Properly calculate update interval for muted avatars if using no impostors
Changed LLVOAvatar::isImpostor() so it also returns if an avatar is an impostor
in case RenderAvatarMaxNonImpostors = 0 = LLVOAvatar::sUseImpostors = FALSE is set,
so we can get rid of some
"isImpostor() || ((LLVOAvatar::AV_DO_NOT_RENDER == getVisualMuteSettings() || isInMuteList()) && !needsImpostorUpdate())"
and replace it with
"isImpostor() && !needsImpostorUpdate()"
This additional check would be necessary to render an avatar as impostor in case
it should never be rendered or it is muted, but LLVOAvatar::sUseImpostors is FALSE.
The check for !needsImpostorUpdate() is still needed to fail the condition in case
an impostor needs an update. For impostor updates, LLPipeline::generateImpostor()
will temporarily set LLVOAvatar::sUseImpostors = FALSE, so the rendering pipeline
doesn't skip parts needed to create a silhouette of the avatar. In that case,
needsImpostorUpdate() will return TRUE.
removed complicated and unnecessary fast timer gapless handoff logic (it should be gapless anyway)
improved MemTrackable API, better separation of shadow and footprint
added memory usage stats to floater_stats.xml
consolidated most indra-specific constants in llcommon under indra_constants.h
fixed issues with operations on mixed unit types (implicit and explicit)
made LL_INFOS() style macros variadic in order to subsume other logging methods
such as ll_infos
added optional tag output to error recorders