From 3e2909cf9d8550588cc398fadc545fae04ed3fbf Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 31 Jan 2018 14:42:30 +0100 Subject: Fix T53962: Cycles OpenCL compile error in some scenes. This part of 212a8d9e needed to be ported over for 2ca933f to work. --- intern/cycles/kernel/kernel_shader.h | 5 +++++ intern/cycles/kernel/kernel_shadow.h | 3 +++ intern/cycles/kernel/kernel_types.h | 2 ++ 3 files changed, 10 insertions(+) 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; -- cgit v1.2.3