blender/intern
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
..
atomic Fixes for atomic operations when building with MSVC 2014-12-02 16:38:09 +05:00
audaspace CMake: Enable strict flags for C++ 2015-03-27 18:23:31 +05:00
container Rework carve integration into boolean modifier 2014-02-13 17:16:53 +06:00
cycles Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
dualcon Dualcon: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
elbeem CMake: correct include dirs 2014-07-01 09:36:28 +10:00
ffmpeg Fix video FFmpeg nt being able to produce video files due to usage of deprecated settings 2014-04-15 00:15:09 +06:00
ghost Cleanup: style 2015-04-13 22:08:51 +10:00
glew-mx CMake: error making get_blender_version a function 2015-02-25 18:15:54 +11:00
guardedalloc GuardedAlloc: safer MEM_SAFE_FREE 2015-03-12 23:49:15 +11:00
iksolver Code cleanup: white space and cmake was broken on all platforms 2014-02-03 13:56:34 +11:00
itasc CMake: unbundle eigen3 2015-03-19 15:41:41 +11:00
locale Cleanup: cmake 2014-11-13 15:30:32 +01:00
memutil Change movie cache to use vectors instead of lists. 2015-02-05 15:06:25 +01:00
mikktspace Style Cleanup: remove preprocessor indentation (updated wiki style guide too) 2013-12-22 14:12:19 +11:00
moto BGE: TrackTo actuator: increasing up & track axis options 2014-07-14 18:30:27 -07:00
opencolorio OpenColorIO: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
opennl Fix limit check before accessing array in opennl 2015-01-21 17:19:39 +05:00
raskter code cleanup: use NULL rather then 0 for pointers, and make vars static where possible. 2013-03-22 05:34:10 +00:00
rigidbody Code cleanup 2014-07-18 11:55:59 +10:00
smoke CMake: only quiet warnings for generated rna files 2015-02-08 15:08:31 +11:00
string fix for buffer out-of-bounds reading for STR_String comparisons with char arrays. 2013-03-22 21:26:59 +00:00
utfconv Warning cleanup: 2014-03-22 14:41:38 +02:00
CMakeLists.txt Ghost Context Refactor 2014-10-07 15:47:32 -05:00
SConscript Ghost Context Refactor 2014-10-07 15:47:32 -05:00