aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorTeravus Ovares2009-01-25 04:34:00 +0000
committerTeravus Ovares2009-01-25 04:34:00 +0000
commit76206543e83661bbf04ee046b10b27736c589c81 (patch)
tree0379cb3411bfea0e8348092de8d4d50f30fb9934 /OpenSim/Region/ClientStack
parentUpdate svn properties. (diff)
downloadopensim-SC-76206543e83661bbf04ee046b10b27736c589c81.zip
opensim-SC-76206543e83661bbf04ee046b10b27736c589c81.tar.gz
opensim-SC-76206543e83661bbf04ee046b10b27736c589c81.tar.bz2
opensim-SC-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')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLImageManager.cs14
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)