[Bf-blender-cvs] [9d633312762] soc-2018-hair-shader: Add nirved's OpenCL compatibility patch

L. E. Segovia noreply at git.blender.org
Wed May 30 03:31:45 CEST 2018


Commit: 9d6333127623ebed7a275d382e63da1f87712aae
Author: L. E. Segovia
Date:   Wed May 30 01:31:24 2018 +0000
Branches: soc-2018-hair-shader
https://developer.blender.org/rB9d6333127623ebed7a275d382e63da1f87712aae

Add nirved's OpenCL compatibility patch

Ref T54796

===================================================================

M	intern/cycles/kernel/closure/bsdf_hair_principled.h
M	intern/cycles/kernel/kernel_compat_opencl.h
M	intern/cycles/kernel/svm/svm_closure.h

===================================================================

diff --git a/intern/cycles/kernel/closure/bsdf_hair_principled.h b/intern/cycles/kernel/closure/bsdf_hair_principled.h
index 83de29d07dc..fac181d4a1c 100644
--- a/intern/cycles/kernel/closure/bsdf_hair_principled.h
+++ b/intern/cycles/kernel/closure/bsdf_hair_principled.h
@@ -144,6 +144,8 @@ ccl_device_inline float4 combine_with_energy(float3 c)
 	return make_float4(c.x, c.y, c.z, linear_rgb_to_gray(c));
 }
 
+#ifdef __HAIR__
+
 ccl_device int bsdf_principled_hair_setup(PrincipledHairBSDF *bsdf)
 {
 	// if((sd->type & PRIMITIVE_ALL_CURVE) == 0) {
@@ -161,6 +163,8 @@ ccl_device int bsdf_principled_hair_setup(PrincipledHairBSDF *bsdf)
 	return SD_BSDF|SD_BSDF_HAS_EVAL|SD_BSDF_NEEDS_LCG;
 }
 
+#endif /* __HAIR__ */
+
 ccl_device_inline void setup_geometry(KernelGlobals *kg, ShaderData *sd, PrincipledHairBSDF *bsdf)
 {
 	/* Compute local frame, aligned to curve tangent and ray direction. */
@@ -478,4 +482,3 @@ ccl_device void bsdf_principled_hair_blur(ShaderClosure *sc, float roughness)
 CCL_NAMESPACE_END
 
 #endif /* __BSDF_HAIR_PRINCIPLED_H__ */
-
diff --git a/intern/cycles/kernel/kernel_compat_opencl.h b/intern/cycles/kernel/kernel_compat_opencl.h
index 671c47e2225..7a64385329e 100644
--- a/intern/cycles/kernel/kernel_compat_opencl.h
+++ b/intern/cycles/kernel/kernel_compat_opencl.h
@@ -123,6 +123,7 @@
 #define fmaxf(x, y) fmax(((float)(x)), ((float)(y)))
 #define fminf(x, y) fmin(((float)(x)), ((float)(y)))
 #define fmodf(x, y) fmod((float)(x), (float)(y))
+#define sinhf(x)sinh(((float)(x)))
 
 #ifndef __CL_USE_NATIVE__
 #  define sinf(x) native_sin(((float)(x)))
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h
index 65cb4cbfd43..6f5c0efb1ef 100644
--- a/intern/cycles/kernel/svm/svm_closure.h
+++ b/intern/cycles/kernel/svm/svm_closure.h
@@ -721,6 +721,7 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
 			}
 			break;
 		}
+#ifdef __HAIR__
 		case CLOSURE_BSDF_HAIR_PRINCIPLED_ID: {
 			float3 weight = sd->svm_closure_weight * mix_weight;
 
@@ -763,7 +764,6 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
 			}
 			break;
 		}
-#ifdef __HAIR__
 		case CLOSURE_BSDF_HAIR_REFLECTION_ID:
 		case CLOSURE_BSDF_HAIR_TRANSMISSION_ID: {
 			float3 weight = sd->svm_closure_weight * mix_weight;
@@ -806,7 +806,7 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
 
 			break;
 		}
-#endif
+#endif  /* __HAIR__ */
 
 #ifdef __SUBSURFACE__
 		case CLOSURE_BSSRDF_CUBIC_ID:



More information about the Bf-blender-cvs mailing list