This looks like some awesome work! Congratulation to everyone
Just one question: how much difficult would it be to make polyvox thread-safe when using OpenMP?
OpenMP is a compiler-directive based API for shared-memory parallelism. Just to give you an idea, parallelizing a for-loop requires ONE #pragma line, and the compiler will take care of doing everything else. No libraries nor anything else needed (just a compiler directive and a flag while compiling!)
Having a section marked as "critical" (meaning it can be accessed only by one thread at a time) also requires just one line of code alike. (see
https://secure.wikimedia.org/wikipedia/ ... C.2B.2B.29 there's the "critical" clause).
I only took a look at the new doc but the functions that manage the block cache could probably get some critical sections and be ready to be used with OpenMP.
Possible objections:
-we don't need parallelism
-we don't like parallelism
-we want the users being able to choose and tweak the library with their own parallel paradigm, we can't make such choices for them.
I'm doing some heavy computations, and I can't say how much of parallelism I will need (surely it will help). But for sure this is something a some people would like. (EG: extracting different surfaces at the same time might be nice for some people!).