Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007493opensim[REGION] OpenSim Corepublic2015-03-09 11:032015-11-02 13:14
Assigned To 
Statuspatch includedResolutionopen 
PlatformOSOS Version
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0007493: the currently existing terrain layer data code can generate packets larger than MTU
DescriptionThe attached patch contains a new terrain layer data handling which keeps compression results in memory for each patch. The total amount of memory required for that is approximately 160 kBytes per standard region. The compression results are stored in HeightmapTerrainData. Therefore only count once per region.

In addition, the new code does not calculate compression per send instead it calculates it per change.

Each patch can be up to 651 bytes total in layer data message. The assumption four could always fit is not correct. These terrain patches would make up a total of 2604 bytes if put into a single layer data message.

The new code tracks terrain patch changes by applying a serial concept.

By leaving out 0 as serial number a new agent gets always transmitted the terrain patch after connecting to the region.

In addition, the new code prevents other code from re-transmitting patches already known to the viewer.

The patch does the following points mainly:

* Reduces CPU load by minimizing compression efforts taken.
* Reduces amount of transmitted layer data message when more than four patches fit in a single message
* Reduces the amount of triggered layer data message by UpdateTerrainByViewDistance.

TagsNo tags attached.
Git Revision or version number
Run ModeStandalone (1 Region) , Standalone (Multiple Regions) , Grid (1 Region per Sim) , Grid (Multiple Regions per Sim)
Physics EngineBasicPhysics, ODE, BulletSim, Other
Script Engine
Mono VersionNone
Attached Filespatch file icon 0001-improved-terrain-patch-handling.patch [^] (94,468 bytes) 2015-03-09 11:03 [Show Content]

- Relationships

-  Notes
UbitUmarov (administrator)
2015-11-02 13:14

Your comments are correct. A solution like yours is under consideration for sometime now, so that terrain compression is shared by all users. One minor difficulty is that this terrain compression is specific to a client/viewer, others may want to use other.
Meanwhile improvements were made on avinationmerge branch, compressor DCTs should now be a bit faster and the number of compressed patchs per udp packet is now more dynamic.

- Issue History
Date Modified Username Field Change
2015-03-09 11:03 FreakyTech New Issue
2015-03-09 11:03 FreakyTech File Added: 0001-improved-terrain-patch-handling.patch
2015-03-09 11:03 FreakyTech Status new => patch included
2015-03-09 11:04 FreakyTech Description Updated View Revisions
2015-11-02 13:14 UbitUmarov Note Added: 0029526

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker