* Patch from RemedyTomm Mantis 3440

* Revamps the server side texture pipeline
* Textures should load faster, get clogged less, and be less blurry
* Minor tweak to ensure the outgoing texture throttle stays private.
* Fixes mantis 3440
0.6.5-rc1
Teravus Ovares 2009-04-10 08:30:21 +00:00
parent 8e6c20b27f
commit 515bf6d7dc
6 changed files with 491 additions and 552 deletions

View File

@ -81,6 +81,7 @@ Patches
* nornalbion
* openlifegrid.com
* ralphos
* RemedyTomm
* rtomita
* Ruud Lathorp
* SachaMagne

View File

@ -36,6 +36,7 @@ namespace OpenSim.Framework
private uint m_packetNumber;
private float m_priority;
private int m_requestType;
private uint m_requestsequence;
protected UUID m_requestedAssetID;
public float Priority
@ -53,6 +54,12 @@ namespace OpenSim.Framework
set { m_packetNumber = value; }
}
public uint requestSequence
{
get { return m_requestsequence; }
set { m_requestsequence = value; }
}
/// <summary>
///
/// </summary>

View File

@ -4430,7 +4430,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// in the end, we dereference this, so we have to check if it's null
if (m_imageManager != null)
m_imageManager.ProcessImageQueue(3);
m_imageManager.ProcessImageQueue(5);
return;
}
@ -6041,7 +6041,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
case PacketType.RequestImage:
RequestImagePacket imageRequest = (RequestImagePacket)Pack;
//m_log.Debug("image request: " + Pack.ToString());
#region Packet Session and User Check
if (m_checkPackets)
{
@ -6062,6 +6062,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
args.DiscardLevel = imageRequest.RequestImage[i].DiscardLevel;
args.PacketNumber = imageRequest.RequestImage[i].Packet;
args.Priority = imageRequest.RequestImage[i].DownloadPriority;
args.requestSequence = imageRequest.Header.Sequence;
//handlerTextureRequest = OnRequestTexture;
@ -9114,7 +9115,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// in the end, we dereference this, so we have to check if it's null
if (m_imageManager != null )
m_imageManager.ProcessImageQueue(3);
m_imageManager.ProcessImageQueue(10);
PacketPool.Instance.ReturnPacket(Pack);
}

File diff suppressed because it is too large Load Diff

View File

@ -82,6 +82,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
internal LLPacketThrottle AssetThrottle;
internal LLPacketThrottle TextureThrottle;
internal LLPacketThrottle TotalThrottle;
/// <summary>
/// The number of packets in the OutgoingPacketQueue
///
/// </summary>
internal int TextureOutgoingPacketQueueCount
{
get
{
if (TextureOutgoingPacketQueue == null)
return 0;
return TextureOutgoingPacketQueue.Count;
}
}
// private long LastThrottle;
// private long ThrottleInterval;

View File

@ -676,7 +676,20 @@ namespace OpenSim.Region.UserStatistics
{
m_log.Debug("INSERT");
updatecmd.CommandText = SQL_STATS_TABLE_INSERT;
updatecmd.ExecuteNonQuery();
try
{
updatecmd.ExecuteNonQuery();
}
catch
(SqliteExecutionException)
{
m_log.Warn("[WEBSTATS]: failed to write stats to storage Execution Exception");
}
catch (SqliteSyntaxException)
{
m_log.Warn("[WEBSTATS]: failed to write stats to storage SQL Syntax Exception");
}
}
}