I just did the mega check-in in of death. The first round of multi-threading changes is on.

I implemented multi-threading for the marching cubes operator. There are now 3 modes off, limited (non-pipelined) and pipelined.

The options

Threading Off: 46.7 ms

Limited threading: 12.0ms (4 cores * 2xHT)

Pipelined threading: 9.97ms (4 cores * 2xHT)

In Pipelined mode, all cores work all the time, but the image is delayed by one frame. Also, memory management is horrible. I had to rework lots of code in the Scheduler, in sGeometry::InitDyn, ... It took some time and the result is problematic.

In "limited" mode, Multithreading is limited to inside the operator, and therefore most of the times most of the cores idle. Still, none of the disadvantages above apply.