Cycles: optimization for BVH traveral on CPU's with SSE3, using code from Embree.
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Tue, 18 Jun 2013 09:36:06 +0000 (09:36 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Tue, 18 Jun 2013 09:36:06 +0000 (09:36 +0000)
commitd57c6748c4ebb37246caf25d4900ef6d5c16c0fe
tree08491bec3d7310f7df1e2171c8fb44a68d508a90
parent9131adca9f748f794c18c71d36f830a961c218b4
Cycles: optimization for BVH traveral on CPU's with SSE3, using code from Embree.

On the BMW scene, this gives roughly a 10% speedup overall with clang/gcc, and 30%
speedup with visual studio (2008). It turns out visual studio was optimizing the
existing code quite poorly compared to pretty good autovectorization by clang/gcc,
but hand written SSE code also gives a smaller speed boost there.

This code isn't enabled when using the hair minimum width feature yet, need to
make that work with the SSE code still.
intern/cycles/bvh/bvh.cpp
intern/cycles/kernel/kernel_bvh.h
intern/cycles/kernel/kernel_bvh_traversal.h
intern/cycles/kernel/kernel_sse3.cpp
intern/cycles/util/util_types.h