[Bf-blender-cvs] [876bdc2] temp-cycles-microdisplacement: Fix building of OpenCL kernel

Mai Lavelle noreply at git.blender.org
Sun Jun 12 14:29:09 CEST 2016


Commit: 876bdc231f260b2b5100e58db6127bff6cdfe677
Author: Mai Lavelle
Date:   Sun Jun 12 08:26:54 2016 -0400
Branches: temp-cycles-microdisplacement
https://developer.blender.org/rB876bdc231f260b2b5100e58db6127bff6cdfe677

Fix building of OpenCL kernel

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

M	intern/cycles/kernel/geom/geom_triangle.h
M	intern/cycles/util/util_math.h

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

diff --git a/intern/cycles/kernel/geom/geom_triangle.h b/intern/cycles/kernel/geom/geom_triangle.h
index ede5023..862f889 100644
--- a/intern/cycles/kernel/geom/geom_triangle.h
+++ b/intern/cycles/kernel/geom/geom_triangle.h
@@ -252,9 +252,9 @@ ccl_device float subd_triangle_attribute_float(KernelGlobals *kg, const ShaderDa
 		if(v.w != ~0) {
 			float f3 = kernel_tex_fetch(__attributes_float, offset + v.w);
 
-			a = interp(interp(f0, f1, uv[0].x), interp(f3, f2, uv[0].x), uv[0].y);
-			b = interp(interp(f0, f1, uv[1].x), interp(f3, f2, uv[1].x), uv[1].y);
-			c = interp(interp(f0, f1, uv[2].x), interp(f3, f2, uv[2].x), uv[2].y);
+			a = mix(mix(f0, f1, uv[0].x), mix(f3, f2, uv[0].x), uv[0].y);
+			b = mix(mix(f0, f1, uv[1].x), mix(f3, f2, uv[1].x), uv[1].y);
+			c = mix(mix(f0, f1, uv[2].x), mix(f3, f2, uv[2].x), uv[2].y);
 		}
 		else {
 			a = uv[0].x*f0 + uv[0].y*f1 + (1.0f - uv[0].x - uv[0].y)*f2;
@@ -285,9 +285,9 @@ ccl_device float subd_triangle_attribute_float(KernelGlobals *kg, const ShaderDa
 		if(v.w != ~0) {
 			float f3 = kernel_tex_fetch(__attributes_float, patch + 3);
 
-			a = interp(interp(f0, f1, uv[0].x), interp(f3, f2, uv[0].x), uv[0].y);
-			b = interp(interp(f0, f1, uv[1].x), interp(f3, f2, uv[1].x), uv[1].y);
-			c = interp(interp(f0, f1, uv[2].x), interp(f3, f2, uv[2].x), uv[2].y);
+			a = mix(mix(f0, f1, uv[0].x), mix(f3, f2, uv[0].x), uv[0].y);
+			b = mix(mix(f0, f1, uv[1].x), mix(f3, f2, uv[1].x), uv[1].y);
+			c = mix(mix(f0, f1, uv[2].x), mix(f3, f2, uv[2].x), uv[2].y);
 		}
 		else {
 			a = uv[0].x*f0 + uv[0].y*f1 + (1.0f - uv[0].x - uv[0].y)*f2;
@@ -332,9 +332,9 @@ ccl_device float3 subd_triangle_attribute_float3(KernelGlobals *kg, const Shader
 		if(v.w != ~0) {
 			float3 f3 = float4_to_float3(kernel_tex_fetch(__attributes_float3, offset + v.w));
 
-			a = interp(interp(f0, f1, uv[0].x), interp(f3, f2, uv[0].x), uv[0].y);
-			b = interp(interp(f0, f1, uv[1].x), interp(f3, f2, uv[1].x), uv[1].y);
-			c = interp(interp(f0, f1, uv[2].x), interp(f3, f2, uv[2].x), uv[2].y);
+			a = mix(mix(f0, f1, uv[0].x), mix(f3, f2, uv[0].x), uv[0].y);
+			b = mix(mix(f0, f1, uv[1].x), mix(f3, f2, uv[1].x), uv[1].y);
+			c = mix(mix(f0, f1, uv[2].x), mix(f3, f2, uv[2].x), uv[2].y);
 		}
 		else {
 			a = uv[0].x*f0 + uv[0].y*f1 + (1.0f - uv[0].x - uv[0].y)*f2;
@@ -378,9 +378,9 @@ ccl_device float3 subd_triangle_attribute_float3(KernelGlobals *kg, const Shader
 				f3 = color_byte_to_float(kernel_tex_fetch(__attributes_uchar4, patch + 3));
 			}
 
-			a = interp(interp(f0, f1, uv[0].x), interp(f3, f2, uv[0].x), uv[0].y);
-			b = interp(interp(f0, f1, uv[1].x), interp(f3, f2, uv[1].x), uv[1].y);
-			c = interp(interp(f0, f1, uv[2].x), interp(f3, f2, uv[2].x), uv[2].y);
+			a = mix(mix(f0, f1, uv[0].x), mix(f3, f2, uv[0].x), uv[0].y);
+			b = mix(mix(f0, f1, uv[1].x), mix(f3, f2, uv[1].x), uv[1].y);
+			c = mix(mix(f0, f1, uv[2].x), mix(f3, f2, uv[2].x), uv[2].y);
 		}
 		else {
 			a = uv[0].x*f0 + uv[0].y*f1 + (1.0f - uv[0].x - uv[0].y)*f2;
diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index b700381..e1de8bb 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -174,7 +174,7 @@ ccl_device_inline float clamp(float a, float mn, float mx)
 	return min(max(a, mn), mx);
 }
 
-ccl_device_inline float interp(float a, float b, float t)
+ccl_device_inline float mix(float a, float b, float t)
 {
     return a + t*(b - a);
 }
@@ -652,6 +652,15 @@ ccl_device_inline float3 interp(float3 a, float3 b, float t)
 	return a + t*(b - a);
 }
 
+#ifndef __KERNEL_OPENCL__
+
+ccl_device_inline float3 mix(float3 a, float3 b, float t)
+{
+	return a + t*(b - a);
+}
+
+#endif
+
 ccl_device_inline bool is_zero(const float3 a)
 {
 #ifdef __KERNEL_SSE__




More information about the Bf-blender-cvs mailing list