Turns out that most of my SNOW-800 patch was included in Viewer 2 (albeit without crediting me).
However, not everything was used and some more cleaning up was possible.
After this patch, and when compiling with optimization, there are no duplicates left
anymore that shouldn't be there in the first place. Apart from the debug stream
iostream guard variable, there are several static variables with the same name (r, r1,
r2, etc) but that indeed actually different symbol objects. Then there are a few
constant POD arrays that are duplicated a hand full of times because they are
accessed with a variable index (so optimizing them away is not possible). I left them
like that (although defining those as extern as well would have been more consistent
and not slower; in fact it would be faster theoretically because those arrays could
share the same cache page then).
* InterpolationTime and InterpolationPhaseOut values in settings.xml to control new object interpolation code. Use zero to revert to old logic
* Viewer motion interpolation lasts InterpolationTime and will start to phase out after InterpolationPhaseOut seconds
* Changed LLWorld::getMinAllowedZ() to take a world-position as a parameter
* Added LLVOAvatarSelf::resetRegionCrossingTimer()
* Actually reset LLVOAvatarSelf::mRegionCrossingTimer so we get sensible timing data for region crossings
* LLVOAvatarSelf::updateRegion() will update position value due to region changes
Code reviewed by Ambroff
*
Submitting a patch made by Aleric Inglewood (See VWR-14914).
This bug happens for a lot of people, although it might be needed to have a fast multi core machine.
I have seen it on 1.22.10 once, never used 1.23 sorry, and saw it often on snowglobe. I am sure
it also affects 1.23 but I'd have to test that.
The symptons are that on a viewer with normally a good, high FPS, sometimes it happens
that the FPS dramatically drops (as low as 0.3, but it can also be anything higher, as high
as 10, say).
This particular jira is about a problem where the main thread is slowed down by a mutex lock
in libopenal (most calls starting with 'al' in indra/llaudio/audioengine_openal.cpp and
one in indra/llaudio/listener_openal.cpp). You can see that this is the case by opening the
Frame Console (control-shift-2) and checking that the "audio" (and possibly misc) timings
are very large compared to the Render time.
- EXT-8660 Cleanup ambiguous llviewerobject::set/getItemID code
Lots of files changed, but this is mostly just a trivial function call rename. This change is very low risk.
Took out enums and flags from LLInventory into LLInventoryDefines
Did a bunch of header file reformatting for LLInventory.h
Change made to simulator files as well.