blender/intern/cycles/kernel
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
..
closure Cycles: Cleanup, spaces around assignment operator 2015-04-07 00:25:54 +05:00
geom Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
osl Cycles: Cleanup, spaces around assignment operator 2015-04-07 00:25:54 +05:00
shaders Cleanup: Simplify brick texture code a bit. 2015-02-23 16:49:50 +01:00
svm Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
CMakeLists.txt CMake: Enable strict flags for C++ 2015-03-27 18:23:31 +05:00
kernel_accumulate.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_avx2.cpp Cycles: Ignore -Wmaybe-uninitialized from the kernel in release builds 2015-02-02 22:09:01 +05:00
kernel_avx.cpp Cycles: Ignore -Wmaybe-uninitialized from the kernel in release builds 2015-02-02 22:09:01 +05:00
kernel_bake.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
kernel_camera.h Revert "Cleanup: Simplify camera sample motion blur code." 2015-02-26 13:27:02 +01:00
kernel_compat_cpu.h cleanup 2015-02-12 23:51:02 +11:00
kernel_compat_cuda.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_compat_opencl.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_debug.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_differential.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_emission.h Fix T44128: Ray visibility only enables diffuse if glossy is also enabled 2015-03-25 14:53:20 +05:00
kernel_film.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_globals.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_jitter.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
kernel_light.h Cycles: Fix/workaround for toggling world MIS causing CUDA to fail 2015-03-03 18:48:37 +05:00
kernel_math.h Cycles: Add fast math function module 2015-01-31 01:49:41 +05:00
kernel_montecarlo.h Cycles code refactor: minor refactoring and comments for volume code. 2014-03-29 13:03:49 +01:00
kernel_passes.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_path_state.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_path_surface.h Fix T43783: Cycles clipping doesn't match viewport when camera is inside volume 2015-02-24 13:07:52 +05:00
kernel_path_volume.h Cycles: Simplify volume light connect code. 2015-03-13 00:09:13 +01:00
kernel_path.h Cycles: Simplify volume light connect code. 2015-03-13 00:09:13 +01:00
kernel_projection.h Cycles: Fix equiangular textures after recent commit 2015-01-15 21:21:58 +05:00
kernel_random.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_shader.h Cycles: Cleanup, spaces around assignment operator 2015-04-07 00:25:54 +05:00
kernel_shadow.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_sse2.cpp Cycles: Ignore -Wmaybe-uninitialized from the kernel in release builds 2015-02-02 22:09:01 +05:00
kernel_sse3.cpp Cycles: Ignore -Wmaybe-uninitialized from the kernel in release builds 2015-02-02 22:09:01 +05:00
kernel_sse41.cpp Cycles: Ignore -Wmaybe-uninitialized from the kernel in release builds 2015-02-02 22:09:01 +05:00
kernel_subsurface.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel_textures.h Cycles: Split BVH nodes storage into inner and leaf nodes 2015-04-20 17:29:51 +05:00
kernel_types.h Cleanup: Remove unused SD_PHASE_HAS_EVAL flag. 2015-02-18 16:33:31 +01:00
kernel_volume.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
kernel.cl Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel.cpp Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
kernel.cu Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
kernel.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
SConscript Cycles: __KERNEL_DEBUG__ wasn't set for compile-time kernels 2014-10-05 21:42:53 +06:00