blender/intern
Sergey Sharybin 68478aea01 Cycles: Avoid having duplication of BVH arrays during build
Previous idea behind having vector during building and array for actual storage
was needed in order to minimize amount of re-allocations happening during the
build, but it lead to double memory overhead used by those arrays at the vector
to array conversion stage.

Issue with such approach was that for BVH without spatial split size of arrays
is known in advance and it never changes, which made vector to array conversion
totally redundant.

Also after testing with several rather complex from spatial split scenes (such
as trees) it seems even conservative approach of reallocation (when we perform
re-allocation when leaf does not fit into the memory) doesn't give measurable
difference in time.

This makes it so we can switch to array, which will avoid unneeded memory
re-allocations when spatial split is disabled without harming other cases.

it's a bit difficult to measure exact benefit of this change on our production
files here, but depending on the scene it might give quite reasonable memory
save.
2015-06-28 18:15:25 +02:00
..
atomic Atomic operations: Add function declarations at the top of the header 2015-05-20 11:57:17 +05:00
audaspace Cleanup: checks for unsupported MSVC versions 2015-06-20 15:17:32 +10:00
container Rework carve integration into boolean modifier 2014-02-13 17:16:53 +06:00
cycles Cycles: Avoid having duplication of BVH arrays during build 2015-06-28 18:15:25 +02: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 GHost: Attempt to fix compilation error on older OSX systems 2015-06-14 14:36:05 +02:00
glew-mx CMake: error making get_blender_version a function 2015-02-25 18:15:54 +11:00
guardedalloc Support for platforms /wo malloc_usable_size 2015-06-21 12:33:55 +10:00
iksolver doxygen: corrections/updates 2015-05-20 14:12:22 +10:00
itasc CMake: unbundle eigen3 2015-03-19 15:41:41 +11:00
locale Msgfmt: Fix for generating .mo files from .po without comments 2015-06-13 14:04:47 +02:00
memutil doxygen: corrections/updates 2015-05-20 14:12:22 +10: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