Commit: 90e555b88db6197da5ba965ac741ed3f65e21fd1 Author: varunsundar08 Date: Mon May 4 21:33:07 2015 +0530 Branches: cycles_kernel_split https://developer.blender.org/rB90e555b88db6197da5ba965ac741ed3f65e21fd1
De-duplicate object_dir_transform function =================================================================== M intern/cycles/kernel/geom/geom_object.h M intern/cycles/kernel/kernel_shader.h M intern/cycles/kernel/svm/svm_vector_transform.h =================================================================== diff --git a/intern/cycles/kernel/geom/geom_object.h b/intern/cycles/kernel/geom/geom_object.h index a59b08f..43662a6 100644 --- a/intern/cycles/kernel/geom/geom_object.h +++ b/intern/cycles/kernel/geom/geom_object.h @@ -162,7 +162,7 @@ ccl_device_inline void object_normal_transform(ccl_addr_space KernelGlobals *kg, } /* Transform direction vector from object to world space */ -ccl_device_inline void object_dir_transform(ccl_addr_space KernelGlobals *kg, const ccl_addr_space ShaderData *sd, ccl_addr_space float3 *D) +ccl_device_inline void object_dir_transform(ccl_addr_space KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *D) { #ifdef __OBJECT_MOTION__ *D = transform_direction(&sd_fetch(ob_tfm), *D); @@ -172,18 +172,6 @@ ccl_device_inline void object_dir_transform(ccl_addr_space KernelGlobals *kg, co #endif } -#ifdef __SPLIT_KERNEL__ -ccl_device_inline void object_dir_transform_private_D(ccl_addr_space KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *D) -{ -#ifdef __OBJECT_MOTION__ - *D = transform_direction(&sd_fetch(ob_tfm), *D); -#else - Transform tfm = object_fetch_transform(kg, sd_fetch(object), OBJECT_TRANSFORM); - *D = transform_direction(&tfm, *D); -#endif -} -#endif - /* Transform direction vector from world to object space */ ccl_device_inline void object_inverse_dir_transform(ccl_addr_space KernelGlobals *kg, const ccl_addr_space ShaderData *sd, float3 *D) { diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h index cc83939..67e5e83 100644 --- a/intern/cycles/kernel/kernel_shader.h +++ b/intern/cycles/kernel/kernel_shader.h @@ -126,8 +126,16 @@ ccl_device void shader_setup_from_ray(ccl_addr_space KernelGlobals *kg, ccl_addr sd_fetch(N) = sd_N; sd_fetch(Ng) = sd_Ng; #ifdef __DPDU__ - object_dir_transform(kg, sd, &sd_fetch(dPdu)); - object_dir_transform(kg, sd, &sd_fetch(dPdv)); + /* Get dPdu, dPdv values */ + float3 sd_dPdu = sd_fetch(dPdu); + float3 sd_dPdv = sd_fetch(dPdv); + + object_dir_transform(kg, sd, &sd_dPdu); + object_dir_transform(kg, sd, &sd_dPdv); + + /* Store dPdu and dPdv values */ + sd_fetch(dPdu) = sd_dPdu; + sd_fetch(dPdv) = sd_dPdv; #endif } #endif @@ -306,8 +314,16 @@ ccl_device void shader_setup_from_sample(ccl_addr_space KernelGlobals *kg, ccl_a #ifdef __INSTANCING__ if(instanced) { - object_dir_transform(kg, sd, &sd_fetch(dPdu)); - object_dir_transform(kg, sd, &sd_fetch(dPdv)); + /* Get dPdu and dPdv values */ + float3 sd_dPdu = sd_fetch(dPdu); + float3 sd_dPdv = sd_fetch(dPdv); + + object_dir_transform(kg, sd, &sd_dPdu); + object_dir_transform(kg, sd, &sd_dPdv); + + /* Store dPdu and dPdv values */ + sd_fetch(dPdu) = sd_dPdu; + sd_fetch(dPdv) = sd_dPdv; } #endif #endif diff --git a/intern/cycles/kernel/svm/svm_vector_transform.h b/intern/cycles/kernel/svm/svm_vector_transform.h index 2c6cb02..abb6cea 100644 --- a/intern/cycles/kernel/svm/svm_vector_transform.h +++ b/intern/cycles/kernel/svm/svm_vector_transform.h @@ -74,11 +74,7 @@ ccl_device void svm_node_vector_transform(ccl_addr_space KernelGlobals *kg, ccl_ else if(from == NODE_VECTOR_TRANSFORM_CONVERT_SPACE_OBJECT) { if((to == NODE_VECTOR_TRANSFORM_CONVERT_SPACE_WORLD || to == NODE_VECTOR_TRANSFORM_CONVERT_SPACE_CAMERA) && is_object) { if(is_direction) -#ifdef __SPLIT_KERNEL__ - object_dir_transform_private_D(kg, sd, &in); -#else object_dir_transform(kg, sd, &in); -#endif else object_position_transform(kg, sd, &in); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs