Stop messing order of updates, destroing the defined order of the selected priority (by distance being the one that makes sense(?). So called fairness serves no usefull purpose. If a region is lagged or user has bad comms, and far objects updates don't arrive, at least nearby thinks do have a chance to keep ticking. Just test on a big region and observe rez order on arrival. lower viewer bandwith helps seeing the diference. No use to put in core since cmic loves the priority scrambling code i comented out.

avinationmerge
UbitUmarov 2012-03-21 21:19:29 +00:00
parent 4f593fa8c3
commit 68981d01f0
1 changed files with 8 additions and 3 deletions

View File

@ -139,7 +139,12 @@ namespace OpenSim.Framework
{ {
// If there is anything in priority queue 0, return it first no // If there is anything in priority queue 0, return it first no
// matter what else. Breaks fairness. But very useful. // matter what else. Breaks fairness. But very useful.
for (int iq = 0; iq < NumberOfImmediateQueues; iq++) // for (int iq = 0; iq < NumberOfImmediateQueues; iq++)
// keep original order
for (int iq = 0; iq < NumberOfQueues; iq++)
{ {
if (m_heaps[iq].Count > 0) if (m_heaps[iq].Count > 0)
{ {
@ -151,7 +156,7 @@ namespace OpenSim.Framework
return true; return true;
} }
} }
/*
// To get the fair queing, we cycle through each of the // To get the fair queing, we cycle through each of the
// queues when finding an element to dequeue. // queues when finding an element to dequeue.
// We pull (NumberOfQueues - QueueIndex) items from each queue in order // We pull (NumberOfQueues - QueueIndex) items from each queue in order
@ -193,7 +198,7 @@ namespace OpenSim.Framework
return true; return true;
} }
} }
*/
timeinqueue = 0; timeinqueue = 0;
value = default(IEntityUpdate); value = default(IEntityUpdate);
return false; return false;