diff options
author | Hristo Gueorguiev <prem.nirved@gmail.com> | 2017-05-05 14:39:52 +0300 |
---|---|---|
committer | Hristo Gueorguiev <prem.nirved@gmail.com> | 2017-05-05 14:42:26 +0300 |
commit | 8b97e42eca7f2df7fdbca5cfa16b7560f9489be0 (patch) | |
tree | 19e5dfa1989d8221b5e02ae756f9d629fa710d17 /intern | |
parent | b9fda4480fb8aacad4116cdcb5fef55497bacb3d (diff) |
Cycles: Split kernel SSS & Volume data definitions cleanup
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/split/kernel_split_data.h | 18 | ||||
-rw-r--r-- | intern/cycles/kernel/split/kernel_split_data_types.h | 24 |
2 files changed, 16 insertions, 26 deletions
diff --git a/intern/cycles/kernel/split/kernel_split_data.h b/intern/cycles/kernel/split/kernel_split_data.h index 17e6587883a..eac22050a38 100644 --- a/intern/cycles/kernel/split/kernel_split_data.h +++ b/intern/cycles/kernel/split/kernel_split_data.h @@ -31,14 +31,6 @@ ccl_device_inline uint64_t split_data_buffer_size(KernelGlobals *kg, size_t num_ size = size SPLIT_DATA_ENTRIES; #undef SPLIT_DATA_ENTRY -#ifdef __SUBSURFACE__ - size += align_up(num_elements * sizeof(SubsurfaceIndirectRays), 16); /* ss_rays */ -#endif - -#ifdef __VOLUME__ - size += align_up(2 * num_elements * sizeof(PathState), 16); /* state_shadow */ -#endif - return size; } @@ -57,16 +49,6 @@ ccl_device_inline void split_data_init(KernelGlobals *kg, SPLIT_DATA_ENTRIES; #undef SPLIT_DATA_ENTRY -#ifdef __SUBSURFACE__ - split_data->ss_rays = (ccl_global SubsurfaceIndirectRays*)p; - p += align_up(num_elements * sizeof(SubsurfaceIndirectRays), 16); -#endif - -#ifdef __VOLUME__ - split_data->state_shadow = (ccl_global PathState*)p; - p += align_up(2 * num_elements * sizeof(PathState), 16); -#endif - split_data->ray_state = ray_state; } diff --git a/intern/cycles/kernel/split/kernel_split_data_types.h b/intern/cycles/kernel/split/kernel_split_data_types.h index 913e0dfd08d..bb1aca2acbf 100644 --- a/intern/cycles/kernel/split/kernel_split_data_types.h +++ b/intern/cycles/kernel/split/kernel_split_data_types.h @@ -103,6 +103,20 @@ typedef ccl_global struct SplitBranchedState { #define SPLIT_DATA_BRANCHED_ENTRIES #endif /* __BRANCHED_PATH__ */ +#ifdef __SUBSURFACE__ +# define SPLIT_DATA_SUBSURFACE_ENTRIES \ + SPLIT_DATA_ENTRY(ccl_global SubsurfaceIndirectRays, ss_rays, 1) +#else +# define SPLIT_DATA_SUBSURFACE_ENTRIES +#endif /* __SUBSURFACE__ */ + +#ifdef __VOLUME__ +# define SPLIT_DATA_VOLUME_ENTRIES \ + SPLIT_DATA_ENTRY(ccl_global PathState, state_shadow, 1) +#else +# define SPLIT_DATA_VOLUME_ENTRIES +#endif /* __VOLUME__ */ + #define SPLIT_DATA_ENTRIES \ SPLIT_DATA_ENTRY(ccl_global RNG, rng, 1) \ SPLIT_DATA_ENTRY(ccl_global float3, throughput, 1) \ @@ -118,6 +132,8 @@ typedef ccl_global struct SplitBranchedState { SPLIT_DATA_ENTRY(ccl_global uint, work_array, 1) \ SPLIT_DATA_ENTRY(ShaderData, sd, 1) \ SPLIT_DATA_ENTRY(ShaderData, sd_DL_shadow, 1) \ + SPLIT_DATA_SUBSURFACE_ENTRIES \ + SPLIT_DATA_VOLUME_ENTRIES \ SPLIT_DATA_BRANCHED_ENTRIES \ SPLIT_DATA_DEBUG_ENTRIES \ @@ -127,14 +143,6 @@ typedef struct SplitData { SPLIT_DATA_ENTRIES #undef SPLIT_DATA_ENTRY -#ifdef __SUBSURFACE__ - ccl_global SubsurfaceIndirectRays *ss_rays; -#endif - -#ifdef __VOLUME__ - ccl_global PathState *state_shadow; -#endif - /* this is actually in a separate buffer from the rest of the split state data (so it can be read back from * the host easily) but is still used the same as the other data so we have it here in this struct as well */ |