Cycles: reduce closure memory usage for emission/shadow shader data.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 1 Nov 2017 20:02:28 +0000 (21:02 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Sun, 5 Nov 2017 19:48:33 +0000 (20:48 +0100)
commit8a72be7697f8fbfc8cb6cc9f3df049104e41d4a6
treec8997adcc23053eb6b4cfb7f499581644b23f61e
parentc571be4e05788b8d3447a0bfe59942ebb4464750
Cycles: reduce closure memory usage for emission/shadow shader data.

With a Titan Xp, reduces path trace local memory from 1092MB to 840MB.
Benchmark performance was within 1% with both RX 480 and Titan Xp.

Original patch was implemented by Sergey.

Differential Revision: https://developer.blender.org/D2249
20 files changed:
intern/cycles/kernel/closure/alloc.h
intern/cycles/kernel/kernel_bake.h
intern/cycles/kernel/kernel_emission.h
intern/cycles/kernel/kernel_path.h
intern/cycles/kernel/kernel_path_branched.h
intern/cycles/kernel/kernel_shader.h
intern/cycles/kernel/kernel_shadow.h
intern/cycles/kernel/kernel_subsurface.h
intern/cycles/kernel/kernel_types.h
intern/cycles/kernel/kernel_volume.h
intern/cycles/kernel/split/kernel_buffer_update.h
intern/cycles/kernel/split/kernel_direct_lighting.h
intern/cycles/kernel/split/kernel_do_volume.h
intern/cycles/kernel/split/kernel_holdout_emission_blurring_pathtermination_ao.h
intern/cycles/kernel/split/kernel_path_init.h
intern/cycles/kernel/split/kernel_shader_eval.h
intern/cycles/kernel/split/kernel_shadow_blocked_ao.h
intern/cycles/kernel/split/kernel_shadow_blocked_dl.h
intern/cycles/kernel/split/kernel_split_data_types.h
intern/cycles/kernel/split/kernel_subsurface_scatter.h