Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHristo Gueorguiev <prem.nirved@gmail.com>2017-05-05 14:39:52 +0300
committerHristo Gueorguiev <prem.nirved@gmail.com>2017-05-05 14:42:26 +0300
commit8b97e42eca7f2df7fdbca5cfa16b7560f9489be0 (patch)
tree19e5dfa1989d8221b5e02ae756f9d629fa710d17 /intern/cycles/kernel/split
parentb9fda4480fb8aacad4116cdcb5fef55497bacb3d (diff)
Cycles: Split kernel SSS & Volume data definitions cleanup
Diffstat (limited to 'intern/cycles/kernel/split')
-rw-r--r--intern/cycles/kernel/split/kernel_split_data.h18
-rw-r--r--intern/cycles/kernel/split/kernel_split_data_types.h24
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
*/