Cycles: threading optimizations
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Sat, 5 May 2012 19:44:33 +0000 (19:44 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Sat, 5 May 2012 19:44:33 +0000 (19:44 +0000)
commit8103381ded923a097eae5a0ba012ae41847a83ad
treeb2d224fac3262dea4eca154480f26bdd10662c81
parentc53fe94bb4973362278b488ef26384a029d3cc69
Cycles: threading optimizations

* Multithreaded image loading, each thread can load a separate image.
* Better multithreading for multiple instanced meshes, different threads can now
  build BVH's for different meshes, rather than all cooperating on the same mesh.
  Especially noticeable for dynamic BVH building for the viewport, gave about
  2x faster build on 8 core in fairly complex scene with many objects.
* The main thread waiting for worker threads can now also work itself, so
  (num_cores + 1) threads will be working, this supposedly gives better
  performance on some operating systems, but did not measure performance for
  this very detailed yet.
intern/cycles/bvh/bvh_build.cpp
intern/cycles/bvh/bvh_build.h
intern/cycles/device/device_cpu.cpp
intern/cycles/render/image.cpp
intern/cycles/render/image.h
intern/cycles/render/mesh.cpp
intern/cycles/render/mesh.h
intern/cycles/util/util_task.cpp
intern/cycles/util/util_task.h