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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-01-31 16:42:30 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-01-31 17:28:19 +0300
commit3e2909cf9d8550588cc398fadc545fae04ed3fbf (patch)
tree9a496d7504b5ba6559d70786a1bd9299ea0caf35
parent1052497aad51871b5a99f7ca06e48beb5c3e5037 (diff)
Fix T53962: Cycles OpenCL compile error in some scenes.
This part of 212a8d9e needed to be ported over for 2ca933f to work.
-rw-r--r--intern/cycles/kernel/kernel_shader.h5
-rw-r--r--intern/cycles/kernel/kernel_shadow.h3
-rw-r--r--intern/cycles/kernel/kernel_types.h2
3 files changed, 10 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index c66f52255f0..8d77f00fde7 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -57,6 +57,7 @@ ccl_device_noinline void shader_setup_from_ray(KernelGlobals *kg,
#ifdef __INSTANCING__
sd->object = (isect->object == PRIM_NONE)? kernel_tex_fetch(__prim_object, isect->prim): isect->object;
#endif
+ sd->lamp = LAMP_NONE;
sd->type = isect->type;
sd->flag = 0;
@@ -265,6 +266,7 @@ ccl_device_inline void shader_setup_from_sample(KernelGlobals *kg,
#ifdef __INSTANCING__
sd->object = object;
#endif
+ sd->lamp = LAMP_NONE;
/* currently no access to bvh prim index for strand sd->prim*/
sd->prim = prim;
#ifdef __UV__
@@ -286,6 +288,7 @@ ccl_device_inline void shader_setup_from_sample(KernelGlobals *kg,
else if(lamp != LAMP_NONE) {
sd->ob_tfm = lamp_fetch_transform(kg, lamp, false);
sd->ob_itfm = lamp_fetch_transform(kg, lamp, true);
+ sd->lamp = lamp;
#endif
}
@@ -393,6 +396,7 @@ ccl_device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderDat
#ifdef __INSTANCING__
sd->object = PRIM_NONE;
#endif
+ sd->lamp = LAMP_NONE;
sd->prim = PRIM_NONE;
#ifdef __UV__
sd->u = 0.0f;
@@ -435,6 +439,7 @@ ccl_device_inline void shader_setup_from_volume(KernelGlobals *kg, ShaderData *s
#ifdef __INSTANCING__
sd->object = PRIM_NONE; /* todo: fill this for texture coordinates */
#endif
+ sd->lamp = LAMP_NONE;
sd->prim = PRIM_NONE;
sd->type = PRIMITIVE_NONE;
diff --git a/intern/cycles/kernel/kernel_shadow.h b/intern/cycles/kernel/kernel_shadow.h
index 73f0cb82ea0..330cadfc7de 100644
--- a/intern/cycles/kernel/kernel_shadow.h
+++ b/intern/cycles/kernel/kernel_shadow.h
@@ -25,6 +25,9 @@ typedef struct VolumeState {
} VolumeState;
/* Get PathState ready for use for volume stack evaluation. */
+# ifdef __SPLIT_KERNEL__
+ccl_addr_space
+# endif
ccl_device_inline PathState *shadow_blocked_volume_path_state(
KernelGlobals *kg,
VolumeState *volume_state,
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index e6a62c42a38..9b4d1291b39 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -935,6 +935,8 @@ typedef ccl_addr_space struct ShaderData {
float v;
/* object id if there is one, ~0 otherwise */
int object;
+ /* lamp id if there is one, ~0 otherwise */
+ int lamp;
/* motion blur sample time */
float time;