diff options
author | Teravus Ovares | 2009-01-25 04:34:00 +0000 |
---|---|---|
committer | Teravus Ovares | 2009-01-25 04:34:00 +0000 |
commit | 76206543e83661bbf04ee046b10b27736c589c81 (patch) | |
tree | 0379cb3411bfea0e8348092de8d4d50f30fb9934 /OpenSim/Region/ClientStack/LindenUDP | |
parent | Update svn properties. (diff) | |
download | opensim-SC_OLD-76206543e83661bbf04ee046b10b27736c589c81.zip opensim-SC_OLD-76206543e83661bbf04ee046b10b27736c589c81.tar.gz opensim-SC_OLD-76206543e83661bbf04ee046b10b27736c589c81.tar.bz2 opensim-SC_OLD-76206543e83661bbf04ee046b10b27736c589c81.tar.xz |
* Adds console command, 'predecode-j2k <number of threads>' to load all of the texture assets from the scene and decode the j2k layer data to cache. The work is split between the number of threads you specify. A good number of threads value is the number of cores on your machine minus 1.
* Increases the number of ImageDataPackets we send per PriorityQueue pop and tweak it so that the number of packets is ( (2 * decode level) + 1 ) * 2, and (((2 * (5-decode level)) + 1) * 2). The first one sends more data for low quality textures, the second one sends more data for high quality textures.
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs index 58c4e04..3b21c85 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs | |||
@@ -230,12 +230,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
230 | else if (!process.data.J2KDecodeWaiting) | 230 | else if (!process.data.J2KDecodeWaiting) |
231 | { | 231 | { |
232 | // Send more data at a time for higher discard levels | 232 | // Send more data at a time for higher discard levels |
233 | for (int i = 0; i < (2*(5 - process.data.DiscardLevel) + 1)*2; i++) | 233 | bool done = false; |
234 | for (int i = 0; i < (2*(process.data.DiscardLevel) + 1)*2; i++) | ||
234 | if (!process.data.SendPacket(m_client)) | 235 | if (!process.data.SendPacket(m_client)) |
235 | { | 236 | { |
237 | done = true; | ||
236 | pq[h] -= (500000*i); | 238 | pq[h] -= (500000*i); |
237 | break; | 239 | break; |
238 | } | 240 | } |
241 | if (!done) | ||
242 | { | ||
243 | for (int i = 0; i < (2 * (5- process.data.DiscardLevel) + 1) * 2; i++) | ||
244 | if (!process.data.SendPacket(m_client)) | ||
245 | { | ||
246 | done = true; | ||
247 | pq[h] -= (500000 * i); | ||
248 | break; | ||
249 | } | ||
250 | } | ||
239 | } | 251 | } |
240 | // If the priority is less then -4 billion, the client has forgotten about it, pop it off | 252 | // If the priority is less then -4 billion, the client has forgotten about it, pop it off |
241 | if (pq[h] < -400000000) | 253 | if (pq[h] < -400000000) |