blender/intern/cycles/bvh
Sergey Sharybin 828abaf11c Cycles: Split BVH nodes storage into inner and leaf nodes
This way we can get rid of inefficient memory usage caused by BVH boundbox
part being unused by leaf nodes but still being allocated for them. Doing
such split allows to save 6 of float4 values for QBVH per leaf node and 3
of float4 values for regular BVH per leaf node.

This translates into following memory save using 01.01.01.G rendered
without hair:

                   Device memory size   Device memory peak   Global memory peak
Before the patch:  4957                 5051                 7668
With the patch:    4467                 4562                 7332

The measurements are done against current master. Still need to run speed tests
and it's hard to predict if it's faster or not: on the one hand leaf nodes are
now much more coherent in cache, on the other hand they're not so much coherent
with regular nodes anymore.

Reviewers: brecht, juicyfruit

Subscribers: venomgfx, eyecandy

Differential Revision: https://developer.blender.org/D1236
2015-04-20 17:29:51 +05:00
..
bvh_binning.cpp Cycles: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
bvh_binning.h Cycles: merging features from tomato branch. 2012-04-28 08:53:59 +00:00
bvh_build.cpp Fix T44193: Hair intersection with duplis causes flickering 2015-03-31 00:24:43 +05:00
bvh_build.h Cycles: Enable leaf split by primitive type and adopt BVH traversal for this 2015-01-12 15:04:52 +05:00
bvh_node.cpp Cycles: Use proper node counter to allocate QBVH nodes 2014-12-25 02:50:49 +05:00
bvh_node.h Cycles: Use proper node counter to allocate QBVH nodes 2014-12-25 02:50:49 +05:00
bvh_params.h Cycles: Avoid memcpy of intersecting memory 2015-03-20 21:14:50 +05:00
bvh_sort.cpp Cycles code refactor: changes to make adding new primitive types easier. 2014-03-29 13:03:46 +01:00
bvh_sort.h style cleanup: block comments 2012-06-09 17:22:52 +00:00
bvh_split.cpp Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
bvh_split.h Cycles: optimization for hair BVH build, allow max 2 hair curves per leaf. 2014-04-22 17:15:41 +02:00
bvh.cpp Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
bvh.h Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
CMakeLists.txt code cleanup: 2012-10-17 04:13:03 +00:00