• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
MAINTENANCE ANNOUNCEMENT - JIRA will undergo maintenance starting 1:00am PDT through 3:00am on Saturday 2010.03.20. Please do not enter issues during this time as the system maybe restarted.
Issue Details (XML | Word | Printable)

Key: VWR-1135
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Haravikk Mistral
Votes: 45
Watchers: 6
Operations

If you were logged in you would be able to see more operations.
1. Second Life Viewer - VWR

Better multi-threading!

Created: 08/Jun/07 04:31 PM   Updated: 20/Jan/10 09:43 AM
Component/s: Performance
Affects Version/s: 1.15.0.x, 1.15.1.x, 1.16.0.x, 1.17.0.x, 1.22, 1.23
Fix Version/s: None

Time Tracking:
Not Specified

Environment: PowerMac G5 Dual 2.5ghz, 2gb RAM, NVidia 6800 Ultra 256mb
Issue Links:
Duplicate
 
Relates


 Description  « Hide
Exactly as it says! One of the things said when the client was open-sourced was not to bother with multi-threading as it was being done, but the only evidence we've ever seen of that being done is the "Run as multiple threads" or some such in rendering options in the debug menus.

However, SL still poorly utilises threads, if it even uses them at all. A ton of things cause SL to pause and stutter as it is forced to wait for something to happen, rather than simply creating a new process/thread to do the waiting while it continues working on more important things, like communicating with the server and rendering.

I mean, even single-core/processor systems would benefit immensely from SL using threads to a greater degree as it prevents lock-ups caused by a slower part of the viewer causing other areas to wait. The result is a lot of inexplicable slow-downs or even momentary freezes. Examples of features which appear to causes pauses are:

  • LOD re-calculation
  • Occlusion culling
  • Texture download/decompression (see VWR-1118)
  • Rendering (I'm not convinced it's fully threaded yet as it wouldn't be stuck in a debug menu otherwise)
  • Wearing red underpants on a Thursday

For this reason such things should have separate threads to handle these, so that others may continue undisturbed, reducing stutters and hangs, and improving performance on single-core, and especially multi-core systems.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Aimee Congrejo added a comment - 11/Jun/07 01:42 PM
LOL Yah, it's kinda an annoyance when I look at my CPU meter and see all 8 cores at only 10% each when I'm stumbling along in slo-mo at 5 FPS when lots of avies are onscreen. O.o

Dzonatas Sol added a comment - 16/Jun/07 05:28 PM
SL mainly runs in one thread, but there are also 50 threads under the main threads. It runs very chaotically. It hits the cache hard, and what normally would run 10x faster can't because of the cache pollution.

It would mean a revamp of how the threads get controlled.


Haravikk Mistral added a comment - 18/Jun/07 05:11 AM
They get controlled? Heh =P

I have noticed the multiple threads listed in Activity Monitor on OS X, but they don't appear to DO anything. Although a lot of programs tend to have extra threads associated with GUI elements to keep interfaces snappy. In all my tests and times playing the game I've not really seen any evidence of them doing any real work, things still seem to be stuck waiting on each other when they don't need to be. LOD changes still causes stutters and s-on.


Jonas Ingrassia added a comment - 09/Jul/08 10:22 PM
Yes... I have 8 cores. SL uses one, maxes it out, then stalls, routinely. Pretty silly to have so much power (and time) going to waste.

Jezz Mighty added a comment - 15/Feb/09 08:45 AM - edited
I related this issue to VWR-7716, cause I believe that a 64-bit viewer could a be a good start for a better multi-threading.