Observed on bugsplat, no repro. Something destroys LLConversationItem without cleaning list (some sessions reuse the item, but they aren't supposed to remove it). Either item should inform floater to be properly removed or should be stored as an LLPointer.
Part 1: These changes prevent some of the aggressive culling that has prevented area search from working. They work best in combination with changes to the aggressive culling that better fit the viewer's memory footprint. These changes are committed separately to make it easier to change them
As 144 Hz is very common and 240 and even 360Hz are feasible it makes no sense to limit this at 120. I have made the upper limit 360 for now. At some point no doubt this will not be good enough but we may need to review the limiting code at that point as it will be increasingly inaccurate given the use of millisecond sleep
When the show muted text in chat history is enabled the chat from blocked objcets has no differentiation. Adding yet another colour into the mix makes no sense, if we make them both grey then we cannot easily differentiate users/objects so for now I propose simply not persisting this so that when a user accidentally enabels this is goes away again with a relog.
The simple cache ihas a number of issues
* the "max cache size" is not the max cache size
* the purge typically only purges DOWN to the max cache size
* once you reach max you are basically purging constantly.
This change addresses that a bit by adding highwater threshold at 95% leaving a bit of headroom for the incoming cache updates while we purge, and a low water threshold, that we purge down to (70%) .
This means people can now set their cache to a ramdisk of they really want and it won't (normally) overflow.
it reduces the cache thrashing, this is not a speedup on the main thread really, but just a less naive process.
This does not address the fact that every time we check the cache it has to enumerate every single file (beyond stupid) even though most have not changed. This is TBD.